SPD
IPsecで、どのパケットをどう扱うか(IPsecで保護する、そのまま通す、破棄する)の方針を登録したデータベース。保護する場合に使う暗号の鍵などのSAは、SAD(Security Association Database)に登録される。
イマシルちゃんの解説
IPsecのルータには、2つのノートがあるんだ。
1冊目(SPD)には、「この宛先のパケットは暗号化する」「これはそのまま通す」っていう、仕分けのルールが書いてある。
2冊目(SAD)には、「暗号化するときは、この鍵とこのやり方を使う」っていう、具体的な約束が書いてあるんだよ。
パケットが来たら、まず1冊目でルールを確かめて、暗号化するなら2冊目を見るんだ!
より深い解説
定義
| データベース | 内容 |
|---|---|
| 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で、そのパケットが保護されて届くべきものだったかを確かめる。
セレクタの例
| 項目 | 例 |
|---|---|
| 宛先アドレス | 相手の拠点のネットワーク(例:G メーター管理サーバのアドレス) |
| 送信元アドレス | 自分の拠点のネットワーク |
| プロトコル、ポート番号 | 必要に応じて指定する |
拠点間VPNでは、「相手の拠点のサーバ宛てのパケットを受信したら、SADのSAでIPsecの処理を行う」というように設定する。
IKEとの関係
IKE(IKEv2)は、SPDのポリシーに従って、相手と鍵やアルゴリズムを交渉し、SAを作ってSADに登録する役割を持つ。IKEv2では、最初の4つのメッセージ(IKE_SA_INIT と IKE_AUTH を2往復)で、IKE自身のSAと最初のIPsecのSAが確立される。