Shadowsocksとは?を簡単に解説
マモちゃん!Shadowsocksってなんなの?!
一言でいうなら「インターネット検閲を回避するためのプロキシソフトウェア」なんだけど、、ちょっと詳しくみていこうか。
ぎょい!
Shadowsocksの開発の経緯
中国国内でのインターネット検閲に対して解決策を模索していた中国のClowwindyさんという方が、2012年にShadowsocksを開発したことに始まります。
当時は、既存のVPN技術では速度が遅く、使い勝手が悪かったため、高速な通信ができるShadowsocksが注目を集めました。
そして、オープンソースであるため、開発者やユーザーによる改良や拡張ができたことで、世界中で利用されるようになったのです。
ShadowsocksはClowwindyさんが中国のネット検問をどうにかするために開発と…メモメモ。
Shadowsocksの特徴
Shadowsocksの特徴は次のようなものがあります。
- インターネット上の通信を暗号化する
- TCPトンネリングを使用して、特定のポートを通過するトラフィックを隠蔽します。
- 多数の暗号化方式をサポート(AES、RC4、ChaCha20など)
- 軽量で効率的であり、低帯域幅のネットワークでも高速に動作する
- オープンソースであり、誰でも改善や機能追加ができる
- インターネット上の制限(地理的なブロックなど)を回避するために使われる
- 多くのプラットフォームで使用可能(Windows、macOS、Linux、iOS、Androidなど)
Shadowsocksの特徴…なんかいっぱいあると。。メモメモ。
Shadowsocksは中国のGFW(グレートファイアウォール)を回避できる?
中国のインターネット検閲を回避するためにShadowsocksは開発されたってことだったけど、本当に回避できるの?
イタチごっこなところはあるけど回避できるとされているよ。
そうなんだ。でもどうやって回避してるんだろう?
じゃ、仕組みを見ていこうか。
お願い!
そもそもYou TubeなどのWEBページはどうやって表示される?
まず、You Tubeが表示されるまでに、次のようなネットワークの流れがあります。
最初に、自分のコンピューターからルーターに接続します。ルーターは、インターネットに接続するために必要な情報(IPアドレス、DNSサーバーのアドレス、デフォルトゲートウェイなど)を持っているため、ルーターに接続することでインターネットに接続することができます。
ルーターに接続された後、インターネットサービスプロバイダー(ISP)に接続されます。ISPは、インターネットに接続するために必要な情報を持っているため、ISPに接続することでインターネットに接続することができます。
インターネットに接続したら、Webページを検索するために、DNS(Domain Name System)サーバーに問い合わせます。DNSは、WebページのURLをIPアドレスに変換することができます。
DNSサーバーからIPアドレスを取得したら、Webページを要求します。Webページを要求するために、HTTP(Hypertext Transfer Protocol)を使用します。HTTPは、Webページを要求し、サーバーからWebページを受信するためのプロトコルです。
Webページを要求したら、You TubeのサーバーからWebページが送信されます。Webページが送信されると、ブラウザーによってWebページが表示されます。
専門用語の補足説明
- ルーター:ネットワークのデータパケットを転送するための機器で、インターネットに接続するための必要な情報を持っています。
- IPアドレス:インターネット上のコンピューターやサーバーを一意に識別するための番号
- DNSサーバー:ドメイン名(例えば「www.example.com」)をIPアドレスに変換する役割
- デフォルトゲートウェイ:ネットワーク上のデバイスが外部ネットワーク(例えばインターネット)に接続する際に使用するルーターのIPアドレス
- インターネットサービスプロバイダー(ISP):インターネットに接続するためのサービスを提供する企業や団体のこと
- DNS(Domain Name System):WebページのURLをIPアドレスに変換するためのシステム
- HTTP(Hypertext Transfer Protocol):Webページを要求し、サーバーからWebページを受信するためのプロトコルで、WebブラウザーとWebサーバーの間で使用
次に、上記の流れのどこにGFWが関係していくのかを見ていきましょう。
WEBページが表示されるときGFWはどうやってブロックする?
まずGFWは、次のような複数の技術を使ってWEBページが表示されるのをブロックします。
DNSポイズニング(DNS Spoofing):GFWは、DNSサーバーに対して偽の情報を送信することで、許可されていないWebサイトのIPアドレスを返させないようにします。このため、中国国内のユーザーは、WebサイトのURLを入力しても、正しいIPアドレスを取得できず、Webページを表示することができません。
IPアドレスブロック:GFWは、許可されていないWebサイトのIPアドレスをブロックすることもあります。これによって、Webサイトへのアクセスを完全に制限することができます。ただし、IPアドレスが変更された場合や、複数のWebサイトが同じIPアドレスを使用している場合、正当なWebサイトもブロックされる可能性があります。
パケットフィルタリング:GFWは、特定のキーワードを含む通信を検知することができます。これによって、許可されていないWebサイトや情報を含む通信をブロックすることができます。また、GFWは、TCP/IPパケットの送受信を監視し、特定のプロトコルを使用した通信をブロックすることもできます。
これらの技術を組み合わせることで、GFWは、中国国内からのインターネットアクセスを制限することができます。
そして、さきほど、You Tubeが表示されるまでの仕組みを5つのステップで解説しました。次のステップです。
- コンピューターからルーターへの接続
- インターネットサービスプロバイダーへの接続
- DNSサーバーの検索
- You TubeのWebページを要求
- Webページの受信
で、このステップのどこにGFWが影響をおよぼすのかを簡単に説明すると次のようになります。
- パソコンからルーターへの接続
- このステップは、通常、GFW対策の影響を受けません。
- インターネットサービスプロバイダ(ISP)に接続
- このステップでは、GFWがIPアドレスブロックを使用して、特定のウェブサイトやサービスへのアクセスを防止することがあります。
- DNSサーバーの検索
- GFWは、DNSポイズニングを使用して、特定のウェブサイトに対して不正なIPアドレスを返す偽のDNSサーバーにユーザーをリダイレクトし、それらのサイトへのアクセスをブロックすることがあります。
- You TubeのWebページを要求
- DNSポイズニングを回避し、特定のウェブサイトの正しいIPアドレスを取得できた場合、GFWはパケットフィルタリングにより、そのウェブサイトとの間のトラフィックをブロックすることがあります。
- Webページの受信
- Webページの受信ができて、Webサイトに正常にアクセスできた場合、GFWはパケットフィルタリングにより、動画や音声ファイルなど特定の種類のコンテンツの転送を遅くしたりブロックしたりすることがあります。
このように、GFWは特定のWEBサイトへのアクセスをさまざまなステップでブロックし、中国国内のインターネット上の情報の流れをコントロールするために必死こきまろというわけです。
次に、Shadowsocksがそれらのブロックを、どのように回避するのか見ていきましょう。
GFWのブロックをShadowsocksはどうやって回避する?
まず、Shadowsocksは、GFWを回避するために、つぎのような技術を使います。
- エフェメラルポート:Shadowsocksは、各接続にランダムなポートを動的に割り当てるため、GFWがトラフィックをブロックするのが困難になります。
- 難読化:Shadowsocksは、トラフィックを通常のHTTPSトラフィックに偽装する難読化技術を使用し、GFWが特定しブロックするのがより困難になります。
- 暗号化:Shadowsocksは、プロキシサーバーを介して通過するすべてのトラフィックを暗号化するため、GFWがコンテンツを監視または検閲するのが困難になります。
- 複数のプロトコル:Shadowsocksは、TCP、UDP、HTTP、HTTPS、FTP、さらにはBitTorrentを含む複数のプロトコルをサポートしているため、より多目的で、GFWに検出される可能性が低くなります。
- 柔軟な構成:Shadowsocksは、ユーザーがプロキシ設定をカスタマイズし、独自のサーバーを選択できるようにするため、特定のIPアドレスまたはドメインへのトラフィックをすべてブロックするのがより困難になります。
そして、さきほどGFWがWEBページを表示するさい、どこにShadowsocksの技術が使われるかというと、次のようになります。
- パソコンからルーターへの接続
- このステップは、通常、GFW対策の影響を受けないので、Shadowsocksも関係ありません。
- インターネットサービスプロバイダ(ISP)に接続
- GFWのIPアドレスブロックを、Shadowsocksはエフェメラルポートを使用して、GFWがブロックできないランダムなポートを使用し、この制限を回避します。
- DNSサーバーの検索
- GFWのDNSポイズニングを、ShadowsocksはDNSクエリを自動的に暗号化し、検閲を回避します。
- YouTubeのWebページを要求
- GFWはパケットフィルタリングに対して、Shadowsocksは暗号化されたトンネルを使用するため、GFWはトラフィックを検出できず、ブロックすることができません。
- Webページの受信
- GFWのパケットフィルタリングを、Shadowsocksの複数の暗号化プロトコル、柔軟な構成などで回避します。
ShadowsocksがGFWを回避する仕組みはこんな感じだよ。
わかったような、わからないような…
何となくわかった気になれればそれでオッケーだよカッポ。
ぎょい!
ShadowsocksとVPNの違い
ところでShadowsocksとVPNって違うものなの?
違うよ。Shadowsocksはプロキシサーバーを介して通信内容を暗号化するだけで、ユーザーのIPアドレスが確実に保護されるわけではないんだ。
へぇVPNはどうなの?
VPNは、VPNサーバーを介して通信を暗号化し、ユーザーのIPアドレスを秘匿化するんだ。
ほぉほぉ。他にはどんな違いがあるの?
他には次のような違いがあるよ。
項目 | Shadowsocks | VPN接続 |
---|---|---|
通信速度 | TCP/IPプロトコルを使用するため高速だが、インターネット接続速度、サーバーの帯域幅、暗号化方式に影響を受ける。 | VPNサーバーとの距離やVPNプロトコルの種類、ユーザーのインターネット接続速度などに影響を受けるが、高速なVPNサービスもある。 |
暗号化 | 複数の暗号化方式をサポートし、暗号化の強度は使用する方式によって異なる。 | AESやRSAなどのさまざまな暗号化方式があり、より高度な暗号化方式を使用すると、より安全にデータを送信できる。 |
対応デバイス | Windows、Mac、Linux、iOS、Android、OpenWRTルーターに対応している。 | Windows、Mac、Android、iOS、Linuxなど、多くのデバイスに対応しているが、すべてのVPNサービスがすべてのデバイスに対応しているわけではない。 |
用途 | ネットワーク制限を回避したり、公共Wi-Fi環境での通信を暗号化することができる。 | セキュアなインターネット通信を実現し、公共Wi-Fiや海外旅行先でのインターネット使用、特定の国や地域から制限されたウェブサイトにアクセスするために使用される。 |
設定方法 | クライアントソフトウェアを使用する方法と、設定ファイルを手動で編集する方法がある。 | VPNクライアントソフトウェアをダウンロードしてインストールし、アカウント情報を入力することで設定できる。一部のVPNサービスはブラウザ拡張機能を使用してVPN接続を確立することができる。 |
安全性 | 一定のセキュリティを提供するが、サーバー側での脆弱性がある場合、攻撃者に情報を取得される可能性がある。パスワードが漏洩した場合、第三者によるアクセスを許可してしまう。 | 通信を暗号化することで第三者によるデータの傍受や盗聴を防止できるが、すべてのVPNサービスが安全というわけではないため、信頼できるVPNサービスを選択することが重要。 |
匿名性 | 通信内容を監視されることを防ぐことができるが、匿名性を高めるためには、いくつかの対策が必要である。 | 自分のIPアドレスを隠すことができ、ユーザーの位置情報やオンライン行動を追跡されることを防止できる。VPNサービス自体が第三者に情報を提供する可能性があるため、信頼できるVPNサービスを選択する必要がある。 |
ログの取り扱い | 一部のShadowsocksプロバイダーは、ユーザーのログを収集していることがあるため、プライバシーポリシーを確認する必要がある。 | VPNサービスは、ユーザーのログを収集する場合があり、ログの取り扱いについてのプライバシーポリシーを確認することが重要である。 |
脆弱性 | Shadowsocksサーバー側での脆弱性がある場合、攻撃者に情報を取得される可能性がある。 | VPNサービスには脆弱性が存在することがあるため、信頼できるVPNサービスを選択することが重要である。 |
なんだかよくわらないなぁ
情報セキュリティの専門家になるわけじゃないなら、とりあえずShadowsocksとVPNは違うものってわかってればいいと思うよ。
りかい!