질문을 순서대로 짚어 보자. 접속망이 관찰할 수 있는 것, 터널 없이 밖으로 나가는 것, 이름 조회가 드러내는 것, 그리고 피어와 트래커가 그래도 알아내는 것이다. 각 답은 서로 독립적이며, VPN이 완전히 해결하는 것은 첫 번째뿐이다. 네 번째는 대부분의 기대가 조용히 무너지는 지점인데, 어떤 터널도 계정 이름을 없애지 못하기 때문이다.

답이 관찰자에 따라 달라지므로 어떤 관찰자가 신경 쓰이는지를 먼저 정하라.

하나의 연결이 여럿을 대신한다

클라이언트가 정말 터널 안에 있으면, 접속망은 단일 VPN 주소로 향하는 지속적인 암호화 연결 하나를 본다. 전송량, 시점, VPN이 사용 중이라는 사실은 여전히 보이지만, 트래커의 호스트 이름, 피어 주소, 파일 이름은 보이지 않는다. 이는 실제 개선이며, 마케팅이 시사하는 것보다 좁다. 터널 운영자는 중간에 앉아 접속망보다 더 많이 본다.

로그 없음 선언은 보관 정책을 설명할 뿐 기술적 가시성을 뜻하지 않는다. 둘은 다른 주장이며, 제공자가 약속할 수 있는 것은 첫 번째뿐이다.

유출은 터널이 아니라 바인딩에서 온다

BitTorrent는 피어, 트래커, DHT 노드, 로컬 검색으로 향하는 단명 TCP와 UDP 연결의 흐름을 만든다. 클라이언트를 물리 어댑터에 바인딩하거나, 터널이 끊긴 뒤 다시 시작하면, 그때 생기는 트래픽은 바로 터널이 숨기려고 존재했던 것이다. 방화벽 규칙은 보이는 것보다 약한 통제다. 기본 경로만, IPv4만, 또는 새 연결만 일치하는 규칙은 경로를 열어 둔다. 클라이언트를 터널 인터페이스에 바인딩하고 그 바인딩을 검증하는 것이 더 강한 패턴이다.

터널을 일부러 멈추고 전송이 멈추는지 지켜보며 검증하라. 계속된다면 클라이언트는 애초에 안에 있지 않았다. 클라이언트를 다시 시작한 뒤와 노트북이 깨어난 뒤에 반복하라. 바인딩은 대개 그때 사라진다.

DNS는 전송을 건드리지 않고 사이트를 지목한다

이름 조회가 여전히 로컬 리졸버로 간다면, 전송이 암호화된 채로도 질의 자체가 사이트를 알린다. 해석을 터널 안으로 옮기거나 암호화하면 그 틈이 닫힌다. 둘 다 패킷이 터널 밖으로 나가는 클라이언트에는 아무 소용이 없다. 어느 리졸버가 쓰이는지, 질의가 어느 인터페이스로 나가는지 확인하라. 두 확인은 서로 다른 질문에 답한다.

터널을 통해 해석되는 이름과 바인딩을 지키는 전송은 별개의 성질이며, 각각 혼자 실패할 수 있다.

무리와 트래커는 다른 것을 본다

주소 교환은 프로토콜의 일부이므로 피어는 보이는 것을 기록한다. 출구에서 연결하면 출구를, 직접 연결하면 집 주소를 알려 준다. DHT와 피어 교환은 그 관찰을 더 퍼뜨리며, 터널 없는 뒤의 세션은 같은 클라이언트 포트와 버전을 연결할 수 있다. 트래커는 더 알 수도 있다. 공지 URL의 패스키는 패킷이 어느 출구에서 왔든 계정을 식별한다.

암호화는 또 다른 축을 덮는다. HTTPS는 출구부터 요청을 보호하고, 평문 HTTP는 요청 줄을 경로의 모든 네트워크에 노출한다. 그래서 한 프로토콜은 형태를 바꿀 수 있고 다른 하나는 아니다.

네 질문에 증거로 답하라. 아이콘으로 답하지 말라. 아이콘은 터널이 있다는 것만 알려 준다.

관련 글