728x90

1. 개념

  • Replay Attack은 공격자가 합법적인 사용자 간의 통신 데이터를 가로채고, 그 데이터를 다시 전송(재생) 하여 이득을 얻거나 시스템을 속이는 공격입니다.
  • 즉, 통신을 “이해”하지 못하더라도, “정상적인 데이터를 그대로 재전송” 해서 시스템이 진짜 요청으로 오인하도록 만드는 것입니다.
요약:“기존에 주고받은 정상 메시지를 가로채고, 다시 보내서 속이는 공격”

 

2. Replay Attack의 기본 흐름

  1. A(사용자)가 B(서버)에게 정상적인 요청을 보냄.
  2. 공격자(Eve)가 이 통신을 가로채고 저장함.
  3. 이후 Eve가 저장해둔 정상 요청을 다시 B에게 재전송함.
  4. B는 이를 새로운 요청으로 착각하고, 정상적인 응답을 함.
  5. 결과적으로 공격자는 인증, 결제, 로그인 등의 행위를 가짜로 복제하게 됨.

 

3. Replay Attack의 대표적인 목표

목표 설명
세션 재사용(Session Replay) 과거에 유효했던 인증 세션을 다시 보내 인증 통과
명령 재전송(Command Replay) 과거에 수행된 송금, 승인 명령을 다시 실행
트랜잭션 재플레이(Transaction Replay) 금융 거래, 주문을 다시 복제

 

 

 

4. Replay Attack이 잘 일어나는 조건

  • 통신이 암호화되지 않았거나, 암호화돼 있어도 신선성(freshness) 검증이 없는 경우
  • 인증토큰이나 세션ID에 만료 시간이 없거나 약한 경우
  • 요청에 고유 식별자(nonce, timestamp 등)가 없는 경우
  • 통신이 단순 반복 요청에 대해 아무 검증 없이 응답하는 경우

 

5. Replay Attack의 실제 예시

예시 설명
ATM 카드 인증 카드가 한번 승인된 트랜잭션을 저장 → 나중에 다시 재전송해 돈 인출
온라인 결제 구매 요청 패킷을 가로채 저장 → 다시 보내서 상품 2개 구매
Wi-Fi 4-way handshake Replay WPA2 인증 과정 중 메시지를 재생하여 복호화 공격 시도 (KRACK Attack)
로그인 인증 세션 이미 인증된 세션 토큰을 훔쳐 재사용하여 로그인

 

 

6. Replay Attack 방어 방법

방법 설명
Nonce 사용 매 요청마다 한번만 사용하는 무작위 수(Nonce)를 포함
Timestamp 사용 요청에 현재 시간을 포함하고, 유효 시간(window)을 짧게 설정
Session Expiry 세션, 인증 토큰 등에 짧은 만료 시간 적용
Sequence Number 통신에 일련 번호를 부여해 순서를 강제
Mutual Authentication 양쪽 모두 인증 절차를 거쳐 중간자 공격을 방지
메시지 무결성 확인(MAC, HMAC) 메시지가 변조되지 않았는지 검증

 

728x90

+ Recent posts