SPD
IPsecで、パケットを保護するか、そのまま通すか、破棄するかという方針を登録したデータベースである。保護の方式や鍵などをまとめたSAの情報は、別のデータベースであるSADに登録される。
イマシルちゃんの解説
通信を保護するIPsecでは、送るデータごとに扱いを選ぶ必要があるよ。
その判断に使うルールを登録するデータベースがSPDなんだ。
宛先などの照合条件をセレクタというよ。
条件に合うデータを保護するか、そのまま通すか、破棄するかを決めるんだ。
保護には、内容を読まれないようにする暗号化だけでなく、改ざんを検出する働きもあるんだ。
実際に保護するときの方式や鍵などをまとめたSAの情報は、別のデータベースであるSADに登録されるよ。
扱いを決めるルールと保護に使う具体的な情報を分けて管理することで、通信ごとの条件に合わせて処理できるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
| データベース | 内容 |
|---|---|
| SPD(Security Policy Database) | パケットの扱いを決めるポリシーの集まり。パケットの送信元・宛先のアドレス、プロトコル、ポート番号などの条件(セレクタ)と、その処理(保護する、通過させる、破棄する)を対応付ける |
| SAD(Security Association Database) | 確立したSA(セキュリティアソシエーション)の集まり。SAごとに、SPI、使うプロトコル(ESP、AH)、暗号化と認証のアルゴリズム、鍵、有効期限、シーケンス番号などを持つ |
パケットの処理の流れ(送信時)
- IPsecルータは、送ろうとするパケットを、SPDのセレクタと照合する
- 一致したポリシーが「保護する」なら、SADから対応するSAを探す
- SAがなければ、IKEで相手と交渉してSAを作り、SADに登録する
- SAの鍵とアルゴリズムで、パケットをESPなどで処理して送る
受信側は、受け取ったESPのパケットのSPIからSADのSAを見つけて復号し、さらにSPDで、そのパケットが保護されて届くべきものだったかを確かめる。
パケットを照合する条件
| 項目 | 例 |
|---|---|
| 宛先アドレス | 相手の拠点のネットワークや、特定の管理サーバのアドレス |
| 送信元アドレス | 自分の拠点のネットワーク |
| プロトコル、ポート番号 | 必要に応じて指定する |
拠点間VPNでは、「相手の拠点のサーバ宛てのパケットを受信したら、SADのSAでIPsecの処理を行う」というように設定する。
IKEとの関係
IKE(IKEv2)は、SPDのポリシーに従って、相手と鍵やアルゴリズムを交渉し、SAを作ってSADに登録する役割を持つ。IKEv2では通常、最初の4つのメッセージ(IKE_SA_INIT と IKE_AUTH の2往復)で、IKE自身のSAと最初のIPsecのSAの組が確立される。EAP認証や再試行などで追加の交換が必要になる場合もある。