728x90
1. 개념
- Replay Attack은 공격자가 합법적인 사용자 간의 통신 데이터를 가로채고, 그 데이터를 다시 전송(재생) 하여 이득을 얻거나 시스템을 속이는 공격입니다.
- 즉, 통신을 “이해”하지 못하더라도, “정상적인 데이터를 그대로 재전송” 해서 시스템이 진짜 요청으로 오인하도록 만드는 것입니다.
요약:“기존에 주고받은 정상 메시지를 가로채고, 다시 보내서 속이는 공격”
2. Replay Attack의 기본 흐름
- A(사용자)가 B(서버)에게 정상적인 요청을 보냄.
- 공격자(Eve)가 이 통신을 가로채고 저장함.
- 이후 Eve가 저장해둔 정상 요청을 다시 B에게 재전송함.
- B는 이를 새로운 요청으로 착각하고, 정상적인 응답을 함.
- 결과적으로 공격자는 인증, 결제, 로그인 등의 행위를 가짜로 복제하게 됨.
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
'정보보호' 카테고리의 다른 글
세션 하이재킹(Session Hijacking) 개념 (0) | 2025.05.04 |
---|---|
DRM(Digital Rights Management 디지털저작권 관리)의 개념 (0) | 2025.05.03 |
사용자 인증 SFA 2FA MFA 개념 (0) | 2025.05.01 |
세션쿠키(Session Cookie)와 지속쿠키(Persistent Cookie) 개념 (0) | 2025.04.30 |
SQL Injection 개념 및 대응 방법 (0) | 2025.04.29 |