情報セキュリティスペシャリスト
情報技術者試験まとめへ

通信の暗号化(2)

IPsec

IPsecとは


インターネットなどのTCP/IPネットワークで暗号通信を行うためのプロトコルの一つ。いくつかの要素技術の組み合わせとして実現され、通信相手を確認して成りすましの防止・通信途上での改ざんを防止するAH、伝送するデータの暗号化を行うESP、公開鍵暗号を用いて安全に暗号鍵の交換・共有を行うIKEなどが利用される。

IPsecの概要


【特徴】

IPsecVPNの機能や使用

IPsecVPN

通信の暗号化にIPsecを用いるVPN技術。ネットワーク層のプロトコルであるIPの段階で暗号化を行う方式。インターネットを通じて拠点間接続を行うインターネットVPNやリモートアクセスで用いられる。
各拠点の広域回線網との端点にIPsecゲートウェイを設置し、LAN内を流れるIPパケットを暗号化して拠点間で送受信する。各ネットワークはIPレベルで透過的に接続されているため、トランスポート層(TCP/UDP)より上のプロトコルやソフトウェアは特別な対応をする必要がない。

拠点間接続によるIPsecVPN

拠点対端末接続におけるIPsecVPN

モバイルPCやSOHOからいったんISPに接続し、インターネットを介して組織のネットワークに接続する場合に使用

2つの通信モード


IPsecには、パケットを暗号化する対象部分によってトランスポートモードとトンネルモードの2つの通信モードがある。
主流はトンネルモード。(LANとWANの境界にあるルータ(VPN装置)にIPsecの設定をすれば、LAN内のPCにIPsecの設定を個別にする必要がないため)

トランスポートモード

トンネルモード

IPsecの提供機能


アクセス制御機能

発信元アドレス、あて先アドレス、あて先ポート番号、プロトコル種別などによって、IPsecを使用するか否か、使用する機能(暗号化、メッセージ認証など)を制御する

メッセージ認証機能

メッセージ認証コード(MAC)によって通信データの改ざんの有無を確認し、安全性を保証する

送信元認証機能

MACを用いてデータ送信元の正当性を確認する

通信データ重複検知機能

通信データの盗聴によるリブレイアタックを防ぐことが可能

通信データ暗号化機能

ペイロード、ヘッダ情報の暗号化機能がある

・トランスポートモードペイロード、TCPヘッダのみ暗号化
・トンネルモードペイロード、TCPヘッダ、IPヘッダの暗号化

IPsecを構成する機能

SPD(セキュリティポリシーデータベース)

セキュリティポリシーを適用する際のデータベースのこと
IPsecでは、セキュリティポリシーを決め、そのポリシー に従って認証や暗号アルゴリズムを適用するか否かを決定する。システムはパケットに対して、セキュリティポリシーを適用するか否かを判断する際にセキュリティポリシーデータベース(SPD)を検索し、以下のことを行う。

判断の条件
選択する処理
セレクタでの設定

SA(セキュリティアソシエーション)

ネットワーク上の2つのノード間の一意の接続のこと。IPsecにおける論理的なコネクション(トンネル)。
制御用に用いるISAKMP SAと、実際の通信データを送るために用いるIPsec SAがある。 IPsecゲートウェイ同士が通信を始める時には、最初に制御用のISAKMP SAが作られ、次にIPsec SAが作られる。
ISAKMP SAはIPsecゲートウェイ間で一つ(上り下り兼用)で作られるが、IPsec SAは通信を行う各ホスト間において、通信の方向や使用するプロトコル(AH、ESP)ごとに別々のSAか作られる。


≪パラメータセット≫

IPsec SAは実質的にはIPsecのパラメータのセットのことになる。

SPI

SAを識別するために用いる32ビットの値


IPsec通信の通信手順


IPsec通信の通信手順は、IKE 2つ(フェーズ1、フェーズ2)と、実際の暗号化通信1つの順に行う

IKEを使った鍵交換

IKEには、フェーズ1とフェーズ2と呼ばれる2つの段階がある。

フェーズ1

ISAKMP SAと呼ばれるフェーズ2における交換内容を保護するためのSAを確立する。
次に、事前共有鍵(PresharedKey)やデジタル署名などを使用して相手を認証する。
※SA(Security Association)とは、セッションと考えればよい。

フェーズ2

IPsecで使用するIPsec SAを確立する。
※フェーズは1つでもいいのだが、より高速にするためにあえて分けている。

ESPプロトコルを使ったIPsecの通信

鍵交換のフェーズ2で決めた暗号化(例えば3DESやAES)や認証の方式(例えばMD5やSHA-1)を用い、作成した鍵を使ってIPsecSAにてIPsecの通信をする。

IPsecのプロトコル

