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

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

タグ:
神田 充
東芝 研究開発センター



 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ヘッダの位置を示す。

中継点オプションヘッダ(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に対して計算した完全性チェック値(ICV)を認証データとして付与する。これにより受信したパケットのICVを計算しパケットの完全性をチェックすることよって改竄防止を図ることができる。AHのフォーマットを図2に示す。
 なお、使用する認証アルゴリズムは、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものが使用される。現在は、おもにHMAC-MD5およびHMAC-SHA1などが使用されている。
 AH自体は暗号化機能を有していないため、データの秘匿機能はないことに留意いただきたい。

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

注1 IPパケットの転送において値が変化する領域(例えばIPv6ヘッダのHop Limit)などを除く。

ESP(Encapsulating Security Payload)

 ESPは、パケットのペイロードの暗号化および改竄防止を目的とするものである。送受信双方で合意している暗号アルゴリズムを使用して、パケットのペイロード部分を暗号化する。さらに暗号化したESPヘッダに対して、同じように送受信双方で合意している認証アルゴリズムを使用して計算したICVを認証データとして付与することにより、ESPヘッダ自体の改竄防止を図っている。ESPのフォーマットを図2に示す。
 これら暗号化機能と改竄防止機能は独立して用いることも可能であるが、改竄防止機能を使用せず暗号化だけを行うことは、データが正しく暗号化されたものであるかを検出することが難しいため、奨められない。
 また、ESPの改竄防止機能は、AHのようにIPヘッダなどを含めたパケット全体ではなく、ペイロード部分のみが対象であることに注意する必要がある。
 なお、使用する暗号アルゴリズムは、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものを使用する。現在は、おもにDES-CBC注2、3DES-CBCおよびAES-CBCなどが使用されている。また使用する認証アルゴリズムも、1つに固定されているわけではなく、通信相手と事前にとり決めておいたものを使用する。現在は、おもにAHと同じHMAC-MD5およびHMAC-SHA1などが使用されている。

図3 ESPフォーマット
図3 ESPフォーマット

注2 DESは、現在では鍵長の短さから安全性に問題があり、使用はあまり奨められない。

IPsecのモード

 IPsecには、トンネルモード(tunnel mode)とトランポートモード(transport mode)の2つのモードがある。
 トンネルモードは、転送するIPパケット自体をペイロードとしてIPsecを適用して新たにIPヘッダを付け加えるものであり、VPN環境などにおいて使用されることが多い(図4)。
 トランスポートモードは、ホストがIPパケットを送信するときにIPsecを適用するものであり、純粋にEnd-to-Endの通信において使用される(図5)。

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

図5 トランスポートモード
図5 トランスポートモード

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

 セキュリティポリシー(SP)とは、IPsecを使用するにあたってどのようなパケットに対して
  • discard - パケット廃棄する
  • bypass - いかなる(IPsec)処理も行わない
  • appy - 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の送信手順
図6 IPsecの送信手順

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

図7 Ipsecの受信手順
図7 IPsecの受信手順

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

http://www.ipv6style.jp/trackback/257
Ads by Google

特集

リンク

go6.netはIPv6の普及を促進するコミュニティ・ポータルです。
http://go6.net/