HMAC 이용한 데이터 검증

  • 클라가 서버에게 데이터를 줄때 이게 위변조 된것인가 확인해야함.
  • 이런 공격에 대응하려면 위변조 확인 수단이 필요하다. 이때 HMAC을 자주 씀.

  • HMAC 은 Hash-based Message Authentication Code 의 약자.
  • 메시지 무결성과 인증을 보장하기 위해 쓰는 암호화 기술.
  • HMAC은 해시 함수와 비밀 키로 다음 2가지 보장.
    • 메시지 무결성: 메시지가 중간에 위변조 안됨.
    • 인증: 메시지 발신자를 인증할 수 있음(발신자만 비밀 키 접근)
  • 메시지 발신자와 수신자는 둘만 알고 있는 비밀 키를 공유. 외부에 노출되면 절대 안됨.
  • 발신자는 메시지를 비밀 키로 해싱해서 생성한 MAC(메시지 인증 코드)를 원본 메시지와 함께 전송.
  • 수신자는 메시지와 비밀 키로 MAC 다시 생성한뒤 발신자가 보낸 MAC과 비교.
  • 두 값이 같으면 위변조가 안된것을 보장가능!
  • HMAC의 장점은 단순함과 효율성.
  • 서로 비밀 키만 공유되면 정해진 해시 알고리즘으로 MAC을 생성할 수 있기에 낮은 비용으로 인증 보안 구현이 됨.
  • 단점은 키 관리. 유출되면 보안이 뚫린다.