IPsec と IKE の管理

IKE ユーティリティおよび IKE ファイル

この節では、IKE ポリシーの構成ファイルと、IKE を実装するさまざまなコマンドについて説明します。 ネットワークに IKE を実装する方法の手順については、IKE の設定 (作業マップ)を参照してください。

表 3–1 IKE の構成ファイルおよびコマンド

ファイルまたはコマンド 

説明 

in.iked デーモン

インターネットキー交換 (IKE) デーモン。自動キー管理を有効にする

ikeadm コマンド

IKE ポリシーの表示および変更用 IKE 管理コマンド

ikecert コマンド

ローカルの公開鍵証明書データベースを操作する証明書データベース管理コマンド。 データベースも接続された Sun Crypto Accelerator 4000 ボードに格納できる

/etc/inet/ike/config ファイル

IKE ポリシーの構成ファイル。インバウンド IKE 要求のマッチングとアウトバウンド IKE 要求の準備に関するサイトの規則が含まれる。このファイルがある場合には、in.iked デーモンがブート時に自動的に開始する

/etc/inet/secret/ike.preshared ファイル

事前共有鍵のファイル。フェーズ 1 交換での認証の秘密鍵情報が含まれる。事前共有鍵を使って IKE を構成するときに使用

/etc/inet/secret/ike.privatekeys ファイル

非公開鍵のディレクトリ。公開鍵と非公開鍵のペアの非公開部分が含まれる

/etc/inet/ike/publickeys ディレクトリ

公開鍵と証明書ファイルを保存するディレクトリ。公開鍵と非公開鍵のペアの公開部分が含まれる

/etc/inet/ike/crls ディレクトリ

公開鍵および証明書ファイルの無効リストを保存するディレクトリ

Sun Crypto Accelerator 1000 ボード 

オペレーティングシステムの処理を少なくすることで公開鍵操作を高速化するハードウェア 

Sun Crypto Accelerator 4000 ボード 

オペレーティングシステムの処理を少なくすることで公開鍵操作を高速化するハードウェア。公開鍵、非公開鍵、および公開鍵証明書も格納する  

IKE デーモン

in.iked デーモンを実行すると、Solaris システム上の IPsec の暗号キーの管理が自動化されます。また、同じプロトコルを実行するリモートシステムとのネゴシエーションを行い、認証されたキー情報が、保護された方法でセキュリティアソシエーションに提供されます。このデーモンは、セキュリティ保護された通信を行うすべてのシステムで実行する必要があります。

IKE ポリシーの構成ファイル /etc/inet/ike/config がある場合には、IKE デーモンがブート時に自動的にロードされます。デーモンは構成ファイルの構文を検査します。

IKE デーモンを実行すると、フェーズ 1 交換では、システムがそのピア IKE エンティティに対してそのシステム自体を認証します。そのピアは、認証方式として IKE ポリシーファイルに定義されています。その後、フェーズ 2 交換のキーが設定されます。ポリシーファイルで指定した時間間隔で、IKE キーが自動的に更新されます。in.iked デーモンを実行すると、ネットワークから着信する IKE 要求と、 PF_KEY ソケット経由のアウトバウンドトラフィックの要求を待機します。詳細については、pf_key(7P) のマニュアルページを参照してください。

2 つのコマンドで IKE デーモンをサポートします。ikeadm コマンドを実行すると、IKE ポリシーを表示および変更できます。ikecert コマンドを実行すると、公開鍵データベースを表示および変更できます。このコマンドは、ローカルデータベース ike.privatekeys および publickeys を管理します。公開鍵の操作とハードウェア上の公開鍵の記憶領域も管理します。

IKE ポリシーファイル

IKE ポリシーの設定ファイル /etc/inet/ike/config により、IKE デーモン自体とこの構成ファイルで管理する IPsec SA に、キー操作の規則とグローバルパラメータが提供されます。IKE デーモン自体は、フェーズ 1 交換でキー情報を要求します。ike/config ファイルにある規則に基づいてキー情報が設定されます。ポリシーファイルにある有効な規則にはラベルが含まれています。その規則により、キー情報を使用して保護されるシステムまたはネットワークが特定され、認証方式が指定されます。有効なポリシーファイルの例については、事前共有鍵による IKE の設定 (作業マップ)を参照してください。そのエントリの例と説明は、ike.config(4) のマニュアルページを参照してください。

IPsec SA は、IPsec ポリシーの設定ファイル /etc/inet/ipsecinit.conf で設定されるポリシーに従って保護される IP データグラムで使用されます。IKE ポリシーファイルにより、IPsec SA の作成時に PFS を使用するかどうかが決定されます。

