どうも!とろあ(@tohroa)です。
先日書いたネットワークスペシャリスト試験直前!弱点を洗い出して強化しよう!という記事内で、暗号化、トンネリング技術が苦手分野の一つであると書きましたが…そもそもこの2つを一括りにしてしまっているあたりが怪しいのではないかと感じたりしながら、学習してみましたのでアウトプット!

暗号化、トンネリング技術

暗号化トンネリングを一括りにしてしまっていましたが、ぼくが特に理解できていないと感じているところを改めて見直してみたところ、IPsecVPNに関する知識だと発覚しました。

IPsecやVPNに関して覚えなければならないことはたくさんありますが…まず今回の記事ではIPsecについてまとめていきたいと思います。

IPsec

IPsecは認証や暗号化を行うことによって信頼性を高めるためのプロトコルです。
IPsecを実現するAH、ESP、IKEといったキーワードについて理解しておきましょう。

AH

AHはIPsec通信において、認証のみを行うプロトコルです。

IPsecにはトンネルモードトランスポートモードという2つのモードがあり、モードによってAHパケット構成が異なるので理解しておきたいところ。

トンネルモードにおけるAHでは、元のIPパケットを一切変更せずに、新しいIPヘッダとメッセージを認証するためのAHヘッダを付与します。

対してトランスポートモードでは、元のIPパケットのIPヘッダの後ろにAHヘッダを追加することで、メッセージ認証を実現します。

AHヘッダの付与する位置等は変わりますが、認証の範囲はいずれもヘッダを含めて、パケット全体となることは覚えておきましょう。

ESP

ESPはIPsec通信において、認証と暗号化の両方を行うプロトコルです。

ESPではトンネルモードまたはトランスポートモードによって暗号化範囲が異なるので理解しておきたいところ。

まず、トンネルモードにおけるESPヘッダ等の付与については、元のパケットの先頭にESPヘッダ、末尾にESPトレーラを付与することで挟みこみ、ESPヘッダより後ろ(IPヘッダ以降)からESPトレーラまでの内容を暗号化します。さらに、ESPヘッダからESPトレーラまでの認証情報をESP認証データとしてパケットの末尾に付与し、最後に暗号化の中に含まれてしまったIPヘッダの代わりとして新しいIPヘッダを先頭に付与して完了です。

トランスポートモードでは、トンネルモードにおけるIPヘッダのあと付けと異なり、最初から元のパケットのIPヘッダを除く部分(TCPorUDPヘッダ及びデータ)に対してESPヘッダ及びESPトレーラを付与して暗号化、ESPヘッダからESPトレーラまでの認証情報としてESP認証データをパケットの末尾に付与して完了になります。

トランスポートモードは通信を行うホスト間で認証および暗号化を行うため、送信元ホストから送信されて宛先ホストに届くまでの全経路上において暗号化された通信となりますが、それぞれのホストがIPsecに対応しなければなりません

対してトンネルモードは、IPsecに対応したルータ同士で暗号化が行われるため、ルータに到達するまで(宛先側ではルータ到達以降)はIPsecによる暗号化は行われていませんが、通信を行う各ホストでIPsecを認識および実現する仕組みは必要ありません

AHとESPは組み合わせて利用することも可能ですが、ここではESP認証データに変わりAHヘッダをIPヘッダの後ろに付与する(ESP認証データは付与されない)という程度の説明にて割愛します。

IKE

IPsec通信を実現するための3つ目のキーワードとして、IKEというプロトコルがあります。また、IKEの前提としてSA(Security Association)という言葉などもあるので一緒に覚えていきましょう。

なお、IKEにはv1とv2という2つのバージョンがありますが、ネットワークスペシャリストで主に出題される範囲としてはIKEv1を抑えておいた方が良さそうなので、IKEv1について記載しています。

IKEv1でIPsec通信を開始するためには、ISAKMPというフレームワークに基づきフェーズ1とフェーズ2で2段階の手順が必要となるので以降で手順を解説。

ISAKMP フェーズ1

ISAKMPのフェーズ1では送信元ホストと宛先ホスト間にて、エンティティ認証(通信相手の認証)暗号化アルゴリズムの整合、および、鍵の生成が行われます。

ホスト間で整合された情報を元にIKE SA(ISAKMP SA)というものが確立されます。この様にSAとはIPsec通信を行うホスト間で取り決めた情報であり、整合した情報(SA)はSAD(Security Association Database)に登録され必要に応じて参照されます。

また、フェーズ1はメインモードアグレッシブモードの2つがあり、簡単な特徴としてはメインモードの方がセキュアな方法だが処理が複雑であり、アグレッシブモードの方が手順がシンプルということが挙げられます。加えて、メインモードは送信元、宛先ともに固定IPアドレスである必要があるが、アグレッシブモードは宛先のみIPアドレスが固定できればよいというのも特徴です。

フェーズ2

ISAKMPのフェーズ2では、フェーズ1で作成したIKE SAの情報を元にホスト間で暗号化通信を確立し、続いて実際に通信を行うための鍵を生成
実際に通信を行うために確立する鍵情報をIPsec SAと呼び、こちらもSADに登録・活用されることとなります。

IPsec SAが確立され、ホスト間で暗号化通信を行う準備が整うことで、実際のIPsec通信が行えることとなります。

IPsec通信において、フェーズ1とフェーズ2の2段階の手順が行われ、それぞれSAが確立される理由は暗号化するための情報を頻繁にアップデートするためです。

フェーズ2で確立するIPsec SAは一定時間(IKE SAより短い時間)で消滅し、改めてIPsec SAを確立しなおす必要があります(この仕組みをReKey(リキー:鍵の再生成)と呼ぶ)。

IPsec SAを確立しなおすためにIKE SAを利用しますが、わざわざ2段階で認証する理由は、フェーズ1で複雑な鍵を生成することで解析されにくくした状態とし、そのうえでフェーズ2で鍵の生成を行う方法とすることで、IPsec SAの確立時に複雑な鍵生成のための処理・時間を抑えつつ、頻繁に鍵を更新することを実現しているのです。

最後に…

相変わらずまとまりのない内容になってしまっている気がしますが、自分のためのまとめとしては非常に理解できている気がします。

本当はイメージ付きで記載できればより良いのですが…そこまで凝ったものは試験後に考えます(汗)

アウトプットしようとすると、記事を書いていて疑問に思ったところは調べざるをえないので、時間はかかりますがとても良い勉強方法ですね。もっと早くコツコツと実践していればよかったです(> <;)