セキュリティプロトコルの必要性
原著では セキュリティプロトコルとは暗号(プロトコル)よりも広範囲なセキュリティを保持するためのプロトコル、としています。
セキュリティの3要件:機密性・完全性・真正性
セキュリティプロトコルの目的は気密性・完全性・真正性を獲得する事です。
シンプルな要件から順に確認していきます。
セキュリティプロトコル1. 送信するデータを暗号化する
メッセージはいつでも送受信可能という前提とします。
まとまったデータを暗号化する方法としては、共通鍵暗号化方式が適しています。今回は共通鍵暗号化方式からAESを選択したとします。
図1.
AESを使えばアリスとボブはデータを暗号化して安全にメッセージを送受信できます。マロリーは暗号化したデータを見ることができません。

セキュリティプロトコル2. データの改ざんを防止する MAC鍵の付加
図2.
図1の危険性としてマロリーは送信するデータを改ざんできる点です。

図3.
データを途中で改竄されることを防止するためにMAC鍵を合わせて送付します。マロリーはデータ改ざんが困難になります。

セキュリティプロトコル3. メッセージ番号付加・終了メッセージ付加
図3の状態でも、マロリーは一部のデータを抜き取ったり、同じデータを重複して送付する等の改竄が可能です。
図4.
対策として、送信するデータのバケットに連番をつける、全体のデータ個数を通知する、最後のデータのパケットに特別な終了のメッセージを付加する。事が考えられます。

セキュリティプロトコル4. 通信に必要な鍵の安全な授受
図4の状態で最後に残る問題は通信に必要な鍵(暗号化の公開鍵とハッシュ鍵)を安全に授受する方法です。

データの送受信の前後に通信プロトコルを追加します。
具体的には
①データの送受信前に認証と鍵交換を行うハンドシェイクを実行
②データの送受信
③終了処理(シャットダウン)
の手順を踏みます。
①の手順については具体的な手順の記載がありましたが具体的によく咀嚼できていないのでここではスキップします。(そのうちわかるはず(^^;)

