IPSecはIPネットワーク環境における暗号化通信の実装です。 通常、IPパケットそのものにはデータの暗号化が行われていないため※1、ネットワーク上の途中経路で盗聴やデータ改ざんの危険性が存在します。現在のようにインターネットを使ったショッピングや組織における拠点間接続を行うには、何らかのデータ暗号化を実施した上でデータのやり取りがセキュリティ上は重要になってきます。
こ
のような暗号化の方法としては、Webブラウザなどで良く利用されるSSL、メールなどで利用されるS/MIMEやPGP、そして主にルータなどのゲート
ウェイ製品で採用されているIPSecなどといったそれぞれの環境に適合した方法で暗号化を実施して、安全にデータのやり取りすることが一般的です。
本ページでは、IPSecを利用した暗号化についてその概要とともに、ルータを使ったIPSecの設定について説明を行っていきます。
な
お、ルータでのIPSecの設定例では同一メーカ同士の設定例は多くのサイトに存在することから、可能な限り複数ベンダ製品を組み合わせた設定例を載せて
いきます。また、IPSecにはルータ間でのIPSecを念頭に、IPSecのトンネルモードについて説明を行います。
IPSecが難しく感じられる理由は、IPSecを構成するために色々な用語やその役割を理解しなくてはならないことが原因かも知れません。 以下ではIPSecを設定する上で覚えておいた方が良いと思われる用語の意味について簡単に説明します。
SAは、IPSecを難しく感じさせる言葉の一つかも知れません。 SAについて詳しい説明は本ページの目的ではないのでするつもりはありません。
単に概念としてSAを理解していれば十分だと思いますので、以下ではSAを次のように説明します。
SAとはIPSec
通信ができるルータのような機器同士において、暗号化された経路のことを意味します。 SAには通信の方向があり、例えば東京と大阪間でIPSecで暗号化されたルータを
設置すると、電車の線路のように上りと下りの経路が作成されます。(ログなどを確認する場合に、SAの向きに注意する必要があるという事ですね)
SAはIPSecを実施する機器間ごとに必要なので、仮に東京を中心として大阪と札幌を東京のルータで接続するなら、東京-大阪(上りと下りで2SA)、東京-札幌(上りと下りで2SA)の併せて4SAが必要になります。
各SA
はそれぞれ暗号化のパラメータを別個で管理できるので、例えば大阪と札幌で暗号化の方式を変えた設計をすることも技術的には可能です。(しかし、管理が大変
になるのでそんな事はしない方が良いでしょう。セキュリティ関連の黄金則は、セキュリティに関するデフォルト値は強固にして、ただし設定パラメータは見通しが良い事!
につきます)
な
お、IPSecにおけるSAは手動で設定すると面倒な上、管理が大変なことから、現在はSAの管理はIKE(Internet Key
Exchange)という方法で自動的にSAを生成させる設定を行うことが一般的で、これによってIPSecの方向などを気にすることなくIPSecを利
用できる環境を構築するようになっています。
上でも説明したようにIPSecを利用することは即ちSAを設定することに他なりませんが、SAを手動で設定するのはルータの数が増えるほど手間になってきますし、設定ミスの要因にもなってきます。
IKEを利用すると、SA用のパラメータをIKEに与えることで、必要に応じて自動的にSAを作成する上、一定期間か経過したSAを破棄して新たに秘密鍵とSAを作り直すといった事ができるため安全面でもIKEを利用する事が推奨されます。
なお、IKEを設定する際に共通鍵(Pre-Shared Key)の設定を行いますが、この共通鍵はSA間で利用されている秘密鍵とは関係無く、ルータ間同士の認証をする為だけに利用されるものです。
SAにて機器間が接続されると、IPパケットのデー タは暗号化されたESPという暗号化パケットでSAの中を通ってデータのやり取りが行われます。 ESPによってデータが暗号化されたカプセル化がされることで、データは盗聴やデータ改ざんといったことから保護される事になります。
IPSecではデータを暗号化する際に使う暗号の方法(暗号アルゴリズム)をSA毎に設定できるようになっています。 現状ではIPSecの暗号化アルゴリズムとしては「DES」か「3DES」のどちらかを利用することになる。
通常は、DESに比べ強度の強い「3DES」を選べば良い筈である。
IPSecでの認証用ハッシュアルゴリズムは幾つかの場面で出てきます。 当然、SA(暗号化通信データ)に対する認証用ハッシュアルゴリズムは必要ですが、これ以外にもIKEの利用においても認証用ハッシュアルゴリズムはSA用と違うパラメータとして指定できます。
このため、暗号化アルゴリズム、SAの認証用ハッシュアルゴリズム、IKEの認証用ハッシュアルゴリズムをそれぞれ違う意味のものと理解できていないと混乱の原因となる部分ともいえます。
認証用ハッシュアルゴリズムには「MD5」、「SHA-1」、「SHA-1-HMAC(Hash-based Message Authentication: 鍵付きSHA-1)」などが選択できます。
IPSec
はSAを使って暗号化通信を行っていることは上の説明の通りですが、SAの部分でも説明したようにSAは1つの機器に複数設定される可能性があります。
ということはパケットは、通信相手とつながるためのSAを何らかの方法で選択する必要があることを意味します。(IPパケットにおけるルーティングみたいなものです)
このSAを選択する方法をセレクタと呼び、セレクタとして利用できるものとしては「IPアドレス」、「プロトコル(UDPかTCPかなど)」、「送信元ポートと宛先ポート」、「ユーザ名やホスト名」」などが利用できるようになっています。
SAのポリシを設定した際に、これらセレクタを組み合わせて設定することで、任意の相手先とIPSecによる通信が行えるようになっています。
IPSecでは通信機器間でSAを確立するまでの手順として、Phase1、Phase2という2つの状態が存在します。
Phase1では、IKE上のやり取りを行いお互いのIKEのやり取りができるかを確認しSAを構築する前までの手続きを実施して、以後のSA確立をする準備を行います。
Phase2では、SAを確立するための手続きを実施して、実際の暗号化トンネルを構築します。 SAには生存可能時間があり、一定時間が経過すると使用
中のSAは破棄されて、新たにSAが自動的に構築されてるようになっているので、ログなどで確認するとPhase2は何度も構築されることが確認できるこ
とと思います。
以上が、取りあえずIPSecを利用する上で覚えておいた方が良い知識となります。 これ以外にもIPSecを利用する上では色々な言葉が出てきますが、ルータを使ったIPSecを実現する上では上記の内容を押さえておけば取りあえずは問題ないと思います。
以下からは、各メーカのIPSec対応ルータを使ったIPSec接続設定についての設定例を示していきます。
※1 IPv4の場合。 IPv6ではIPプロトコルそのものにIPSecが実装されているので、従来より安全な通信を利用できるようになると考えられます。