Shadowsocks対VPN:本当の違いは何か?
Shadowsocksは、インターネットの歴史の奇妙な一角を占めています。2012年に中国で一人の開発者が書き、オープンソースとして公開され、ファイアウォール回避の主役として何百万もの人々に静かに採用されたプロキシです。これは絶えずVPNと比較されますが、たいていは間違った問い——「どちらが優れているか?」——とともにです。両者は実のところ同じ仕事をしようとしているわけではないのに。
手短な答え:Shadowsocksは、認識されることなく国家ファイアウォールを越えてトラフィックを動かすために設計された暗号化プロキシです。VPNは、いま使っているネットワークからのプライバシーのために設計された、デバイス全体の暗号化トンネルです。両者は重なりますが、異なる脅威に答えます——そして正しい選択は、実際にどちらの脅威があなたのものかにかかっています。
要点
- Shadowsocksは、検閲を越えるために作られた暗号化SOCKS5プロキシです。プライバシー製品として設計されたことは一度もありません。
- その妙技は、何ものでもないように見えることです。ハンドシェイクのシグネチャも、プロトコルのバナーもなく、ただ特徴のない暗号化されたバイトだけです。
- VPNは、漏えいや接続切断をめぐる標準化された挙動とともに、デバイス上のすべてのアプリを覆います。プロキシの構成は大きくばらつきます。
- 最近のファイアウォールは「何ものでもないように見える」トラフィックに印を付けることを覚えたので、古典的なShadowsocksはもはや無条件のパスではありません。
- 脅威モデルで選びましょう。検閲への耐性か、デバイス全体のプライバシーか、あるいは——ますます一般的になっていますが——一つのアプリでその両方かです。
Shadowsocksの正体
2012年、clowwindyという名で活動していた開発者が、個人のトラフィックを中国の国家ファイアウォールの先へ通すための小さなツールを公開しました。2015年、当局からの圧力を受けて、彼はコードを削除し、身を引きました。プロジェクトはコミュニティが維持する実装として生き残り、以来ずっと活発に開発されてきました——これはOutlineのようなツールの土台でもあります。その由来の物語が、設計を完全に説明しています。Shadowsocksは、問題が広告主ではなくファイアウォールだった人によって作られたのです。
仕組みとして、Shadowsocksは一対です。あなたのデバイス上のクライアントと、フィルタリングされたネットワークの外のどこかにあるサーバーです。クライアントは、標準的なプロキシのインターフェースであるSOCKS5を通じてアプリケーションのトラフィックを受け取り、最新の認証付き暗号で暗号化し、サーバー経由で中継します。サーバーはそれを本当の宛先へ送り出します。
巧妙なのは、欠けているものです。通常の暗号化接続は自分を名乗ります。TLSは見分けのつくhelloで始まり、VPNプロトコルは見分けのつくハンドシェイクで始まります。Shadowsocksのプロキシ接続は、何もなしで始まります。最初のバイトから、ストリームは高エントロピーの暗号文で、ヘッダーも、バナーも、固定されたパケットサイズもありません。見える構造がないため、一致させるシグネチャがないのです。
それがVPNとどう違うか
違いは、それぞれが動作する層から始まり、そこから広がっていきます。
カバー範囲。VPNはオペレーティングシステムのレベルでネットワークインターフェースを作り、デバイス全体——プロキシ設定をまったく持たないものを含む、すべてのアプリ——をそこ経由でルーティングします。Shadowsocksはプロキシです。古典的には、それに向けられたアプリケーションを運びます。モバイルクライアントは、システム全体をローカルのトンネルインターフェース経由でルーティングすることでこの境を曖昧にしますが、それはインストールするクライアントの機能であって、プロトコルの保証ではありません。
障害時の挙動。成熟したVPNアプリには、やっかいな問いへの標準化された答えがあります。トンネルが切れた瞬間にトラフィックがどうなるのか、DNSのクエリがどこへ向かうのか、何かが端をすり抜けないか。Shadowsocksでは、その答えはどのクライアントを選び、どう設定したかに完全に依存します——そのいずれもプロトコルが保証するものではありません。
信頼。VPN事業者は、そのログ方針と実績で評価できる会社です——その点はノーログ方針が本当に意味することで吟味しています。Shadowsocksのサーバーは、たいていセルフホストか、小規模で多くは匿名の再販業者から買ったものです。どちらにせよ、誰かが向こうの端を運用しており、あなたのトラフィックがどこへ向かうかを観察できます。プロキシは、終端を信頼する必要をなくすのではありません。誰を信頼しているのかを変えるのであり、再販業者の場合、たいていその相手について何も知らないのです。
この比較の一般的な版——検閲を越えた、プロキシ対VPN——が欲しいなら、それはVPN対プロキシです。
なぜ10年間機能してきたのか
ディープパケットインスペクションは、その核心においてシグネチャの一致です。プロトコルを認識し、それから方針を決めます。Shadowsocksは、認識する手がかりを何も与えませんでした。それは検閲側に二つの好ましくない選択肢を残しました——宛先アドレスを一つずつブロックする、安価で借りられるサーバーを相手にしたもぐら叩きのゲームか、分類できないものをすべてブロックして、通常の暗号化トラフィックへの巻き添え被害を受け入れるかです。
長年、その巻き添え被害は割に合わず、Shadowsocksは隙間をすり抜けていました。その隙間は閉じつつあります。
「まだ機能するのか?」が今や本当の問いである理由
二つの対抗策が状況を変えました。一つ目はアクティブプロービングです。検閲システムが疑わしい接続に気づくと、同じサーバーに自ら接続し、プロキシの挙動を探りながら、それがどう応答するかを試します。二つ目はもっと無骨です。研究者たちがUSENIX Security 2023で記録したところによれば、2021年末以降、中国のファイアウォールは、最初のパケットが特徴のない高エントロピーのデータに見える接続——まさにShadowsocksを不可視にしていた構造の欠如——を、ときに単純に破棄しています。検閲側が、何ものでもないように見えるトラフィックそれ自体を信号だと判断すると、何ものでもないように見えることは変装ではなくなります。
コミュニティは二つの方向で応えました。一つ。Shadowsocksを、本当にありふれて見えるトランスポート——本物のTLSセッションやWebSocket接続——の内側に包むこと。二つ。実在のプロトコルをそのまま模すこと。trojanやREALITYの系統の後継ツールは、つつかれても通常のHTTPSとして現れます。新しいShadowsocksの仕様もまた、古いバージョンを捉えたプロービングの手口に対してプロトコルを強化しました。いたちごっこは続いています。一つの単純なツールが静かにどこでも機能する時代は終わったのです。
QUICへの転換
最新の章は、HTTP/3の下にある暗号化UDPトランスポートであるQUICを通って進みます。いまや通常のウェブトラフィックの大きな割合がQUICであり、それが優れた隠れみのになります。HTTP/3として現れるトンネルは、ノイズではなく日常の閲覧のように見えるのです。「QUIC VPN」を求める検索が本当に意味しているのはそれです——Hysteria2やTUICのような新しい回避ツールは、隠れみのと、長く損失の多い経路での性能のためにQUICに乗り、IETFのMASQUEの取り組みはHTTP/3上のプロキシを標準化しつつあります。Appleは同じ系統の発想からiCloud Private Relayを作りました——iCloud Private Relay対VPNがその比較を扱っています。
QUICも終局ではありません。検閲側は、機微な時期にUDPをまるごと速度制限したりブロックしたりすることができますし、実際にそうしています。それはトラフィックをTCPとTLSの変装へと押し戻します。どのトランスポートもどこでも勝つわけではありません——だからこそ回避ツールは多様化し続けるのであり、だからこそ持続する問いは「どのプロトコルか」ではなく、あなたのツールが衣装を替えられるかどうかなのです。
あなたに必要なのはどちらか?
実際に目の前にある問題で仕分けましょう。
- ネットワークが外に出してくれない。VPNプロトコルが特定されて破棄される場所では、難読化が決め手であり、既定の設定の標準的なVPNプロトコルは単に接続に失敗するかもしれません。これはShadowsocksの本領です——そして同じ必要が、難読化されたWireGuardのフォークを生み出しました。それはAmneziaWG対WireGuardで扱っています。
- ネットワークとプロバイダー(ISP)からのプライバシーが欲しい。デバイス全体のカバー、予測できるDNSの扱い、トンネルが切れたときの理にかなった挙動が、風変わりなトランスポートよりも重要です。それがVPNの側であり、日常の用途のほとんど——ホテルのWi-Fi、プロバイダー(ISP)によるプロファイリング、信頼できないネットワーク——がそれです。VPNが検閲を回避する仕組みが、この二つの世界の境を、より詳しく引いています。
- その両方。重くフィルタリングされたネットワークにいる人々は、たいてい両方を同時に必要とします。VPNのカバー範囲と、自分を名乗らないトラフィックです。歴史的には、それは構成を自分で部品から組み立てることを意味しました。ますますそれは、接続が初めから難読化されているVPNを意味するようになっています。
Snap VPNはこれをVPNの側から扱います。下にWireGuardを置き、当社独自の難読化技術を接続に適用して、検査システムに教科書どおりのVPNのシグネチャを手渡さないようにしています。当社は通信路レベルの具体を公開しません——変装は文書化されるとすぐに古びるからです——が、目標はこの比較全体が指し示すものと同じです。VPNトラフィックが狩られるネットワークでも依然として接続する、デバイス全体のプライバシーです。
よくある質問
ShadowsocksはVPNですか。いいえ。これは暗号化プロキシです。モバイルクライアントはデバイス全体をそれ経由でルーティングでき、それがVPNのように感じさせますが、VPNアプリが標準化する保証——デバイス全体のルーティング、漏えいの扱い、トンネル切断時の挙動——は、Shadowsocksのプロトコルそのものの一部ではありません。
Shadowsocksはまだ機能しますか。多くの場所で、多くの場合、はい——しかし古典的なShadowsocksはもはや無条件のパスを得られません。最近の検閲システムは、完全に暗号化された「構造のない」トラフィックに印を付け、疑わしいサーバーを積極的に探るので、現在の構成は強化された仕様、TLSによる包み込み、あるいは後継プロトコルに頼っています。
Shadowsocksより優れているものは何ですか。「優れている」が何を意味する必要があるか次第です。今日、検知を避けることについては、実在のHTTPSを模したり、QUICに乗ったりする後継のほうが有利です。ふつうのネットワークでの日常のプライバシーについては、ノーログのVPNのほうが、より単純でより完全なツールです。
Shadowsocksは安全ですか。暗号化は健全です——最新の認証付き暗号で、公開された仕様です。実際的なリスクは別のところにあります。あなたのサーバーを運用する者は、あなたのトラフィックがどこへ向かうかを見られますし、無作為な出所からダウンロードしたクライアントは改ざんされ得ます。セルフホストは前者に対処し、公式のビルドだけをインストールすることは後者に対処します。
結論
- Shadowsocksは、見分けのつく形を持たないことによって機能する検閲回避プロキシです。VPNはデバイス全体のプライバシートンネルです。
- 両者は異なる脅威に答えるのであり、「優れている」はあなたの脅威との関係においてのみ意味を持ちます。
- 検閲側は「何ものでもないように見える」ことに追いついたので、この分野は実在の何か——TLS、WebSocket、QUIC——のように見えることへと移りました。
- ほとんどの人にとって、ほとんどの場合、実際的な答えはVPNです——できれば、検査機器に自分を名乗らないものです。
iPhoneで、WireGuardを動かし、自分自身の接続を難読化し、あなたが誰かを尋ねない——メールも、アカウントも、トラフィックログもない——VPNが欲しいなら、Snap VPNはApp Storeにあります。