VPN 제공업체가 내 Wi-Fi 이름을 볼 수 있을까? 세 가지 서로 다른 유출
게이트웨이는 패킷을 읽고, 네이티브 앱은 권한을 읽으며, 페이지는 좌표를 읽는다. Wi-Fi 레이블은 경우마다 다른 채널에 있다.
질문은 단순해 보이지만 답이 적어도 세 가지다. 어느 답이 적용되는지는 누가 정보를 받는지에 달려 있고, 관련된 구성 요소는 채널을 공유하지 않는다. 각 답은 서로 다른 당사자의 것이므로, 유용한 질문은 어느 당사자에 대해 묻는가이다.
그 채널들을 정리하는 데 몇 분이 걸린다. 잘못된 결론의 한 범주를 통째로 막아 주기도 한다.
세 관찰자, 세 채널
터널 트래픽을 전달하는 게이트웨이는 패킷을 본다. 기기에 설치된 네이티브 앱은 플랫폼이 허용하면 플랫폼 인터페이스를 호출할 수 있다. 브라우저의 페이지는 브라우저와 사용자가 허용한 범위 안에서 실행된다. 어느 것도 같은 것을 보지 못한다.
이것들은 하나의 능력의 변형이 아니다. 별도의 권한을 가진 별도의 메커니즘이며, 각각 조금씩 다른 질문에 답한다.
| Observer | What it receives | What it needs |
|---|---|---|
| Tunnel gateway | Forwarded IP packets, which carry no SSID field | No device permission at all |
| Installed client app | Local network details, when the platform exposes them | The specific permission and context the platform requires |
| Page using browser geolocation | Position properties such as coordinates | User consent plus the browser's own checks |
제공업체의 주장에 중요한 것은 첫 번째 행이다. 무선 네트워크의 이름은 패킷 헤더의 일부가 아니다. 어떤 라우팅 검사도 그것을 만들어 내지 않으며, 전달된 트래픽의 어떤 로그에도 그것이 들어 있지 않다.
Android 사례는 권한의 경계를 보여 준다
Android의 WifiInfo 문서는 두 번째 채널의 구체적인 예다. 그곳의 일부 Wi-Fi 세부 정보는 위치에 민감한 것으로 취급되며, 문서는 필요한 접근 권한이 없을 때 결과가 가려진다고 설명한다. 알 수 없는 SSID 값도 포함된다.
그 동작은 주의 깊게 읽을 가치가 있다. 플랫폼이 접근 권한이 없는 앱에게 값을 주지 않을 수 있다고 말한다. VPN 앱이 그것을 자동으로 받는다고 말하지 않으며, VPN 제공업체가 터널을 통해 받는다고도 말하지 않는다.
네트워크 터널 승인은 좁은 허가다. 앱이 트래픽을 라우팅하도록 허용한다. 플랫폼이 보호하는 기기의 모든 사실을 넘겨주지는 않는다. 둘을 같은 권한으로 취급하는 것이 이런 주장 대부분이 틀리는 지점이다.
좌표는 네트워크 이름이 아니다
Geolocation API는 위치를 반환한다. 주변의 Wi-Fi 이름 목록을 반환하지는 않는다. 다만 그 아래의 플랫폼은 네트워크 정보를 포함한 여러 신호를 사용해 그 위치를 계산할 수 있다.
도시를 받는 것은 식별자를 받는 것과 같지 않다. 당신의 동네를 보여 주는 페이지는 기기가 어디에 있는지에 대해 무언가를 배웠지만, 그것을 그곳으로 이끈 SSID를 배우지는 않았다.
확장 프로그램, 네이티브 도우미, 또는 별도로 권한이 부여된 애플리케이션은 각자의 검토가 필요하다. 어느 것도 위치 정보를 호출하는 평범한 페이지와 교환할 수 없으며, 브라우저 확장은 페이지에 없는 권한으로 실행된다.
보고서나 진단 내보내기가 증명하는 것
클라이언트가 진단 번들을 만들 때 유용한 질문은 어떤 필드를 수집했는지, 누가 받는지, 어떤 권한 아래에서인지이다. 암호화된 전송은 번들이 안전하게 이동했음을 알려 줄 뿐, 무엇이 들어 있는지는 알려 주지 않는다.
네트워크 이름은 재사용되고 변경될 수도 있다. 레이블 하나만으로는 하나의 물리적 장소에 대한 약한 증거이며, 공개 주소는 신뢰도가 다른 또 다른 관찰이다.
실제 네트워크 레이블을 공개 도움말 스레드에 올리지 말 것. 답할 가치가 있는 질문은 더 좁고 더 유용하다. 어느 구성 요소가 어느 필드를, 어떤 권한과 어떤 흐름으로 얻었는가?