anothel의 지식 창고

MAC을 활용한 보안: 재전송 공격과 방어 기법 본문

기술 노트/정보보안기사

MAC을 활용한 보안: 재전송 공격과 방어 기법

anothel 2025. 3. 28. 13:29

1. 개요

메시지 인증 코드(Message Authentication Code, MAC)는 데이터의 무결성과 인증을 보장하는 암호학적 기술이다. 하지만 MAC을 사용한다고 해서 모든 보안 위협이 해결되는 것은 아니다. 대표적인 보안 취약점 중 하나가 재전송 공격(Replay Attack)이다.

재전송 공격은 공격자가 네트워크에서 정상적인 메시지를 가로채고 이를 그대로 재전송하여 시스템을 속이는 방식이다. 이로 인해 불필요한 인증 절차가 반복되거나 시스템이 예상치 못한 동작을 수행할 수 있다. 본 글에서는 이러한 재전송 공격을 효과적으로 방어하는 방법을 설명한다.

2. 재전송 공격의 개념과 사례

2.1. 재전송 공격이란?

재전송 공격은 공격자가 정상적으로 송신된 메시지의 MAC 값을 재사용하여 허위 메시지를 전송하는 방식으로 이루어진다. 이는 인증 과정을 우회하는 효과를 가지며, 특히 MAC 기반 인증 시스템에서 문제가 될 수 있다.

2.2. 재전송 공격의 실제 사례

  • 온라인 결제 시스템: 공격자가 정상적인 결제 요청을 가로채고 동일한 요청을 반복 전송하여 중복 결제를 발생시킨다.
  • 출입 관리 시스템: NFC 카드나 QR 코드 기반 출입 시스템에서 정상적인 인증 신호를 복사하여 무단 출입을 시도한다.
  • 네트워크 인증 시스템: 공격자가 인증 패킷을 캡처한 뒤 재전송하여 정상적인 사용자처럼 위장하고 시스템에 접근한다.

3. MAC 기반 재전송 공격 방어 기법

3.1. 순서 번호(Sequence Number) 검증

각 메시지에 고유한 순서 번호를 부여하면 중복된 메시지가 전송될 경우 이를 감지할 수 있다. 수신자는 이미 처리한 순서 번호를 기록하고 동일한 번호가 다시 수신되면 해당 메시지를 거부한다.

예제:

  • 클라이언트가 서버로 데이터를 보낼 때, 각 메시지에 순차적으로 증가하는 번호를 포함한다.
  • 서버는 이미 받은 순서 번호를 저장하고, 동일한 번호의 메시지가 재수신되면 폐기한다.

3.2. 타임스탬프(Timestamp) 활용

각 메시지에 현재 시간을 포함하면 메시지의 유효 기간을 제한할 수 있다. 일정 시간이 지난 메시지는 폐기되므로 공격자가 재전송하더라도 효과를 발휘하지 못한다.

예제:

  • 서버는 클라이언트가 보낸 요청의 타임스탬프를 확인하고, 일정 시간(예: 10초)이 지난 요청은 거부한다.

3.3. 비표(Nonce) 적용

Nonce는 한 번만 사용할 수 있는 임의의 값으로, 각 메시지마다 새로운 값을 생성하여 포함하면 재전송 공격을 방지할 수 있다.

예제:

  • 서버는 클라이언트에게 임의의 Nonce 값을 제공하고, 클라이언트는 이를 포함한 메시지를 전송해야 한다.
  • 서버는 해당 Nonce가 이전에 사용된 적이 있는지 확인하고, 동일한 Nonce가 반복될 경우 메시지를 거부한다.

4. 추가적인 보안 기법

4.1. 세션 토큰(Session Token) 사용

세션 토큰을 사용하면 각 요청마다 새로운 토큰을 부여하고, 사용된 토큰을 무효화하여 동일한 요청이 재사용되지 않도록 방지할 수 있다.

예제:

  • 로그인 후 서버에서 제공하는 세션 토큰을 각 요청에 포함시키고, 이미 사용된 토큰은 폐기한다.

4.2. MAC 키(Key) 주기적 변경

MAC을 생성하는 키를 일정 주기로 변경하면 공격자가 기존 메시지를 재전송하는 것이 더욱 어려워진다.

예제:

  • 일정 시간마다 새로운 MAC 키를 생성하고, 이전 키로 생성된 메시지는 유효하지 않도록 설정한다.

4.3. 보안 프로토콜(TLS) 적용

TLS(전송 계층 보안) 프로토콜을 활용하면 MAC을 보호하고, 전송 중 데이터가 탈취되는 것을 방지할 수 있다.

예제:

  • HTTPS를 사용하여 클라이언트와 서버 간의 통신을 암호화하고, 재전송된 패킷이 무효화되도록 한다.

5. 결론

MAC을 활용한 보안 시스템은 데이터의 무결성과 인증을 보장하지만, 재전송 공격과 같은 특정한 위협에는 취약할 수 있다. 이를 방지하기 위해 순서 번호 검증, 타임스탬프 활용, 비표 적용 등의 전략을 적용할 수 있으며, 추가적으로 세션 토큰 사용, MAC 키 변경, 보안 프로토콜 적용 등의 보안 조치를 강화하면 보다 안전한 환경을 구축할 수 있다.

재전송 공격은 단순한 방식이지만 그 피해는 심각할 수 있다. 따라서 보안 시스템을 설계할 때 이러한 방어 기법을 반드시 고려해야 하며, 시스템이 공격에 노출될 가능성을 최소화하는 것이 중요하다.

728x90