용어와 정의
영문 또는 원어: HMAC
영문 정식명칭: Keyed-Hash Message Authentication Code
한글명: 키 기반 해시 메시지 인증 코드
HMAC은 비밀키와 해시 함수를 조합해 메시지의 변경 여부와 키를 가진 주체에 의한 생성을 확인하는 메시지 인증 코드 방식입니다.
정확한 의미와 원리
송신자와 검증자가 공유한 비밀키로 인증 값을 계산합니다. 키를 모르는 사람이 유효한 값을 만들기 어렵게 하는 것이 목적이며 본문을 숨기는 암호화와는 다릅니다.
쉽게 이해하는 사용 예시
내부 API 요청의 본문과 지정된 필드에 HMAC을 계산해 수신자가 위변조 여부를 확인하도록 할 수 있습니다.
종류와 관련 개념의 차이
일반 해시는 비밀키가 없고 HMAC은 비밀키를 사용합니다. 디지털 서명은 공개키로 검증할 수 있지만 HMAC은 공유 키를 아는 검증자도 값을 만들 수 있다는 차이가 있습니다.
적용 조건과 오해하기 쉬운 점
재전송 방지는 HMAC만으로 자동 제공되지 않습니다. 서명할 필드의 정확한 직렬화, 시간이나 nonce의 검증과 키 회수를 함께 설계해야 합니다.
관련 용어와 글
함께 이해할 기준 개념
함께 비교할 용어
- Symmetric encryption 대칭키 암호화
- Asymmetric cryptography 비대칭키 암호
- Cryptographic hash function 암호학적 해시 함수
- Digital signature 디지털 서명
- PKI 공개키 기반 구조
- Digital certificate 디지털 인증서
- Encryption key 암호화 키
- KDF 키 유도 함수
- Salt 솔트
- HSM 하드웨어 보안 모듈
- TPM 신뢰 플랫폼 모듈
- Secure Boot 보안 부팅
- AES-128 128비트 키 AES
- AES-192 192비트 키 AES
- AES-256 256비트 키 AES
- GCM 인증 기능을 제공하는 카운터 모드
- CBC 암호 블록 연결 모드
- RSA RSA 공개키 암호 계열
- ECC 타원곡선 암호
- ECDH 타원곡선 디피 헬먼 키 합의
- SHA-1 SHA-1 해시
- SHA-2 SHA-2 해시 계열
- SHA-3 SHA-3 해시 계열
- MD5 MD5 해시
- ECDSA 타원곡선 디지털 서명 알고리즘
- EdDSA 에드워즈 곡선 디지털 서명 알고리즘
- Root CA 루트 인증기관
- Intermediate CA 중간 인증기관
- CRL 인증서 폐기 목록
- PBKDF2 비밀번호 기반 키 유도 함수 2
- Argon2id Argon2 혼합 방식
- TPM 1.2 TPM 버전 1.2
- TPM 2.0 TPM 버전 2.0
- Measured Boot 측정 부팅