AH(認証ヘッダ)

AHのパケット構成

トランスポートモード

IPヘッダとTCPヘッダの間にAHヘッダが挿入される

トンネルモード

元のIPヘッダの前に新たに付加されるIPヘッダとAHヘッダがセットされる

AHヘッダのレイアウト

ESP(暗号化ペイロード)

ESPのパケット構成

トランスポートモード

IPヘッダとTCPヘッダの間にESPヘッダが挿入され、ペイロードの後ろにESPトレーラ、ICVが付加される

トンネルモード

元のIPヘッダの前に新たに付加されるIPヘッダとAHヘッダがセットされ、ペイロードの後ろにESPトレーラ、ICVが付加される

ESPヘッダのレイアウト


≪AHも実装させることがある理由≫

ESPが全てのセキュリティサービスを実装できるにも関わらず、AHも実装させることがある理由


IKE(Internet Key Exchange)

IPsecで暗号化通信を行うのに先立って、暗号鍵を交換するために利用される通信プロトコル。その場限りの暗号化通信を行って、IPsecに必要な暗号化アルゴリズムの決定と暗号鍵の共有を行う。
Diffie-Hellman鍵交換によって暗号鍵を交換し、IKE限定の暗号化通信を行う。その際にIPsecでの通信に必要な各種の情報の交換などの手続きが行われ、IPsecによる通信を開始する。IKEの通信を盗み見られても、それ自体が暗号化されているため、IPsecの通信を解読される恐れはない

ISAKMPペイロードの種類
タイプ値ペイロードのタイプ名タイプ値ペイロードのタイプ名
0ペイロードなし8ハッシュ(Hash)
1SA (Security Association)9署名(Signature)
2Proposal10乱数(Nonce)
3Transform11通知(Notification)
4鍵交換(KeyExchange)12削除( Delete )
5ID (Identification)13ベンダID (VendorID)
6証明書(Certificate)14属性
7証明書要求(CertificateRequest)

ISAKMPヘッダのレイアウト

通信相手の認証

以下の表のいずれかの手段で、通信相手がせいとうであるかどうかを確認する

IKEで使用可能な通信相手の認証方式
認証方式概要
事前共有認証
(Pre-Shared Key認証)
通信を行う者同士が、あらかじめ鍵を共有しておき、それによって相手を認識する方式。もっと簡便な方式。広く使用されている
デジタル署名認証通信を行う者同士が、お互いのデジタル署名を検証することで相手を認証する方式。公開鍵証明書を取得している必要がある。
公開鍵暗号認証通信を行う者同士が、相手の公開鍵を入手してIDペイロードと乱数ペイロードを暗号化・送信し、受信側が自身の秘密鍵で復号することによって相手を認証する方式
公開鍵証明書は使用しない。ほとんど普及していない。
改良型公開鍵暗号認証公開鍵で暗号化する部分を乱数ペイロードのみにし、IDと鍵交換のペイロードは生成した秘密対称鍵を用いて暗号化する。従来の公開鍵暗号認証の処理を高速化したもの。
SAの作成と管理

IKEは@ISAKMP SA、AIPsec SAの順でSAを作成する。 各SAの作成においては、パケットの交換方法によっていくつかの交換タイプがある
良く使用されるタイプ
 ISAKMP SAの作成 :メインモードorアグレッシブモード
 IPsec SAの作成 :クイックモード
最も一般的な認証:事前共有鍵

IKEの実行モード

メインモード

ISAKMP SAの作成に利用する
IPsec接続先のIPアドレスも認証情報として利用する(端末のIPアドレスをIDとし、それに事前共有鍵を割り当てる)。したがって、双方とも固定IPアドレスでなければ認証ができない。その分、下のアグレッシブモードに比べ、メインモードの方がセキュリティは強固(認証情報であるIPアドレスは偽装が難しいから)。
両端が固定IPアドレスであることが要件。

メインモードによるISAKMP SAの作成イメージ

6つのメッセージ交換を行う。

@、A:ISAKMP SAのパラメータのネゴシエーション
@:イニシエータが、自身のセキュリティポリシーにあった複数の
パラメータのセットに優先順位をつけてレスポンダに提案する
A:応答者がその中から自身のセキュリティポリシーにあった
ものを1つ選択する
B、C:ISAKMP SAで使用する暗号化用の鍵と認証用の鍵のセットアップ
を行う。
D、E:それぞれのID(IPアドレスやホスト名、ユーザ名など)を交換し、
その認証情報を交換することで、相手の認証が行われる。
(例:デジタル署名認証方式を使用している場合は、ここで公開鍵証明書と署名を交換)
@・Aでネゴシエーションされたアルゴリズムと、B・Cでセットアップされた鍵を使用して、 暗号化とメッセージ認証が施される。このため、交換されるIDの内容を第三者に知られることはない。

