2P by GN⁺ | ★ favorite | 댓글 1개
  • Snowflake는 Tor가 차단된 지역의 사용자가 Tor 네트워크에 연결할 수 있게 돕는 검열 우회 도구로, Tor Browser, Orbot, Ricochet-Refresh 같은 Tor 기반 앱에서 사용할 수 있음
  • 사용자는 앱 설정에서 Snowflake를 선택해 연결을 자원봉사자 프록시로 라우팅하고, 직접 브라우저 애드온을 설치할 필요는 없음
  • Snowflake는 WebRTC를 활용해 Tor 트래픽이 영상·음성 통화처럼 보이게 만들어 검열자의 탐지를 어렵게 함
  • 자원봉사자는 Firefox, Chrome, Edge용 애드온을 켜서 대역폭을 제공할 수 있으며, 페이지에는 127,599개 Snowflake가 운영 중이라고 표시됨
  • 애드온은 검열을 우회하려는 사용자가 아니라, 다른 사람의 Tor 접속을 돕고 싶은 사람이 설치하는 프록시 제공 도구

Tor 앱에서 Snowflake 쓰기

  • Snowflake는 Tor가 차단된 네트워크에서도 Tor에 접속할 수 있게 하는 검열 우회 기술임
  • Tor 기반 앱에 내장되어 있으며, 연결이 막힐 때 앱 설정에서 Snowflake를 선택해 우회할 수 있음
    • Tor Browser: Desktop 및 Android 지원, Tor Project 제작
    • Orbot: Android 및 iOS 지원, Guardian Project 제작
    • Ricochet-Refresh: Desktop 지원, Blueprint for Free Speech 제작
  • 검열 우회를 원하는 사용자는 Tor Browser나 Orbot 같은 Tor 기반 앱을 내려받아 Snowflake를 활성화하면 됨
  • 브라우저 애드온은 직접 우회 접속을 위한 도구가 아니라, 다른 사용자의 연결을 중계하는 자원봉사자용 프록시

자원봉사자 프록시와 우회 방식

  • 자원봉사자는 브라우저 애드온을 설치하고 활성화해 Snowflake 프록시를 제공할 수 있음
  • Snowflake는 검열이 없는 국가의 자원봉사자 프록시를 거쳐 Tor 네트워크 접속을 가능하게 함
  • VPN처럼 인터넷 검열 우회를 돕지만, 트래픽을 영상 또는 음성 통화처럼 보이게 위장하는 점이 특징임
  • 기반 기술은 화상회의 소프트웨어에서 흔히 쓰이는 WebRTC이며, Tor 사용 흔적을 오디오·비디오 통화처럼 보이게 만듦
  • Snowflake는 Pluggable Transports 계열의 비교적 새로운 우회 기술이며 계속 개선 중임
    • Pluggable Transports는 Tor 브리지 트래픽을 일반 연결처럼 보이게 해 Tor 접속이 아닌 것처럼 위장함
    • Snowflake는 화상 통화처럼, meek-azure는 Microsoft 연결처럼, WebTunnel은 표준 HTTPS 연결처럼 보이게 하는 방식임
    • 이런 위장은 검열자가 우회 도구를 막으려면 인터넷의 큰 부분까지 함께 차단해야 하도록 만들어 차단 비용을 높임
  • 기술 구조는 technical overview에서 확인할 수 있고, 애플리케이션에서 Snowflake를 쓰려면 anti-censorship team에 연락할 수 있음

댓글과 토론

