VPN을 통한 Tor: 누가 당신의 IP를 보고, 누가 Tor 사용을 보는가
Tor over VPN에서는 진입 릴레이가 VPN 출구를 보고, 공급자는 가드 릴레이를 봅니다. 순서를 뒤집으면 두 관찰자 모두 바뀝니다.
VPN 클라이언트를 연결하고 터널을 기다린 다음 Tor Browser를 열어 회로를 만들게 합니다. 바로 그 평범한 순서가 누가 무엇을 보는지를 결정합니다. 이 순서에서는 Tor 진입 릴레이가 당신의 VPN 출구 주소를 맞이하고, VPN 공급자는 공개 가드 릴레이를 맞이합니다. 반대로 하면 두 관찰자 모두 바뀝니다. 두 순서 모두 짚어 볼 가치가 있습니다. 클라이언트 설정이 사람들이 유효하다고 믿었던 순서를 조용히 깨뜨리기 때문이며, 그것을 잡아내는 점검은 두 경우 모두 같습니다.
제품이 아니라 순서부터 시작하십시오
두 가지 배치를 «VPN과 Tor»라고 부르며, 흔한 것은 첫 번째뿐입니다. Tor over VPN에서는 Tor가 시작될 때 터널이 이미 올라와 있으므로 tor 프로세스가 다른 모든 아웃바운드 트래픽처럼 가드 연결을 터널로 보냅니다. VPN over Tor에서는 Tor가 먼저 올라오고 VPN 세션 자체가 회로를 지나 Tor 출구에서 공급자에게 도착합니다.
둘의 차이는 가장 바깥 링크의 먼 끝에 어떤 주소가 서 있는가입니다. 모든 관찰자는 바로 앞 홉만 보고 전체 경로는 결코 보지 않습니다. 가드는 누가 자신에게 연결했는지를, VPN 서버는 누가 자신에게 연결했는지를 봅니다. Tor는 당신의 로컬 터널 주소를 밖으로 나르지 않으며, 프로토콜에 그렇게 할 수 있는 필드도 없습니다.
두 순서 모두에서 목적지 웹사이트는 여전히 Tor 출구를 보고, 어느 순서도 그 사이트가 당신의 로그인에서 배우는 것을 바꾸지 않습니다. 차이는 두 가장자리에 국한됩니다.
Tor 진입 릴레이가 보는 것
진입, 즉 가드는 릴레이 포트에서 평범한 TCP 연결을 받아들이고 클라이언트와 TLS 핸드셰이크를 시작합니다. Tor over VPN 구성에서 그 연결의 출처는 당신의 VPN 출구입니다. Tor 우선 구성에서는 당신의 기기가 Tor 네트워크에 도달하기 위해 사용한 주소, 보통 집 연결입니다.
이것은 질문의 IP 절반에 답하지만, 터널이 실제로 그 연결을 실어 날랐을 때만 그렇습니다. Tor 프로세스는 자신의 소켓으로 가드에 도달하며, 그 소켓은 Tor Browser의 프록시 설정을 따르지 않습니다. 브라우저는 9150의 SOCKS를 통해 함께 제공된 tor 프로세스와 이야기하고, 그다음 tor가 커널 라우팅 테이블을 사용해 자신의 연결을 엽니다. torrc의 Socks5Proxy 줄이나 클라이언트 전송이 그 경로를 바꿉니다. 다른 것은 없습니다.
Linux에서는 기기에서 답을 읽을 수 있습니다. 커널에 임의의 공용 주소에 어떤 인터페이스를 쓸지 물은 다음, 설정된 연결의 로컬 주소를 보십시오:
ip route get 203.0.113.10
sudo ss -tnp | grep -i tor경로가 dev wg0 또는 dev tun0을 말하고 설정된 연결의 로컬 주소가 터널 주소라면 Tor는 VPN 안에 있습니다. 경로가 당신의 물리 인터페이스를 말한다면 밖에 있습니다. 클라이언트 자체 표시가 무엇을 주장하든 마찬가지입니다.
VPN 공급자가 볼 수 있는 것
공급자는 당신의 VPN 세션을 종료하므로 당신이 연결하는 주소를 봅니다. 가드 릴레이 주소는 공개 컨센서스에 게시되고 포트도 잘 알려져 있으므로, 하나를 맞추는 것은 목록 조회이지 심층 패킷 검사가 아닙니다. 공급자는 세션이 Tor임을 알기 위해 Tor를 부술 필요가 없습니다.
보지 못하는 것은 회로의 나머지입니다. 중간 릴레이와 출구는 Tor 내부에서 선택되고, 공급자는 가드로 가는 링크만 다룹니다. 페이지 내용은 출구에서 끝나는 TLS 안에 남고, Tor 트래픽의 이름 해석도 출구에서 일어나므로 공급자에게는 목적지와 연관 지을 DNS 질의가 없습니다.
obfs4가 있는 브리지는 검색을 바꿀 뿐 토폴로지는 바꾸지 않습니다. 브리지 주소는 공개 릴레이 목록에 없고 트래픽은 Tor처럼 보이지 않게 다듬어지므로, 주소만 비교하는 운영자는 그것을 표시하지 않습니다. 세션은 여전히 당신의 VPN 클라이언트에서 오고, 공급자는 여전히 하나의 종단점, 하나의 볼륨, 하나의 시간표를 봅니다.
능력은 보존 정책이 아닙니다
연결을 관찰할 수 있는 운영자가 그것을 보관하겠다고 약속한 것은 아닙니다. 기록은 별개의 결정이며 정책에 적히고 관할권으로 제한되며, 이미 신뢰하는 증거로만 확인할 수 있습니다. 로그 없음이라는 표시는 위에서 설명한 네트워크 역할을 바꾸지 않습니다.
계정 신원은 보통 출구 주소보다 중요합니다. 이메일 주소로 로그인했거나 카드로 결제했다면, 공급자는 목적지를 하나도 기록하지 않고 세션을 당신과 연결할 수 있습니다. 출구 IP를 돌리는 것은 그것에 아무 효과가 없습니다.
두 답변 중 어느 것이라도 믿기 전에 적용 범위를 확인하십시오
VPN을 통해 Tor를 돌린다고 믿는 대부분은 그 일부만 돌립니다. Tor Browser를 제외하는 분할 터널링, 브라우저는 덮지만 tor 서비스는 덮지 않는 킬 스위치, 터널이 올라오기 전에 실행되는 시작 단위, 터널을 우회하는 IPv6 경로가 흔한 네 가지입니다.
클라이언트의 상태 화면을 읽는 것은 그중 어느 것도 시험하지 않습니다. 시험하는 방법은 이렇습니다. Tor Browser를 켜 둔 채 터널을 내리고, 가드 연결이 물리 인터페이스에서 살아남는지 지켜보십시오.
제가 확인하는 순서이며, 첫 실패에서 멈춥니다:
ip route get 203.0.113.10터널 장치를 돌려줍니다.ss -tnp | grep -i tor터널 로컬 주소를 가진 가드 연결을 보여 줍니다.ip -6 route터널 밖의 기본 경로가 없거나, 클라이언트에서 IPv6가 꺼져 있습니다.- VPN을 내리면 tor 연결이 물리 링크에 남지 않고 끝나거나 경로가 바뀝니다.
어떤 순서가 당신이 지키려는 것에 맞는가
두 순서 모두 무언가를 숨기고 무언가를 드러내므로, 답은 당신이 신경 쓰는 관찰자에 대한 선택입니다.
| Observer | Tor over VPN | VPN over Tor |
|---|---|---|
| Your ISP or local network | Sees a VPN connection, not Tor | Sees a Tor guard connection |
| Your VPN provider | Sees Tor use, and your home address | Sees a Tor exit as the client, not your home address |
| Tor entry relay | Sees the VPN exit | Sees your home address |
| Destination website | Sees a Tor exit | Sees a Tor exit |
막으려는 것에 행이 맞을 때까지 열 단위로 읽으십시오. 걱정이 로컬 네트워크나 Tor를 기록하거나 차단하는 ISP라면 Tor over VPN이 처리합니다. 걱정이 VPN 운영자가 집 주소를 아는 것이라면 VPN over Tor가 처리하며, 그 대가로 Tor 사용을 당신의 네트워크에, 집 주소를 가드에 노출합니다.
어느 배치도 양쪽 가장자리를 눈멀게 하지 않습니다. 관찰자를 더해도 다른 관찰자가 사라지지 않습니다. Tor Project의 VPN을 Tor와 함께 실행하기 에 대한 설명은 반대편에서 같은 말을 합니다—터널은 누구를 신뢰하는지와 어떤 실패 경로가 있는지를 바꾸므로, 무엇을 숨기고 싶었는지 정하지 않고 더하는 업그레이드가 아닙니다.
먼저 관찰자를 정하고, 다음으로 순서를 고르고, 클라이언트 표시가 아니라 ip route get과 ss로 확인하십시오. 관찰자가 VPN 공급자 자체를 강제할 수 있는 사람이라면 어떤 순서 선택도 그것을 고치지 못합니다.