1. HMAC란?

송수신자 간의 메시지를 주고받을 때, 메시지가 변조되었는지 확인할 필요가 있는데 ,원본 메시지와 전달된 메시지를 비교하며 확인하는 방식이 MAC(Message Authentication Code)이다. HMAC는 Hashing과 공유키를 사용한 MAC 기술을 의미한다.

일반 해싱 알고리즘과 HMAC의 공통점은 해싱 알고리즘이 적용된 해싱 함수를 사용한다는 것이고, 가장 큰 차이점은 HMAC는 해시 암호키를 송신자와 수신자가 미리 나눠가지고 이를 사용한다는 것이다. 송수신자만 공유하고 있는 키와 원본 메시지를 혼합하여 해시값을 만들고 이를 비교하는 방식이다.

Untitled

2. 송신자-수신자 간의 HMAC 플로우

Untitled

  1. 송신자와 수신자 사이에 암호화 채널을 사용하여 해싱에 사용할 키를 공유한다. → 양쪽이 동일한 키를 사용하니 대칭키(symmetric key) 방식이라 할 수 있다.

  2. 송신자는 키를 사용하여 원본 메시지를 해싱한다. 해싱된 메시지가 바로 MAC이다.

  3. 송신자는 원본 메시지와 해싱 메시지(MAC)를 수신자에게 전달한다.

  4. 수신자는 key를 사용하여 원본 메시지를 해싱하고, 송신자에게 받은 MAC과 비교한다.

  5. 비교한 값이 동등하다면, 원본 메시지는 변조되지 않았고 신뢰할 수 있는 값으로 판단된다.

  6. 만약 해커가 메시지를 변조했다면, 수신자의 MAC과 송신자의 MAC 값이 다른 것을 확인할 수 있다.

출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sehyunfa&logNo=221723355441