클라가 서버에게 데이터를 줄때 이게 위변조 된것인가 확인해야함.

이런 공격에 대응하려면 위변조 확인 수단이 필요하다. 이때 HMAC을 자주 씀.

HMAC 은 Hash-based Message Authentication Code 의 약자. 메시지 무결성과 인증을 보장하기 위해 쓰는 암호화 기술. HMAC은 해시 함수와 비밀 키로 다음 2가지 보장.

  • 메시지 무결성: 메시지가 중간에 위변조 안됨.
  • 인증: 메시지 발신자를 인증할 수 있음(발신자만 비밀 키 접근) 메시지 발신자와 수신자는 둘만 알고 있는 비밀 키를 공유. 외부에 노출되면 절대 안됨.

발신자는 메시지를 비밀 키로 해싱해서 생성한 MAC(메시지 인증 코드)를 원본 메시지와 함께 전송. 수신자는 메시지와 비밀 키로 MAC 다시 생성한뒤 발신자가 보낸 MAC과 비교. 두 값이 같으면 위변조가 안된것을 보장가능!

HMAC의 장점은 단순함과 효율성. 서로 비밀 키만 공유되면 정해진 해시 알고리즘으로 MAC을 생성할 수 있기에 낮은 비용으로 인증 보안 구현이 됨.

단점은 키 관리. 유출되면 보안이 뚫린다.