Security/보안

[보안 7] 메세지 인증 코드(Message Authentication Code, MAC)

snowkit 2024. 12. 1. 10:11

설명

  • 상품번호처럼 사람이 이해하기 힘든 데이터는 변조되어도 인지하기 어려움
  • 메세지 인증 코드를 통해 변조되었는지 검증 가능

공격 예시

  1. A가 B에게 상품을 구매하려고 상품번호를 전송하려고 함
  2. B가 공개키와 개인키 쌍 생성
  3. B가 A에게 공개키 전달
  4. A가 대칭키를 B의 공개키로 암호화 후 B에게 전송
  5. B가 암호화된 대칭키를 복호화
  6. A가 상품번호를 대칭키로 암호화 후 B에게 암호문 전송
  7. 공격자가 중간에서 암호문 변조
  8. B는 변조된 암호문을 받아서 대칭키로 복호화하여 변조된 상품번호를 얻음

실제 사용 예시

  1. (6번에서 암호화 후 아직 B에게 전송하기 전)
  2. MAC 검증을 위한 키를 B에게 안전하게 전송
  3. A는 암호문, MAC 검증키, 알고리즘으로 MAC 생성 후 암호문과 MAC을 B에게 전송
  4. B는 암호문, MAC 검증키, 알고리즘으로 MAC 생성 후 전달받은 MAC과 동일한지 검증
  5. 검증 성공하면 대칭키로 암호문 복호화, 검증 실패하면 암호문과 MAC을 파기하고 A에게 재전송 요청

단점

  • A와 B 둘 다 동일한 암호문, MAC 검증키, 알고리즘을 갖고 있기 때문에 처음 거래 데이터를 작성한 게 A인지 B인지 알 수 없음
  • A가 악의를 가지고 B가 조작한 거래라고 부인 공격 가능