본문 바로가기
공부/정보보안기사

메시지 인증 코드(MAC, Message Authentication Code)

by Skogkatt의 개인 블로그 2019. 8. 22.
반응형

메시지 인증 코드

  • 메시지의 정당성을 검증하기 위해 메시지와 함께 전송되는 값을 말한다.
  • 데이터가 변하지 않았다는 것을 증명하기 위해 원문을 사용해 MAC값을 생성한다.
    원문에 해당하는 MAC값은 하나밖에 없으며, 원문이 변조되면 MAC값 또한 바뀌게 된다.
  • 송신자는 데이터와 해당 데이터의 MAC값을 함께 보내며 수신자는 이를 확인해 변조 여부를 확인한다.
    MAC값 또한 변조될 수 있기 때문에 MAC값은 암호화하여 전송한다.
  • MAC는 데이터와 송/수신자가 공유하는 키 2개의 입력으로 고정 bit 길이로 만들어진다.
  • MAC는 블록 암호나 해시 함수에 기반을 두기 때문에 전자 서명보다 빠르다.
  • MAC는 송/수신자 간 키를 공유할 필요가 있으며, 키 배송 문제가 발생한다.

변경 감지 코드(MDC, Modification Detection Code)와 메시지 인증 코드

  • MDC는 데이터의 무결성을 보장하는 기술이다. 수신자는 받은 데이터로부터 새로운 MDC를 생성하여 송신자에게 받은 MDC와 비교한다. 이 두 값이 동일하다면 해당 메시지는 변경되지 않았다는 것이다.
  • MDC의 문제점은 무결성을 증명할 수는 있지만 누가 보냈는지에 대한 메시지의 출원지 인증이 불가능하다는 점이다. 해당 문제를 해결하기 위해서는 MAC를 사용해야 한다.
  • MAC는 무결성은 물론이고 올바른 송신자에게 온 것을 인증한다. MDC와 MAC의 차이는 송신자와 수신자 간의 비밀 값이 포함된다는 것이다.

MAC의 종류

  • 기존 MAC의 안전성을 높이기 위한 방법이다
  • SSL/TLS[각주:1], IPSec[각주:2]등에서 사용한다.
축소 MAC
  • 최종 MAC을 생성하기 위해 두 단계의 해시 함수를 거친다.
  • 키와 메시지로 1차 다이제스트를 생성하고, 키와 1차 다이제스트를 사용해 최종 다이제스트를 생성한다.
HMAC(Hash-based MAC)
  • SHA와 같은 일방향 해시함수를 이용하여 MAC를 구성하는 방법이다.
  • SHA 뿐만 아니라 다른 강한 일방향 해시 함수라면 뭐든지 HMAC에 이용할 수 있다.
CBC-MAC(Cipher Block Chaining MAC)
  • 블록 암호 운용 방식 중 하나인 CBC모드와 유사한 방법이다.
  • 대칭 키 암호를 N번 사용해서 N개의 평문 블록에서 하나의 MAC을 생성하는 방법이다.'
  • HMAC과 달리 해시 함수를 사용하지 않는다
CMAC(Cipher-based MAC)
  • CBC-MAC의 보안 논점을 해결하기 위해 만들어진 방식이다.
  • CBC-MAC과 같은 종류의 데이터 인증과 무결성을 제공하지만, 수학적으로는 보다 안전하다.
CCM(Counter with CBC-MAC)
  • CTR과 CBC-MAC을 통합한 방식으로 동일한 키의 사용으로 기밀성과 무결성(인증)을 보장한다.
  • CCM의 핵심적인 알고리즘 구성요소는 AES, CTR 모드, CBC-MAC이다.
  • NIST에 의하여 IEEE802.11 WiFi 무선 근거리 통신망의 보안 요구사항을 지원하기 위하여 표준화되었다.[각주:3]
GCM(Galois/Counter)모드
  • CTR 모드에 인증 기능을 추가한 방식이다.
  • CTR 모드가 암호문을 생성함과 동시에 '이 암호문은 올바른 암호화를 거쳐 만들어진 것이다'라는 것을 증명할 정보를 만들어낸다.
  • 적극적 공격자가 암호문을 위조해도 이를 알아낼 수 있다.

MAC의 문제

제 3자 증명

MAC은 공유키를 사용하기 때문에 MAC값을 계산할 수 있는 것은 송/수신자뿐이다. 즉, 송/수신자 간의 통신 중에는 MAC값을 계산한 것이 상대방이라는 것을 증명할 수 있다. 하지만 제 3자는 이를 증명할 방법이 없다. 이는 따로 전자서명을 사용해 해결해야 한다. 

부인방지
재전송  공격
  1. IP 계층에서 보안 기능을 추가할 때 사용. 통신 내용의 인증, 무결성 제공하기 위해 MAC을 사용. [본문으로]
  2. 웹에서 온라인 쇼핑 시 사용되는 통신 프로토콜, 인증, 무결성 확인을 위해 MAC을 사용. [본문으로]
  3. 인증 함호를 요구하는 다양한 네트워크에서도 사용될 수 있다 [본문으로]
반응형

'공부 > 정보보안기사' 카테고리의 다른 글

접근 제어 / 접근 통제 모델(Access Control Model)  (0) 2019.10.30
인증  (0) 2019.09.02
PKI(public key infrastructure)  (0) 2019.08.24
전자서명  (0) 2019.08.22
정보보안 / 정보보호(Information Security)  (0) 2019.07.20

댓글