IPSEC 재전송 공격 방지
암호화된 패킷도 재전송 공격에 사용될 수 있는 이유는 무엇일까요?
복사된 암호문은 변경되지 않은 채 다시 도착할 수 있습니다. ESP 재전송 공격 방지 기능은 시퀀스 번호를 보안 연관과 연결하고, 범위가 제한된 수신 윈도우를 확인하며, 인증 후 상태를 확정합니다. 보호는 선택된 터널 종단점에 적용되며, 애플리케이션 명령에는 여전히 자체적인 중복 및 타이밍 규칙이 필요합니다.
터널 종단점
게이트웨이 종단점은 트래픽을 인증하고, 중간 스위치는 이를 전달합니다.
시퀀스 윈도우
윈도우 내에서 아직 수신되지 않은 시퀀스 번호는 검사를 진행할 수 있으며, 중복 패킷은 폐기됩니다.
검증 후 상태 확정
인증된 패킷만 신뢰할 수 있는 수신 상태를 갱신합니다.
종단점과 보호 범위를 파악합니다.
실제 프로토콜과 설정을 확인합니다.
승인된 무해한 데이터로 시험합니다.
선정 및 검증 체크리스트 — 펼치기
종단점과 SA를 식별하고, 재전송 공격 방지 설정을 확인하며, 승인된 무해한 데이터로 순서가 뒤바뀐 패킷, 중복 패킷 및 유효하지 않은 패킷을 시험합니다.
원격 데이터 링크가 암호화되어 있는데도 보안 게이트웨이가 패킷 시퀀스 번호를 기록하는 이유는 무엇일까요? 외부인이 메시지를 읽지 못하게 하는 것과 동일한 메시지가 다시 수락되지 않도록 하는 것은 서로 다른 목표입니다. 누군가는 정상 패킷의 내용을 이해하지 못하더라도 이를 복사해 다시 보낼 수 있습니다. 재전송 공격 방지 기능은 수신 측에 이미 수락한 패킷의 기록을 제공합니다.

변경되지 않은 패킷도 중복일 수 있습니다
봉인된 작업 지시서를 떠올려 보세요. 봉인은 내용이 변경되지 않았음을 확인하는 데 도움이 될 수 있지만, 그 자체로 동일한 지시서가 이미 전달되었는지는 알려 주지 않습니다. 마찬가지로 공격자는 캡처한 암호화 패킷을 복호화하거나 유효한 새 명령을 만들지 않고도 다시 보낼 수 있습니다.
이 비유는 반복 전달만을 설명합니다. 실제 프로토콜은 키와 인증 알고리즘을 사용합니다. 기밀성, 무결성 및 재전송 공격 방지는 서로 다른 요구를 다룹니다. 이더넷 오류 검출은 암호학적 인증을 대체하지 못합니다. 전송 오류를 검출하는 것과 적절한 키를 보유한 주체가 패킷을 생성했는지 확인하는 것은 다릅니다.
제품 설명에 암호화가 언급되어 있다는 사실만으로 오래된 패킷을 어떻게 거부하는지 알 수는 없습니다. 프로토콜, 실제 보안 종단점, 협상된 설정 및 수신 측 검사를 파악해야 합니다. 이 글은 IPsec ESP를 예로 들며, 경로상의 모든 산업용 장치에 재전송 공격 방지 기능이 있다고 설명하지 않습니다.
기록을 유지하는 두 종단점을 찾으세요
IPsec은 IP 네트워크를 통과하는 트래픽을 보호할 수 있으며, ESP는 IPsec의 패킷 보호 메커니즘 중 하나입니다. 보안 연관, 즉 SA는 관련 키, 알고리즘 및 상태를 포함하여 한 방향에 적용되는 보호 설정의 집합입니다. 양방향의 기록을 하나의 공유 카운터로 취급해서는 안 됩니다.
송신 측은 SA에 속한 패킷에 번호를 매깁니다. 수신 측은 해당 보안 연관을 선택하고 자체 기록을 확인하며, 네트워크의 모든 장치와 번호를 비교하지는 않습니다. ESP 보안 매개변수 인덱스(SPI)는 보안 연관을 식별하는 데 도움이 되고, 시퀀스 번호는 재전송 공격 방지 검사를 지원합니다. 이 필드들에는 적절한 무결성 보호가 적용되어야 합니다.
직렬 서버, 산업용 이더넷 스위치 및 외부 보안 게이트웨이가 동일한 링크에 모두 존재할 수 있습니다. Feichang의 FCT-1100-F1S1 직렬 장치 서버는 실제 직렬-네트워크 변환 제품의 맥락을 제공하며, 이 제품이 IPsec을 구현한다는 주장은 아닙니다. 외부 게이트웨이가 터널을 종단한다면 해당 게이트웨이가 종단점 검사를 수행합니다. 일반적인 전달용 스위치에 재전송 공격 방지 윈도우가 자동으로 생기는 것은 아닙니다.
마지막 번호보다 큰 번호만 수락하면 안 될까요?
패킷은 항상 전송된 순서대로 도착하지는 않습니다. 경로, 큐 및 병렬 처리로 인해 나중에 보낸 패킷이 먼저 도착할 수 있습니다. 수신 측이 자신이 기록한 최댓값보다 작은 모든 번호를 거부하면 지연된 정상 트래픽을 폐기할 수 있습니다. 검사는 어느 정도의 순서 뒤바뀜을 허용하면서 중복을 인식해야 합니다.
슬라이딩 윈도우를 번호가 매겨진 슬롯으로 생각해 보세요. 각 슬롯은 해당 시퀀스 번호의 패킷이 이미 인증되어 수락되었는지를 기록하며, 패킷 전체를 저장하지는 않습니다. 상한은 인증된 가장 큰 번호를 추적하고, 하한은 아직 수신되지 않은 패킷이 얼마나 순서가 뒤바뀐 채 도착할 수 있는지를 제한합니다. 너무 오래된 패킷은 폐기됩니다.
설명을 위한 예로, 윈도우에 101부터 108까지의 번호가 포함되어 있고 106는 이미 수락되었다고 가정해 보겠습니다. 두 번째 106는 중복입니다. 105가 아직 수신되지 않았다면 인증 단계로 진행할 수 있습니다. 8개 슬롯은 단지 예시일 뿐, 표준 윈도우 크기나 Feichang 제품의 사양이 아닙니다.

