Computer Science/Network Security

[CS][알기 쉬운 정보보호개론 3판] Chapter09. 메세지 인증 코드 (MAC)

y-seo 2023. 12. 6. 10:57

 

 
 

Prove(증명)과 Verify(검증)

  • 증명 : 송신자가 수신자에게 메세지를 인증 받는 행위
  • 검증 : 수신자가 송신자의 메세지를 검사하는 행위
  • Alice가 Bob에게 메시지를 보내고, Bob이 Alice의 메시지를 검사한다고 하자.
    • Alice는 Bob에게 메시지가 변하지 않았다는 것을 "증명"하게 되며, Alice를 증명자 (Prover) 라고 부른다.
    • Bob은 Alice가 보낸 메시지가 변하지 않았다는 것을 "검증"하게 되며, Bob을 검증자 (Verifier) 라고 부른다

 

 
 

메세지 인증 코드 (MAC)

  • 해시 함수 사용
  • 입력 : 메세지, 공유하는 키
  • 출력 : 고정 비트 길이의 코드
  • 프로세스
    1. Alice와 Bob 공유하고 있는 키 K와 해시 함수 H()가 있다고 하자
    2. Alice가 Bob에게 메시지 M을 보낼 때, MAC ← H (K||M)연산을 수행한다
    3. Alice가 Bob에게 M과 MAC을 보낸다
    4. Bob H (K||M)을 계산하여 MAC과 값이 같은지 비교해본다

 

 
 

HMAC

  • MAC보다 더 뛰어난 보안성을 가진 메세지 인증 방법 필요
  • 설계 목표
    • 암호 알고리즘을 사용하면 속도가 느려짐 → 해시 함수만 이용해 기술 구현
    • 해시 함수는 시중에 나와 있는 것을 그대로
    • 사용하던 해시 함수에 보안 문제가 있어서 바꾸어야 할 경우를 대비하여 해시 함수 변경이 용이

 

 
 

MAC 운영에서의 추가 이슈

  • MAC은 대칭키를 사용하기 때문에 키를 어떻게 공유할 것인가가 문제
  • 키 배송 문제의 해결 방법
    • 공개 키 암호
    • Diffie-Hellman 키 교환
    • 키 배포 센터
    • 키를 안전한 방법으로 별도로 보내기
  • 인증 문제는 해결되었지만 재전송 공격의 위험이 있음

 

 
 

MAC의 사용 예시

  • SWIFT : 은행 사이
  • IPSec : IP에 보안 기능 추가
  • SSL/TLS : 안전한 웹 사용을 위해

 

 
 

MAC에서 발생 가능한 공격 - Reply Attack

  • MAC은 메세지와 키가 입력으로 들어가며 인증할 때도 메세지와 키만을 이용
  • 누가 보냈는지 확인하지 않았는데 이로 인해 Reply attack이 발생 가능

 

 
 

Reply Attack을 방지하기 위한 방법

  • Sequence Number 이용
    • MAC에 송/수신자에 동기화 되어 있는 번호를 추가 입력하여 서로 전송
  • Timestamp 이용
    • 위 Sequence number가 들어갈 자리에 현재 시각과 관련된 값인 Timestamp 값을 넣는다
    • 정해진 시간대에 M||h가 유효하므로 공격자가 재전송 공격을 수행하는 것이 거의 불가능
    • 그러나 공격자가 그 시간대 내에 공격을 수행하면 성공 가능
  • Challenge and Response 방식
    • 비표 이용 방식
    • 문제를 내면 문제에 대한 답 생성
    • Alice가 Bob에게 메세지를 보내기 전에 Bob이 난수R을 생성하여 Alice 전송
    • Alice는 MAC을 계산할 때 난수도 같이 입력하여 계산
    • 공격자가 Alice가 보낸 메세지를 도청해서 재사용한다 해도 Bob은 새로운 난수를 보내줄 것이기 때문에 인증 실패
    • 이 난수를 Challenge, 또는 비표(Nonce)
    • 난수가 challenge, h가 response
 
 

MAC의 한계

  • 제 3자에게 증명하기
    • 공유키를 가진 사람만이 메세지 검증 가능
    • 그 외의 사람들은 메세지 검증 불가능
  • 부인 방지 불가능
    • Alice가 제 3자에게 자신이 보낸 메세지가 아니라고 부인할 수 있음
  • 위 문제점들은 디지털 서명으로 보완 가능