Solaris のシステム管理 (IP サービス)

IKE のキーネゴシエーション

IKE デーモン in.iked は、機密性の高い方法で、SA の鍵情報をネゴシエートし、認証します。また、Solaris オペレーティングシステム によって提供される内部機能からキーのランダムシードを使用します。IKE は、PFS (Perfect Forward Secrecy) をサポートしています。PFS では、データ伝送を保護するキーを使用しないで追加キーを取得し、データ伝送のキーの作成に使用するシードを再利用しません。in.iked(1M) のマニュアルページを参照してください。

IKE デーモンによってリモートシステムの公開暗号鍵が検出されると、ローカルシステムではその鍵を使用できるようになります。ローカルシステムは、リモートシステムの公開鍵を使用してメッセージを暗号化します。メッセージを読み取れるのは、このリモートシステムだけです。IKE デーモンでは、そのジョブを「交換」と呼ばれる 2 つのフェーズで実行します。

IKE のキー用語について

次の表は、キーネゴシエーションで使用される用語と、一般的に使われるその略語、各用語の定義と使用についてまとめたものです。

表 22–1 キーネゴシエーションの用語、略語、使用

キーネゴシエーションの用語 

略語 

定義と使用 

キー交換 

 

非対称暗号化アルゴリズムのキーを生成する処理。主な手法には RSA プロトコルと Diffie-Hellman プロトコルがあります。 

Diffie-Hellman プロトコル 

DH 

キー生成とキー認証に関るキー交換プロトコル。しばしば「認証されたキー交換」と呼ばれます。

RSA プロトコル 

RSA 

キー生成とキー転送に関るキー交換プロトコル。このプロトコル名は、作成者の Rivest、Shamir、Adleman の三氏に因んでいます。 

Perfect Forward Secrecy

PFS 

認証されたキー交換だけに適用されます。PFS では、キーの長期的な機密情報が、以前の通信で交換されたキーの機密性を損なうことがありません。  

PFS では、データ伝送を保護するために使用されるキーが、追加のキーを導き出すために使用されることはありません。さらに、データ伝送を保護するために使用されるキーのソースが、追加のキーを導き出すために使用されることはありません。 

Oakley 方式 

 

フェーズ 2 のキーを安全な方法で確立する 1 つの手法。このプロトコルは、キー交換の Diffie-Hellman 方式に似ています。Diffie-Hellman と同じように、Oakley グループキー交換では、キー生成とキー認証が行われます。Oakley 方式は PFS のネゴシエーションに使用されます。 

IKE フェーズ 1 交換

フェーズ 1 交換は、「メインモード」といわれているものです。フェーズ 1 交換では、IKE は公開鍵暗号方式を使用して、ピア IKE エンティティーと IKE 自体を認証します。その結果がインターネットセキュリティーアソシエーションと鍵管理プロトコル (ISAKMP) セキュリティーアソシエーション (SA) で、IKE で IP データグラムの鍵情報のネゴシエーションを行うためのセキュリティー保護されたチャネルとなります。IPsec SA とは異なり、ISAKMP SA は双方向であるため、1 つの SA だけ必要です。

IKE がフェーズ 1 交換で鍵情報をネゴシエートする方法は構成可能です。IKE では、/etc/inet/ike/config ファイルから設定情報を読み取ります。次の設定情報があります。

認証方式には、事前共有鍵と公開鍵証明書の 2 つがあります。公開鍵証明書は自己署名付きであっても、公開鍵インフラ (PKI) 組織の 認証局 (CA) が発行したものであってもかまいません。この組織には、Trusted、Entrust、GeoTrust、RSA Security、Verisign などがあります。

IKE フェーズ 2 交換

フェーズ 2 交換は「クイックモード」といいます。フェーズ 2 交換では、IKE は IKE デーモンを実行するシステム間の IPsec SA を作成および管理します。また、フェーズ 1 交換で作成したセキュリティー保護されたチャネルを使用して、鍵情報の伝送を保護します。IKE デーモンは、/dev/random デバイスを使用して乱数発生関数からキーを作成します。また、IKE デーモンは、キーを一定の割合 (構成可能) で更新します。この鍵情報は、IPsec ポリシーの構成ファイル ipsecinit.conf に指定されているアルゴリズムによって使用されます。