일단 용어에 대한 간단한 개념 정리!
복호화가 불가능한 해시/서명용 HMAC 키 생성 (예 : HMAC-SHA256)
암/복호화가 가능한 대칭키 (AES-GCM) 생성
✅ 키 설계와 길이 권장안 정리
| 용도 | 알고리즘 | 키 길이 | 비고 |
|---|---|---|---|
| 단방향 | HMAC-SHA256 | 32바이트 (256비트) 이상 | 토큰 서명/검증, 비밀번호 해시의 “pepper” 등 |
| 양방향 | AES-256-GCM | 32바이트 (256비트) | 인증(무결성) 포함. Nonce/IV는 12바이트 권장 |
‼️윈도우 기준으로 정리 예정‼️
이렇게 생성한 단방향/양방향 비밀키들은 시스템 환경변수에 저장하여 OS 로부터 프로젝트에서 호출 받아 사용하면 더 높은 단계의 보안성을 가진 프로젝트를 구성할 수 있다.
시스템(머신) 환경변수에 저장(관리자 권한 PowerShell)
이때 yml에 정의한 비밀키 변수가 환경변수에 저장되지 않을 경우 서버 에러 발생
✅ 두 메소드 차이 요약
| 항목 | HMAC 키 | AES 키 |
|---|---|---|
| 역할 | 메시지 무결성 (단방향) | 데이터 암복호화 (양방향) |
| 유효 길이 | 자유지만 32바이트↑ 권장 | 정확히 16/24/32 바이트만 |
| 알고리즘 | HmacSHA256 | AES |
✅ 비유로 쉽게 설명
환경변수에 저장된 키 문자열 = 금고 열쇠 그림 파일
base64(...) = 그림을 진짜 금속 열쇠로 만드는 과정
SecretKeySpec(...) = 열쇠를 자물쇠 규격에 맞게 가공