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