GNU/Linux >> Linux の 問題 >  >> Linux

共有キー交換とは(VPNの仕組み、パート3)

「VPNのしくみ」シリーズのこの記事では、共有キー交換のしくみについて説明します。すでに迷子になっている場合でも、慌てる必要はありません。この一連の記事では、VPNを強化する数学を深く掘り下げることなく、VPNの背後にある概念と方法について説明しています。

VPNの概念にまったく慣れていない場合は、この概要を確認してください。 VPNがどのように機能するかについてもう少し知っていて、もう少し知りたい場合は、このシリーズが最適です。各記事では、VPNが、関連する論理メカニズムのメタファーとして機能するストーリーを伝えることで、データの保護にどのように役立つかについて1つの側面を取り上げています。これらの物語は、アダムとバートが秘密を守ろうとしていることと、第三者のセザールが彼らの秘密を悪意を持って発見しようとしていることを含んでいます。 VPNには完全な物理世界に相当するものがないため、一部の要素は信頼性の限界を広げる可能性があります(たとえば、Cesarは複製光線にアクセスできます)。覚えておいてください、それはただの話です…

各記事には拡張可能なセクション(歯車のアイコンで示されています)もあります。このセクションには、少し技術的ですが、数学で迷子になりすぎないようにする、もう少し詳細な説明が含まれています。これらのセクションでは、ストーリーのイベントを暗号化または認証のコンポーネントまたはステップにもう少し結び付けますが、トピックの基本的な理解を得る必要はありません。

共有鍵交換

以前の冒険では、友人のアダムとバートは、セキュリティで保護することにより、コミックプロジェクトをセザールの詮索から秘密にしようとしました。彼らが共有鍵とより精巧な公開鍵/秘密鍵のペアシステムと交換するメッセージ。各システムには長所と短所があります。しかし、少年たちはこのプロジェクトから離れる必要があり、幸運なことに、近くでフェアが開催されています。彼らは唐辛子の料理コンテストに参加し、自分たちの作品を秘密にしておくのが大好きなので、見物人の前でレシピを準備しているときでも、レシピを秘密にしておく方法を考案します。レシピはとても安全です。彼らもそれを知りません!

よく知られた出発点

この偉業を成し遂げるために、アダムとバートは、お互いが何に貢献したかについて何も知らずに、レシピの一部を開発する必要があります。どちらもレシピ全体を知らない場合、どちらもそれを明らかにすることはできません。しかし、彼らは材料の共通ベース(トマトベース、チリ調味料、牛肉、豆の混合物)に同意しています。この部分を秘密にしておく必要はありません。他のほとんどの出場者は同様の基盤から始めているため、これらの材料を隠すための努力を費やすことはほとんどありません。


鍵交換の交渉。

両当事者が安全でない公共の媒体をめぐるこの交渉から始めることができるという事実は、暗号化を開始するこの方法の背後にある中核的で巧妙なアイデアの1つです。暗号化を行う前に、ピア間に暗号化されていないトラフィックが存在する必要があります。そうしないと、どちらも将来のメッセージを復号化する方法を知りません。この最初のステップにより、あるホストは、よく知られている数式(この例では唐辛子のベース)にいくつかの初期値を提供することにより、暗号化方式のネゴシエーションを開始したいことを別のホストに通知できます。本当の魔法は次のステップにあります。

キーのシード

アダムとバートは、調味料の一部と追加の材料を不透明なライスペーパーで密封して独自に秘密裏に準備しました唐辛子に浸すと溶けるポーチ。この料理コンテストでは、アダムのポーチにトマティーヨ、チポトレ、カイエンペッパー、シナモンが入っています。 Burt’sには、ケイジャンシーズニング、ビール、クミン、オレガノ、ウスターソース*があります。アダムは自分のパケットを鍋に入れてかき混ぜ、ポーチが溶けて材料が放出されたことを確認するまで唐辛子を味わいます。バートは彼のポットでも同じことをします。この時点で、アダムとバートは2つの異なる唐辛子を持っています。

*(なぜこれがビールからまだ溶解していないのか疑問に思われる場合は、Burtが液体を溶解可能なポーチに入れる前に事前に凍結したとしましょう。)


共有キーを生成します。

実際の鍵交換プロセスでは、これらの「成分」は実際には非常に大きな素数です。鍵交換プロセスでは、これらの大きな素数がランダムに生成されます。この鍵交換に入力するために使用される数値が大きいほど、ブルートフォース技術を使用して解読するのが難しくなります。これらの数値のサイズはビットグループと呼ばれます。 2進ビットの同じ長さの素数のグループ(たとえば、1024または2048、あるいはそれ以上のビット長)はすべて同じグループに属します。ビットグループが大きいほど、この鍵交換プロセスはより堅牢になり、分析や潜在的な侵害に対する耐性が高まります。