인증에 성공한 후에만 윈도우를 이동하세요
패킷 109가 도착했을 때, 수신 측은 번호가 더 크다는 이유만으로 기록을 갱신해서는 안 됩니다. 그렇지 않으면 공격자가 매우 큰 번호를 위조해 정상 트래픽을 윈도우 밖으로 밀어낼 수 있습니다. “윈도우를 이동한다”라는 표현을 외우는 것보다 검사 순서가 더 중요합니다.
구현에 따라 먼저 예비 시퀀스 검사를 수행해 명백한 중복 패킷이나 오래된 패킷을 폐기할 수 있습니다. 검사 대상이 될 수 있는 패킷도 적절한 무결성 또는 인증 검사를 통과해야 합니다. 성공한 후에만 수신된 것으로 기록하고 필요에 따라 윈도우를 이동합니다. 예비 검사를 통과했다고 해서 패킷을 신뢰할 수 있는 것은 아닙니다.
인증에 실패한 패킷은 새 슬롯을 차지하거나 인증된 최대 번호를 갱신해서는 안 됩니다. 알고리즘과 구현에 따라 내부 작업을 구성하는 방식은 다를 수 있습니다. 핵심은 초기 필터링, 암호학적 검증 및 상태 확정을 구분하는 것입니다. 번호가 더 크다는 사실만으로 전달이 허용되는 것은 아닙니다.
손실, 순서 뒤바뀜 및 재전송 공격은 비슷하게 보일 수 있습니다
윈도우는 범위 안에 도착한 아직 수신되지 않은 번호를 수락할 수 있지만, 무한정 늦게 도착하는 트래픽까지 수락할 수는 없습니다. 순서 뒤바뀜이 심하면 정상 패킷이 하한 아래에 놓일 수 있습니다. 따라서 폐기 횟수 증가만으로 공격, 광섬유 손상 또는 스위치 포트 고장을 입증할 수는 없습니다.
시간, 방향, 보안 연관 및 애플리케이션 기록을 연계해 분석하세요. 같은 시점에 경로 변경, 큐 적체 또는 게이트웨이 부하의 변화가 있었는지 확인하세요. 윈도우 확대가 만능 해결책은 아닙니다. 구현상의 한계, 처리 비용 및 허용 가능한 지연을 검증해야 합니다. 경보를 숨기기 위해 보호 기능을 비활성화하지 마세요.
윈도우는 손실된 패킷을 복구하지 않습니다. 윈도우는 패킷이 다음 단계로 진행할 수 있는지를 결정하며, 재전송, 세션 복구 및 애플리케이션 시간 초과 동작은 해당 전송 계층 또는 애플리케이션 메커니즘이 담당합니다. 재전송 공격 방지 윈도우는 신뢰성 있는 전달 프로토콜도, 범용 패킷 순서 재정렬 버퍼도 아닙니다.

