Psiphon에 대한 기술적 설명
2014. 12. 3. - 2 분 소요
업데이트: 2021. 6. 4.
최근 제기된 두 가지 질문에 답변드리고자 업데이트를 전해드립니다. 바로 알기 쉬운 말로 Psiphon이란 무엇이며 VPN 서비스와 어떻게 다른지, 그리고 기술 설계 문서가 마지막으로 업데이트된 이후 어떤 점이 변경되었는지에 대한 내용입니다.
Psiphon 3는 중앙에서 관리되고 지리적으로 분산된 수천 개의 프록시 서버 네트워크입니다. 저희 인프라의 대부분은 클라우드 제공업체에서 호스팅됩니다. Psiphon 3는 클라이언트와 서버 간의 안전한 링크 암호화를 갖춘 "원 홉(one hop)" 아키텍처입니다. 저희는 가장 널리 사용되는 플랫폼인 Windows, Android, iOS(알파 버전)용 클라이언트를 제공합니다.
Psiphon은 몇 가지 주요 측면에서 일반적인 VPN 서비스와 차별화됩니다.
- 저희는 한 사용자에게 전체 네트워크를 노출하지 않으면서도 각 사용자에게 접속 가능한 소수의 서버를 제공할 수 있도록, 서버의 일부 하위 집합을 사용자에게 배포하는 전략을 적용합니다. 이 목표를 달성하기 위해 저희 네트워크의 규모(특히 네트워크 주소의 다양성)는 단순히 트래픽 부하에 의해서만 결정되지 않습니다.
- 저희는 DPI 차단을 우회하기 위해 프로토콜 난독화를 사용합니다.
Psiphon의 기술 설계 문서는 오래된 버전이며, 다음 내용은 2011년 프로젝트 출범 이후 구현된 주요 기술적 변경 사항에 대한 매우 간략한 요약입니다.
- DPI 핑거프린팅을 완화하기 위해 난독화된 SSH 프로토콜을 추가했습니다. 완전히 무작위처럼 보이는 이 프로토콜은 Psiphon 서버마다 고유한 난독화 키를 사용하여 배포됩니다.
- HTTP 트래픽에 대한 DPI 기반 화이트리스트 지정을 완화하기 위해 프로토콜에 선택적 HTTP 접두사를 추가했습니다. 이 단순한 접두사는 정규식 기반 DPI(nDPI 및 l7-filter)가 Psiphon 트래픽을 HTTP로 분류하도록 하기에 충분하며, 배포 당시 실제 검열 공격자를 무력화하기에 충분했습니다.
- 내장 서버 및 탐색 서버 개념을 보강하기 위해 원격 서버 목록을 추가했습니다. 탐색은 기존 서버에 연결되어 있을 때만 수행되는 반면, 원격 서버 목록은 모든 서버가 차단된 경우에도 다운로드할 수 있습니다. 원격 서버 목록은 S3에 배포되며 URL에 구별되는 버킷 이름 없이 https://s3.amazonaws.com을 통해 액세스됩니다. 이러한 방식으로 검열 공격자가 S3 전체를 차단하거나 HTTPS 트래픽 분석을 수행하지 않고서는 당사의 원격 서버 목록을 차단하기 어렵습니다.
- 이제 이메일은 주요 클라이언트 전파 메커니즘입니다. 사용자가 이메일을 보내는 주소에 따라 맞춤형 스폰서/채널 Psiphon 클라이언트의 링크와 첨부 파일을 반환하는 자동 응답기를 운영하고 있습니다.
- 2012년에 Android 클라이언트를 출시했습니다. 첫 번째 버전에는 Android의 WebView 기반의 내장 브라우저가 포함되어 있었습니다. 2012/2013년에는 모든 Android 앱을 Psiphon을 통해 터널링하는 전체 기기 터널링 지원을 추가했습니다. iptables 전체 기기 모드(루팅된 Android 2.2 이상 기기용)와 tun2socks와 함께 Android의 VpnService를 사용하는 전체 기기 모드(모든 Android 4 이상 기기용)를 지원합니다. 추가된 기능으로는 출구 지역 선택 및 프록시 체이닝이 포함됩니다.
- 현재 알파 테스트 중인 iOS 클라이언트가 있습니다. 이 앱에는 내장 브라우저가 포함되어 있습니다.
- 인앱 피드백 메커니즘을 통해 사용자의 메시지와 선택적 진단 정보를 전송받습니다. 이 시스템은 많은 플랫폼 문제와 차단 문제를 디버깅하는 데 큰 도움이 되었습니다.
- 탐색 알고리즘의 변경 사항: 당사의 탐색 알고리즘은 네트워크 최적화의 지속적인 과정의 일환으로 계속 발전하고 있습니다. 주요 변경 사항으로는 전파 채널 간의 탐색 서버 공유, 하루 중 시간대를 차원으로 추가한 것 등이 있습니다.
- 연결 알고리즘 최적화: 클라이언트는 이제 연결 시 여러 서버로의 연결을 한 번에 시도하고 '가장 좋은' 연결을 유지합니다. 이는 부하 분산에 도움을 줄 뿐만 아니라, 개별 차단된 서버로 인해 연결 순서가 지연되지 않으므로 사용자의 대기 시간을 줄여줍니다.
- 클라이언트 자동 업그레이드가 증분 다운로드 및 (디지털 서명으로 인증된) 대역 외 다운로드 사이트를 사용하도록 개선되었습니다. 이러한 변경을 통해 차단이 발생하는 상황에서도 새로운 클라이언트가 배포될 가능성이 높아졌습니다.