하나의 IP를 사용하여 SYN/ACK를 보내고 다른 IP를 사용하여 다른 패킷을 보내면 어떻게 됩니까?

하나의 IP를 사용하여 SYN/ACK를 보내고 다른 IP를 사용하여 다른 패킷을 보내면 어떻게 됩니까?

저는 UNIX와 네트워크 프로그래밍을 배우고 있습니다. 아직 이것을 어떻게 구현하는지 잘 모르겠습니다. 하지만 나는 알고 싶다:

SYN/ACK 패킷이 하나의 IP를 사용하고 후속 패킷이 다른 IP를 사용하도록 서버에 대한 TCP 연결의 IP 패킷을 위조하면 이론적으로 어떻게 될까요? 서버에 의해 연결이 끊어지나요?

HTTP의 경우 SYN/ACK 후에 IP를 변경하고 "블랙햇" 데이터가 포함된 패킷을 보내 자신을 식별하지 않고 서버를 손상시킬 수 있다고 생각합니다. 이런 것이 효과가 있을까요?

답변1

TCP/IP는 개시자(IP 주소), 포트(소스 및 대상), 시퀀스 번호 등을 추적하는 상태 저장 프로토콜입니다. 클라이언트가 이 프로토콜을 따르지 않으면 연결할 수 없습니다. 즉, 연결이 아직 설정되지 않은 상태(SYN, SYN+ACK, ACK)에서 서버에 패킷을 보내려고 하면 해당 노력이 자동으로 무시됩니다.

답변2

예, 새 소스 IP 주소에 대한 오픈 소켓이 없기 때문에 서버는 패킷을 삭제합니다.

현재 연결을 스니핑하지 않으면 세션 하이재킹이 불가능합니다. IP 패킷을 보면 식별 플래그를 찾을 수 있고, tcp 헤더에서 시퀀스 번호와 다음 시퀀스 번호를 찾을 수 있습니다. 따라서 하이재킹 시 세션을 활성 상태로 유지하려면 이를 일치시켜야 합니다.

관련 정보