IPsec / IP Security Protocol


■ IPsec。IP Security Protocol。
          Security Architecture for the IP。

  IPネットワークで認証/暗号化通信を行うためのセキュリティプロトコル。
  複数のプロトコルから構成される。
  IETFが標準化。バージョン1はRFC1825〜29。バージョン2はRFC2401〜12。
  IPv4ではオプションだが、IPv6では標準で実装される。

  IPレイヤでのセキュリティ機能としては、唯一標準化されているもの。
  多様な攻撃からデータを保護するため、非常に複雑なプロトコルになっている。
  セキュアなインターネットVPNを構築する。

  ホストから送信されるあらゆる通信を、IPレベルで暗号化できる。
  このため、TCPやUDPなどを利用するアプリケーションソフトは
  IPsecが使われていることを意識する必要はない。
  現在では、IPsec専用ゲートウェイ、ファイアウォール、ルータなど
  各種ネットワーク機器において対応が行なわれている。

  IPsecは、3つの基本プロトコルから構成されている。
  認証や暗号化を行なうAH/ESPと、自動鍵交換のプロトコルIKEからなる。

  1) AH。Authentication Header。
  認証ヘッダプロトコル。最低限の安全保証と認証を行う。

  2) ESP。Encapsulating Security Payroad。
  暗号ペイロードプロトコル。認証と暗号化を行う。

  3) IKE。Internet Key Exchange。
  自動鍵交換プロトコル。インターネット上で鍵情報を交換し合う。

■ SA。Security Association。

  IPsecのコネクションは正式にはSAと呼ぶ。
  SAはIPsec装置間で生成されるものである。
  SAは、ATMで言うところのVC、フレームリレーで言えばDLCなどに相当するとイメージすれば良い。

  SAは、セキュリティサービスを提供する一方向のコネクションである。
  装置Aから装置Bに向かうSAが1本あったとしても、
  そのSAを使って装置Bから装置Aに逆方向の通信を行なうことはできない。
  このようにSAは、片方向の通信に対し独立に設定されるので、
  双方向通信には行きと帰りの2つのSAが必要である。

  暗号化や認証アルゴリズム、それらに使用する鍵など、
  IPsecのパラメータは、SAごとに独立である。
  SAを構築するということは、
  IPsec通信を始める前に、送信側と受信側で、
  具体的に使用する認証アルゴリズムや暗号化アルゴリズムの種類について、
  合意を確立することであり、
  またはその合意内容をSAという。

  SAには種類があり、暗号化や認証の方法によって、
  ESPを使用したものとAHを使用したものに分けられる。
  ESPはパケットの暗号化機能を提供するものであり、。
  AHはパケットの改ざん検知機能を提供するものである。

  またSAは、IPsec化したパケットが
  どのホストで作られ、どのホストに届けられるかという観点から分類した、
  トンネルモードとトランスポートモードという2つのモードが存在する。
  トンネルモードは、ほかのホストが投げてきたパケットを転送する際に
  まとめてIPsecを適用するモードである。
  トランスポートモードとは、そのパケットを作ったホスト自身が
  自分のパケットをIPsec化してネットワークに送り出すモードである。
  効用的側面。
  トランスポートモードは通信の内容のみを秘密にする。
  トンネルモードは通信の内容だけでなく存在そのものも秘密にする。

  なお、カプセル化モードがトランスポートモードかトンネルモードかということと、
  使用するセキュリティプロトコルがESPかAHかということは独立である。

■ トンネルモード

  元のパケットをIPヘッダから丸ごと暗号化などの処理を行なって
  転送用に新しいIPヘッダを付加する。
  外側の転送用IPヘッダの送信元/宛先アドレスは、IPsec装置のIPアドレスになる。

■ トランスポートモード

  元のIPヘッダをそのまま転送用のIPヘッダとしても使用し、
  元のパケットのペイロード部分だけに対して暗号化などの処理を行なう。



