セキュリティやネットワークを学習しているといつかは遭遇する「IPsec」という言葉、暗号化やVPNのための仕組みであることは分かるのですが、一度覚えたつもりでも、すぐ分からなくなってしまいます。
そして、実際IPsecが何者なのか分かるまでには時間が掛かります。
今回は、このIPsecの全体像を理解するべく、分かり易くまとめて解説します!
そもそもIPsecとは?
ズバリIPsecとは、「インターネットで安全な通信を行うためのアーキテクチャ」のことです(IP Security Architectureの略)。
アーキテクチャって言われても...と思うかもしれませんが、要は暗号化や認証、鍵の交換など様々な技術を組み合わせた仕組みのことです。
しかも、技術の組み合わせには順番があり、順番にセキュアな通信を構築していくイメージとなります。
以下にイメージを図にしてみました!
それでは、それぞれの技術を調べてみましょう!
最初はトランスポートモードとトンネルモード!
まず、IPsecの接続の仕方(モード)には二つ方式があります。
それが「トランスポートモード」と「トンネルモード」ですが、簡単に説明すると以下の通りです。
トランスポートモード
IPアドレスを新たに付け加えるわけではなく、元のIPパケットのヘッダとペイロードの間にセキュリティプロトコル(AHやESP)が入るパターン
トンネルモード
元のIPパケットに新しいIPアドレスと セキュリティプロトコル(AHやESP) を付け加えるパターン。これにより元々のIPアドレスを隠すことができ、離れた場所での通信が可能となる
トランスポートモードはPC間の通信など、お互いのIPアドレスが見えている時に制限されるので、本社と支局間の通信などのケースではトンネルモードの方が使われます。
続いて、パケットに対して付与する認証と暗号化の技術に関して説明します!
認証にAH!
IPSecにおいてパケットのやり取り時に使うセキュリティプロトコルの一つにAHというものがあります。
AH(Authentication Header)はデータの認証を行うためのプロトコルです。元のIPパケットに対して、署名の情報(認証情報)を計算して、その情報をIPパケットに追加して送信します。受信側はAHの情報を確認して問題無ければ、元のIPパケットを取り出して利用します。
HMAC という方式ですね。
AHを元のIPパケットに追加した時のイメージをトランスポートモード、トンネルモードでそれぞれ図で表すと以下のようになります。
暗号化と認証にESP!
ESPもAHと同様にIPSecにおいてパケットのやり取り時に使うセキュリティプロトコルの一つです。
ESP(Encapsulated Security Payload)はデータの暗号化と認証を行うためのプロトコルです。暗号化にはDESや3DESやAESがあります。 認証に関してはAH同様データが改ざんされていないかの検証を行います。
ESPを元のIPパケットに追加した時のイメージをトランスポートモード、トンネルモードでそれぞれ図で表すと以下のようになります。
AHはデータの暗号化はされないので、現在はESPが使われることが殆どのようですが、AHは暗号化によるデータ通信を禁じている国(フランスなど)でIPSecの認証機能を利用する場合などのためにあるようですね。
あまり知られていないようですが、「AH(認証)+ESP(暗号化)」という組み合わせもあるようです。
鍵の交換にIKE!
IPsecにおいては、大事なデータを暗号化するために共通鍵を利用します。共通鍵は通信相手同士がそれぞれ鍵を持って、データの暗号化、および復号を行います。この共通鍵が他人にバレてしまうと、通信の内容を傍受されてしまうので、共通鍵は通信相手だけの秘密にしなければなりません。
この共通鍵を秘密にやり取りするための交換プロトコルが「IKE(Internet Key Exchange protocol)」なのです。
IKEには二つのフェーズがあります。
フェーズ1
ISAKMP SA(次節で説明)を確立して、安全な通信に必要となる情報を交換します。具体的にはフェーズ2で使用する暗号方式やカギの生成をします。
フェーズ2
IPsec SA(次節で説明)を確立し、安全な通信路を確立します。具体的にはIPsecで使用する暗号方式と暗号鍵など(SA)を決定します。
そして接続にSA!
IPsecでは、通信を行う際に仮想的な通信路であるSA(Security Association)というものを生成して、通信する双方を接続します。
このSAですが、「ISAKMP SA(またはIKE SA)」と「IPsec SA」の2種類があります。
ISAKMP SA
ISAKMP SA(読み方はアイサキャンプエスエー )は制御用のSAとなります。
通信に先立ちデータ交換を安全に行うために暗号化プロトコルや認証アルゴリズムなどの情報を交換し、通信に使う共通鍵を作成し、更には端末間の認証を行います。
IPSec SA
続いて、IPsec SAは通信データ用のSAとなります。
上り用と下り用でそれぞれ別のSAを生成して接続を確立します。
IPアドレスやプロトコルが違うと別々のSAを生成することになるので、支店が多く、様々な通信があると、SAの数が増えてSAを処理するルータの負荷が掛かることになります。
SAによってIPsecの接続が成立します。その流れは先ずISAKMP SAを生成して、パラメータ交換や、認証のやり取りを行います。その後、IPsec SAを生成して、通信路を確立します。
IPsec通信を開始する側の機器(ルータなど)のことを「イニシエータ」と呼び、応答を受ける側の機器を「レスポンダ」と呼びます。
「ISAKMP SA」と「IPsec SA」の流れは以下の図のようになります。
まとめ
今回は捉えどころが難しいIPsecに関して、概要レベルで解説してきました。と言っても、結構なボリュームになってしまいましたね(汗)
結局、IPsecとは色々な技術を組み合わせたものの総称であって、技術の組み合わせ次第で、色々なネットワーク構成やセキュリティが変わってくることがポイントですね。
その中でもSA、AH、ESP、IKEという技術は大事なので、それぞれがどんな技術なのかは覚えておくと、IPsecが記憶に残りますね。
といっても、なかなか覚えられない記憶力の無い自分がモドカシイです...(笑)
以上です!
参考URL)