ike/config ファイルには、RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) に従って実装されるライブラリのパスを含めることができます。IKE は、この PKCS #11 ライブラリを使って、アクセラレータおよびキーストレージハードウェアにアクセスします。

ike/config ファイルのセキュリティに関する注意点は、ipsecinit.conf ファイルのセキュリティと同様です。詳細については、ipsecinit.confipsecconf のセキュリティについてを参照してください。

IKE 管理コマンド

ikeadm コマンドを実行すると、次のことができます。

例とこのコマンドのオプションの詳細については、ikeadm(1M) のマニュアルページを参照してください。実行する IKE デーモンの権限レベルにより、表示および変更可能な IKE デーモンの要素が決まります。権限レベルには、次のものがあります。

0x0 (基本レベル)

基本レベルの権限では、キー情報を表示または変更できない。基本レベルは、in.iked デーモン実行時のデフォルトレベル

0x1 (modkeys レベル)

modkeys レベルの権限では、事前共有鍵を削除、変更、または追加できる

0x2 (keymat レベル)

keymat レベルの権限では、ikeadm コマンドを指定して実際のキー情報を表示できる

ikeadm コマンドのセキュリティに関する注意点は、ipseckey コマンドのセキュリティと同様です。詳細については、ipseckey におけるセキュリティについてを参照してください。

事前共有鍵ファイル

/etc/inet/secret ディレクトリには、ISAKMP SA と IPsec SA の事前共有鍵が格納されています。事前共有鍵を手動で作成すると、ike.preshared ファイルには ISAKMP SA の事前共有鍵、ipseckeys ファイルには IPsec SA の事前共有鍵が格納されます。secret ディレクトリは 0700 で保護されています。secret ディレクトリの中にあるファイルは 0600 で保護されています。


注 –

事前共有鍵は、ハードウェア記憶領域を利用できません。事前共有鍵は、生成後、システムに格納されます。


IKE 公開鍵のデータベースおよびコマンド

ikecert コマンドを実行すると、ローカルシステムの公開鍵データベースを操作できます。このコマンドは、ike/config ファイルが公開鍵証明書を要求するときに使用します。IKE ではそれらのデータベースを使用してフェーズ 1 交換を認証するため、in.iked デーモンを起動する前に、それらのデータベースに必要な情報が含まれていなければなりません。3 つのサブコマンド certlocalcertdbcertrldb をそれぞれ実行して、3 つのデータベースを処理します。

ikecert コマンドを実行すると、Sun Crypto Accelerator 4000 ボード上のキーストレージも操作できます。ikecert コマンドの tokens 引数により、ボード上の使用可能なトークン ID を一覧表示できます。このコマンドは、 /etc/inet/ike/config ファイルに指定された PKCS #11 ライブラリからボードを検索します。PKCS #11 エントリが必要です。このエントリが存在しない場合、ikecert コマンドの -T オプションは機能しません。エントリは次のようになります。


pkcs11_path "/opt/SUNWconn/lib/libpkcs11.so"

詳細については、ikecert(1M) のマニュアルページを参照してください。

ikecert tokens コマンド

tokens 引数は、Sun Crypto Accelerator 4000 ボード上の使用可能なトークン ID を一覧表示します。トークン ID により、ikecert certlocal コマンドと ikecert certdb コマンドは、公開鍵証明書を生成し、ボード上の要求を認証します。

ikecert certlocal コマンド

certlocal サブコマンドを実行して、非公開鍵データベースを管理します。このサブコマンドを選択すると、非公開鍵の追加、表示、および削除を行うことができます。また、自己署名付き証明書または証明書要求のいずれかを作成できます。-ks オプションを選択すると、自己署名付き証明書が作成されます。-kc オプションを選択すると、証明書要求が作成されます。鍵はシステムの /etc/inet/secret/ike.privatekeys ディレクトリに格納されます。-T オプションを指定した場合は、システムに接続されたハードウェアに格納されます。

非公開鍵を作成する場合、ikecert コマンドには、ike/config ファイル内のエントリが必要です。ikecert オプションと ike/config エントリの対応を次の表に示します。

表 3–2 ikecert オプションと ike/config エントリの対応表

ikecert オプション

ike/config エントリ

注 

-A 対象の代替名

cert_trust 対象代替名

証明書を一意に識別するニックネーム。指定可能な値は、IP アドレス、電子メールアドレス、およびドメイン名 

-D X.509 識別名

X.509 識別名

国、組織名、組織単位、共通名を含む認証局のフルネーム 

-t dsa-sha1

auth_method dss_sig

RSA よりもわずかに遅い認証方式。特許は登録されていない