■ AH。Authentication Header。認証ヘッダー。

  IPパケットの認証を行う枠組みを規定する。
  すなわち。送信したパケットが改ざんされているかどうかのチェックする。
  具体的に使用するアルゴリズムは別に定める。
  チェックサムにはSPIで指定した方式を用いる(標準ではHMAC-MD5は最低限実装)。
  RFC2402に規定されている。

  IPsecにおける“認証”とは、
  一般に言われるユーザ認証を指すものではない。
  VPNの実現にあたりユーザ認証を行なうには、
  RADIUSのような別の仕組みが必要である。

  ESPと同様に、AHでもトランスポートモードとトンネルモードの2つがある。
  データを暗号化しないだけで、IPヘッダの扱いは
  ESPによるトランスポートモード、トンネルモードと同じである。

  

  

■ トンネルモード


■ トランスポートモード


■ ESP。Encupsulating Security Payload。

  IPパケットの認証と暗号化を行う仕組みを規定する。
  具体的に使用するアルゴリズムはSAで指定される(標準では DES-CBC)。
  RFC2406に規定されている。 

  IPパケットをカプセル化する方法には、2つの方法がある。
  IPパケットのデータ部だけを暗号化するトランスポートモードと、
  IPパケットをヘッダごと暗号化するトンネルモードがある。

■ トンネルモード。 Tunnel Mode。

  IPヘッダを含むIPパケットの全体を、ESPヘッダでカプセル化して、
  さらに新しいIPヘッダを付加して転送する方法。

  トンネルモードは、
  互いにVPNゲートウェイ装置を設置したLAN間の通信に用いる。
  送信元のVPN装置でIPパケットを暗号化し、
  あて先のVPN装置で暗号化されたIPパケットを復号する。

  トンネルモードでは、いずれか一方から接続を開始しなければならない。
  接続開始側をイニシエータ、受け側をレスポンダと呼ぶ。

  ヘッダフォーマット。

  ESPヘッダ
  SAなどを識別するための32ビットのSPIフィールドと、
  同じく32ビットのシーケンス番号フィールドから構成される。

  ESPトレーラ
  暗号化する対象データを64ビットの整数倍に修正するために付加される
  パディング情報である。

  ESP認証データフィールド
  認証する対象データと暗号化に使用した共通鍵とを、
  ハッシュ演算した結果が格納される。

  

■ トランスポートモード。Transport Mode。

  IPパケットのデータ部分(TCP/UDPヘッダを含む)だけを、カプセル化する方法。
  ホスト-ホスト間の直接通信に用いる。

  

  

  

■ 暗号化方式。

  IPsecにおける暗号化方式には、
  DESまたはトリプルDESが使われることが多い。

  これらは、データを64ビット単位のブロックに区切って、
  この単位ごとに暗号化する。
  このような暗号化方式を、ブロック暗号化ともいう。

  つまり、IPパケットのデータ長が、64ビット、
  つまり8バイトの整数倍になっていないときは、
  8バイトの整数倍になるように、パディングデータを付加する必要がある。

■ 認証方式。

  Ipsecにおけるメッセージ認証のためのデータを作成するためには、
  通常MD5やSHA-1などのハッシュ関数が使用される。

■ IKE。Internet Key Exchange。自動鍵交換 

  暗号・認証のパラメータを動的に生成して交換するための鍵管理プロトコル。
  IPsecで使用する鍵の組合わせ情報や鍵を交換するための専用プロトコル。
  SAを構築する。RFC2409に規定されている。

  IKEは、従来のOakley(RFC2412)、SKEMEを元に作られた鍵交換プロトコルであり、
  ISAKMP(RFC2408)に適した実装になっている

  IPsecでは、お互いのVPN装置が同じ暗号鍵(共通鍵または対称鍵)を共有する。

  IPsecでは、IPパケットを暗号化するための鍵と、
  それを安全に共有するための鍵という2つの共通鍵が使われる。

■ ISAKMP。Internet Security Association and Key Management Protocol。

  アイサカンプ。

  IANAによってポート番号500番が割り当てられている。
  ISAKMPとIKEは、IP/UDPの500番ポートで送受信される。
    ISAKMPのヘッダは、可変長である。

  SAの確立までの通信手順は2つのフェーズで行なわれる。

