피드로 돌아가기
Hacker NewsSecurity
원문 읽기
Seed 기반 RNG 설계 결함으로 인한 VPN 익명성 99% 상실
Mullvad exit IPs are surprisingly identifying
AI 요약
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. 서비스의 익명성 보장을 위해 사용자 식별자와 리소스 할당 값 사이의 상관관계 제거 확인