安全なプロトコルを構成するもの
暗号プロトコルの目的である認証、機密性、完全性、否認防止を特定します。
「安全なプロトコルを構成するもの」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
認証:通信相手を確認する
認証とは、通信相手の身元を確立することです。認証がなければ、プロトコルはなりすましに対して脆弱になります。攻撃者が信頼されたサーバーを装って通信を傍受できるためです。プロトコルの認証には通常、デジタル証明書、事前共有鍵、または秘密そのものを明かさずに秘密を知っていることを証明するチャレンジレスポンス方式が使用されます。
機密性:意図した相手だけがメッセージを読める
機密性は、メッセージの内容にアクセスできるのが意図した受信者だけであることを保証します。関係する当事者だけが知る鍵を使って暗号化することで実現します。機密性が破られると、盗聴者が通信中のメッセージを読めるようになります。機密性だけでは、攻撃者によるメッセージの改ざんやリプレイ攻撃を防げないため、完全性の保護と組み合わせる必要があります。
完全性:メッセージの改ざんを検出する
完全性の保護は、受信したメッセージが追加、削除、変更のない、送信者が送った内容と完全に一致するものであることを保証します。メッセージ認証コード(MAC)や認証付き暗号モードが完全性を提供します。完全性の保護がなければ、攻撃者は暗号文を読めなくても、予測可能な方法で特定のビットを反転し、復号後の平文を変更できる場合があります。これはパディングオラクル攻撃で悪用されます。
否認防止:送信者が送信を否認できない
否認防止とは、送信者が後からメッセージを送信したことを否定できないことを意味します。公開鍵暗号を使ったデジタル署名によって実現されます。秘密鍵の保有者だけが署名を生成でき、対応する公開鍵で署名を検証できるためです。MACでは否認防止を実現できません。送信者と受信者の両方が共有秘密を知っているため、どちらもMACを生成できるからです。
鮮度:リプレイされたメッセージを拒否する
鮮度は、過去に有効だった古いメッセージを攻撃者がリプレイして、同じ効果を再び引き起こすことを防ぎます。鮮度を確保する仕組みには、ノンス(メッセージに含める、再利用してはならない乱数)、有効期間を狭く設定したタイムスタンプ、厳密に単調増加するシーケンス番号などがあります。鮮度がなければ、取得した認証メッセージをリプレイすることで、認証を完全に回避できてしまいます。
完全前方秘匿性
完全前方秘匿性により、長期鍵が侵害されても過去のセッション鍵が漏えいすることはありません。各セッションでDiffie-Hellmanを使用して一時的な鍵ペアを生成することで実現します。セッション鍵は一時鍵から計算され、使用後に破棄されます。後になってサーバーの長期秘密鍵が盗まれたとしても、一時鍵はすでに存在しないため、攻撃者は以前に記録したセッションを復号できません。
相互認証と一方向認証の違い
一方向認証では、一方の当事者だけを検証します。HTTPSでは、サーバーが証明書を提示し、クライアントがそれを検証しますが、通常、サーバーはクライアントの身元を検証しません。相互認証(または相互TLS、mTLS)では、双方が証明書を提示して検証する必要があります。mTLSは、機密データを交換する前に両方のエンドポイントを検証する必要があるマイクロサービスアーキテクチャ、APIゲートウェイ、エンタープライズVPNで一般的に使用されます。
形式的なセキュリティ目標と直感の違い
プロトコル設計者は、直感だけに頼ることはできません。一見すると明らかに安全そうなプロトコルでも、微妙な方法で破綻する可能性があります。Needham-Schroeder公開鍵プロトコルは1978年に発表され、安全だと考えられていました。1995年、Gavin Loweは形式検証ツールを使用して、なりすまし攻撃を可能にする欠陥を発見しました。TamarinやProVerifなどのモデル検査ツールを使った形式検証は、セキュリティが重要なプロトコル設計における標準的な実践になっています。
Dolev-Yao脅威モデル
Dolev-Yaoモデルは、暗号プロトコルを分析するための標準的な脅威モデルです。このモデルでは、攻撃者がネットワーク全体を制御できると仮定します。つまり、攻撃者は任意のメッセージを傍受、遮断、変更、再生、注入できます。暗号プリミティブには数学的な弱点がなく、完全であると仮定します。このモデルでは、攻撃者がすべての通信を完全に制御できる場合でも目標を達成できる場合にのみ、プロトコルは安全です。
プロトコル設計が難しい理由
暗号プロトコルの設計は、欠陥が微妙で見つけにくいことが多いため、非常に困難です。複数のメッセージ、ノンス、タイムスタンプ、鍵が相互作用すると、予期しない攻撃経路が生じる可能性があります。主体ごとにプロトコル状態について異なる見解を持つこともあります。並行して実行されるセッションが互いに干渉する可能性もあります。SSL、TLS、WPA2、802.11など、主要な導入済みプロトコルはすべて、導入後に重大な脆弱性が発見されています。
実世界で発生したプロトコルの障害
SSL 3.0はPOODLE攻撃によって破られました。TLS 1.0と1.1は、複数の弱点があるため非推奨になりました。WEPのWi-Fi暗号化は、導入から1年以内に完全に破られました。PPTP VPNは、MS-CHAPv2の弱点により安全でないと見なされています。これらの失敗から、セキュリティコミュニティは、形式的でないセキュリティ上の直感と、Dolev-Yaoモデルの下で正しさを証明できるプロトコル設計との間にある隔たりについて学びました。
プロトコルのセキュリティ目標
攻撃者が今日記録したメッセージを後でサーバーに再送し、同じ操作を繰り返すことができないようにするセキュリティ特性はどれですか。
安全なプロトコルの目標:要点
安全なプロトコルは、認証、機密性、完全性、否認防止、鮮度を実現する必要があります。完全前方秘匿性により、将来鍵が侵害されても過去のセッションが保護されます。相互認証では、双方の当事者を検証します。Dolev-Yaoモデルでは、ネットワーク全体が敵対的に制御されると仮定します。プロトコルの設計には、直感だけでなく形式検証が必要です。主要なプロトコルはすべて、導入後に脆弱性が発見されており、それが暗号標準の継続的な進化を促しています。
よくある質問
「安全なプロトコルを構成するもの」レッスンは無料ですか?
はい。「安全なプロトコルを構成するもの」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「安全なプロトコルを構成するもの」で何を学びますか?
暗号プロトコルの目的である認証、機密性、完全性、否認防止を特定します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「安全なプロトコルを構成するもの」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 安全なプロトコルを構成するもの
- SSH:リモートアクセスを保護する
- SFTPとSCP:安全なファイル転送
- DNSSEC:DNS応答を認証する