交換の完了

今、彼らは傾向のあるポットを切り替えているので、バートはアダムが始めたポットにいます。逆もまた同様です。彼らはそれぞれ、始めたものと同じ別のポーチを取り、この2番目のポーチをもう一方が始めたポットに追加します(したがって、アダムは彼のトマティージョ、チポトレ、カイエンペッパー、シナモンをポットに追加しますバートはケイジャンシーズニング、ビールで始まりました、クミン、オレガノ、ウスターソース;そしてバートはアダムが始めた鍋にポーチを追加します)。それぞれがそれぞれの鍋をかき混ぜ、ポーチを溶かして秘密の材料を放出した後、それぞれの鍋に同じ唐辛子が入っていることを確認できます。


Diffie-Hellman鍵交換。

数学的には、共有鍵交換を管理するアルゴリズムは可換です。任意の順序で実行して、同じ結果を得ることができます。また、AdamもBurtも、キーだけを再構築する手段を持っていないことに注意してください。それらのそれぞれは、それぞれがアルゴリズムに寄与したランダム値のみを知っています。また、それぞれがネゴシエーションの完了時にキーのコピーを生成するため、ネットワークを介して送信されていない最終的なキーのコピーもそれぞれにあります。

この共有鍵交換またはネゴシエーションは、Diffie-Hellman Key Exchangeと呼ばれ、この方法を最初に詳述した論文の著者であるWhitfieldDiffieとMartinHellmanにちなんで名付けられました。彼らの仕事はラルフ・マークルによって行われた以前の仕事に基づいているので、この方法は(ヘルマン自身によって)Diffie-Hellman-MerkleKeyExchangeと呼ばれることが提案されています。実際の構成では、この方法がDHグループとして適用されることがよくあります。これは、バイナリビットのさまざまな長さのキーに対応するさまざまなグループです。

複雑な味

準備中、ジャッジはスターティングポットまたは中間ポットを見てサンプリングした可能性があります。秘密のレシピを学ぶことに熱心なセザールが裁判官を装ったとしても、アダムとバートが使用した最終的なレシピを確実に再構築することはできません。 (この例では、Cesarには、チリに含まれるすべての個々のフレーバーを区別する機能がないことを前提としています。実験室での分析によって成分とその量を特定しようとすると、実行不可能にするために時間とエネルギーが費やされます。)


潜在的な脆弱性。

攻撃者がこのキーで暗号化された通信を危険にさらしたい場合、一般的な中間者盗聴攻撃では不十分です。ただし、攻撃者は自分自身を中間者として挿入する可能性があります。攻撃者が2つのホスト間のすべての通信が攻撃者を経由するように設定した場合、攻撃者は各ピアとのDiffie-Hellmanネゴシエーションを実行できます。接続の両側は、成功したキーがネゴシエートされたかどうかのみを認識し、誰とネゴシエートされたかは認識しません。この位置では、中間者は会話全体を見ることができます。実際、彼は着信トラフィックを復号化し、反対側に送信する前に再暗号化して、それぞれの印象を維持する必要があります。 endにはまだ「安全な」接続があります。

攻撃者が中間者攻撃を仕掛けて、DHグループをビット長がはるかに短く安全性の低いグループにダウングレードしようとする可能性もあります。その攻撃者は、弱く暗号化されたデータを収集し、暗号化に対してオフラインブルートフォース攻撃を実行して、妥当な時間内にデータを解読する可能性があります。 FREAKやLogjamなどの攻撃は、ある種のダウングレード手法を使用して、Diffie-Hellman鍵交換を弱めます。

VPNの仕組みシリーズの詳細:

パート1:対称暗号化アルゴリズム
パート2:公開鍵暗号化
VPSホスティングサービスとVPSホスティング価格の詳細をご覧ください。


Linux
  1. NGINXとは何ですか?それはどのように機能しますか?

  2. キーボード入力とテキスト出力はどのように機能しますか?

  3. *nix 疑似端末はどのように機能しますか?マスター/スレーブ チャネルとは何ですか?

  1. Makefileとは何ですか?どのように機能しますか?

  2. Mac OS で Cron を使用して自作を更新する方法

  3. SO (共有オブジェクト) 番号はどのように機能しますか?

  1. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  2. 公開鍵暗号とは何ですか(VPNの仕組み、パート2)

  3. rm はどのように機能しますか? rm は何をしますか?