■ セキュリティポリシー
おね〜さんと、
ほげたんのっ!!
3 Minutes Networking、
Supplement !!
さって〜。前回はIPsecのアーキテクチャについて話したわけね。
Security Architecture for the Internet Protocol。なんだっけ。セキュリティプロトコルと、鍵交換と、認証・暗号化アルゴリズムと…。
Security Asscociationね。今回はこのSAについての話。
SAってなんだっけ?
IPsecのコネクションみたいなものだって、前回話したよね。
じゃあ、コネクションって何かしら?
ん、ん〜〜〜。難しいこと聞くね。そうだなー、接続関係というか、なんというか。
論理的な回線? う〜ん。
そうね、結構感覚的に把握しているから「コネクションって何?」って聞かれると困るわよね。
簡単にいえば、「相手と接続を行うための合意」ってところかしらね。
前回も「合意」って話がでてたよね。SAはセキュア化のためのホスト間の合意だっけ。
そうそう。それにより、ホスト間での接続がセキュアにできるってことね。
IPsecはセキュリティプロトコルによるセキュアな通信を行う前に、ホスト間で合意を取るんだけど。
取るんだけど?
その前にも大事な手順があるのね。
それは何かと言うと、セキュリティポリシー。
セキュリティポリシー? って、アレ? 組織の情報セキュリティについての文書?
まぁ、それもセキュリティポリシーなんだけど、IPsecでのセキュリティポリシーはちょいと違うのよ。そうねぇ、IP通信の処理についての記述かな? こんな感じで。
[FigureSP22-01:セキュリティポリシー]
ははぁ。受け取ったIPデータグラムをどう扱うかを記述しているんだね。IPsecによるセキュア化だったり、何もしなかったり、破棄したり。
そう、その3つね。
処理 | 内容 |
---|---|
PROTECT | IPsecによるセキュア化 |
BYPASS | 通常の処理(セキュア化なし) |
DISCARD | 破棄 |
[TableSP22-01:IPデータグラムに対する処理]
前回、IPsecの機能として「アクセス制御」っていったでしょ。それを担うのがこのセキュリティポリシー。
「特定の送信元・宛先、プロトコルを許可/拒否する 」だっけ? あぁ、なるほど。受け取ったデータグラムに対してセキュリティポリシーで破棄したり、転送したりして実現するわけだね。
そういうこと。で、セキュリティポリシーで3つの処理を決定するわけだけど。
問題は、「何を基準として処理を決定するか」ってこと。
ふむふむ。セキュリティゲートウェイが受信したデータグラムのどっかをみて、「セキュア」「通常」「破棄」って決定するわけだね。やっぱりIPアドレスかな?
そうそう。この処理を決定する対象をセレクタって呼ぶのね。もちろんIPアドレスもあるし、他にも次のものが対象になるわ。
セレクタ | 内容 |
---|---|
ローカルIPアドレス | 自分側IPアドレス |
リモートIPアドレス | 相手側IPアドレス |
ローカルポート番号 | 自分側ポート番号 |
リモートポート番号 | 相手側ポート番号 |
プロトコル | IPヘッダの上位プロトコル番号 |
IPv6モビリティヘッダ | IPv6で次ヘッダがモビリティヘッダだった場合、そのタイプ(MHタイプ) |
ICMPタイプ/コード | 上位プロトコルがICMPの場合、そのタイプとコード |
名前 | 主にIKEで交換されるID |
[TableSP22-02:セレクタ]
IPアドレス、ポート番号、プロトコル……MHタイプ? 名前?
え〜〜っと、聞きたいことはいくつかあるけど、まず、「ローカル」と「リモート」って宛先と送信元?
あ、あぁ。その話先にしなきゃダメよね。それはセキュリティゲートウェイを中心にしてインバウンドとアウトバウンドで考えるんだけど。
[FigureSP22-02:ローカルとリモート]
ん〜、セキュリティゲートウェイの「内側」がローカルで、「外側」がリモートってことだね。あと、MHタイプとか、名前とか何?
MHタイプはIPv6の話なので、またいずれ。名前についてはIKEのところでまた話すとして。
つまり、IPヘッダなどの値によって処理を決めるってことね。セレクタのポイントその1。トンネルモードの場合。
[FigureSP22-03:トンネルモードでのセレクタの対象]
AH/ESPでカプセル化される前の、もともとのIPヘッダをセレクタの対象として、チェックするってことね。
ん、でもさ。AHはともかく、ESPだと暗号化されちゃってない? 暗号化されてるとIPヘッダの値を読み取れないような気がするけど?
もちろん、復号してから確認するのよ。
あと、ポイント2。ANYとOPAQUE。
おぱきゅー?
毛が三本のアレね。
そうそう、犬が苦手な。
…、読みは普通「おぺーく」「おぺいく」ね。「不透明な」とか「くすんだ」とかそういう意味。
セレクタの値に「ANY」または「OPAQUE」を指定できるの。意味はそれぞれこう。
- ANY … 任意。その値をチェック対象としない
- OPAQUE … 値が確認できない。フラグメント化されている、暗号化されているなど。ANYに含まれる
例えば、ローカルIPアドレスがANYだったら、ローカルIPアドレスはなんでもいい=チェックしないってことね。
さて。このセレクタを判断材料にして、セキュリティポリシーにより処理を決定するわけね。
うんうん。IPヘッダなどの情報から、「セキュア化」「通常」「破棄」を決定するんだね。
■ SPD
でね、このセキュリティポリシーを集めて登録したものをSPDと呼ぶわけね。
セキュリティポリシーデータベース。そのまんまだね。
まぁ、そうね。このSPDにはSPD-I、SPD-O、SPD-Sの3種類が存在するの。それとSPDキャッシュ。
IとOとSとキャッシュ? なにがなにやら〜。
まぁ、実際はSPDとSPDキャッシュなんだけど。こういう事。
[FigureSP22-04:SPDとSPDキャッシュ]
ん、ん〜〜と。SPDキャッシュは、SPDのキャッシュ。これはいいけど。
SPDのIとOとSの区別がいまいち…。
SPD-Iはインバウンド、SPD-Oはアウトバウンドの通常の処理のポリシーで、SPD-Sはセキュア化のイン/アウトバウンドのポリシーが入ってるってこと。
あぁ、I、O、SはそれぞれInbound、Outbound、Secureの略か。
そういうことね。実際のSPDは大体こんな感じで書かれていると思うといいわ。
セレクタ | 処理 | ||||
---|---|---|---|---|---|
ローカルIP | リモートIP | プロトコル | その他 | ||
192.168.0.0/24 | 10.1.1.0/24 | ANY | ANY | BYPASS | |
192.168.0.0/24 | 10.1.2.0/24 | ANY | ANY | DISCARD | |
192.168.0.0/24 PFP:オフ | 172.16.1.0/24 PFP:オフ | ANY PFP:オフ | ANY PFP:オフ | PROTECT | ESPトランスポートモード ESP暗号化:AES-CBC ESP認証:HMAC-SHA1-96 |
[TableSP22-03:SPD]
セレクタがあって、処理があって。セレクタにはパケットの判断する値があって。PFP?
PFPは後で話すからいいとして。上2行がSPD-Iか、SPD-Oの記述。最後の1行がSPD-Sね。
SPD-SではIPsecで使用する設定が入っているわけね。このSAを構築ことになる。
なるほどなるほど? 上の例でいえば、192.168.0.0/24がローカルで、172.16.1.0/24がリモートの場合、ESPトランスポートモードで、暗号化がAES-CBCで、認証が、認証?
前回説明したメッセージ認証ね。これは先の回で説明するけど、ここではHMAC-SHA1-96が使われるってこと。
ふむふむ。上の2つは、BYPASSとDISCARDだから、192.168.0.0/24がローカル、10.1.1.0/24がリモートの場合は通常のIP通信で、10.1.2.0/24がリモートなら破棄ってことだね、おね〜さん。
そゆことね。ここでのポイントは、SADは上から検索されて、適用した時点でそこから下は見ないってことね。例えば次のSPDで。
セレクタ | 処理 | ||||
---|---|---|---|---|---|
ローカルIP | リモートIP | プロトコル | その他 | ||
192.168.0.0/24 | 10.1.1.5/32 | ANY | ANY | BYPASS | |
192.168.0.0/24 | 10.1.1.0/24 | ANY | ANY | DISCARD |
[TableSP22-03:SPDの順番]
この例だと、192.168.0.1がローカル、10.1.1.5がリモートの場合のパケットの処理はどうなるの、ほげたん?
え? 1行目に適応するから、BYPASS。
うん。でも、2行目も一致するわよね。リモートの10.1.1.5/32は10.1.1.0/24にも含まれるから。
このように、複数の行に一致する場合は、一番上の行が適用されるってことね。
「適用した時点でそこから下は見ない」。だから、結局BYPASSになるってことだね。
そういうことね。でで。SPD-IとSPD-Oの処理はDISCARDまたはBYPASSだからいいとして。
問題は、PROTECT、つまりIPsecによるセキュア化がセキュリティポリシーにより選択された場合よね。その場合、どうするのかしら、ほげたん?
あれだよね、SPD-Sに書かれた設定を使って、SAを構築すればいいんだよ。
んじゃ、SAを構築ってどうするの? SAって何?
それはホラ、今からおね〜さんが説明してくれないと。
■ SAとパラメータ
そりゃ説明するけどね。こう、会話の受け答えによる……あぁ、もういい。説明する。
SAってのはさっきも言ったとおり、「セキュア化のためのホストの合意」なわけね。で、合意って何?
合意? ホスト間で意見が一致すること?
意見、つまり、IPsecで使われるセキュア化のためのパラメータの一致、これがSA。まぁ、次のほげたんの科白は「セキュア化のためのパラメータ?」だと思うから、先に説明するけど、これらの事。
- Security Parameter Index(SPI)
- シーケンス番号カウンタ、オーバフローフラグ
- リプレイ防御ウィンドウ
- ESP暗号化アルゴリズム・共通鍵・IV
- AH/ESP認証アルゴリズム・鍵
- SA有効期間
- IPsecモード(トランスポート/トンネル)
- ステートフルフラグメントチェックフラグ・バイパスDFビット・Path MTU
- DSCP、バイパスDSCP
- トンネルモード始点アドレス、終点アドレス
……何これ?
IPsecを行うために必要なパラメータ、でしょ? よく見て、ほげたん。
これらのパラメータが一致しないと、IPsecによるセキュア化ができないじゃない。
暗号化アルゴリズムや認証アルゴリズム、それに使う鍵ってのはわかるよ。
他のものが意味がわからない。
他のはちゃんと説明するから。ともかく、わかりやすい暗号化アルゴリズムと鍵、IVで説明するわね。
[FigureSP22-05:SA]
うぇ? ちょ、ちょいタンマ、おね〜さん。
えっと〜。ホスト間は同じセキュア化のためのパラメータを持つ?
じゃないとセキュア化が解除できないからね。暗号化したアルゴリズムと復号に使うアルゴリズムが違ったり、鍵が違ったらダメでしょ?
う、うん。じゃ、じゃあ、どうやって同じパラメータを持つの?
送ってきたパケットが使っているパラメータはどれかってどこで判断するの?
それは説明するから大丈夫。
う、うん。で、この合意されたパラメータを使ったやりとりがでSAが構築?
合意されたパラメータでSAが「構築されている」ことになるわけね。
つまり、2点間でセキュアである仮想的な通信路ができているわけ。
仮想的な通信路……コネクション…。
TCPコネクションだって、シーケンス番号やMSSなど信頼性のある通信を行うためのパラメータをスリーウェイハンドシェイクで交換してるでしょ? 似てるわよね。
似てるっていえば似てるかな。
まぁ、実際はコネクションはそれ以外の点もあるから、SA=コネクションってのはちょっと乱暴なんだけどね。だから「アソシエーション」って呼んでるのよ。でもまぁ、コネクションがわかりやすいかな、と。
なるほど。
はい、まとめるわよ。SAとは2点間で同一のセキュア化のパラメータを持つことにより構成される仮想的な通信路ってことね。
そのパラメータによる通信路で、セキュア化、暗号化や認証が行われたパケットが流れるってことだね。
そういうこと。SAの注意点。SAは一方通行である。
[FigureSP22-06:SAの方向]
パラメータは「行き」「帰り」で別々に設定されるの。同じものを使うわけじゃないってことね。
で、パラメータが別なんだから、SAも別ってこと。
同じでもいい気がするけど…。
同じでもいいけど、SAは別という扱いね。だから、行き帰りで2本のSAを構築する必要があるってこと。
パラメータが別なら、別のSAになる、と。
■ SADの検索
SA用のパラメータのセットの集合体をSADと呼ぶの。
SPDの次はSAD。間違えそうだね。で、パラメータセット?
SAの「セキュア化のためのパラメータ群」ね。鍵とかアルゴリズムとかIVとか。
で、ここでIPsecの動きを考えてみると〜、まずSPDでパケットの処理が決まるわね。
「BYPASS」「DISCARD」「PROTECT」だね。
そう。次に、「PROTECT」だった場合、SAを構築するんだけどそのためのパラメータを取得しなければならないわけでしょ。つまり、SADの検索を行いパラメータを取得するという作業を行う必要があるわけ。
IPsecによるセキュア化を行うためにパラメータがいるもんね。
でしょ。で、SADのセレクタから該当するSAパラメータを取得するわけね。ここで登場するのが、さっきSPDにあったPFP。
ちょちょ、ちょい待ち。えっと、まずSADにもセレクタがあって、それを使ってSADを検索する?
そうよ。セレクタとして使うものはSPDと同じね。
ってことは、ローカル/リモートアドレスとかプロトコルとかだね。で、PFPって何?
SADを検索する際に、SPDのセレクタの値をそのまま使うか、パケットの値を使うかを決定する値ね。PFPがオンならパケットの値を使う。
???
つまり、こう。
[FigureSP22-07:SADの検索]
ははぁ、PFPによって、より細かくSAの適用範囲を決めることができるんだ。
そう、パケットごとにパラメータを変更できるってこと。
よって、上の例だと、送信元が192.168.0.1と192.168.0.2のパケットは別の暗号化鍵で暗号化されることになるのよ。
へへぇ、面白いね。SPDとSADは1対1じゃなくって、1対多だってことだね。
PFPがオンだとそうなるわね。
ともかく、これでSAに使われるパラメータが決定されるわけでしょ。後は、パラメータに従ってセキュア化を行う、と。
……、そうだ。これ送信側だよね。受信側はどうなるの? さっきも聞いたけど、受信側はどうやって同じパラメータを入手するの?送ってきたパケットが使っているパラメータはどれかってどこで判断するの?
順番に行きましょう。まず、どうやって受信側は同じパラメータを入手するかだけど。静的と動的なパラメータの設定方式があるの。
静的と動的? 静的ってことは、手動入力する?
そういうことね。双方のホスト・ゲートウェイに同じパラメータを手動で設定しておくわけ。同じ暗号化アルゴリズム、同じ鍵、同じメッセージ認証方式、ね。
まぁ、確かにそうすればいいよね。で、動的な? 動的だから自動設定?
そう。SA構築の前にIKEによる交渉によりパラメータが決定する。SADに対応するエントリがない場合もIKEで自動設定することになるわ。
IKE? 前回のIPsecのアーキテクチャででてきた、インターネット鍵交換[Internet Key Exchange]?
そう。これについては先の回で説明するから。ともかく、静的・動的な手段によって、ホスト・ゲートウェイで同じパラメータを設定するってこと。で、なんだっけ?
送ってきたパケットが使っているパラメータはどれかってどこで判断するか、だよ。
それは受信したAH/ESPパケットのSPI値から判断するの。
SPI? SAのパラメータであった値だよね、Security Parameter Index?
そう、それ。AH/ESPヘッダにはSPIを入れる場所があるから、受け取った側はそれを見て判断するの。じゃ、送受側の処理をまとめると、こう。
[FigureSP22-08:IPsecの動作]
なるほど。ヘッダにあるSPIを使って判断する、と。つまり、SAの構築とかコネクションとかアソシエーションとか言ってるけど、要約すると。
すると?
「前に話しといた3番の方式でセキュア化したパケットだよ〜」「あい。前に話していた3番ね、OK。セキュア化解除できた」ってやりとりをするわけだね。
ん、まぁ、そんな感じよね、確かに。
SAってのは「合意されたパラメータ」で、「そのパラメータを使って通信すること」ってことなんだね。
そうね、だから「セキュア化された仮想的な通信路」としかいいようがないというか。「コネクション」と言うべきか。
確かにコネクションっぽいって言えばそうだし、そうじゃないって言えばそうだね。
ともかく、これがSA。
ん〜っと、SPDとSADの順番がいまいちわからないというか。おね〜さん、両方を同時に説明してよ。
確かにバラバラに説明したからわかりづらくなってるかも。じゃ、まとめて説明するわね。
んと、わけて説明した方がいいから、まずセキュア化しない場合ね。
[FigureSP22-09:処理の流れ(セキュア化なし)]
うん。SPDを検索して、BYPASSかDISCARDをそれぞれ送受側で行うんだね。
これだけだったら、ファイアウォールだよね。
ん? まぁ、そうね。じゃあ、次はセキュア化する場合。
[FigureSP22-10:処理の流れ(セキュア化)]
SADからパラメータを見つけてセキュア化するんだね。
…あれ? 受信側はSPD-Sを使ってアクセス制御しないんだね。
SADの方で決定するからSPD-Sを使わないってことじゃないかな。
受信側は、SADにSPIが存在しなかったり、セレクタの内容と違ったりしたら破棄するから、そこでアクセス制御してるってことかな。
そうね。さて、ほげたん? たぶんIPsecを難解だと思わせているSAについて理解できた?
あー、確かにこれはややこしいというか、わかりづらいというか。
でしょ。でもかなりぶっちゃけると、IPsecって何?ってきかれると、このSAが要って言えると思うのよ。同意されたパラメータを使ったセキュアな仮想通信路の構築、これがないとどうしようもならないからね。
確かにそうだね。
じゃ、また次回にしましょ。
おね〜さんと、
ほげたんのっ!!
3分間ネットワーク、
サプリメントでした〜〜〜っ!!