공시 한 판

정보보호론 개념서 · 공개키 암호·해시·전자서명

해시 결합 구성과 메시지 보호

설명 영상 메시지 인증과 HMAC · 2:15

핵심 정리

메시지 인증(message authentication)은 메시지가 전송 도중 불법적으로 위변조되지 않고 정확하고 완전하게 수신되었는지 확인하는 일이다. 메시지가 수정되지 않았다는 데이터 무결성과 수신자가 메시지의 출처를 확인할 수 있다는 속성을 함께 가리킨다. 암호화는 메시지의 기밀성을 보호하지만 무결성과 진위성까지 보장하지 않으므로 별도의 인증 수단이 필요하다. 메시지 인증에 반드시 부인 방지 속성이 포함되는 것은 아니라는 점도 기억해야 한다.

메시지 인증에는 일반적으로 MAC(메시지 인증 코드), 인증된 암호화(AE), 디지털 서명을 사용한다. MAC을 사용하려면 송신자와 수신자가 공유하는 비밀키가 필요하다. MAC은 메시지와 함께 전달되며 메시지의 무결성을 검증하는 데 쓰인다. MAC을 검증하면 수신자는 메시지가 공유 키를 가진 송신자로부터 전송되었음을 확인할 수 있다. 무결성을 확보하려면 키를 아는 자만 올바른 키 해시 값을 계산할 수 있어야 한다. 키를 모르는 공격자는 수정된 메시지에 대한 올바른 키 해시 값을 쉽게 계산할 수 없다. MAC과 해시 함수는 고정 크기의 출력을 이용해 메시지 무결성을 검증한다.

HMAC은 해시 함수와 비밀 키를 결합하여 메시지 인증 코드를 만드는 기법이다. 비밀키와 해시 함수를 이용하는 두 단계 해시 과정으로 메시지의 무결성과 안전성을 높이는 구성이다. 메시지 인증 수단을 선택할 때는 키를 공유할 수 있는지와 해시 함수를 바꿔 쓸 수 있는지를 함께 고려해야 한다.

자세히

HMAC의 해시 함수 구성과 교체

HMAC은 해시 함수를 선택해 사용할 수 있다는 점이 중요하다. HMAC은 MD5, SHA-1, RIPEMD-160과 같은 해시 함수로 구성된다. 더 빠르거나 안전한 해시 함수가 나오면 기존 해시 함수를 쉽게 바꿀 수 있도록 설계되었다. HMAC은 해시 함수의 원래 성능을 심각하게 떨어뜨리지 않도록 설계되었다.

두 방식은 키를 사용하는지에 따라 차이가 난다. 해시값만 주고받는 방식과 HMAC을 비교하면 다음과 같다.

구분해시값만 주고받는 방식HMAC
키 사용키를 쓰지 않는다비밀키를 쓴다
변조 대응메시지와 해시값을 함께 바꾸면 수신자가 알 수 없다키를 모르면 올바른 키 해시 값을 계산하기 어렵다

해시값만 쓰는 방식에서는 해시 함수가 공개되어 있으면 누구나 같은 값을 계산할 수 있다. 반면 HMAC은 비밀키가 있어야 올바른 값을 만들 수 있으므로, 같은 해시 함수를 쓰더라도 메시지 인증의 성격이 달라진다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 절 읽기