ISAKMPパラメータ:暗号化アルゴリズム、ハッシュアルゴリズム、認証方式などのこと

アグレッシブモード

ISAKMP SAの作成に利用する
IPsec接続先のIPアドレスは認証情報として利用しない(利用者のIDなど運用者が独自に設定したIDに対して事前共有鍵を割り当てる)。したがって、動的IPでも認証できる。固定IPアドレスは費用がかかるので、コスト面でアグレッシブモードを選ぶ企業も多い。
ネゴシエーションできるパラメータが制限される、IDが保護されないといった問題がある。
事前共有鍵認証を行う場合、IDは暗号化されないが、最初に送信されるため、IDにFQDNなどを使用して事前共有鍵との対応付けを行うことが可能。そのため、IPアドレスが動的に設定されるモバイルPCなどでも使用可能。
動的IPを利用するときには、アグレッシブモードを利用しなければならない
XAUTHというIKEの拡張機能で認証を強化する場合がある。リモートアクセスユーザが不正な第三者でないか判断するために、VPN装置がRADIUSサーバと連携して認証を行う。

アグレッシブモードによるISAKMP SAの作成イメージ

3つのメッセージを使用する。

  1. イニシエータが、ISAKMPパラメータ、鍵交換パラメータ(DH公開値)、ID、認証用乱数を送信
    ※メインモードとは違い、秘密対称鍵を生成する前にIDを送る為、暗号化されない
  2. レスポンスが受諾するパラメータ、DH公開値、ID、認証用乱数、認証用ハッシュ値を送信
    イニシエータとレスポンスがDH秘密鍵を共有し、4つの秘密対称鍵を生成する
  3. イニシエータが、認証用のハッシュ値をレスポンスに送信する
    レスポンスはイニシエータを認証し、ISAKMP SAが確立する
クイックモード

IPsecの作成に使用する
前フェーズで確立されたISAKMP SAを使用するため、パケットのペイロード部分が暗号化される
IPsec SAで使用する秘密対称鍵は前フェーズで生成されたものが使用されるため、通常、新たに生成されない。
セキュリティ確保のため、IPsec通信の開始後もSAが定期的に更新され、両ホスト間で再認証と秘密対称鍵の更新が行われる

クイックモードによるIPsec SAの作成イメージ

3つのメッセージを交換する。

@、A:IPsec SAのパラメータのネゴシエーションと、IPsec SAで使用する
鍵のセットアップ、IPsecを適用するトラフィック(送信元IPアドレス、宛先IPアドレス、プロトコル等)の確認を行う
B:イニシエータからレスポンダにSAのセットアップが完了したことを
示すメッセージ(認証用ハッシュ値)が送信される。

リモートアクセスにおける留意点・対策

以上のようなIPsecの機能を利用することで、拠点間VPNを構築することが可能である。しかし、リモートアクセスVPNで利用するには、このようなIPsecの通常の機能だけでは難しい。 具体的には

といった問題が発生する。
これらの問題を解決するため、IPsecの実装を拡張し、以下の4つの機能を追加する必要がある。

XAUTH によるユーザ認証

IKEの Phase1 認証が完了した後、XAUTHによるユーザ認証を行なう。

XAUTH

リモートアクセスVPNの際に使用するIPsecの拡張技術。IKEのメッセージ交換時にVPNサーバとVPNクライアント間で、ユーザ認証に必要な情報をやりとりする。XAUTHは、Mode Configと同様にIKEフェーズ1が終了した後にやりとりされるので、ユーザ認証に必要な情報はISAKMP SA上で暗号化してやりとりされるため、ユーザ名やパスワードは安全にやりとりされる。
VPNクライアントは持ち運びが可能なPCであることが多く、PCを紛失してしまうと不正にVPN接続されてしまう。このような事態を回避するために、IKEフェーズ1による機器認証に加えてその機器の使用者が正当であるか確認するために、ユーザ名とパスワード認証するXAUTHの実装でセキュリティが高められる。

RADIUS サーバによる、ユーザ情報と事前共有鍵の管理

これらにより、繁雑なユーザ情報の管理を、RADIUS サーバを用いて一括管理すること可能。

tunnel template の新規追加

複数のトンネル設定の共通部分を抜き出し、テンプレートとして記述できるようにすることで、設定作業を簡単に行なうことができるようになる。

ISAKMP Configuration Method(mode-cfg) を用いた
IPsec クライアントへのアドレス付与

mode-cfg を用いて、セキュリティゲートウェイ側から IPsec クライアントの使用する内部 IP アドレスを割りあてることができるようになる。
使用可能な方式

