TCP/IP 지문 인식을 방지하는 방법

TCP/IP 지문 인식을 방지하는 방법

나는 다음과 같은 설정을 가지고 있습니다 :

 +-----------+   SSH Tunnels Over Socks5 Proxy    +--------------+
 |           |                                    |              |
 | Linux PC  +------------------------------------+ Proxy Server |
 |           |                                    |              |
 +-----------+                                    +--------------+
                                                          |
                                                          | SSH Tunnels
                                             +-------------------------+
                                             |                         |
                                             |                         |
                                       +-----------+             +-----------+
                                       |           |             |           |
                                       |   PI A    |             |   PI B    |
                                       |           |             |           |
                                       +-----------+             +-----------+
                                             |                          |
                                             |  WAN / Internet          |  WAN / Internet
                                             |                          |
                                             v                          v

우선: 논의한 대로 OS 핑거프린팅을 물리치려는 것이 아닙니다.여기또는 슈퍼유저에 대한 다른 질문이 있습니다. 나는 전체 체인/스택에 Linux를 사용하고 있으며 Linux로 식별되는 것을 꺼리지 않습니다.

배경: 검열로 인해 다른 나라의 인터넷에 접속합니다. 두 개의 별도 주거 위치(다른 ISP)에 두 개의 동일한 Raspberry PI(모델 3B+, 복제된 SD 카드, 해당 LAN에서 작동하도록 수정된 IP만)가 있습니다. 나는 그것들을 서로 독립적으로 사용하며 인터넷에 액세스하기 위한 주거용 프록시 역할을 합니다.

트래픽은 SSH 터널을 통해 PI를 통해 라우팅됩니다. 이러한 SSH 터널은 로컬 국내 검열관/IP 차단으로부터 숨기기 위해 프록시 서버(두 PI 모두 동일)를 통해 암호화된 Socks5 터널을 통해 자체적으로 터널링됩니다.

이것은 지금까지 작동합니다.

문제: 테스트를 실행할 때https://browserleaks.com/ip그리고https://doileak.com"PI A"와 "PI B"에 대해 서로 다른 결과가 나타납니다.

"PI A"의 경우 MTU 1500 및 연결 유형 "이더넷 또는 모뎀"을 얻는 반면, "PI B"의 경우 MTU 1440 및 연결 유형 "일반 터널 또는 VPN"을 얻습니다.

나는 둘 다 프록시라는 사실을 숨기기 위해 "이더넷 또는 모뎀" 연결 유형으로 식별되기를 원합니다. 내 연구에 따르면 이 테스트에서는 p0f와 함께 TCP/IP 핑거프린팅을 사용하는 것으로 보입니다.

두 PI의 인터페이스는 MTU 1500으로 설정되어 있으며 iptables 구성도 동일합니다. 하드웨어는 동일하며 "PI B"의 SD 카드는 기본적으로 "PI A"의 복제본입니다. 두 PI 모두 이더넷을 통해 해당 라우터에 직접 연결됩니다. 또한 Linux PC 및 프록시 서버의 경우 MTU는 1500으로 설정됩니다(실수하지 않더라도 차이는 발생하지 않습니다).

PI가 동일하게 설정되어 있다는 사실을 감안할 때 무엇을 놓치고 있습니까?

추신: 제목이 이상적이지 않을 수도 있지만 문제를 몇 단어로 설명하는 방법을 잘 모르겠습니다.

답변1

PI A 및 PI B에 구성된 1500의 MTU는 이더넷 패킷의 기본 MTU입니다. 이 MTU는오직첫 번째 라우터(귀하가 소유한 인터넷 라우터)와 PI 사이.

PI가 연결된 라우터(라우터 A)는 다음 라우터(라우터 B)에 연결됩니다. 그런 다음 라우터 B는 다른 라우터(라우터 C)에 연결됩니다. 등등. 이 경로는 목적지(예: browserleaks.com 서버)에서 끝납니다. 이 경로는 지리적 위치에 따라 다르며 약간 무작위입니다. 또한 시간이 지남에 따라 변경됩니다.

라우터 A와 라우터 B 사이의 MTU는 아마도 1500보다 크지만 이는 보장되지 않습니다. 1500보다 작으면 읽을 수 있는 대로 패킷이 분할됩니다.여기. 또한 browserleaks.com은 더 작은 MTU를 표시합니다.

결론:

browserleaks.com에는 지원되는 최대 MTU가 표시됩니다.전체 경로에서클라이언트에서 서버로.

PI A와 PI B는 서로 다른 경로를 사용하기 때문에 서로 다른 MTU를 얻는 것이 일반적입니다.

다른 경로를 사용하고 있는지 확인하려면 (Linux PC에서) 다음을 실행할 수 있습니다.

traceroute browserleaks.com

여기에는 사용자와 서버(및 서버) 사이의 모든 라우터가 나열됩니다. 각 PI에 대해 한 번씩 실행합니다.

또한 IPv6에서는 패킷을 분할할 수 없습니다.

관련 정보