「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- IPsec(Security Architecture for Internet Protocol、アイピーセック)
- 共有鍵暗号方式を用いることで、IP パケット単位で改竄検知や秘匿機能を提供するプロトコル
- 暗号化をサポートしていないトランスポート層やアプリケーション層のプロトコルをネットワーク層で暗号化可能。
- 共有鍵暗号方式を用いるので鍵交換が必要。「完全性の確保」と「認証」も含まれる。
- 暗号化アルゴリズムなどをあえて特定せず、あらゆる暗号を利用できるような柔軟な枠組みを提供している。
- もともとインターネットの標準化団体であるIETFがVPNの標準プロトコルとして規定した。
構成 †
ピア †
- ピアは、ホストとセキュリティ・ゲートウェイの二種類に分類できる。
- IPsecは、原理的にはピアがどちらのタイプであるのかを問わない。
- が、ピアがどちらのタイプであるかによって推奨される通信モードが存在する。
- IPsecの各ピアは、2つのデータベースを管理する。
SPD(security policy database) †
セキュリティポリシーのデータベース
- 判定ポリシー
- IPアドレス
- プロトコル(TCP/UDP/ICMP等)
- TCPポート
- アクション・ポリシー
- パケットを破棄(discard)
- IPsecを使わずに送信(bypass IPsec)
- IPsecを使って送信(apply IPsec)
SAD(security association database) †
各ピアとSAを確立する際に用いるパラメタのデータベース
コネクション(SA) †
- Security Association
- 一連のネゴシエーションの結果として、お互いの間で得られた暗号化アルゴリズムや暗号鍵に関する合意。
- 2つのピアの間にSAという単方向コネクションを確立することで、ピア間にセキュアな通信を確立する
- Aは、単方向であるため、双方向通信を行う場合には、上りと下りの2つのSAを確立する必要がある。
SPI(Security Pointer Index)」 †
- SAの確定と同時に、SAと関連付けされた32ビットの整数値
- SPIは暗号化通信で各パケット中に挿入され、暗号化・復号(化)をガイドする。
- SPIを検索キーのように使って、パケット内の必要な情報を引き出す。
- 暗号化アルゴリズムや暗号鍵が推測できないように、暗号化通信の開始時に任意のものが割り当てられる。
- 値の意味がネゴシエーションを行った当事者者同士以外には分からないように工夫されている。
プロトコル †
フロー †
ピアSがピアRに向けてIPsecで通信する場合。
- SからRへのSAを確立する。
鍵共有プロトコルが実行される。
- SAを使ってパケットをSがRに暗号通信する。
共有された鍵を用いて、通信を暗号化する。
- Rがデータを受信し、復号などの必要処理を行う。
共有された鍵を用いて、通信を復号(化)する。
中核 †
中核をなす以下の3つのプロトコルがある。
鍵共有プロトコル †
IKE †
- Internet Key Exchange protocolという鍵交換プロトコル
- ISAKMP/Oakleyをもとにして作られた。
- 鍵生成には「Diffie-Hellman」方式が利用される。
- それ自体で暗号化通信をサポートしている。
- UDPポート番号500上で通信される。
ISAKMP/Oakley †
- ISAKMP:Internet Security Association Key Management Protocol
セッション確立のためのネゴシエーションを行う。
- Oaklay
Diffie-Hellman技術をベースとして、ピア間での安全なセッションを構成可能にする。
フェーズ1 †
フェーズ2で利用する暗号化アルゴリズムを決定するとともに、暗号鍵を生成する。
- パラメタ
ネゴシエーションによりISAKMP SAに必要なパラメタを決定
- 交換手順
ISAKMPメッセージの交換手順としてMainモードとAggressiveモードがある。
- 認証方式
通信相手(IPsec機器)との認証を行う認証方式
フェーズ2 †
- フェーズ1で暗号鍵が共有できた後、
- IPSecによる暗号化通信のためのネゴシエーションを始め、
- 暗号化アルゴリズムの決定、
- 暗号鍵の交換
- その他、IPSecによる通信に必要な各種情報のやり取り
- パラメタ
ネゴシエーションによりIPsec SAに必要な以下のパラメタを決定
暗号通信プロトコル †
暗号化 †
SAが確立された後、ピアSとRは、
- 以下の2つのうちいずれか、若しくは両方のプロトコル用いて、暗号化通信を行う。
- 平文の暗号化とメッセージ認証の両方を実行できる共通鍵暗号方式
- 暗号処理に必要な共通鍵は、SAの確立の際に生成もしくは読み込んだものを用いる。
ESP (Encapsulated Security Payload) †
- IPプロトコル番号 50。
- IPパケットに認証暗号を施すため、パケットの秘匿性と改竄検知の両方が担保される。
- 暗号化された通信内容にSPIとシーケンス番号フィールド、そして認証データという3つの付加情報が付け加えられた構造になる。
- 動作モードによって暗号化の範囲が異なる。
AH (Authentication Header) †
- IPプロトコル番号 51。
- 「完全性の保証」と「認証」のための仕組み。
- IPパケットにメッセージ認証子(MAC)をつけ暗号化は行わないので改竄検知しか担保されない。
- MAC(SPI、シーケンス番号、認証データ)をパックしてIPへッダの直後に加える。
復号(化) †
- ピアRは、パケットを受け取り、SADの記載に従って、パケットを破棄するか否かを決める。
- パケットがIPsecのものであれば、
- パケットを復号し(暗号化されている場合)
- メッセージ認証の検証を行った上で、上位レイヤーのプロトコルにパケットを渡す。
- パケットがIPsecではなく通常のIPのものである場合、
- 復号などの処理を施さず、
- 直接上位レイヤーのプロトコルにパケットを渡す。
動作モード †
トランスポート・モード †
トンネル・モード †
- 主に以下の通信で使われる。
- セキュリティ・ゲートウェイとセキュリティ・ゲートウェイ
- セキュリティ・ゲートウェイとホストの間
参考 †
- 以下の理由から、現状は専門の技術者が管理するGateway間でVPNとして利用されることが多い。
- 通信する二点間で全ての設定が一致していなければ通信が成立しない。
- 手動設定の場合は同じ鍵情報を長期間使い続けることになるため、セキュリティ強度の観点からも好ましくない。
Tags: :インフラストラクチャ, :通信技術, :Windows