通常、リモートアクセスでは、
RADIUSベースのユーザ認証が利用されるが、IPsecにおいては標準ではサポートされていない
接続先のネットワーク情報を取得して設定する機能も標準ではサポートされていない これらの機能は、XAUTHやmode-cfg(IKE-CFG)などの標準ではない機能を利用することで実現することが可能となる
NAT、NAPTを使用する際の留意点

NAT/NAPTデバイスを経由した通常のIPsecの通信はAH、 ESP、IKE のどれにおいても以下の表のように問題が発生する。

IPsecでNAT、NAPTを使用する場合に発生する問題
アドレス
変換方式
プロトコル暗号化モード説明
NATAHトランスポートIPヘッダが認証の対象となるため、IPアドレス情報が書き換えられると改ざんされたパケットとみなされ認証エラーが発生
トンネル
ESPトランスポート・認証の対象にIPヘッダが含まれないため問題は発生しない
・暗号化の対象にTCP/UDPヘッダが含まれているため、変更することができない
トンネル認証の対象にIPヘッダが含まれないため問題は発生しない
IKE−−−アドレスが変更されても特に問題は発生しない
NAPTAHトランスポートIPヘッダが認証の対象となるため、IPアドレス情報が書き換えられると改ざんされたパケットとみなされ認証エラーが発生
トンネル
ESPトランスポート暗号化の対象にTCP/UDPヘッダが含まれているため、ポート番号の変更を行うとポート番号を読取れない。これによりカプセル化されたパケットはネットワーク機器を通過する事ができない。
トンネル
IKE−−−ISAKMPメッセージは、送信元ポートも宛先ポートもUDP500番を使用するとRFC2408で定められているため、ポート番号500を変換してパケットを転送することはできない。

このようにAH、ESP、IKEともに問題が発生するため、IPsecのパケットはNAT/NAPTデバイスを通過させるために、インターネットドラフトが提案されている。

NAPT環境への対応

IETFでは、NAPT環境下でIPsecを使用するためのインターネットドラフトが提案されている。現在多くのVPNベンダが採用しているドラフトは以下の2つである。

NAT Traversal(Negotiation of NAT-Traversal in the IKE)
  • VPNゲートウェイとVPNクライアント間にアドレス変換が存在しているか否かの検証
  • VPNゲートウェイとVPNクライアントのどちら側にNAT装置が存在するのかの検証
UDP encapsulation(UDP Encapsulation of IPsec Packets)
  • NAT装置上でのNAPTに対応するために、経路上でNATあるいはNAPTが検出された場合にESPパケットをUDPでカプセル化する
  • NAT装置上では、追加されたUDPヘッダ内のポート番号を変換する
NATトラバーサル

NAT/NAPTを使用しているネットワーク環境においてIPsec通信を問題なく実現するIPsecの拡張技術。ESPパケットをUDPでカプセル化することにより、この付加されたUDPヘッダは暗号化の対象となっていないことから、NAPT機器でポート番号の書き換えを可能にしている。

UDP encapsulation(UDPのカプセル化)

NAT などの影響で ESP が通過できない環境で IPsec の通信を確立するために、ESP を UDP でカプセル化して送受信できるようにする。このコマンドの設定は双方のルータで一致させる必要がある。 本コマンドは IKEv2 により確立された SA を伴う IPsec 通信には影響を与えない。

@:UDPヘッダを付加してカプセル化
(ファイアウォールにACLを追加しなくても済むようにIKEと同じポートを使用する)
A:本来のIKEパケットと区別するためにNon-IKEフラグをセット
(IKEパケットにNon-ESPフラグを付加して区別する場合もある)
NAT(Network Address Translation)

ネットワークアドレス変換とは、IPアドレスを別のIPアドレスに変換する技術のこと。
プライベートIPアドレス(ローカルIPアドレス)を割り当てられたコンピュータに対し、プライベートIPアドレスとグローバルIPアドレスを変換して、インターネットにアクセス可能にする際に使われることが多い。

※@:LAN側からインターネットへパケットが送信されるとNATの機能に
より、送信元IPアドレスが変更される
※A:変更されたIPアドレス宛にパケットが届くと、元のIPアドレスに変更
される
NAPT(Network Address Port Translation)

アドレスに加えてポート番号も変換するという技術。
プライベートIPアドレスをグローバルIPアドレスに変換する際、加えてポート番号も変換する。この時、プライベートIPアドレスごとに異なるポート番号に変換する。

※@:LAN側からインターネットへパケットが送信されるとNAPTの機能に
より、送信元IPアドレスが変更される
※A:変更されたIPアドレス宛にパケットが届くと、ポート番号から送信
したPCのIPアドレスが分かるので、そのIPアドレスに変更される

 

ページトップへ 次へ