IPsec
出典: フリー百科事典『ウィキペディア(Wikipedia)』
IPsec(Security Architecture for Internet Protocol、アイピーセック)は、暗号技術を用いて、IPパケット単位でデータの改竄防止や秘匿機能を提供するプロトコルである。これによって、暗号化をサポートしていないトランスポートやアプリケーションを用いても、通信路の途中で通信内容を覗きみられたり改ざんされることが防止できる。
IPsecはAHによる完全性と認証機構、ESPによるデータ暗号化などのセキュリティプロトコルの他、IKEなどによる鍵交換からなる。
IETFのipsec wgにて規格策定が行われていたが、現在はほぼその規格は固まっている。
IPv4, IPv6両者で利用できる。IPv6では専用の拡張ヘッダが定義されているが、IPv4ではIPヘッダオプションを利用する。
目次 |
[編集] IPsecの利点・欠点
IPsecはネットワーク層のプロトコルを保護するので、暗号化がサポートされていない上位層やアプリケーションでもセキュリティの確保が可能になる。 一方で、暗号通信はネットワークスタック以下で行われるので、SSLを使用しているときのwebブラウザの鍵マークのように、ユーザーがどのプロトコルで暗号化されているかを容易に知ることができない。 そのため、専門の管理者が容易に管理しやすいGatewayでの設定が行えるような、VPNでの利用が現在の主な用途になっていることが多い。IPsecをVPNで利用する場合はIPアドレスを二重に付加するトンネルモードが利用できるが、IP以外のパケットも伝達するためL2TPなどの拡張プロトコルが用いられる場合もある。
IPsecはAHの認証機能、ESPの暗号機能を組み合わせて使うことができ、AH/ESPそれぞれに様々なアルゴリズムを指定することができる。この柔軟さがIPsecの利点ではあるが、設定可能な組み合わせは膨大となり、通信する二点間で全ての設定が一致していなければ通信が成立しない。このためVPNのような特定2点間ならともかく、多台数間のIPsec通信を手動設定で行うのは実用上ほぼ不可能である(手動設定の場合は同じ鍵情報を長期間使い続けることになるため、セキュリティ強度の観点からも好ましくない)。 この手間を軽減するためネットワークで自動鍵交換を行うプロトコルも提案されているが、KINK,Photuris,IKEv1,IKEv2など互換性のない複数の規格が並立してしまっている。最も普及しているIKEv1でも動作モード、認証パラメータ、認証方式、鍵交換アルゴリズム、暗号アルゴリズム、認証アルゴリズムなど設定項目の組み合わせが多い。総じて、IPsecを使うためには高度な専門知識が要求されるという欠点になってしまっている。
[編集] IPsecの仕組み
IPsecは同一ノード間の通信でも、プロトコルやポート番号などによって複数の暗号化方式や暗号鍵、セキュリティプロトコルを使用することができる。このように双方で共有するパラメータをSA(Security Association)といい、SAを管理するデータベースをSADという。どのプロトコルでどのSADを使うかを決めるのが、SP(Security Policy)で、SPを管理するデータベースがSPDである。 エンコードされたIPsecヘッダ(AH/ESP)には自身の所属するSAを示す32bitのID情報が付加され、これをSPIと呼ぶ。紛らわしいがSPIはSecurity Parameter Indexの略であり、Security Policyと直接の関係はない。
IPパケットを送信するノードは、そのIPパケットに合致するSPを探し、そのSPが示すSAの情報に基づいて暗号の処理を行う。受信時はAH/ESPのヘッダに含まれるSPIからSAが検索されて復号/認証処理が行われ、その処理結果がSPで規定されるセキュリティ要求を満たしているか否かの判定が行われる。
[編集] AH
AH(Authentication Header)は、認証、改竄防止機能を提供する。データそのものは暗号化されないので、覗見防止には利用できない。RFC1826形式のAHには再送防止機能(Anti Replay Counter)が無いが、RFC2402では32bitの、RFC4302では64bitのカウンタが付けられており、過去に送信されたパケットがコピー再送されても多重受信しない機能がオプションとして利用できる。
[編集] ESP
ESP(Encapusulated Security Payload)はPayload部を暗号化する。正確には、IPヘッダ、経路ヘッダ、ホップバイホップオプションヘッダを除いた部分が暗号化される。RFC1827形式のESPには認証機能が無いが、RFC2406/4303形式のESPにはオプションとして「認証トレイラー」機能があり、AHを併用せずとも改竄防止機能を利用することが可能となっている(ただし保証されるのはデータ部分だけで、IPヘッダ部分の改竄を検出することはできない)。また後者にはAH同様に再送防止機能も追加されている。
RFC1826/1827形式のAH/ESPはそれ以降のRFCとヘッダ長が異なるため互換性がない。RFC4302/4303形式の64bitカウンタはESN(Extended Sequence Number)とも呼ばれるが、実際にパケットに付加されるのは下位32bitだけで、見た目はRFC2402形式のパケットと区別が付かない。ただし認証ベクタ(ICV)の算出には全64bitが使用されるため、RFC2402/2406形式のIPsecとRFC4302/4303形式のIPsecの間にも直接の互換性はない。RFC4302/4303仕様のIPsec実装でRFC2402/2406形式と通信するためには、32bitの互換カウンタ使用を明示指定する必要がある。
RFC182x形式のIPsecをIPSECv1,RFC260x形式をIPSECv2,RFC430x形式をIPSECv3と呼ぶこともあるが、これは非公式なものであり、IETFではバージョン番号を与えていない。
[編集] IKE
SADを構築するのに必要な鍵情報の交換を安全に行うプロトコル。IKEv1(RFC2409)とIKEv2(RFC4306)が定義されている。またIKEv1/v2以外にもPhoturis(RFC2522),KINK(RFC4430)などの鍵交換プロトコルが提案されている。
[編集] IPsecが使えるシステム
- Windows
Windows2000/XPではIPv4で利用可能。Windows VistaではIPv4,IPv6で利用可能となる予定。
KAME由来のIPsecが利用可能。OS標準のGUIで利用出来るのはL2TP/IPsecのみである。
- BSD
FreeBSD, NetBSDではKAMEで作られた実装が取り込まれており、OpenBSDでは独自に実装を行っている。
- Linux
IPv4, IPv6で利用可能。IKEはKAME由来のracoonを発展させたipsec-toolsを利用する。