この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 30874|答える: 1

[ネットワークプロトコル] ShadowsocksRとShadowsocksの違い

[リンクをコピー]
掲載地 2017/11/10 12:41:35 | | |

SSはオリジナルで、SSRはオリジナルから派生したサードパーティ版で、オリジナルプロトコルと互換性があり、オリジナルよりもカモフラージュ機能(プロトコルや混乱)がいくつか多いです。

インターネット上ではSSRについても賛否両論、一般ユーザー向けの議論が多くあります。 SSでもSSRでも、現状は通常壁を越えるのに役立ちます。

ダウンロードするクライアントのバージョンは、購入したSSアカウントのサーバーにSSかSSRのどちらがインストールされているかによります。 どのクライアントをダウンロードしても最もオリジナルのSS機能を使うことができますが、SSRの機能(プロトコルや混乱)を使いたい場合はSSRクライアントをダウンロードする必要があります。

しかしご安心ください。提供しているすべてのノードはSSとSSRの互換性に対応しています。 SSRの使用が推奨されます。 調和を防ぐために速く!
以前からシャドウソックスについて多くの話題がありましたが、最近では多くの初心者がいわゆる「シャドウソックス・エンハンスド(ShadowsocksR)」に惹かれていることが明らかになっています。 C++/QtでShadowsocksを実装するアマチュア開発者として、この2つのフライドチキンについて簡単に意見を述べたいと思います。


シャドウソックスR

開発者にバックグラウンドやチームがあるかは分かりませんが、私が知っているのは、作者がShadowsocks C#クライアントを二次開発のためにGPL違反でクローズソース化したことです。 ここでは他の要因については触れません。事実として、GPLは明確に示されており、違反は違反です。 しかし著者はコードベースをオープンソース化し、これはインシデントの終了と見なせるため、これ以上追求する必要はありません。

状況はClowwindyがShadowsocksのコードストアを空にしてから変わりました。 以下は事実の一部に過ぎません。

ShadowsocksRの著者は、Shadowsocksとは関係のない新しいプロキシツールを一から書き直したいと述べており、今後ShadowsocksRの更新はしないと言っています
2、3日後、ShadowSocksは削除命令を受け、元のShadowsocksプロジェクトはほぼ消えてしまいました
ShadowsocksRの著者は、元のShadowsocksプロトコルには欠陥があったと述べ(次のセクションで説明します)、再び焦点を当てました
ShadowsocksRの作者はGoogle+グループを設立し、ShadowsocksR関連のコードを更新しました
シャドウソックスのセキュリティ

さて、まずShadowsocksRの著者が主張する「Shadowsocksのプロトコルの欠陥は、ほとんどの場合IVの長さが16バイトである」という説明から始めましょう。 後半は正しいです。多くの暗号化アルゴリズムは16バイトのIVを使っています(特に人気のAESやRC4-MD5など)。だから何? 以下のような理由で、いわゆる「欠陥」は発生しません。

ハンドシェイク段階の各TCP接続のIVはパスワードから計算されるのではなくランダムに生成されるため、IVは予測不可能です。
鍵がなければ、このIV部分が傍受されても暗号文は復号できません。 そして、新しいTCP接続ごとにランダム生成されたIVが使われます。つまり、異なるTCP接続からインターセプトされたデータはほとんど共通点がありません。 暗号文の復号には正しいIVと暗号の両方が必要であり、接続自体には暗号の特徴はありません。
ほとんどのIVは16バイト長で、これは256の16の乗の組み合わせであり、すべてのIVが同じならブルートフォースクラッキングは不可能で、ましてや2点目を追加することは不可能です。
ShadowsocksRのアプローチによれば、いわゆる難読ヘッダーを最初の接続の前に付け加えるのは無意味であり、その特性自体が明白であり、後のIVや固定長の本質は全く変わらないとされています。 4バイト目はランダムに入力されたデータの長さを示しているため、いわゆる「プロービング」を行う際に前の山を飛ばせば、IVをインターセプトできます。 そして数点前にも言いましたが、このランダムなIVが出ると意味がありません。 検出に使われる場合、固定された最初のバージョンは識別のために送られる裸の特徴です。
ShadowsocksRの著者は現在、サーバーがshadowsocksを実行しているかどうかを検出できるアクティブ検出スクリプトを提供しており、現在のオンラインテスト報告によると成功率は低くはない(ただし100%ではありません)。 この点に関して、Clowwindyはすでにオリジナル版で自動禁止ソリューションを提供しており、これらの悪意あるIPを自動的にブロックしています。 libQtShadowsocksにパッチを追加したところ、このパッチでこのメソッドの検出がブロックされます。このメソッドはランダムな確率でランダムな長さの文字列を返します。
しかし、これはShadowsocksプロトコルが完璧だという意味ではなく、ShadowsocksRの「解決策」が歪んでいるのは、その焦点が歪んでいるからです。 私の個人的な考えでは、公開鍵と秘密鍵を使ってセキュリティを向上させることです。初心者にはあまり優しくありませんが、セキュリティは向上し、特性も減少します(ハンドシェイク段階でIVを送信する必要はありません)。そしてShadowsocksプロトコルはCCAセキュリティ方向に発展させる必要があります。

2015年9月5日更新

ヘッダーエラー(解決不能)が見つかると、間違ったIVとIPが失敗したIVとIPリストに追加されます。IVがすでに失敗したIVリストに存在している場合、またはそのIPが失敗したIPリストに存在している場合、接続リクエストを送信したIPがブラックリストに追加され、ブラックリスト内のIPは直接接続を拒否します。 アンチディテクションに関する最新情報については本号をご参照ください。本記事ではアンチデテクション対策の更新は行いません。

2015年9月6日更新

この記事は、Shadowsocksのセキュリティについてあまり心配しすぎないことをお伝えしたいだけです。現行のプロトコルにはまだ大きな脆弱性はなく、主要なポートのサーバーも潜在的な脅威を修正するために更新されています。 また、ShadowsocksRの著者とも良好なコミュニケーションを取っており、ホワイトリストが届くまでにはしばらく時間がかかる見込みです。

2015年9月24日更新

この記事で言及されているShadowsocksのセキュリティは主にサーバーのセキュリティに関するものであり、現行のプロトコルはサーバーがブルートフォース検出され、その後ファイアウォールによってブロックされるリスクがあります(ただし検出コストは非常に高いです)。 送信されるコンテンツのセキュリティは心配する必要がなく、すべて(RC4とTABLEを除く)工業グレードの高強度暗号化アルゴリズムであり、送信されたコンテンツの解読はほぼ不可能です。

2015年11月18日更新

Shadowsocksは単一の認証を追加することでCCAに対するセキュリティを強化し、主要なポートはすでにサポートを完了しています。 Shadowsocksの目標は100%バグゼロや100%防弾であることではなく、接続が軽量かつ高速でありながら、主流の攻撃手法を実装コストが高くすることであることを改めて強調しておきます。





先の:.net/c#はDNSハイジャックのソースコードを実装しています
次に:[VS2017] ヌゲットのエージェントを設置しろ
掲載地 2019/08/09 8:32:59 |
学びました! ありがとうございます!
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com