WhatsApp 통화는 주소 정보를 하나 이상의 당사자에게 노출하며, 모든 당사자가 같은 것을 아는 것은 아닙니다. 대화 상대는 당신의 네트워크 경로에 대해 무언가를 알 수 있고, 서비스는 어떤 연결이 도달했는지 알며, 당신의 접속 제공자는 당신이 만드는 흐름을 봅니다. VPN과 앱 내부의 중계는 각각 그 그림의 한 부분을 바꿉니다. 그래서 VPN이 통화에서 내 IP를 숨기는가라는 질문에는 하나의 답이 없습니다.

세 관찰자, 세 가지 다른 질문

방식들이 서로 대체할 수 없으므로 숨고 싶은 관찰자를 먼저 지목하세요. 다른 참여자로부터 숨는 것은 주소 문제입니다. 서비스로부터 숨는 것은 계정과 연결의 문제이고, 들리는 것보다 훨씬 답하기 어렵습니다.

ObserverWhat it can learnWhat changes it
The other participantWhether the media path appears to come from your address or from a relayRelay settings in the app, or a network path that does not expose your address
The serviceYour account, the connection your client made, and the call's participantsVery little from an address change alone; the account is the identifier
Your access networkThat encrypted traffic to certain endpoints exists, and how muchRouting through a tunnel moves the visible endpoint

각 행은 독립적으로 개선할 수 있습니다. 한 행을 개선해도 다른 행은 그대로이므로, 이 질문에 대한 정직한 답에는 보통 일부라는 말이 들어갑니다.

중계가 실제로 바꾸는 것

WhatsApp은 통화에서 IP 주소 보호라는 설정을 문서화하고 있으며, 앱의 고급 개인정보 보호 옵션에 있습니다. 이 설정은 통화 미디어를 참여자끼리 직접 연결하는 대신 WhatsApp 서버를 거쳐 보냅니다. 같은 안내는 중계된 통화도 종단 간 암호화된 상태로 유지된다고 밝힙니다. 통화 품질이 달라질 수 있다고도 경고합니다.

중계는 네트워크 구성이 아니라 서비스 기능이므로, 앱이 중계하기로 결정한 통화에만 적용되고 기기의 다른 무엇에도 적용되지 않습니다. 이 기능에 관한 WhatsApp 도움말 페이지가 어떤 플랫폼이 제공하는지, 스위치가 어디 있는지에 대한 현재의 권위입니다.

중계는 서비스가 곧 중계이므로 통화를 서비스로부터 숨기지도 않습니다. 바뀌는 것은 대화 상대가 당신의 주소에 대해 관찰할 수 있는 것입니다. 지연이 더해질 수도 있으며, 그것이 이 설정이 받아들이는 거래입니다.

VPN이 통화 경로에서 바꾸는 것

VPN은 자신이 나르는 모든 것에 대해 당신의 트래픽이 어디서 오는 것처럼 보이는지를 바꿉니다. 특정 통화를 나르는지는 클라이언트의 라우팅 정책에 달려 있습니다. 전체 터널은 모든 트래픽을 가져가고, 분할 터널은 일부 접두사만 가져갈 수 있습니다. Wi-Fi와 모바일 데이터를 모두 가진 휴대폰은 같은 순간에 서로 다른 흐름에 서로 다른 경로를 쓸 수 있습니다.

즉 브라우저에서 확인한 주소는 통화에 대한 증거가 아닙니다. 앱은 터널보다 먼저 생긴 장기 연결을 유지할 수 있고, 터널이 덮지 않는 주소 체계를 쓸 수도 있습니다. 우연히 시험한 웹사이트가 아니라 실제 목적지에 대한 라우팅 결정을 확인하세요.

종단 간 콘텐츠 암호화는 이 모든 것과 별개의 경계입니다. 경로가 바뀌어도 무너지지 않고, 메타데이터도 덮지 않습니다.

암호화와 주소 프라이버시는 다른 약속

통화 내용을 암호화된 상태로 유지한다는 것은 중계가 대화를 들을 수 없다는 뜻입니다. 중계가 아무것도 모른다는 뜻은 아니고, 어떤 계정이 연결되어 있는지, 언제 얼마 동안인지는 중계가 하는 일이 바로 그것이기 때문에 여전히 보입니다.

반대로 상대방에게서 주소를 숨겨도 당신의 계정이 그것을 인증하는 서비스에 익명이 되지는 않습니다. 이것은 두 개의 별개 주장입니다. 둘을 합치는 프라이버시 검토는 잘못된 안도감을 만듭니다. 요구 사항을 특정 관찰자에 관한 한 문장으로 쓰고, 그다음 선택한 방식이 옆의 관찰자가 아니라 그 관찰자를 향하는지 확인하세요.

정말로 신경 쓰는 주장을 확인하세요

요구 사항이 당신의 접속망에 관한 것이라면, 확인은 현지에서 답할 수 있는 라우팅 질문입니다. 상대방에 관한 것이라면, 확인은 앱 자체의 설정입니다. 어떤 터널 구성도 그 설정을 대신하지 못합니다.

ip rule show | head -n 10
ip route get 198.51.100.7
ss -tun state established '( dport = :443 )'
tcpdump -ni wg0 -c 20 'udp or tcp port 443'

경로 조회는 목적지가 어느 인터페이스를 쓸지 알려 줍니다. 소켓 목록은 장기 연결이 이미 있는지 알려 줍니다. 캡처는 트래픽이 실제로 터널 인터페이스를 지나는지 알려 줍니다. 문서용 주소를 앱 자체의 연결에서 확인한 종단점으로 바꾸고, 터널이 모든 것을 가져갔다고 가정하지 말고 결과를 읽으세요.

어느 관찰자에게 어느 방식을 기댔는지를 날짜와 앱 버전과 함께 기록하세요. 중계 설정과 클라이언트의 라우팅 동작은 모두 시간이 지나며 바뀌고, 관찰자를 지목한 기록만이 계속 쓸모 있는 유일한 형태입니다.

관련 글