■ SAの確立。

  SAには、IKEを使って自動設定する方法と、
  手動設定する方法の2つの方法がある。

  IKEの処理は前半と後半に分かれている。
  それぞれフェーズ1、フェーズ2という。

  SAの確立は、以下の2つの手順で行なわれる。

  1)フェーズ1
  最初にISAKMP SAを確立する。
  ISAKMP SAは、フェーズ2で使われる通信を保護するためのSAである。

  2)フェーズ2
  ISAKMP SAを利用して、IPsec通信用のSAを確立
  @ 認証アルゴリズム/認証パラメータの交換  
  A 暗号化アルゴリズム/暗号化パラメータの交換

■ 1)フェーズ1

  必要な情報をVPN装置同士で共有する。
  具体的には、暗号方式、ハッシュ関数、認証の方法などを共有する。
  方法としては、あらかじめそれぞれのVPN装置で
  これらのパラメータのセットを何組か用意しておき、
  SPIと呼ぶ番号を割り当てておく。
  VPN装置はSPIを相手に送って共有するパラメータを決める。

  特別なアルゴリズムを用いて、
  IPパケットを暗号化するための共通鍵を
  安全に交換するための共通鍵を共有する。
  最初の共通鍵の交換には、
  Diffie-Hellmanアルゴリズムと呼ばれるものが、よく使われる。

  最後に、相手の機器が本物かどうかどうかを認証する。
  つまり、これは本人性確認の方の認証である。

■ 2)フェーズ2

  フェーズ1で確立した安全な通信路を使って、
  実際にIPパケットを暗号化するための必要な情報を
  お互いのVPN装置で共有する。
  ここでは、IPパケットの送り方を決めるパラメータなどを交渉して決定する。
  具体的には、セキュリティプロトコルの種類(AHかESPか)、
  カプセル化の方法(トランスポートモードかトンネルモードか)、
  暗号化方式、ハッシュ関数、認証の方法などである。

  続いて、IPパケットを暗号化するための共通鍵を共有する。

  こうしてIKEの処理が終わると、
  あとはIPパケットを暗号化してやり取りするだけになる。

■ SPI。Security Parameters Index。

  単一の端末が複数のIPsec通信をする場合、
  相手に応じてSAが異なることから、
  相手に応じて異なるSAの種類を識別するための識別子。
  AHやESPのヘッダ内に格納される。
  パケットごとに判別する。

■ IPパケットのカプセル化。

  IPパケットをカプセル化する方法には、2つの方法がある。
  IPパケットのデータ部だけを暗号化するトランスポートモードと、
  IPパケットをヘッダごと暗号化するトンネルモードがある。

■ IPsecとNAT。

  AHを利用する場合、
  (トンネルモードであっても、トランスポートモードであっても?)
  IPヘッダが認証対象になる。
  このため、NATによるアドレス変換を行なうと、受信側ではねられる。
  このため、通信ができない。

  ESPを利用する場合
  (トンネルモードであっても、トランスポートモードであっても?)
  IPヘッダは認証対象外になる。
  このため、1対1のアドレス変換であれば可能。
  しかし、上位がTCP/UDPでない(ESP) のためポート番号による多重化はNG。
  1対Nのアドレス変換は不可能。 

■ IPsecとIPマスカレード。

  ESPを使うとIPマスカレードが使えない。

  この理由は、VPN装置(IPsec端末)においてESPが働き、
  トンネルモードであっても、トランスポートモードであっても、
  TCPセグメントが暗号化されてしまう。
  このため、IPマスカレードを行なうルータが
  ポート番号を参照することができなくなるので、
  IPマスカレード機能が働かず、通信ができない。

  こうしたケースでは、NATを越えるために、
  トンネル用IPヘッダとESPヘッダの間に、
  ポート番号を含むUDPヘッダを追加するなどの方法が採られる。

■ プライベートアドレス。

  ESPの(AHは?)トンネルモードで通信する場合、
  現在使っているプライベートIPアドレスをそのまま使える。
  IPパケットをカプセル化して交換する形になるため。
  これはIP-VPNで用いられる。

  ただし。双方のLANで異なるプライベートIPアドレス群を使用している必要がある。

以上。

2004/03/24 pm


HOME |  BACK

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル