東芝 研究開発センター
IPsecは、IP層において暗号化や改竄防止などのセキュリティ機能を提供するものであり、IPsecの規格自体はIPv4およびIPv6の両方に対応している。また、IPv6では初めからIPsecは必須の機能として規定されている。
IPv4においては、NATによるIPヘッダの書き換えとIPsecの改竄防止機能との相性が非常に悪く、たとえ端末にIPsec機能が実装されていても端末間での利用はあまり普及しておらず、ゲートウェイ間におけるVPN接続としての利用が主流である。
それに比べ、IPv6の世界ではアドレス空間の増大に伴いNATは通常意識する必要がないため、端末間の通信においてIPsecの利用シーンが増えることが予想される。
本稿では、特にIPv6での利用を前提にして、IPsecの解説を行う。
IPsecのアーキテクチャ
IPsecのアーキテクチャは、RFC2401で定義されている。IPsecを実現するための構成要素は、
- AHとESPというセキュリティプロトコル
- トンネルモードとトランスポートモードの2つモード
- セキュリティポリシー(SP)を格納するセキュリティポリシーデータベース(SPD)およびSPと実際のトラフィックの対応付けを行うセレクタ
- IPsecのコネクションを示し実際にIPsecを適用するために必要なパラメータであるセキュリティアソシエーション(SA)を格納するセキュリティアソシエーションデータベース(SAD)
- 鍵交換プロトコル
セキュリティプロトコル
IPsecにおいては、AHとESPという2つのセキュリティプロトコルが定められている。
AH、ESPとも、IPv6においては拡張ヘッダとして定義されている。実際にIPsecをパケットに適用する場合は、これら2つのセキュリティプロトコルの両方またはどちらを使用する。図1にIPv6拡張ヘッダにおけるAHおよびESPヘッダの位置を示す。
|
AH(Authentication Header)
AHは、パケット全体の改竄防止を目的とするものである。送受信双方で合意している認証アルゴリズムと鍵を用いて、IPパケット全体注1 [0]に対して計算した完全性チェック値(ICV)を認証データとして付与する。これにより受信したパケットのICVを計算しパケットの完全性をチェックすることよって改竄防止を図ることができる。AHのフォーマットを図2に示す。
なお、使用する認証アルゴリズムは、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものが使用される。現在は、おもにHMAC-MD5およびHMAC-SHA1などが使用されている。
AH自体は暗号化機能を有していないため、データの秘匿機能はないことに留意いただきたい。
|
||||||||||||
注2 [0]、3DES-CBCおよびAES-CBCなどが使用されている。また使用する認証アルゴリズムも、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものを使用する。現在は、おもにAHと同じHMAC-MD5およびHMAC-SHA1などが使用されている。
[0]図3 ESPフォーマット
図4 トンネルモード
図5 トランスポートモード
セキュリティポリシー(SP)
セキュリティポリシー(SP)とは、IPsecを使用するにあたってどのようなパケットに対して
- discard - パケット廃棄する
- bypass - いかなる(IPsec)処理も行わない
- appy - IPsecを適用する
また、このようなSPのルールを実際のパラメータ(IPアドレス、TCPポート番号など)に落とし込んだものをセレクタと呼ぶ。
SP、SPD、セレクタの実現方法は、各IPsecシステムの内部で閉じておりプロトコル的な相互接続問題が生じないため、個々のシステムに委ねられている。
セキュリティアソシエーション(SA)
セキュリティアソシエーション(SA)とは、同じIPsecのルール(SP)によって区別される通信のコネクションを指す。SAは方向を持ち、同じ通信相手であっても送受信は別のSAとして区別される。実際に個々のSAは、<SPI、送信アドレス、セキュリティプロトコル>の3つのパラメータにより一意に識別される。SAを格納するデータベースをセキュリティアソシエーションデータベース(SAD)と呼ぶ。
SAおよびSADの実現方法も、各IPsecシステムの内部で閉じており、プロトコル的な相互接続問題が生じないため、個々のシステムに委ねられている。
IPsecの処理手順
送信
送信するパケットがセレクタによってSPDにあるSPに合致した場合、そのSPに対応したSAがSADから検索される。次に、得られたSAのパラメータに基づき、実際のIPsec処理(暗号化など)が行われ、送信される(図6)。
[0]図6 IPsecの送信手順
受信
受信したパケットにIPsec関連ヘッダ(AH/ESP)がなければ、SPDを検索し得られたSPに照らし合わせ処理を行う(discardであれば廃棄するなど)。
IPsec関連ヘッダ(AH/ESP)が存在した場合は、そのヘッダの<SPI、送信アドレス、セキュリティプロトコル>によってSADを検索し、得られたSAによって復号化、完全性チェックなどを行い、その後SPDを検索し得られたSPとの検証を行う(図7)。
次回は、IPsecで使用する暗号化/認証用の鍵を通信相手と交換するためのプロトコルであるIKE、および現在IETFで進められているIPsecの規格改訂について説明する。
[0]図7 IPsecの受信手順
この記事のトラックバックURL
http://www.ipv6style.jp/trackback/257