仮想プライベートネットワーク(VPN)は、コンピュータとVPNサーバー間を移動す この完全なVPN暗号化ガイドでは、暗号化とは何か、そしてそれがVPN接続でどのように使用されているかを詳細に見ていきます。
おそらく最も重要なのは、VPNサービスで使用される暗号化用語の配列を説明することです。 このガイドを読んだ後、この複雑な主題をより深く理解し、VPNプロバイダーによって行われたセキュリティ要求をよりよく評価できるようになるこ
予選
VPNが何であり、何ができるのかわからない場合は、初心者向けのVpnガイドをご覧ください。
私たちの目的は、VPN暗号化の主要な機能をできるだけ簡単に提示することです。 暗号化が複雑な主題であるという事実から、逃げることはありませんが。
暗号化という用語でさえ、あなたの目がグレージングを開始するが、あなたはまだ良いVPNサービスで何を見るべきかを知りたい場合は、目次を使用して要約にまっすぐにジャンプすることができます。
暗号化とは何ですか?
“初めから始めなさい、”王は非常に重々しく言った、”そしてあなたが終わりに来るまで続けなさい:そして停止してください。”
ルイス-キャロル、不思議の国のアリス
最も簡単な類推は、暗号化がロックであるということです。 あなたが正しいキーを持っているならば、ロックは簡単に開くことができます。 誰かが正しいキーを持っていないが、そのロックによって保護されているstrongboxの内容(つまり、データ)にアクセスしたい場合は、ロックを解除しようとするこ
銀行の金庫を確保するロックがスーツケースを確保するロックよりも強いのと同じように、いくつかの暗号化は他の暗号化よりも強力です。
最も強力な暗号化を備えたVPNが必要な場合は、詳細については、最も安全なVpnリストを参照してください。
基本
あなたが子供の頃、メッセージの一つの文字を別の文字に置き換えて”秘密のメッセージ”を作成したゲームをプレイしたことはありますか? 置換は、あなたが選んだ式に従って行われました。
たとえば、元のメッセージの各文字をアルファベットの後ろに三つの文字で置き換えた場合があります。 他の誰かがこの式が何であるかを知っていたか、それを解決することができた場合、彼らはあなたの”秘密のメッセージ”を読むことができます。暗号の専門用語では、あなたがしていたことは、非常に単純な数学的アルゴリズムに従ってメッセージ(データ)を「暗号化」することでした。 暗号学者は、この式を「暗号」と呼んでいます。「それを解読するには、鍵が必要です。 これは、暗号の最終的な出力を決定する変数パラメータです。 このパラメータがなければ、暗号を復号化することは不可能です。
誰かが暗号化されたメッセージを読みたいが、鍵を持っていない場合、彼らは暗号を”解読”しようとする必要があります。 暗号化は、単純な文字置換暗号を使用する場合、それをクラッキングすることは容易である。 しかし、暗号化は、数学的アルゴリズム(暗号)をより複雑にすることによって、より安全にすることができます。
たとえば、メッセージの3番目の文字をすべて、その文字に対応する数字で置き換えることができます。
暗号化キーの長さ
現代のコンピュータ暗号は非常に複雑なアルゴリズムです。 スーパーコンピュータの助けを借りても、これらはすべての実用的な目的のために不可能ではないにしても、クラックすることは非常に困難です。 暗号の強度を測定する最も粗雑な方法は、暗号を作成するために使用されるアルゴリズムの複雑さによるものです。
アルゴリズムが複雑になればなるほど、ブルートフォース攻撃と呼ばれるものを使用して暗号を解読することは難しくなります。
ブルートフォース攻撃非常に原始的な形式の攻撃(網羅的なキー検索とも呼ばれます)である場合、基本的に正しいキーが見つかるまで可能な数字のすべての組
コンピュータは、ゼロと1の二進数を使用してすべての計算を実行します。 暗号の複雑さは、アルゴリズムを表現するために必要な1と0の生の数であるビット単位のキーサイズに依存します。
これは鍵の長さとして知られており、任意の暗号に対してブルートフォース攻撃を正常に実行する実用的な実現可能性を表しています。
可能な組み合わせの数(したがって、それらをブルートフォースするのが難しい)は、キーサイズとともに指数関数的に増加します。 AES暗号の使用(後を参照):
これを視点に入れるには:
- 2011年には、単語の中で最速のスーパーコンピュータは富士通Kでした.これは10.51ペタフロップスのRmaxピーク速度が可能でした. この数字に基づいて、128ビットAES(Advanced Encryption Standard)キーを強制的に解読するには、富士通K1.02×10^18-約10億億(1500億)-年かかります。 これは宇宙の年齢(137億5000万年)よりも古いです。
- 今、世界で最も強力なスーパーコンピュータ(2017年)は、中国のSunway TaihuLightです。 この獣は93.02ペタフロップのピーク速度が可能です。 これは、世界で最も強力なコンピュータは、まだブルートフォース128ビットのAESキーにいくつかの885兆年かかることを意味します。
- 256ビット暗号をブルートフォースするために必要な操作の数は3.31×10^56です。 これは、宇宙の原子の数にほぼ等しいです!
コンピュータ暗号
暗号化キーの長さは含まれる生の数の量を指しますが、暗号は暗号化を実行するために使用される数学–実際の数式またはアルゴリズ 私たちが今見てきたように、現代のコンピュータ暗号を強制的に強制することは非常に実用的ではありません。
これらの暗号アルゴリズムの弱点(時には意図的)であり、暗号化が壊れてしまう可能性があります。 これは、(ひどく設計された)暗号の出力が、暗号化の前に元の情報から何らかの構造を明らかにする可能性があるためです。 これにより、試行する可能性のある組み合わせのセットが減少し、実際には有効なキーの長さが減少します。
たとえば、Blowfish暗号は、確率論における誕生日問題の背後にある数学を悪用する攻撃に対して脆弱です。 暗号アルゴリズムの弱点の研究は、暗号分析として知られています。
長いキーの長さは、可能な結果の数を大幅に増加させるため、そのような弱点を補います。
暗号自体を攻撃する代わりに、敵は鍵自体を攻撃することができます。 これは、特定のサイトまたは特定のソフトウェア製品に影響を与える可能性があります。 しかし、暗号アルゴリズムのセキュリティはそのままであり、同じアルゴリズムを使用しているが、鍵の安全な生成を持つ他のシステムは、ブレークによ
暗号鍵の長さ
暗号の強さは、暗号自体の数学とビットで表される鍵の長さの両方に依存します。 このため、暗号は通常、使用される鍵の長さとともに記述されます。したがって、AES-256(256ビットの鍵長を持つAES暗号)は、通常、AES-128よりも強力であると考えられています。 私たちはここで非常に複雑な数学を扱っているので、私は通常言うことに注意してください(後でAESに関する私の注意を参照してください)。
鍵の長さだけでは暗号の強さを示す良い指標ではないことに注意することが重要です。 重要なのは、鍵の長さと暗号の組み合わせです。 たとえば、非対称暗号化に使用される暗号は、同等の保護を提供するために、対称暗号化に使用される暗号よりもはるかに長い鍵サイズを使用します。
この表は、RSAで発見された新しい攻撃を考慮していないため、少し古くなっています。 また、RSAの楕円曲線とDiffie-Hellmanの変種は、従来のものよりもはるかに強力であることにも注目する価値があります。 しかし、うまくいけば、あなたはアイデアを得る。
注意すべきことの一つは、キーの長さが高いほど、より多くの計算が関与するので、より多くの処理能力が必要であるということです。 これは、データを暗号化および復号化できる速度に影響します。 したがって、VPNプロバイダなどは、暗号化方式を選択する際に、セキュリティと実用的な使いやすさのバランスをとるための最良の方法を決定 この細かいバランスをうまく取ることができたいくつかのVPNプロバイダーがあります。 詳細については、fast Vpnガイドをご覧ください。
さまざまなVPNプロトコルで使用される主な暗号については少し後に説明しますが、最も一般的な暗号はBlowfishとAESです。 これに加えて、RSAは暗号鍵の暗号化と復号化に使用され、SHA-1またはSHA-2はデータを認証するためのハッシュ関数として使用されます。
非対称暗号化
完璧な転送秘密
完璧な転送秘密(PFS)は、一時的な暗号化キーを使用するとも呼ばれ、または単に転送秘密(FS)”完璧”という言葉を使用することに慣れていない人によっても呼ばれます。”
最新のセキュリティで保護されたオンライン通信は、SSL/TLSに依存しています。 これは、HTTPS webサイトとOpenVPNプロトコルで使用されます。 TLS(Transport Layer Security)は、非対称暗号化プロトコルです。 非対称暗号を使用すると、データは公開鍵を使用して保護され、誰もが利用できるようになります。 ただし、復号化できるのは、正しい秘密鍵を保持している意図した受信者のみです。
この秘密鍵は秘密にしておく必要があります。 それが敵によって盗まれたり割れたりした場合、その敵はそれによって保護された通信を簡単に傍受して読み取ることができます。
残念ながら、サーバーや企業全体では、すべての通信を保護するために一つの秘密暗号化キーを使用するのが一般的です。 どうして? それは簡単だからです。 ただし、そのキーが侵害された場合、攻撃者はそのキーで暗号化されたすべての通信にアクセスできます。
この秘密暗号化キーは、したがって、サーバーや会社とのすべての通信のロックを解除するために使用できる”マスターキー”になります。 NSAは、おそらく安全なデータの広大な連を収集するために、この弱点を悪用していることが知られています。
解決策は完全な前方秘密です。 これは、セッションごとに新しい一意の秘密暗号化キーが生成されるシステムです。 たとえDiffie-Hellman交換数学が複雑であっても、それは簡単な考えです。 これは、各TLSセッションに独自のキーセットがあることを意味します。 したがって、用語”一時的なキー”-彼らは一度使用され、その後消えます。
したがって、悪用できる”マスターキー”はありません。 セッションが侵害されたとしても、侵害されたのはそのセッションだけです–誰もがそのサーバーや会社と持っている他のすべてのセッションではあ
一般的ではありませんが、セッション内(たとえば、1時間ごと)でPFSキーを更新することも可能です。 これにより、秘密鍵が侵害された場合でも、敵によって傍受される可能性のあるデータの量がさらに制限されます。
私が数年前にこの記事を書いたとき、HTTPS webサイトとOpenVPN接続の両方にPerfect Forward Secrecyを使用することは悲惨なことにまれでした。 幸いなことに、この状況は多少変わっています。 決して普遍的ではありませんが、一時的なキーの使用は後半に大幅に増加しています。
VPN暗号化プロトコル
VPNプロトコルは、二つのコンピュータ間の安全な暗号化された接続をネゴシエートするために使用される命令(メカニズム)のセットです。 このようなVPNプロトコルの数は、一般的に商用VPNサービスでサポートされています。 これらの中で最も注目すべきものは、PPTP、L2TP/IPSec、OpenVPN、SSTP、およびIkev2です。私は以下のそれぞれを見ていますが、OpenVPNは商用VPNサービスで使用される業界標準のVPNプロトコルです-正当な理由があります。 これは非常に安全で、ほぼすべてのVPN対応デバイスで使用できます。 したがって、OpenVPNについて詳細に議論するために、追加のデジタルインクを使用します。
PPTP
長所
- クライアントはほぼすべてのプラットフォームに組み込まれています
- 非常に簡単に設定できます
短所
- 非常に安全でない
- nsa
- 簡単にブロック
pptpとは何ですか?
これはVPNプロトコルのみであり、セキュリティを提供するためにさまざまな認証方法に依存しています。 商用VPNプロバイダーの間では、これはほとんど常にMS-CHAP v2です。 PPTPで使用される暗号化プロトコル(標準暗号に似ています)は、Microsoft Point-to-Point Encryption(MPPE)です。
Point-to-Point Tunneling Protocol(PPTP)は、ダイヤルアップネットワーク上のVPNを作成するためにMicrosoftが設立したコンソーシアムによって開発されました。 そのため、PPTPは長い間、企業のVPNネットワークの標準プロトコルでした。
PPTPは、ほぼすべてのVPN対応プラットフォームとデバイスで標準として利用できます。 追加のソフトウェアをインストールする必要なく、セットアップが簡単です。 これにより、PPTPはビジネスVpnと商用VPNサービスの両方で人気のある選択肢となります。
それはまた、実装するために低い計算オーバーヘッドを必要とするという利点を持っています…だから、それは速いです!
残念ながら、PPTPは安全ではありません。 まったく。 現在は通常128ビットの暗号化キーのみを使用していますが、1999年にWindows95OSR2に最初にバンドルされて以来、多くのセキュリティ上の脆弱性が明るみに出
これらの中で最も深刻なのは、カプセル化されていないMS-CHAP v2認証の可能性です。 このエクスプロイトを使用して、PPTPは二日以内に割れています。 Microsoftはこの欠陥にパッチを適用しましたが、代わりにL2TP/IPsecまたはSSTPを使用することを推奨しています。
NSAがPPTP暗号化通信をほぼ確実に標準で復号化していることは驚くべきことではありません。 さらに心配なのは、PPTPが安全であると考えられていたときに暗号化された膨大な量の古いデータをNSAが収集したことです。 このレガシーデータもほぼ確実に復号化できます。
PPTPにはTCPポート1723とGREプロトコルの両方が必要です。 GREをファイアウォールするのは簡単で、PPTP接続をブロックするのは簡単です。
L2TP/IPsec
長所
- 通常は安全と考えられています
- セットアップが簡単
- すべての最新のプラットフォームで利用可能
- OpenVPNよりも高速です(多分)
短所
- NSAによって侵害される可能性がある(証明されていない)
- NSAによって意図的に弱体化される可能性がある(証明されていない)
- 制限的なファ
Layer2Tunneling Protocol(L2TP)は、ほとんどすべての最新のオペレーティングシステムとVPN対応デバイスに組み込まれています。 したがって、PPTPと同じように簡単かつ迅速にセットアップできます。
それ自体では、L2TPはそれを通過するトラフィックに暗号化や機密性を提供しないため、通常はIPsec認証スイート(L2TP/IPsec)で実装されます。 プロバイダーがL2TPまたはIPsecのいずれかを参照している場合でも(一部の場合と同様)、実際にはL2TP/IPSecをほぼ確実に意味します。L2TP/IPsecでは、3DES暗号またはAES暗号のいずれかを使用できます。 3DESはMeet-in-the-middleおよびSweet32衝突攻撃に対して脆弱であるため、実際にはこれらの日に遭遇することはほとんどありません。
L2TP/IPSecプロトコルで使用されるポート数が限られているため、問題が発生する可能性があります。 これは、NATファイアウォールの背後で使用されると複雑になる可能性があります。 この固定ポートへの依存は、プロトコルをブロックするのもかなり簡単になります。
L2TP/IPsecはデータを二度カプセル化するため、処理が遅くなります。 これは、カーネル内で暗号化/復号化が行われ、L2TP/IPsecがマルチスレッドを可能にするという事実によって相殺されます。 OpenVPNはそうではありません。 その結果、L2TP/IPsecは理論的にはOpenVPNよりも高速です。
AES暗号を使用したL2TP/IPsecには既知の主要な脆弱性はなく、適切に実装されていれば安全である可能性があります。 しかし、Edward Snowdenの啓示は、NSAによって標準が侵害されていることを強く示唆しています。
John Gilmoreはセキュリティ専門家であり、Electronic Frontier Foundationの創設メンバーである。 彼は、IPSecが設計段階で意図的に弱体化した可能性が高いと説明しています。
間違いなくはるかに大きな問題は、多くのVPNサービスがl2TP/IPsecを実装していないことです。 具体的には、彼らは自由に自分のウェブサイトからダウンロードすることができます事前共有キー(Psk)を使用しています。
これらのPskは接続の認証にのみ使用されるため、危険にさらされた場合でも、データはAESを使用して安全に暗号化されたままです。 ただし、攻撃者は事前共有キーを使用してVPNサーバーを偽装する可能性があります。 その後、暗号化されたトラフィックを盗聴したり、悪意のあるデータを接続に注入したりする可能性があります。
概要
いくつかの主に理論的な問題にもかかわらず、l2TP/IPsecは、一般的に公開されている事前共有キーを使用しない場合、安全であると 非常に多くのデバイスとの組み込みの互換性は、非常に良い選択にすることができます。
SSTP
長所
- 非常に安全
- 完全にWindowsに統合
- マイクロソフトのサポート
- ほとんどのファイアウォールをバイパスできます
短所
- マイクロソフトが所有する独自の標準
sstpとは何ですか?
SSTPはSSL3.0を使用する暗号化の一種であり、OpenVPNと同様の利点があります。 これには、検閲を回避するためにTCPポート443を使用する機能が含まれます。 Windowsとの緊密な統合により、そのプラットフォーム上のOpenVPNよりも使いやすく、安定したものになります。しかし、OpenVPNとは異なり、SSTPはMicrosoftが所有する独自の標準です。 これは、コードが一般の精査に開放されていないことを意味します。 NSAとの協力のMicrosoftの歴史、およびWindowsオペレーティングシステムに組み込まれた可能性のあるバックドアについての憶測は、標準への自信を鼓舞しません。
Secure Socket Tunneling Protocol(SSTP)は、MicrosoftによってWindows Vista SP1で導入されました。 Linux Vpn、さらにはMac OS Xでも利用可能になりましたが、主にWindows専用のプラットフォームです。
もう一つの問題は、SSL v3.0がPOODLE攻撃として知られているものに対して脆弱であるため、現在は推奨されていないということです。 この問題がSSTPにも影響するかどうかは不明ですが、やはり自信を与えることはほとんどありません。
概要
紙の上で、SSTPはOpenVPNの利点の多くを提供しています。 しかし、独自のMicrosoft標準であることは、その信頼性をひどく損なう。
Ikev2
長所
- 高速
- 安定-特にインターネット接続が失われた後にネットワークを切り替えたり再接続したりする場合
- 安全(AESを使用している場合)
- セットアップが簡単(少なくともユーザー側!)
- プロトコルはBlackberryデバイスでサポートされています
短所
- 多くのプラットフォームでサポートされていません
- サーバー側でIkev2を実装することはトリッキーであり、潜在的に問題が発生する可能性があります
- オープンソースの実装のみを信頼する
IKEv2とは何ですか?
Internet Key Exchangeバージョン2(Ikev2)は、MicrosoftとCiscoによって共同開発されました。 Windows7+、Blackberry、およびiOSデバイスでネイティブにサポートされています。 これが、多くのiOS VPNサービスがOpenVPNの代わりにIkev2を使用する理由です。
独立して開発されたIkev2の互換バージョンは、Linuxおよびその他のオペレーティングシステム用に開発されました。 これらの反復の多くはオープンソースです。 いつものように、私はMicrosoftによって開発されたものには注意することをお勧めします。 ただし、Ikev2のオープンソース版には問題はありません。
Ikev2はIPsecプロトコルスイートの一部です。 これは、IPsec内でSA(Security Association)属性を渡すことによってトラフィックが安全であることを保証し、多くの点でIkev1を改善します。 したがって、IKEv2はIkev2/IPsecと呼ばれることがあります。 一方、IKEv1は単にIPsecと呼ばれることがよくあります。
MicrosoftによってVpn Connectと呼ばれるIkev2は、ユーザーが一時的にインターネット接続を失ったときに自動的にVPN接続を再確立するのに特に優れています。 たとえば、列車のトンネルに出入りするときなどです。
モビリティとマルチホーミング(MOBIKE)プロトコルをサポートしているため、Ikev2はネットワークの変化に対しても非常に回復力があります。 これにより、Ikev2は、ホームWiFiとモバイル接続を定期的に切り替える携帯電話ユーザーや、ホットスポット間を定期的に移動する携帯電話ユーザーに最適です。
Ikev2はL2TP/IPSecほど一般的ではありませんが、多くの少数のプラットフォームでサポートされています(この状況は急速に変化していますが)。 ただし、セキュリティ、パフォーマンス(速度)、安定性、および接続を確立(および再確立)する能力の点で、L2TP/IPsecよりも優れていないにしても、少なくとも同
OpenVPN
長所
- 非常に安全(PFSを使用している場合)
- 高度に設定可能
- オープンソース
- ファイアウォールをバイパスできます
- サードパーティ製のソフ7422>
OpenVPNとは何ですか?
OpenVPNは、OpenSSLライブラリとTLSプロトコルを使用し、他の技術のアマルガムとともに、強力で信頼性の高いVPNソリューションを提供するオープンソース技術です。 正当な理由のために-それは今、商用VPNサービスで使用される業界標準のVPNプロトコルです。
OpenVPNの主な強みの一つは、高度に設定可能であるということです。 これは、ネイティブプラットフォームではサポートされていませんが、サードパーティのソフトウェアを介してほとんどのプラットフォームで利用可能です。 カスタムOpenVPNクライアントとアプリは、多くの場合、個々のVPNプロバイダーから入手できますが、コアオープンソースコードはOpenVPNプロジェクトによって開発され
OpenVPNプロジェクトの多くの開発者や貢献者もOpenVPN Technologies Inc. プロジェクトを監督しています。
OpenVPNはUDPポートで最適に動作しますが、任意のポートで実行するように設定できます(後のメモを参照)。 これには、通常のHTTPSトラフィックで使用されるTCPポート443が含まれます。 TCPポート443でOpenVPNを実行すると、銀行、電子メールサービス、オンライン小売業者が使用する安全な接続とは別に、VPN接続を見分けるのが難しくなります。 これにより、OpenVPNはブロックするのが非常に困難になります。OpenVPNのもう1つの利点は、暗号化を提供するために使用されるOpenSSLライブラリが多数の暗号をサポートしていることです。 ただし、実際には、商用VPNサービスで一般的に使用されるのはBlowfishとAESのみです。 私はこれらを以下に議論します。
Edward Snowdenから得られた情報に照らして、Perfect Forward Secrecyが使用されている限り、OpenVPNはNSAによって侵害されたり弱体化されたりしていないようです。
OpenVPNの最近のクラウドソーシング監査が完了しました。 ユーザーのプライバシーに影響を与える重大な脆弱性は発見されませんでした。 いくつかの脆弱性が発見され、OpenVPNサーバーがサービス拒否(DoS)攻撃にさらされる可能性がありますが、これらはOpenVPN2.4.2でパッチが適用されています。
OpenVPNは、通常、利用可能な最も安全なVPNプロトコルとみなされ、VPN業界全体で広くサポートされています。 したがって、OpenVPN暗号化については、以下で詳細に説明します。
OpenVPN暗号化
OpenVPN暗号化は、データチャネル暗号化と制御チャネル暗号化の二つの部分で構成されています。 データチャネル暗号化は、データを保護するために使用されます。 制御チャネル暗号化は、コンピュータとVPNサーバー間の接続を保護します。
いずれの防御も最も弱い点と同じくらい強力であるため、一部のVPNプロバイダが他のチャネルよりもはるかに強力な暗号化を使用していることは残念です(通常は制御チャネル上で強力です)。たとえば、RSA-4096ハンドシェイク暗号化とSHA-512ハッシュ認証を備えたAES-256暗号を使用していると宣伝されているVPNサービスを見ることは珍しくありません。 これは、SHA1ハッシュ認証を使用して単なるBlowfish-128で暗号化されたデータチャネルではなく、制御チャネルの暗号化のみを参照することに気付くまで、非常 これはマーケティングの理由だけのためにされる。
データチャネルと制御チャネルで異なる暗号化が使用されている場合、OpenVPN接続の真の強度は、使用されているより弱い暗号化スイートによって測定され
最大限のセキュリティを確保するには、データ暗号化と制御チャネル暗号化の両方を可能な限り強力にする必要があります。 ただし、使用される暗号化が強ければ強いほど、接続が遅くなるため、一部のプロバイダはデータチャネル暗号化を優先します。
制御チャネル暗号化は、TLSがコンピュータとVPNサーバー間の接続を安全にネゴシエートするために使用される技術であるため、TLS暗号化とも呼ばれます。 これは、HTTPSで暗号化されたwebサイトへの接続を安全にネゴシエートするためにブラウザで使用されるのと同じ技術です。
- 制御チャネル暗号化は、暗号、ハンドシェイク暗号化、およびハッシュ認証で構成されます。
- データチャネル暗号化は、暗号とハッシュ認証で構成されます。
VPNプロバイダは、多くの場合、制御チャネルとデータチャネルの両方で同じレベルの暗号化を使用します。 私たちのレビューと「信号機」のテーブルでは、各チャンネルに異なる値が使用されている場合にのみ、それらを別々にリストします。
プロバイダーがAES-256暗号を使用していると述べた場合、これはAES-256暗号が制御チャネルとデータチャネルの両方に使用されていることを意味します。*
(*これは、少なくとも、ケースでなければなりません。 一部のレガシーレビューは現在のガイドラインを満たしていませんが、これらは時間内に段階的に廃止する必要があります)。
暗号
OpenVPNは、制御チャネルとデータチャネルの両方でデータを保護するために、多数の対称キー暗号を使用できます。 実際には、商用VPNプロバイダーで使用される唯一のものは、Blowfish、AES、および(非常にまれに)Camelliaです。
Blowfish
Blowfish-128はOpenVPNで使用されるデフォルトの暗号です。 キーサイズは理論的には32ビットから448ビットの範囲ですが、Blowfish-128は野生で遭遇する可能性のある唯一のバージョンです。
フグはしばしばカジュアルな目的のために十分に安全であると考えられていますが、弱点が知られています。 これは有名な暗号学者Bruce Schneierによって作成されましたが、2007年には「現時点ではまだ使用されていることに驚いています。”
私たちの見解では、Blowfish-128の使用はOpenVPNデータチャネルの2番目の防衛線として許容されます。 ただし、制御チャネルで使用する場合は、安全であると見なされるべきではありません。AES
AESはVPN業界全体の「金本位制」対称鍵暗号となっています。 AESはNIST認定を受けており、ほぼ普遍的に非常に安全であると考えられています。 AES-256は、「安全な」データを保護するために米国政府によって使用されています。
Blowfishの64ビットブロックサイズではなく128ビットのブロックサイズを持っているという事実は、Blowfishよりも大きなファイル(4GB以上)を処理できることを これに加えて、AES命令セットは、ほとんどのプラットフォームに組み込まれたハードウェアアクセラレーションの恩恵を受けます。AESは通常、128ビットおよび256ビットのキーサイズで使用できます(192ビットAESも存在します)。 AES-128は、誰もが知っている限り安全なままです。 しかし、暗号化標準に対するNSAの攻撃の程度について私たちが今知っていることを考えると、ほとんどの専門家はAES-256がより高いセキュリティマージンを提供することに同意しています。
ただ、誰もこの主題を簡単に見つけられないようにするために、この問題についていくつかの議論があります。 AES-128はAES-256よりも強力なキースケジュールを持っており、AES-128は実際にはAES-256よりも強力であると主張する非常に著名な専門家がいます。
しかし、一般的なコンセンサスは、AES-256がより強力であるということです。
Camellia
Camelliaは最新の安全な暗号であり、少なくともAESと同じくらい安全で迅速です。 それは128、192および256ビットの主サイズで利用できる。 しかし、NIST認証と米国政府によるその使用のおかげで、AesはCamelliaの代わりにほとんど常に使用されています。
しかし、以下で説明するように、NIST認定の暗号を信頼しない理由があります。 Camelliaが非NIST暗号であるという事実は、AESよりもそれを選択する主な理由です。 ただし、このオプションはまれにしか利用できません。
CamelliaがAESほど弱さについて十分にテストされていないことにも注目する価値があります。
ハンドシェイク暗号化
お使いのデバイスとVPNサーバー間の接続を安全にネゴシエートするために、OpenVPNはTLSハンドシェイクを使用します。 これにより、OpenVPNクライアントとVPNサーバーは、通信する秘密鍵を確立することができます。
このハンドシェイクを保護するために、TLSは通常、RSA公開鍵暗号方式を使用します。 これは、TLS/SSL証明書を識別するために使用される暗号化およびデジタル署名アルゴリズムです。 ただし、代わりにDiffie-HellmanまたはECDHキー交換を使用することもできます。RSAは非対称暗号化システムであり、データの暗号化には公開鍵が使用されますが、復号化には別の秘密鍵が使用されます。 これは、最後の20年かそこらのためのインターネット上のセキュリティのための基礎となっています。鍵の長さが1024ビット(RSA-1024)以下のRSAは安全ではなく、ほぼ確実にNSAによって解読されていることが十分に確立されています。 その結果、RSA-1024から離れて移行するインターネット企業の間で協調的な動きがありました。
残念ながら、一部のVPNサービスでは引き続きrsa-1024を使用してハンドシェイクを保護しています。 これは良くない。
RSA-2048以上は依然として安全であると考えられています。 それ自体では、RSAは完全転送秘密(PFS)を提供しません。 ただし、これは、diffie-Hellman(DH)または楕円曲線DIFFIE-Hellman(ECDH)鍵交換をその暗号スイートに含めることによって実装できます。
この場合、DHまたはECDHキーの強度は、完全な前方秘密を提供するためにのみ使用されているため、重要ではありません。 接続はRSAを使用して保護されます。
それは混乱を引き起こす可能性があるので、私はまた、RSA暗号システムは、不名誉な米国の技術会社RSAセキュリティLLCとは何の関係もないことに注意し この会社は意図的にnsaによってb10万ドルを買収された後、その主力BSAFE暗号化製品を弱体化させました。OpenVPNによって時々使用される代替の(ライバルの)ハンドシェイク暗号化は、Diffie-Hellman(DH)暗号化キー交換です。 これは通常、2048ビットまたは4096ビットのキーの長さを持っています。 Logjam攻撃の影響を受けやすいため、DH-2048未満のものは避けるべきであることに注意してください。
RSAに対するDiffie-Hellmanハンドシェイクの主な利点は、完全な前方秘密をネイティブに提供することです。 しかし、すでに述べたように、DH鍵交換をRSAハンドシェイクに追加するだけで、同様の目的が達成されます。
Diffie-Hellmanは、素数の限られたセットの再利用について大きな論争を引き起こしました。 これは、NSAのような強力な敵によって割れていることに脆弱になります。 したがって、Diffie-Hellman自身では、安全なハンドシェイク暗号化は行われません。 ただし、RSA暗号スイートの一部として使用する場合は問題ありません。
楕円曲線Diffie-Hellman(ECDH)は、この攻撃に対して脆弱ではない新しい形式の暗号化です。 これは、接続を暗号化するために、大きな素数の代わりに特定のタイプの代数曲線の特性を使用するためです。
ECDHはRSAハンドシェイクの一部として使用して完全転送秘密を提供することも、ハンドシェイクを単独で安全に暗号化することもできます(ECDSA署名を使用)。 これはPFSも提供します。ECDHキーの長さは384ビットから始まります。 これは安全であると考えられていますが、TLSハンドシェイクを保護するために単独で使用すると、(とにかくセキュリティの面で)長くなります。
SHAハッシュ認証
これは、データ認証またはハッシュメッセージ認証コード(HMAC)とも呼ばれます。
Secure Hash Algorithm(SHA)は、データとSSL/TLS接続を認証するために(とりわけ)使用される暗号化ハッシュ関数です。 これにはOpenVPN接続が含まれます。
これは、有効なTLS証明書の一意の指紋を作成し、OpenVPNクライアントで検証できます。 最も小さな変化でさえも検出可能です。 証明書が改ざんされた場合、これはすぐに検出され、接続が拒否されます。
これは、攻撃者がOpenVPN接続をVPNプロバイダーではなく独自のサーバーの1つに迂回しようとする中間者(MitM)攻撃を防止する上で重要です。 それはあなたのルータをハッキングすることによって、例えば、これを行うことができます。
敵がプロバイダの本物のTLS証明書のハッシュを解読できる場合、ハッシュを逆にして偽造された証明書を作成することができます。 Open VPNソフトウェアは、接続を正規のものとして認証します。
SHAは安全ですか?
HTTPS webサイトを保護するために使用すると、SHA-1が壊れます。 これは、いくつかの時間について知られています。 SHA-1のwebサイトはまだ見つけることができますが、段階的に廃止されています。 ほとんどのブラウザは、SHA-1で保護されたwebサイトに接続しようとすると警告を発行します。
SHA-2およびSHA-3ハッシュ関数が代わりに推奨され、安全です。 SHA-2には、SHA-256、SHA-384、およびSHA-512が含まれます。 しかし…
OpenVPNはHMACにSHAのみを使用します。 ここであまり詳細に説明するのは便利だとは思いませんが、SHAハッシュ認証はHMACアルゴリズムの一部です。 SHA-1に埋め込まれたHMACを攻撃することは、SHA-1ハッシュ関数自体を攻撃するよりもはるかに困難です。つまり、OpenVPNで使用されているHMAC SHA-1は安全であると考えられており、これについて数学的な証明があります。 もちろん、HMAC SHA-2とHMAC SHA-3はさらに安全です! 実際、最近のOpenVPN監査は、HMAC SHA-1が安全であることを認識していますが、代わりにHMAC SHA-2またはHMAC SHA-3に移行することを推奨しています。
注
NIST
AES、RSA、SHA-1、およびSHA-2はすべて、米国国立標準技術研究所(NIST)によって開発および/または認定されました。 これは、それ自身の承認によって、暗号の開発においてNSAと密接に協力する機関です。
国際的な暗号化標準へのバックドアを弱めるか、構築するためのNSAの体系的な努力について今私たちが知っていることを考えると、NISTアルゴリズムの完全性に疑問を呈するあらゆる理由があります。
NISTは、もちろん、そのような主張を強く否定している。
「NISTは暗号標準を意図的に弱めることはない。”
また、国民の信頼を強化するために設計された動きで、今後提案される暗号化標準の数に国民の参加を招待しました。
ニューヨーク-タイムズ紙は、NSAが検出不可能なバックドアを導入するか、アルゴリズムを弱めるために公共の開発プロセスを破壊することによって、NISTが承認した暗号化標準を回避したと非難した。
RSA Security(EMCの一部門)が、NSAによって設計された欠陥が含まれていると報告されている暗号化アルゴリズムの使用を中止するように顧客に個人的に言 このアルゴリズムはNISTによっても支持されていた。
さらに、Dual_Ec_Drbg(Dual Elliptic Curve Deterministic Random Bit Generator)は、NISTによって設計された暗号化標準です。 それは何年も安全ではないことが知られています。
2006年、オランダのアイントホーフェン工科大学は、それに対する攻撃は”普通のPC上で起動するのは簡単であると指摘した。”マイクロソフトのエンジニアはまた、アルゴリズムの疑いのあるバックドアをフラグを立てました。
これらの懸念にもかかわらず、NISTがリードしている業界は次のようになります。 Microsoft、Cisco、Symantec、およびRSAはすべて、製品の暗号化ライブラリにアルゴリズムを含めています。 これは、NIST基準の遵守が米国政府の契約を取得するための前提条件であるため、大部分がこれに該当します。
NIST認定の暗号規格は、プライバシーに依存する業界やビジネスのすべての分野で、世界中でかなり遍在しています。 これは全体の状況をむしろ冷えるようにします。
おそらく正確には、これらの標準に依存しているため、暗号の専門家は問題に直面することを望んでいませんでした。最近まで、VPNの世界で遭遇する可能性が高いAES暗号はAES-CBC(Cipher Block Chaining)のみでした。 これは、ブロック暗号モード、ここに入る価値がない複雑な主題を指します。 CBCには理論的にはいくつかの脆弱性があるかもしれませんが、一般的なコンセンサスはCBCが安全であるということです。 Cbcは、実際には、OpenVPNマニュアルで推奨されています。
OpenVPNはAES-GCM(Galios/Counterモード)にも対応しました。
- GCMは認証を提供し、HMAC SHAハッシュ関数の必要性を排除します。
- ハードウェアアクセラレーションを使用しているため、CBCよりもわずかに高速です(複数のプロセッサコアにスレッド化します)。
AES-CBCは一般的な使用で最も一般的なモードですが、私たちは今、野生でAES-GCMに遭遇し始めています。”GCMの利点を考えると、この傾向は継続する可能性が高いだけです。 暗号化の観点からは、AES-CBCとAES-GCMの両方が非常に安全です。OpenVPN UDPとOpenVPN TCP
OpenVPNはTCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)を介して実行できます。
- TCP=信頼性があります。 コンピュータは、TCPを使用してネットワークパケットを送信するたびに、次のパケットを送信する前に、パケットが到着したことの確認を待ちます。 確認が受信されない場合は、パケットを再送信します。 これは誤り訂正として知られています。 すべてのデータの「保証された配信」がありますが、かなり遅くなる可能性があります。
- UDPを使用すると、そのような誤り訂正は実行されません。 パケットは、受信確認や再試行を行わずに単純に送受信されます。 これにより、UDPはTCPよりもはるかに高速になりますが、信頼性は低くなります。
選択肢があれば、接続の問題が発生しない限り、より高速なUDPプロトコルを使用することをお勧めします。 これは、ほとんどのVPNプロバイダーで採用されているデフォルトの戦略です。
TCPポート443でOpenVPNで検閲を無効にする
OpenVPNの大きな利点の一つは、TCPポート443を含む任意のポートで実行できることです。 これは、すべての安全なwebサイトを保護する暗号化されたプロトコルであるHTTPSで使用されるポートです。
HTTPSがなければ、ショッピングや銀行などのオンラインコマースはできません。 したがって、このポートがブロックされることは非常にまれです。
ボーナスとして、TCPポート443上のVPNトラフィックは、HTTPSで使用されるのと同じ方法でTLS暗号化内でルーティングできます。 これは高度の深い包みの点検技術を使用して斑点を付けることを大いに困難にします。 したがって、TCPポート443は、VPNブロックを回避するための優先ポートです。
多くのVPNプロバイダーは、カスタムソフトウェアを使用してOpenVPNで使用されるポート番号を変更する機能を提供しています。
あなたがそうでなくても、多くのVPNプロバイダーは実際にはサーバーレベルでTCPポート443を使用してOpenVPNをサポートしています。 OpenVPNの設定を簡単に編集して切り替えることができます(。ovpn)ファイル。 したがって、これについてVPNプロバイダーに尋ねる価値があります。
ネットワークエンジニアはTCP over TCPが非常に非効率的であるため、この戦術を嫌うことは注目に値する。 しかし、検閲を破ることになると、それはしばしば機能します。
SSTPはデフォルトでTCPポート443を使用します。
要約
VPNプロトコル
- PPTPは非常に安全ではないため、避ける必要があります。 セットアップの容易さとクロスプラットフォームの互換性は魅力的ですが、L2TP/IPsecには同じ利点があり、はるかに安全です。
- L2TP/IPsecは、重要でない使用のための優れたVPNソリューションです。 これは、OpenVPNをサポートしていない従来のデバイスに特に当てはまります。 しかし、それはnsaによって深刻に侵害されています。
- SSTPはOpenVPNの利点のほとんどを提供しますが、主にWindowsプロトコルにすぎません。 これは、OSへの統合が優れていることを意味しますが、この制限のおかげでVPNプロバイダーによってはサポートされていません。 これに加えて、その独自の性質とMicrosoftによって作成されたという事実は、私がそれを信頼していないことを意味します。
- Ikev2は非常に優れた(安全で高速な)プロトコルです。 特にモバイルユーザーは、インターネット接続が中断されたときに再接続する機能が改善されているため、OpenVPNよりも優先される場合があります。 Blackberryユーザーの場合、それはかなり利用可能な唯一のオプションです。 可能であればオープンソース版を使用してください。
- OpenVPNは、ほとんどの状況で推奨されるVPNプロトコルです。 これは、高速で信頼性が高く、安全で、オープンソースです。 それはそれ自体、本当の欠点を持っていません。 しかし、本当に安全であるためには、それがうまく実装されていることが重要です。 これは、完全な前方秘密性を持つ強力な暗号化を意味します。
OpenVPN暗号化
暗号化に関しては、悪魔は細部にあります。 Vpnプロバイダーが「超強力な256ビット」AES OpenVPN暗号化を使用していると言うのを見るのが一般的ですが、これは実際にはあまり教えてくれません。 AES-256は確かに強力な暗号ですが、使用される暗号化スイートの他の側面が弱い場合、データは安全ではありません。
- 暗号–これはあなたの実際のデータを保護します。 AES-256は現在、業界標準であり、推奨されています。
- ハンドシェイク–これにより、VPNサーバーへの接続が保護されます。 RSA-2048+またはECDH-384+は安全です。 重要なのは、RSA-1024とDiffie-Hellmanの握手はそうではありません。
- ハッシュ認証–一意の指紋を作成し、データとTLS証明書を検証するために使用されます(つまり、接続しているサーバーが実際に接続していると思われるサーバーであることを確認するために使用されます)。 HMAC SHA-1は絶対に問題ありませんが、HMAC SHA-2(SHA-256、SHA-384、およびSHA-512)とHMAC SHA-3はさらに安全です。 AES-GCM暗号を使用する場合は、ハッシュ認証は必要ありません。
- Perfect Forward Secrecy(PFS)–これにより、セッションごとに新しい暗号化キーが作成されます。 PFSが実装されていない限り、OpenVPNは安全であると見なされるべきではありません。 これは、DIFFIE-HellmanまたはECDHキー交換をRSAハンドシェイクに含めるか、DHまたはECDHハンドシェイクに含めることによって行うことができます。
- 暗号化は、その最も弱い点と同じくらい安全です。 これは、暗号化設定がデータチャネルと制御チャネルの両方で強力である必要があることを意味します。
- 暗号と鍵に高いビット長を使用することは、ほとんどの場合より安全ですが、これは速度にコストがかかります。
OpenVPNはクライアントとサーバーの間で暗号を自由にネゴシエートします。 非常に具体的なパラメータが定義されていない限り、OpenVPNは弱い設定にデフォルト設定することができます。 最低でも、OpenVPNはデフォルトでBlowfish-128暗号、PFSなしのRSA-1024ハンドシェイク、およびHMAC SHA-1ハッシュ認証になります。
結論
うまくいけば、あなたは今、安全なVPN接続のために作るもののより良い理解を持っています。 しかし、VPNを適切に構成することに関しては、暗号化は半分の話に過ぎません。 残りの半分は、トラフィックがVPN接続の外にコンピュータに出入りしないようにすることです。
これについての詳細を学ぶために、IPの漏出への私達の完全なガイドを点検しなさい。