피드로 돌아가기
Hacker NewsHacker News
Security

Seed 기반 RNG 설계 결함으로 인한 VPN 익명성 99% 상실

Mullvad exit IPs are surprisingly identifying

2026년 5월 15일6advanced

Context

사용자별 고유 WireGuard key를 기반으로 Deterministic하게 Exit IP를 할당하는 구조를 채택함. 서버당 IP Pool을 통해 Vertical Scaling을 구현하여 IP Block 및 Rate Limit 문제를 해결하려 시도함.

Technical Solution

  • WireGuard pubkey를 Seed로 사용하는 Seed-based RNG 로직 구현
  • RNG의 Entropy Pool이 Bound 값에 영향을 받지 않는 Rust random_range 특성 활용
  • IP Index 할당 시 min + round((max - min) * float) 형태의 선형 보간 연산 수행
  • 서로 다른 서버 간 IP Index가 동일한 Percentile(비율) 상에 위치하는 구조적 취약점 발생
  • 결과적으로 서버 간 IP 조합이 독립적이지 않고 특정 Float 값 범위 내로 수렴하는 결정론적 패턴 형성

1. 결정론적 값 생성이 필요한 경우 Seed의 독립성과 Bound 변화에 따른 분포 왜곡 여부 검증

2. 보안 관련 Index 할당 시 단순 선형 보간 대신 Cryptographically Secure PRNG 도입 검토

3. 서비스의 익명성 보장을 위해 사용자 식별자와 리소스 할당 값 사이의 상관관계 제거 확인

원문 읽기