<colcolor=#ffffff> Shadowsocks 影梭 / 섀도삭스[1] | ||
| ||
<colbgcolor=#1c9b47> 제작자 | clowwindy | |
코드 관리 | madeye, linusyang | |
종류 | 프록시 프로그램 | |
개발 언어 | C | |
플랫폼 | Windows, 안드로이드, iOS, macOS, Linux, OpenWrt 등[2] | |
공식 홈페이지 |
[clearfix]
1. 개요
중국의 인터넷 검열 시스템인 황금방패를 우회하기 위해 clowwindy라는 중국인 개발자의 오픈 소스 프록시 프로그램 및 해당 프로젝트를 통틀어 이르는 명칭. Python, C언어부터 Go와 라즈베리 파이까지 많은 버전으로 포팅되었다. UDP/TCP 트래픽 모두에 대한 우회를 지원하고 있다.2. 배경
황금방패 정책 시행 이후 cloudwindy가 2012년 4월 20일에 GitHub에 리포지터리를 개설한 것(#)이 그 시작으로, VPN과 더불어 황금방패의 검열을 가장 효과적으로 막을 수 있는 수단 중 하나였으나 기존까지 VPN 연결을 적극적으로 막으려 들지 않았던 중국 정부가 2018년 경 들어서 심층 패킷 감시 (DPI), 기계학습을 통한 의심 패킷 드롭, 법적 제재 등의 모든 수단을 동원하여 OpenVPN을 포함한 우회로를 완전히 차단하려고 들자 현재 중국에서 사용할 수 있는 몇 안 되는 검열 우회 수단이 되었다.3. 원리
Windows 내에서 Shadowsocks를 기동한 사진.
안드로이드 내에서 Shadowsocks를 기동한 사진.
SOCKS5 프록시를 기반으로 작동하며 연결 전체를 암호화하는 특성 때문에 오히려 차단이 쉬운 VPN과는 달리 패킷을 멀쩡한 TLS 연결인 척 위장시켜 전송하기 때문에 모든 TLS 연결을 감시하거나 모든 TLS 연결을 차단해버리지 않는 이상 아무리 성능이 좋은 검열 장비라 할지라도 탐지가 매우 어렵고 VPN의 연결 암호화 특성 때문에 접속이 불가능한 일부 사이트들도 TLS 연결로 위장하기 때문에 큰 문제 없이 접속이 가능하다.
기존의 shadowsocks는 2015년 이후 개발이 중단된 지 오래라 이 자체를 감시할 방법은 중국 당국도 어느 정도 파악한 것으로 보인다. # 허나 VPN에 비해 차단이 완전한 것은 아니며 shadowsocks의 파생 버전 (shadowsocksr, x 버전) 및 후술할 v2ray 등까지는 아직 손을 뻗지 못한 것으로 보인다. 이하 서술 참고.
4. 저장소 삭제 사태
2015년 8월 원 개발자인 clowwindy가 GitHub의 Shadowsocks-iOS 리포지터리 이슈 트래커에 다음과 같은 코멘트를 남겼다.[3]Two days ago the police came to me and wanted me to stop working on this. Today they asked me to delete all the code from GitHub. I have no choice but to obey.
I hope one day I'll live in a country where I have freedom to write any code I like without fearing.
I believe you guys will make great stuff with Network Extensions.
Cheers!
I hope one day I'll live in a country where I have freedom to write any code I like without fearing.
I believe you guys will make great stuff with Network Extensions.
Cheers!
이틀 전, 경찰이 저에게 찾아와 이 일을 그만두는 것을 원한다고 했으며 오늘 GitHub에서 모든 코드를 삭제하라고 말했습니다. 저는 이 요구를 수용하는 것 외에 다른 여지가 없었습니다.
저는 언젠가 두려움 없이 제가 좋아하는 코드를 작성할 수 있는 나라에서 살게 되기를 바랍니다.
저는 여러분들이 네트워크 확장 기능으로 여러 멋진 기능들을 만드리라 믿습니다.
고마워요!
이 외에도 자신의 트위터 계정을 잠그고, 본 사건에 대한 자신의 의견 및 유저들에게 보내는 격려 메시지를 쓴 적도 있다. #저는 언젠가 두려움 없이 제가 좋아하는 코드를 작성할 수 있는 나라에서 살게 되기를 바랍니다.
저는 여러분들이 네트워크 확장 기능으로 여러 멋진 기능들을 만드리라 믿습니다.
고마워요!
이후 Shadowsocks의 소스 코드 및 리포지터리는 제거되었고[4][5] clowwindy의 GitHub 사용자 페이지에는 2016년 리포지터리 1개를 생성한 것을 끝으로 추가적인 활동이 전혀 기록되지 않는 상태다.
다만 2021년 3월 1일 기준으로 clowwindy 트위터 계정은 다시 활성화되었으며 프로필에 사는곳이 미국 캘리포니아 주 산타클라라로 표시되어 있는 걸 보아 저 사건 이후에는 중국을 떠나 미국에서 살고 있으며 Shadowsocks 개발에서 손을 뗀 것으로 보인다.
이후 ShadowsocksR이라는 포크 버전이 생성되었으나 GPL 위반 등의 문제[6]로 셧다운되었다. 그 외의 파생 버전으로는 ShadowsocksRR, ShadowsocksX, Shadowsocks# 등이 있다. 아직까지 이들은 문제가 되지 않고 현재까지 계속 개발되고 있으므로 사용 시 보안상 이들을 쓰도록 하자.
현재는 shadowsocks-libev라는 리포지터리로 분기해 공동 작업자 및 여러 사용자들이 지속적인 개발을 이어나가고 있다.
여러 언어 및 OS로 포팅된 버전도 같이 개발되고 있다. 자유 소프트웨어의 특성상 개발자 한 명 잡고 탄압한다고 개발이 멈추지 않는다는 것을 보여주는 좋은 사례다.
4.1. Project V (V2Ray)
공식 사이트[7]
GitHub 리포지터리
clowwindy의 반검열 정신을 기반으로 한 Project V라는 후속 플랫폼도 개발되고 있고 소프트웨어로 릴리즈될 시 V2Ray라는 명칭을 사용한다. https://toutyrater.github.io/
5. 관련 문서
6. 둘러보기
- [ 역사 ]
- ||<table width=100%><table bgcolor=#fff,#1f2023><table color=#373a3c,#ddd><colbgcolor=#ee1c25><width=16%> 역사 ||역사 전반(홍콩) · 등용제도 · 세금 제도 · 연호 · 역대 국호 · 백년국치 ||
- [ 사회 · 경제 ]
- ||<table width=100%><table bgcolor=#fff,#1f2023><table color=#373a3c,#ddd><colbgcolor=#ee1c25><width=16%> 경제 ||경제 전반(홍콩 · 마카오) · GDP · 경제성장률 · 상무부(투자촉진사무국) · 재정부 · 공업정보화부 · 중국인민은행 · 세무총국 · 중국 위안 · 중국증권 감독관리위원회(상하이증권거래소 · 선전증권거래소 · 베이징증권거래소) · 홍콩증권거래소 · 국가금융감독관리총국 · ECFA · AIIB · FTAAP · 세서미 크레딧 · 차이나 머니 · 아시아의 네 마리 용(홍콩) ||
- [ 문화 ]
- ||<table width=100%><table bgcolor=#fff,#1f2023><table color=#373a3c,#ddd><colbgcolor=#ee1c25><width=16%> 문화 전반 ||문화 전반(홍콩 · 마카오) · 문화 검열(검열 사례 · 할리우드 블랙아웃) · 문화여유부(문물국) · 영화(목록) · 홍콩 영화 · 상하이물) · 드라마(목록 · 문제점) · 방송(CCTV · CETV · 라디오 방송 · 홍콩 · 마카오) · 신경보 · 중앙신문(인민일보 · 환구시보 · 광명일보 · 경제일보 · 해방군보) · 사우스 차이나 모닝 포스트 · 명보 · 미술 · 2021년 중국 규제 · 파룬궁 · 선전물 일람 ||
[1] 검열을 피하기 위한 酸酸이라는 용어를 사용하기도 한다. 이유는 酸酸(suan'suan)→SuanSuan→SS→ShadowSocks, 즉 병음의 앞글자를 이용한 것. 같은 예시로 酸酸乳(suan'suan'ru)는 ssr, 즉 shadowsocksR을 의미한다.[2] 후술되겠지만 개발, 유행 이후 많은 플랫폼으로 포팅되었다.[3] Shadowsocks-iOS #124번 이슈 코멘트, 2018년 8월 24일 확인함.[4] 938bba3 커밋, 2018년 8월 24일 확인함.[5] 사실 Git 특성상 리포지터리를 아예 삭제하지 않는 한 실제로 지워지지는 않는다. `master` 분기를 보자.[6] Shadowsocks Windows #293번 이슈 코멘트, 2018년 8월 24일 확인함.[7] 한국어 번역이 되어 있다.