logo
Published on IPv6style (http://www.ipv6style.jp)

IPv6セキュリティを支えるIPsec(前編)

By admin
作成日時 2004-07-07 00:00
神田 充
東芝 研究開発センター



 IPsecは、IP層において暗号化や改竄防止などのセキュリティ機能を提供するものであり、IPsecの規格自体はIPv4およびIPv6の両方に対応している。また、IPv6では初めからIPsecは必須の機能として規定されている。
 IPv4においては、NATによるIPヘッダの書き換えとIPsecの改竄防止機能との相性が非常に悪く、たとえ端末にIPsec機能が実装されていても端末間での利用はあまり普及しておらず、ゲートウェイ間におけるVPN接続としての利用が主流である。
 それに比べ、IPv6の世界ではアドレス空間の増大に伴いNATは通常意識する必要がないため、端末間の通信においてIPsecの利用シーンが増えることが予想される。
 本稿では、特にIPv6での利用を前提にして、IPsecの解説を行う。


IPsecのアーキテクチャ

 IPsecのアーキテクチャは、RFC2401で定義されている。IPsecを実現するための構成要素は、 からなる。


セキュリティプロトコル

 IPsecにおいては、AHとESPという2つのセキュリティプロトコルが定められている。
 AH、ESPとも、IPv6においては拡張ヘッダとして定義されている。実際にIPsecをパケットに適用する場合は、これら2つのセキュリティプロトコルの両方またはどちらを使用する。図1にIPv6拡張ヘッダにおけるAHおよびESPヘッダの位置を示す。

中継点オプションヘッダ(Hop-by-Hop option header)
終点オプションヘッダ(Detination option header)
経路制御ヘッダ(Routing header)
断片ヘッダ(Fragment header)
AH ヘッダ
ESP ヘッダ
"終点オプションヘッダ(Detination option header)
(最後の終点のみにて処理されるもの)"
上位層プロトコルヘッダ
図1 IPv6拡張ヘッダにおけるAH、ESPヘッダの位置

AH(Authentication Header)

 AHは、パケット全体の改竄防止を目的とするものである。送受信双方で合意している認証アルゴリズムと鍵を用いて、IPパケット全体注1 [0]に対して計算した完全性チェック値(ICV)を認証データとして付与する。これにより受信したパケットのICVを計算しパケットの完全性をチェックすることよって改竄防止を図ることができる。AHのフォーマットを図2に示す。
 なお、使用する認証アルゴリズムは、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものが使用される。現在は、おもにHMAC-MD5およびHMAC-SHA1などが使用されている。
 AH自体は暗号化機能を有していないため、データの秘匿機能はないことに留意いただきたい。

次ヘッダ
ペイロード長 予約領域
セキュリティパラメータインデックス(SPI)
シーケンス番号
認証データ
図2 AHフォーマット

注2 [0]、3DES-CBCおよびAES-CBCなどが使用されている。また使用する認証アルゴリズムも、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものを使用する。現在は、おもにAHと同じHMAC-MD5およびHMAC-SHA1などが使用されている。

図3 ESPフォーマット [0]
図3 ESPフォーマット

図5 トランスポートモード [0]
図4 トンネルモード

図5 トランスポートモード [0]
図5 トランスポートモード

セキュリティポリシー(SP)

 セキュリティポリシー(SP)とは、IPsecを使用するにあたってどのようなパケットに対して などのアクションを行うかを定めたルールのことである。SPを格納するデータベースをセキュリティポリシーデータベース(SPD)と呼ぶ。
 また、このような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)。

図6 Ipsecの送信手順 [0]
図6 IPsecの送信手順

受信
 受信したパケットにIPsec関連ヘッダ(AH/ESP)がなければ、SPDを検索し得られたSPに照らし合わせ処理を行う(discardであれば廃棄するなど)。
 IPsec関連ヘッダ(AH/ESP)が存在した場合は、そのヘッダの<SPI、送信アドレス、セキュリティプロトコル>によってSADを検索し、得られたSAによって復号化、完全性チェックなどを行い、その後SPDを検索し得られたSPとの検証を行う(図7)。
 次回は、IPsecで使用する暗号化/認証用の鍵を通信相手と交換するためのプロトコルであるIKE、および現在IETFで進められているIPsecの規格改訂について説明する。

図7 Ipsecの受信手順 [0]
図7 IPsecの受信手順

この記事のトラックバックURL

http://www.ipv6style.jp/trackback/257

Source URL:
http://www.ipv6style.jp/jp/tech/20040707/index.shtml