새 터널 패킷에 이전 애플리케이션 명령이 포함될 수 있습니다
애플리케이션은 동일한 작업을 다시 전송할 수 있습니다. 보안 종단점은 이 두 번째 요청을 새 시퀀스 번호를 가진 새 외부 패킷에 캡슐화할 수 있습니다. 터널 계층에서는 이전에 수락된 ESP 패킷이 아니지만, 애플리케이션 계층에서는 여전히 중복 작업일 수 있습니다.
따라서 재전송 공격 방지 기능은 모든 명령이 단 한 번만 실행된다고 보장하지 않습니다. 실제 프로토콜에 따라 중요한 작업에는 트랜잭션 식별자, 중복 요청 처리, 유효 기간, 권한 및 현재 상태에 대한 검사가 필요할 수 있습니다. 이러한 기능에는 양쪽 종단점의 합의와 검증이 필요하며, 필드 하나를 추가하는 것만으로 완전한 보안이 확보되지는 않습니다.
윈도우 안에 있는 유효한 미수신 패킷도 업무 수행에 적절한 시점에 도착했다고 볼 수는 없습니다. 지연된 명령을 실행해야 하는지는 애플리케이션이 결정할 사항입니다. 패킷 중복, 송신자 진위 및 해당 동작이 지금 적절한지는 구분해서 판단하세요.
메커니즘을 검증 가능한 프로젝트 기록으로 정리하세요
터널 종단점과 실제 보호 범위를 표시하세요. 프로토콜, 협상, 지원되는 윈도우 및 로그의 의미를 검증하세요. 직렬 인터페이스, 이더넷 전달 및 보안 처리는 서로 다른 계층입니다. 광섬유, VLAN 또는 직렬 네트워킹 지원이 특정 암호 알고리즘이나 인증의 지원을 입증하지는 않습니다.
승인된 시험 환경에서 격리된 무해한 데이터를 사용해 정상 순서, 허용되는 순서 뒤바뀜, 반복 패킷 및 인증 실패를 관찰하세요. 문서 버전, 구성 및 결과를 기록하세요. 실제 운영 제어 명령을 재전송하거나 도표의 예시 번호를 측정값으로 제시하지 마세요.
세 가지 역할을 기억하세요. 암호화는 내용을 보호하고, 재전송 공격 방지 윈도우는 수락한 패킷 번호를 기록하며, 애플리케이션은 여전히 중복 작업과 타이밍을 처리합니다. 인증은 조작된 시퀀스 번호만으로 신뢰할 수 있는 기록이 갱신되는 것을 방지합니다. 이러한 역할의 경계를 함께 이해하면 산업용 통신 설계를 더 쉽게 평가할 수 있습니다.
주요 참고 자료
RFC 4303: IP 캡슐화 보안 페이로드, 2.1, 2.2 및 3.4.3절; RFC 6479: IPsec 재전송 공격 방지 알고리즘 (정보 제공용이며, 의무적인 인터넷 표준은 아님). 관련 제품: FCT-1100-F1S1 직렬 장치 서버; 이는 해당 제품의 IPsec 지원을 주장하는 것이 아닙니다.
다음 중국어 기술 문서에서 번역: 중국어 원문 읽기.
자주 묻는 실무 질문
암호화만으로 재전송 공격을 방지할 수 있나요?
아니요. 재전송 공격 방지에는 시퀀스 추적, 인증 및 올바른 수신 측 상태도 필요합니다.
이전 시퀀스 번호는 모두 거부되나요?
아니요. 윈도우 내에서 아직 수신되지 않은 번호는 인증 단계로 진행할 수 있으며, 중복 번호와 너무 오래된 번호는 거부됩니다.
터널의 재전송 공격 방지 기능이 명령의 단 한 번 실행을 보장하나요?
아니요. 새로운 외부 패킷에 반복된 애플리케이션 명령이 포함될 수 있으므로, 애플리케이션에는 자체 규칙이 필요합니다.
범위 및 추가 읽을거리
일반적인 ESP 재전송 공격 방지 개념이며, 특정 제품에 대한 주장이 아닙니다.


