MAC(메시지 인증 코드)란?
MAC(Message Authentication Code, 메시지 인증 코드)은 '태그(tag)'라고도 불리며, 메시지의 출처와 속성을 인증하기 위해 사용되는 암호학적 기술입니다. MAC은 인증 암호화 방식을 활용하여 네트워크를 통해 전송되거나 개인 간에 공유되는 정보의 적법성을 검증합니다.
MAC이 보장하는 핵심 사항
MAC은 다음과 같은 사실들을 보장합니다.
- 메시지가 올바른 발신자로부터 전송되었다는 점
- 전송 과정에서 메시지가 수정되지 않았다는 점
- 네트워크를 통해 전송되거나 시스템 내·외부에 저장된 정보가 적법하며 유해한 코드를 포함하지 않는다는 점
또한 MAC은 민감한 디지털 키를 처리하는 장치인 하드웨어 보안 구조(hardware security structure)에 저장하여 관리할 수도 있습니다.
MAC의 동작 원리
MAC은 메시지에 키 기반의 안전한 해시 함수(keyed secure hash function)를 적용하여 생성됩니다. 이를 통해 메시지의 무결성(integrity)을 확보할 수 있는데, MAC으로 보호된 메시지가 변조되면 메시지에 포함된 MAC 값과 새로 계산된 MAC 값을 비교하여 변조 여부를 식별할 수 있습니다.
MAC은 메시지와 함께 전달되는 '키가 적용된 체크섬(checksum)'이라고 할 수 있습니다. 고정 길이의 비밀 키와 임의 길이의 메시지를 입력받아 고정 길이의 체크섬을 출력하는 구조입니다. 안전한 MAC은 메시지가 조금이라도 변경되면 체크섬이 무효화되는 특성을 지니고 있습니다.
통신 보안을 넘어선 활용: 저장 데이터 보호
MAC의 활용 범위는 통신 보안에만 국한되지 않습니다. 예를 들어, 이동식 USB 플래시 드라이브에 파일을 저장하고 때때로 친구들과 공유하는 상황을 가정해 볼 수 있습니다.
플래시 드라이브 속 파일의 변조를 방지하기 위해 컴퓨터는 비밀 키를 생성하고, 각 파일의 MAC을 드라이브의 특정 위치에 미리 저장해 둘 수 있습니다. 이후 파일을 읽을 때 컴퓨터는 파일 내용을 사용하기 전에 해당 MAC이 유효한지 먼저 확인합니다.
이는 일종의 '미래의 자기 자신과의 통신'이라고 볼 수 있으며, 따라서 저장된 정보에 대한 보안은 통신 보안의 또 다른 형태로 해석할 수 있습니다.
MAC의 한계점
이 방식의 근본적인 약점은 메시지 내용에 대한 의도적인 변경으로부터의 보안이 부족하다는 점입니다. 침입자는 메시지를 수정한 뒤 새로운 체크섬을 계산하여 원래 값을 대체해 버릴 수 있습니다. 일반적인 CRC 알고리즘은 메시지의 우연한 손상만 식별할 수 있을 뿐, 공격자에 의한 의도적인 변경은 탐지하지 못합니다.
메시지 인증과 데이터 출처 인증
메시지 인증(message authentication)은 발신자가 수신자에게 메시지를 전송할 때, 전송 경로 어디에서든 메시지가 변경된다면 수신자가 거의 확실하게 이를 식별할 수 있도록 보장하는 기술입니다.
메시지 인증은 각 메시지의 출발점을 인증하기 때문에 '데이터 출처 인증(data-origin authentication)'이라고도 불립니다. 메시지 인증의 목표는 수신되어 승인된 모든 메시지가 전송된 당시와 동일한 상태이며, 어떠한 비트도 삽입·삭제·변경되지 않았음을 보장하는 것입니다.