본문 바로가기

정보보안/정보보호 개론

MAC(Message Authentication Code)

728x90

MAC(Message Authentication Code)

MAC는 메시지의 무결성과 송신자의 인증을 보장하기 위해 사용하는 정보다.

 

MAC는 비밀 키를 사용해 생성되며, 수신자는 같은 비밀 키를 사용해 메시지가 변경되지 않았고, 송신자를 검증할 수 있다.

MAC의 주요 기능

  • 무결성: 전송받은 메시지가 변조되지 않음을 검증
  • 인증: 메시지가 신뢰할 수 있는 송신자로부터 온 것임을 증명

MAC의 생성, 전달, 검증

MAC은 다음과 같은 과정으로 만들어지고 검증에 쓰인다.

비밀 키 공유

송신자, 수신자는 MAC 생성에 쓰이는 비밀 키를 공유한다.

메시지 전송

송신자는 메시지를 전송할 때 비밀 키를 이용해 생성한 MAC을 같이 전송한다.

MAC 검증

수신자가 받은 메시지에 비밀 키를 사용하여 MAC을 생성한다. 그렇게 만든 MAC과 받은 MAC이 동일한지 검사한다.

 

이 과정을 통해 메시지의 위변조를 확인하고 MAC이 올바른 비밀 키로 생성되었는지 확인할 수 있다.

MAC의 구현

대중적으로 알려진 MAC의 구현에는 2가지가 있다.

  • HMAC(Hash based MAC): SHA-256과 같은 해시 함수로 MAC을 생성
  • CMAC(Cipher based MAC): AES와 같은 블록 암호를 사용해 MAC을 생성

MAC의 활용

IPSec, TLS와 같은 보안 프로트콜에서 사용된다.

MAC의 한계

MAC의 생성을 위해 필요한 비밀 키를 송/수신자가 부담해야 하는데, 이 비밀 키를 안전하게 공유하고 관리해야 할 부담이 있다.

 

또한, MAC 자체로는 부인 방지를 할 수 없다. 그러니까 수신자는 MAC를 통해 송신자로부터 온 메시지임을 확인할 수 있지만 송신자가 메시지를 송신했다는 사실을 부인하는 상황이 생길 수 있다.

 

왜냐하면 이론적으로는 수신자도 동일한 MAC을 생성할 수 있으므로 송신자가 메시지를 보냈다고 입증할 방법이 없기 때문이다. 추가로 송신자는 송신자가 MAC을 만든 것이라고 송신 부인을 할 수 있다.

한계를 개선하기 위한 방법들

위와 같은 한계를 극복하기 위해 송신자만 서명할 수 있는 디지털 서명을 사용할 수 있다.

 

728x90

'정보보안 > 정보보호 개론' 카테고리의 다른 글

정보 보호의 목표  (0) 2025.02.28