-t rsa-md5 および

-t rsa-sha1

auth_method rsa_sig

DSA よりもわずかに速い認証方式。特許の期限切れは 2000 年 9 月

RSA 公開鍵は、最大ペイロードを暗号化するのに十分な長さが必要。通常、X.509 識別名などの ID ペイロードが最大ペイロードになる

-t rsa-md5 および

-t rsa-sha1

auth_method rsa_encrypt

RSA 暗号化により、IKE にある ID が不正侵入者から保護されますが、IKE ピアには互いの公開鍵の認識が要求されます。 

-T

pkcs11_path

PKCS #11 ライブラリは、Sun Crypto Accelerator 1000 ボードおよび Sun Crypto Accelerator 4000 ボード上で鍵操作の高速化処理を行います。このライブラリは、Sun Crypto Accelerator 4000 ボード上のキーストレージを操作するトークンも提供します。 

ikecert certlocal –kc コマンドを指定して証明書要求を実行する場合、そのコマンド出力を PKI 機関または認証局 (CA) に送信します。会社が独自の PKI を運営している場合は、出力を PKI 管理者に送信します。PKI 機関、CA、または PKI の管理者はこれに基づいて証明書を作成します。PKI または CA から返された証明書は、certdb サブコマンドに渡されます。PKI から返された CRL は、certrldb サブコマンドに渡されます。

ikecert certdb コマンド

certdb サブコマンドを実行して、公開鍵データベースを管理します。このサブコマンドを選択すると、証明書と公開鍵を追加、表示、および削除できます。また、リモートシステムで ikecert certlocal -ks コマンドを実行して作成された証明書を入力として受け入れます。手順については、自己署名付き公開鍵証明書による IKE の設定方法を参照してください。さらに、PKI または CA から受信する証明書も入力として受け入れます。手順については、CA からの署名付き証明書による IKE の設定方法を参照してください。

証明書と公開鍵は、システムの /etc/inet/ike/publickeys ディレクトリに格納されます。-T オプションを指定した場合、証明書、非公開鍵、公開鍵は、システムに接続されたハードウェアに格納されます。

ikecert certrldb コマンド

certrldb サブコマンドを実行して、証明書無効リスト (CRL) データベース /etc/inet/ike/CRL を管理します。crls データベースには、公開鍵の無効リストが保存されています。よって、このリストには、すでに有効でない証明書が明記されます。PKI によって CRL が提供されるときに、ikecert certrldb コマンドを指定して CRL データベースにそれらの CRL を格納します。手順については、証明書無効リストを処理する方法を参照してください。

/etc/inet/ike/publickeys ディレクトリ

/etc/inet/ike/publickeys ディレクトリには、公開鍵と非公開鍵のペアの公開部分とファイルにあるその証明書、つまり「スロット」が格納されています。/etc/inet/ike ディレクトリは 0755 で保護されます。ikecert certdb コマンドを使用して、そのディレクトリを読み込みます。 -T オプションを指定すると、鍵は publickeys ディレクトリではなく Sun Crypto Accelerator 4000 ボード上に格納されます。

「スロット」には、別のシステムで生成された証明書の X.509 識別名がコード化形式で格納されます。自己署名付き証明書を使用する場合、そのコマンドへの入力として、リモートシステムの管理者から受信する証明書を使用します。PKI からの証明書を使用する場合、PKI から受け取る 2 つのキー情報をこのデータベースに格納します。PKI に送信した情報に基づいた証明書を格納します。また、PKI からの CA も格納します。PKI に送信した情報に基づいて証明書を格納します。PKI から CA も格納します。

/etc/inet/secret/ike.privatekeys ディレクトリ

/etc/inet/secret/ike.privatekeys ディレクトリには、公開鍵と非公開鍵のペアの一部である非公開鍵ファイル、ISAKMP SA のキー情報が格納されています。このディレクトリは 0700 で保護されています。ikecert certlocal コマンドを実行して、ike.privatekeys ディレクトリを読み込みます。非公開鍵は、ペアとなる公開鍵、自己署名付き証明書や CA が格納されてから有効になります。ペアとなる公開鍵は /etc/inet/ike/publickeys ディレクトリまたは Sun Crypto Accelerator 4000 ボードに格納されます。

/etc/inet/ike/crls ディレクトリ

/etc/inet/ike/CRL ディレクトリには証明書無効リスト (CRL) ファイルが含まれています。各ファイルは、/etc/inet/ike/publickeys ディレクトリにある公開鍵証明書ファイルに対応しています。PKI 機関により、それらの証明書の CRL が提供されます。ikecert certrldb コマンドを使用して、そのデータベースを読み込みます。