결정론적 IP 함정: Mullvad의 종료 IP가 지문 추적에 사용될 수 있는 방법

많은 사람들에게 VPN은 온라인 익명성을 위한 궁극적인 방패입니다. 서비스가 제공하는 IP로 실제 IP 주소를 가림으로써 물리적 위치와 신원을 웹 트래픽과 효과적으로 분리할 수 있습니다. 그러나 최근 Mullvad VPN에 대한 기술 분석에서 놀라운 결함이 밝혀졌습니다: 서비스가 종료 IP를 할당하는 방식이 실제로 서로 다른 서버 간에 사용자를 추적하는 데 사용될 수 있으며, 할당받은 IP 주소를 기반으로 고유한 “지문”을 생성합니다.

종료 IP 할당 메커니즘

Mullvad는 서버당 여러 개의 종료 IP를 제공함으로써 많은 VPN 제공업체와 차별화됩니다. 이러한 수직 확장은 단일 IP가 과도하게 사용되는 것을 방지하여, 공격적인 속도 제한이나 IP 기반 차단을 사용하는 웹사이트에 차단당할 가능성을 낮춥니다.

일반적인 상황에서는 이러한 IP가 매 연결 시마다 무작위로 할당될 것으로 기대할 수 있습니다. 그러나 실제 할당은 결정론적입니다. 종료 IP는 사용자의 WireGuard 공개 키를 기반으로 선택되며, 이 키는 일반적으로 1일에서 30일마다 회전합니다(제3자 클라이언트를 사용하는 경우 정적 상태를 유지합니다).

지문 추적 벡터: 수학적 결함

보안 연구원이 최근 여러 서버의 종료 IP 범위를 매핑하여 이를 테스트했습니다. 수천 개의 공개 키를 테스트한 결과 놀라운 패턴을 발견했습니다: 사용자는 서로 다른 서버에서 무작위 조합의 IP를 할당받지 않았습니다. 대신, 각 서버의 IP 풀 내에서 동일한 상대 위치(또는 백분위수)를 차지하는 IP가 할당되었습니다.

예를 들어, 사용자가 시드니 서버의 풀에서 81번째 백분위수에 해당하는 IP를 할당받았다면, 뉴욕 서버의 풀에서도 대략 81번째 백분위수에 해당하는 IP를 할당받게 됩니다.

근본 원인: 시드 기반 RNG

연구자는 Mullvad가 사용자의 공개 키를 시드로 사용하는 시드 기반 난수 생성기(RNG)를 사용하고 있다고 가정했습니다. Mullvad가 백엔드에 Rust를 사용하고 있는 것처럼, 정적 시드를 사용한 random_range(0..bound) 호출은 경계값에 따라 선형적으로 결과를 생성합니다.

본질적으로 RNG는 0과 1 사이의 부동 소수점 값을 생성한 뒤, 해당 값을 풀 크기와 곱해 IP 인덱스를 결정합니다. 특정 시드(사용자 키)에 대해 동일한 부동 소수점 값이 풀 크기에 관계없이 생성되므로, 사용자의 “상대 위치”는 모든 서버에서 일정하게 유지됩니다.

신원 연관

이 결정론적 동작은 연관 공격을 가능하게 합니다. 관찰자(예: 포럼 관리자나 데이터 브로커)가 여러 세션의 IP 로그에 접근할 수 있다면, 해당 IP와 연관된 부동 소수점 값을 계산할 수 있습니다.

두 개의 서로 다른 Mullvad 종료 IP가 서로 다른 서버에서 동일한 좁은 부동 소수점 범위에 해당한다면, 이는 동일한 사용자 계정에 속할 가능성이 매우 높습니다. 이는 사용자의 실제 신원을 밝히지는 않지만(Mullvad는 사용자 로그를 저장하지 않는다고 주장함), 서로 다른 VPN 서버 간에 단일 “신원”을 지속적으로 추적할 수 있게 하여 VPN 사용의 주요 이유 중 하나를 실질적으로 무력화합니다.

커뮤니티 반응 및 공식 입장

이 발견은 Hacker News에서 큰 논쟁을 일으켰으며, 사용자들은 프라이버시와 사용성 사이의 균형에 대해 의견을 제시했습니다. 일부는 VPN이 본질적으로 제한적이며 진정한 익명을 원하는 사용자는 Tor를 사용해야 한다고 주장했으며, 다른 이들은 이를 프라이버시 중심 서비스의 중대한 실패로 보았습니다.

특히, Mullvad의 공동 설립자이자 공동 CEO가 토론에 응답하며, 설명된 행동 중 일부는 의도된 것이고 일부는 의도되지 않은 것임을 인정했습니다. 그는 다음과 같이 말했습니다:

"설명된 행동 중 일부는 우리가 의도한 대로이며, 일부는 그렇지 않습니다. 원인은 블로그 게시물에 설명된 것과 정확히 일치하지 않습니다... 우리는 이미 인프라의 일부에 대해 의도되지 않은 행동을 수정하는 패치를 테스트하고 있습니다."

결론 및 완화 방안

Mullvad가 수정 작업을 진행 중이지만, 현재 알고리즘 상태는 서버 간 사용자 연관을 가능하게 합니다. 최대 프라이버시를 중시하는 사용자에게 다음 단계가 권장됩니다:

  • 공개 키 강제 회전: Mullvad 앱에서 로그아웃하여 키 회전을 트리거합니다.
  • 서버 전환 제한: 연관을 피하려는 경우 단일 세션 내에서 서버를 자주 전환하지 마세요.
  • 도구 이해: VPN은 ISP로부터의 프라이버시를 제공하지만 방문하는 사이트로부터 절대적인 익명을 보장하지는 않는다는 점을 인식하세요.

Sources