해시 기반 메시지 인증 코드(HMAC) (HMAC)
쉽게 풀면
HMAC은 이미 널리 쓰이는 해시 함수라는 도구에 비밀 키를 섞어 안전성을 더한 방식입니다. 단순히 데이터를 해시 함수에 넣는 것만으로는 키가 없는 사람도 같은 해시 값을 만들 수 있지만, HMAC은 특정한 방식으로 키를 두 번 결합함으로써 키를 모르는 사람이 올바른 인증 값을 만들지 못하도록 합니다. SHA-256 같은 표준 해시 함수와 함께 사용되는 경우가 많습니다. 계산이 비교적 간단해서 다양한 시스템에서 폭넓게 채택되고 있습니다.
왜 중요한가
HMAC은 표준화가 잘 되어 있고 구현이 상대적으로 단순해 API 인증, 세션 토큰 검증, 네트워크 프로토콜 등 실무에서 매우 광범위하게 사용됩니다. 정보보안학 연구에서는 사용하는 해시 함수의 안전성에 따라 HMAC 전체의 안전성이 어떻게 달라지는지를 분석하는 것이 중요한 주제입니다. 표준화 기구의 검증을 거친 알고리즘이기 때문에 새로운 시스템을 설계할 때 신뢰할 수 있는 선택지로 자주 언급됩니다.
논문에서는 이렇게 쓰입니다
웹 API 보안에서 HMAC이 요청 위변조 방지 수단으로 쓰이는 전형적인 사례입니다.
기반이 되는 해시 함수의 안전성이 HMAC 전체 보안에 미치는 관계를 다루는 연구입니다.
조금 더 깊게 보면
HMAC은 비밀 키를 내부 패딩 값과 결합해 해시 함수를 두 차례 적용하는 구조를 가지며, 이 이중 구조 덕분에 단순히 해시 함수만 사용하는 방식보다 특정 공격에 더 강한 안전성을 갖습니다. 사용하는 해시 함수의 종류에 따라 HMAC-SHA256처럼 이름이 붙어 구분됩니다.
주의할 점
HMAC의 안전성은 내부에서 사용하는 해시 함수의 안전성에 의존하므로, 취약한 해시 함수를 사용하면 HMAC의 신뢰성도 함께 떨어질 수 있습니다.