Hacker News 의견들
  • Snowflake는 랑데부에 도메인 프런팅을 씀[1]. 디지털 세계에서 스파이가 아무것도 모르는 친구 집에서 비밀 회합을 여는 것과 같고, 결국 그 친구에게 항상 나쁜 결과가 됨
    이 기법은 악성 행위자들이 많이 쓰고, 일부 클라우드 제공자는 기본으로 차단하기도 함[2]. Signal이 이를 넓게 배포하려 하자 AWS는 이란이나 중국 같은 나라가 AWS 전체를 막을까 봐 강한 경고를 보냈음[3]

    1. https://en.wikipedia.org/wiki/Domain_fronting
    2. https://azure.microsoft.com/en-us/updates/generally-availabl...
    3. https://signal.org/blog/looking-back-on-the-front/
    • 한동안 집에서 Snowflake 서버를 돌렸지만 CPU를 너무 많이 써서 껐고, 부정적인 영향은 전혀 보지 못했음
      도메인 프런팅은 만능 열쇠가 아님. Signal과 Tor는 클라우드 제공자가 도메인 프런팅을 막으면서, 더 정확히는 원래 동작하도록 의도되지 않은 기능을 더 이상 지원하지 않으면서 문제를 겪었지만, 뭔가를 방해하려는 의도였다고 보긴 어려움. “로드 밸런서가 설정된 도메인에 맞는 인증서를 제공하도록 만든다”는 것 자체는 문제가 있는 기능이 아님
      도메인 프런팅은 openssl 호출과 nginx 서버만 있으면 될 정도로 단순하고, 깨는 것도 인증서만 실제로 검증하면 될 정도로 쉬움. 이런 인증서는 자체 서명이거나 실제 시스템이 신뢰하지 않을 임의의 인증기관 체인에 속함
      “아무것도 모르는 친구 집에서 비밀 회합을 여는 스파이”라기보다, 브라질의 임의 창고 앞에 “백악관, 미국 대통령의 집, 출입 금지”라는 표지판을 세우는 것에 가까움
      도메인 프런팅에 속는 소프트웨어는 인증서와 유효성을 신경 쓰지 않거나 버그가 있어서 패치돼야 함. 그중 일부가 보안 소프트웨어일 수는 있겠지만, 악성 행위자가 몇 개의 읽을 수 있는 문자열만으로 보안 소프트웨어를 속여 신뢰하게 만들 수 있다면 도메인 프런팅은 걱정거리 중에서도 작은 편임
    • 마지막으로 봤을 때 의도는 결국 ECH 엔드포인트가 도메인 프런팅과 같은 실효적 서비스를 제공하되, 클라우드 제공자를 방해하는 방식으로 백엔드를 꼬이게 만들지 않아서 제공자들이 지원할 수 있게 하는 것이었음
      Encrypted Client Hello는 HTTPS 서버에 대한 클라이언트의 최초 접촉까지 암호화하려는 진행 중인 작업임
      https://datatracker.ietf.org/doc/draft-ietf-tls-esni/
      ECH는 괜찮고 도메인 프런팅은 왜 안 되냐면, 도메인 프런팅에서는 실제 요청을 너무 늦게 알게 되는 것이 문제임. this-thing.example에 대한 정상 요청처럼 보여 그 요청을 처리할 준비를 다 했는데, 갑자기 “미안, 마음을 바꿨고 사실 내 요청은 hidden-service.example에 대한 것”이 되는 식임
      ECH에서는 연결을 엿보는 공격자는 모르지만 우리는 처음부터 요청이 hidden-service.example 대상임을 알기 때문에, 잘못된 작업을 준비하느라 시간을 낭비하지 않음
    • 그게 바로 핵심임. 이를 막으려면 유용한 인터넷의 거대한 부분을 차단해야 하게 만드는 것임. 이상적으로는 무언가를 검열하려면 인터넷 전체를 막아야 하도록 만들 수 있어야 함
      그들이 동원할 수 있는 폭정에도 한계가 있지 않을까? 결국 부수 피해가 너무 커져 검열 시도를 포기할 수도 있음. 아니면 사람들이 받아들이지 못할 만큼 폭압적인 사회가 될 것임
    • “이 기법은 악성 행위자들이 많이 쓴다”는 말에 대한 근거가 필요함
  • 이것은 일반 가드 릴레이, 즉 Tor 회로의 첫 번째 홉이 차단됐을 때 Tor 사용자가 Tor에 접속할 수 있게 해주는 릴레이이며, 도메인 프런팅과 WebRTC를 사용함
    기본으로 제공된 독일어 번역 기준으로는 문구가 꽤 혼란스러웠음. 대상도 WebRTC를 지원해야 하므로 브라우저 안 프록시만으로 임의의 HTTP(S) 웹사이트에 접근할 수는 없고, 여전히 WebRTC 연결을 받아 트래픽을 전달할 다른 서버가 필요함. 핵심은 글에서 말하지 않지만 이 다른 서버에 간접적으로 접속할 수 있게 하는 데 있음
    검열된 웹사이트를 방문하는 데 소프트웨어가 필요 없다고까지 말함

    Im Gegensatz zu VPNs musst du keine separate Anwendung installieren, um dich mit einem Snowflake-Proxy zu verbinden und die Zensur zu umgehen.
    하지만 실제로는 필요함. Tor 클라이언트 없이는 이 Snowflake 프록시는 쓸모가 없음. 기술 상세로 들어가면 “이 콘텐츠는 영어”라는 경고가 붙은 링크에 이렇게 나옴

    1. User in the filtered region wishes to access the free and open internet. They open Tor Browser, selecting snowflake as the Pluggable Transport.
      본문은 “VPN과 달리 검열을 우회하려고 별도 소프트웨어를 설치할 필요가 없다”고 했지만, 기술 개요는 정반대로 Snowflake 프록시를 쓰려면 Tor 클라이언트가 필요하다고 말함
    • 독일어 번역은 모르겠지만, 영어판의 요지는 Snowflake 자체를 설치하는 것이 아니라 Snowflake를 사용하는 소프트웨어, 보통 Tor Browser를 설치한다는 뜻임
      Snowflake를 프록시나 VPN 앱처럼 어떻게 설치해야 하는지 헷갈리는 사용자에게 작동 방식을 설명하려는 것으로 보임
      직접 인용하면 꽤 명확함: “Unlike VPNs, you do not need to install a separate application to connect to a Snowflake proxy and bypass censorship. It is usually a circumvention feature embedded within existing apps.”
  • 자기 나라에서 Tor가 불법이라면 사용을 시도하는 것 자체가 꽤 위험해 보임. 누구나 Snowflake 프록시를 돌릴 수 있으니, 접속 IP 주소를 기록하는 건 아주 쉬움. 그러면 접속할 때마다 안전하게 남을 확률이 줄어드는 도박이 됨

    • 안전하지 않은 나라의 네트워크에서 오는 IP를 가진 Snowflake를 막을 수는 있겠지만, 공격자가 더 자유로운 나라에서 VPS나 봇넷 노드를 사면 쉽게 우회됨
      Technical Overview[0]를 훑어봐도 위에서 말한 위험을 줄이는 내용은 보이지 않음
      Snowflake의 목적은 Tor 사용 탐지를 막는 것이 아니라 Tor 차단을 우회하는 데 있어 보임. 이를 위해 도메인 프런팅과 WebRTC를 활용함
      [0] https://gitlab.torproject.org/tpo/anti-censorship/pluggable-...
    • Snowflake가 유용한 대부분의 지역에서는 Tor 접속이 합법이거나, 금지법이 있어도 집행되지 않는 경우가 많음. 보통 처벌을 받는 쪽은 검열 우회 도구를 만드는 사람이나 기여자들임
      다만 Tor Project는 플러그형 전송이 모두 검열 우회 목적이지 스테가노그래피 목적은 아니라고 일관되게 강조함. 차단하기는 어렵지만, 네트워크 운영자가 사용자가 Tor에 접속한다는 사실을 알아내는 것까지 막지는 못함. 결국 그 위험을 감수할 수 있는지는 사용자가 판단해야 함
    • “그냥” 본인과 연결될 수 없는 IP에서 접속하고, 별도 휴대폰에 암시장 유심을 쓰고, 평소 가지 않는 장소에서 접속하고, 안 쓸 때는 꺼두면 됨. 비용이 빠르게 커짐
  • “아래 Snowflake를 켜고 브라우저 탭을 열어두면, 사용자가 새 프록시를 통해 접속할 수 있습니다!”라는 말이 맞게 이해한 건지도 확실하지 않음
    내 웹사이트에 iframe을 넣으면 Tor 사용자의 트래픽이 방문자 IP를 통해 터널링되는 건가? relay.love에서는 동의가 어떻게 처리됨? 내 웹사이트 방문자의 IP가 Tor 출구 노드로 보이나?

    • 출구는 아님. 기본적으로는 누군가가 Snowflake 애플릿을 의식적으로 실행해야 하지만, 웹마스터가 코드를 수정해 사실상 누군가의 브라우저에서 Tor 가드를 자동 시작하게 만들 수는 있음. 물론 남의 자원을 그렇게 남용하는 건 매우 악질적임
      해당 예시는 시작 전에 사용자 동의를 받음
    • 이런 악용이 걱정된다면 괜찮은 브라우저 대부분에서 WebRTC를 비활성화할 수 있음. WebRTC는 내부 네트워크 포트 스캔처럼 더 나쁜 일에도, 밀리초 지연의 영상 통화나 Peertube 같은 좋은 일에도 쓰일 수 있음
      다만 이 메커니즘이 JavaScript를 통해 임의의 원격 소켓을 만들 수 있게 해주는 건 아님. WebRTC/WebSockets의 어떤 버전을 쓰는 서버나, 추가 프로토콜 오버헤드를 쓰레기로 무시하고 나머지를 파싱하는 평문 서비스와만 통신할 수 있음. 일부 IRC 서버와 WebSockets가 좋은 예임
      기술 개요에서 보듯, 사람들은 P2P 기술로 사용자의 브라우저에 접속하고, 브라우저는 WebSockets로 일반 Tor 진입점 역할의 WebSocket 서버와 통신함
    • 이런 것에 브라우저 동의를 요구하지 않는다는 게 이상함
  • 예전의 “YouTube에 파일 저장하기”[0]가 떠오르고, 같은 개념을 Zoom 같은 널리 쓰이는 음성 회의 솔루션에 적용하면 얼마나 많은 대역폭을 얻을 수 있을지 궁금함
    더 자연스럽게 섞이도록 실제 통화 중에 영상 스테가노그래피 같은 방식으로 데이터를 전송할 수 있으면 더 좋겠음
    [0] https://github.com/DvorakDwarf/Infinite-Storage-Glitch

    • 그렇게 된다면 멋질 것 같음. 다만 네트워크와 무관하게 동작한다면, 사람들이 노드를 설정해두고 실수로 회사나 다른 공용 네트워크에 가져갈 수도 있어 보임. 지속 연결로 쓰는 것보다 나은지 나쁜지는 잘 모르겠음
    • 제안한 방식은 영국 Online Safety Bill의 적용을 부를 수 있음. 인코딩/스테가노그래피 수단 때문에 정부 규제기관인 OfCom 사안이 아니라 경찰 사안으로 분류되어 GCHQ의 정부 암호 해독 인력이 관여하게 될 수 있음
      영국 정부는 단지 규제기관의 기능이라고 말하지만, OSB는 영국에서 쓰일 수 있다는 이유만으로 국경 밖까지 확장될 것처럼 읽힘
  • 이게 얼마나 새로운지는 모르겠지만, 사용자가 iframe 토글이나 브라우저 확장 설치만으로 노드 호스팅을 할 수 있다는 점은 아주 멋짐. 이런 방식은 CLI 버전보다 대역폭 제한이 훨씬 낮은지도 궁금함

  • 서버에 배포할 수 있는 독립 실행형 Go 버전도 있음[0]
    “standalone Snowflake 프록시의 주요 장점 중 하나는 서버에 설치할 수 있고, 제한적인 NAT와 방화벽 뒤에 있는 사용자에게 더 높은 대역폭과 더 안정적인 선택지를 제공한다는 점”이라고 함
    [0] https://community.torproject.org/relay/setup/snowflake/stand...

  • 설치해뒀고 숫자가 올라가는 걸 보는 게 좋음. 숫자가 커짐 = 도파민
    스칸디나비아에서 태어난 건 운이 좋았고, 지금은 인터넷 검열이 사실상 0임

    • 아직 “본인”이 영향을 받지 않았을 뿐 운이 좋은 것임. 해외 토너먼트에서 합법 포커 수익을 벌었지만 노르웨이 은행으로 송금하지 못하는 포커 선수에게 물어보면 됨
      암호화폐로 돈을 벌고 그걸 아파트 대출 담보로 쓰려는 사람, 해외 합법 온라인 카지노 수익을 송금하려는 사람, 노르웨이 당국이 싫어해 DNS 차단한 웹사이트에 접속하려는 사람도 마찬가지임. 기술자는 쉽게 우회할 수 있지만, 정부와 정치인이 권한을 남용하고 개인 자유를 제한하는 일은 이미 시작됐고 커지고 있음
      “대부분의 사람”에게 영향을 주기 시작하면 되돌리기가 보통 훨씬 어려움. 노르웨이 정부는 이미 대규모 전자 감시를 허용하는 법을 통과시켰고, 정부 기록에 대한 대중 접근도 제한하려 함. EU 대부분처럼 좌파식 “사회 민주주의”, 즉 관료적 독재로 가는 매우 미끄러운 경사임. 사람들은 눈을 뜨고 지금 정부의 과잉 개입에 맞서야 함
  • 찾을 수 있는 모든 Tor IP를 차단함. 이 서버들에서 오는 Burp Suite 스팸 99%를 처리할 시간도 인내심도 없기 때문임. 아주 싸고 효과적인 해결책임