この章では、IKE に関する次のリファレンス情報について説明します。
IKE の実装方法については、第 23 章IKE の設定 (手順)を参照してください。概要については、第 22 章インターネットキー交換 (概要)を参照してください。
svc:/network/ipsec/ike:default サービス – service サービス管理機能 (SMF) では、IKE を管理するための ike サービスが提供されています。デフォルトでは、このサービスは無効になっています。このサービスを有効にする前に、IKE 構成ファイル /etc/inet/ike/config を作成する必要があります。
config_file プロパティー – IKE 構成ファイルの場所です。初期値は /etc/inet/ike/config です。
debug level プロパティー – in.iked デーモンのデバッグレベルです。初期値は op (動作)です。指定可能な値については、ikeadm(1M) のマニュアルページの「オブジェクトタイプ」に記載されているデバッグレベルの表を参照してください。
admin_privilege プロパティー – in.iked デーモンの特権レベルです。初期値は base です。ほかの値は modkeys と keymat です。詳細については、「IKE 管理コマンド」を参照してください。
SMF の詳細については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。smf(5)、svcadm(1M)、および svccfg(1M) のマニュアルページも参照してください。
in.iked デーモンは、Solaris システム上で IPsec の暗号化キーの管理を自動化します。また、同じプロトコルを実行するリモートシステムとのネゴシエーションを行い、認証された鍵情報が、保護された方法でセキュリティーアソシエーション (SA) に提供されます。そのデーモンは、セキュリティー保護された通信を行うすべてのシステムで実行する必要があります。
デフォルトでは、svc:/network/ipsec/ike:default サービスは無効になっています。/etc/inet/ike/config ファイルを設定し、ike サービスを有効にしたら、システム起動時に in.iked デーモンが実行されます。
IKE デーモンを実行すると、システムは、フェーズ 1 交換でそのピア IKE エンティティーに対してそのシステム自体を認証します。そのピアは、認証方式として IKE ポリシーファイルに定義されています。そのあと、デーモンはフェーズ 2 のキーが設定します。ポリシーファイルで指定した時間間隔で、IKE キーが自動的に更新されます。in.iked デーモンを実行すると、ネットワークからの着信 IKE 要求と PF_KEY ソケット経由の出力トラフィックの要求を待機します。詳細は、pf_key(7P) のマニュアルページを参照してください。
2 つのコマンドが IKE デーモンをサポートします。ikeadm コマンドを使用すると、IKE ポリシーの表示および一時的な変更を行うことができます。IKE ポリシーを永続的に変更するには、ike サービスのプロパティーを変更する必要があります。手順については、「IKE の事前共有鍵を表示する方法」を参照してください。
ikecert コマンドを実行すると、公開鍵データベースを表示および変更できます。このコマンドでは、ローカルデータベース ike.privatekeys と publickeys を管理します。公開鍵の操作とハードウェア上の公開鍵の記憶領域も管理します。
IKE ポリシー用の構成ファイル /etc/inet/ike/config は、IPsec ポリシーファイル /etc/inet/ipsecinit.conf の中で保護されているインタフェースのキーを管理します。IKE ポリシーファイルは、IKE のキーと IPsec SA のキーを管理します。IKE デーモン自体は、フェーズ 1 交換で鍵情報を要求します。
IKE での鍵管理には、ルールとグローバルパラメータが関係します。IKE ルールは、その鍵情報で保護するシステムやネットワークを識別します。さらに、ルールは認証方式も指定します。グローバルパラメータには、接続されたハードウェアアクセラレータへのパスなどがあります。IKE ポリシーファイルの例については、「事前共有鍵による IKE の設定 (作業マップ)」を参照してください。IKE ポリシーエントリの例と説明については、ike.config(4) のマニュアルページを参照してください。
IKE がサポートする IPsec SA は、IPsec ポリシーの設定ファイル /etc/inet/ipsecinit.conf で設定されるポリシーに従って IP データグラムを保護します。IPsec SA の作成時に perfect forward security (PFS) を使用するかどうかは、IKE ポリシーファイルで決まります。
ike/config ファイルには、 RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) に準拠して実装されているライブラリへのパスを含めることができます。IKE は、この PKCS #11 ライブラリを使って、アクセラレータおよびキーストレージハードウェアにアクセスします。
ike/config ファイルのセキュリティーに関する注意点は、ipsecinit.conf ファイルのセキュリティーと同様です。詳細は、「ipsecinit.conf と ipsecconf のセキュリティーについて」を参照してください。
ikeadm コマンドを実行すると、次のことができます。
IKE デーモンプロセスの要素の表示
IKE デーモンに渡すパラメータの変更
フェーズ 1 交換時の SA 作成に関する統計情報の表示
IKE プロセスのデバッグ
IKE 状態の要素の表示
IKE デーモンのプロパティーの変更
フェーズ 1 交換時の SA 作成に関する統計情報の表示
IKE プロトコル交換のデバッグ
このコマンドのオプションの例と詳しい説明については、ikeadm(1M) のマニュアルページを参照してください。
実行する IKE デーモンの特権レベルにより、表示および変更可能な IKE デーモンの要素が決まります。使用可能な特権レベルは 3 つあります。
鍵情報を表示したり変更したりすることはできません。base レベルはデフォルトの特権レベルです。
事前共有鍵の削除、変更、追加ができます。
ikeadm コマンドで実際の鍵情報を表示できます。
特権を一時的に変更する場合は、ikeadm コマンドを使用できます。永続的に変更する場合は、ike サービスの admin_privilege プロパティーを変更します。手順については、「IKE および IPsec サービスを管理する方法」を参照してください。
ikeadm コマンドのセキュリティーについては、ipseckey コマンドのセキュリティーと同様です。詳細は、「ipseckey におけるセキュリティーについて」を参照してください。
事前共有鍵を手動で作成すると、キーは、/etc/inet/secret ディレクトリのファイルに格納されます。ike.preshared ファイルに Internet Security Association and Key Management Protocol (ISAKMP) SA の事前共有鍵が含まれ、ipseckeys ファイルに IPsec SA の事前共有鍵が含まれます。これらのファイルは 0600 で保護されます。secret ディレクトリは 0700 で保護されます。
ike.preshared ファイルは、事前共有鍵を必要とする ike/config ファイルの設定時に作成します。IKE 認証用として、ike.preshared ファイルに ISAKMP SA の鍵情報を入力します。フェーズ 1 交換の認証に事前共有鍵を使用するため、このファイルを in.iked デーモンの開始前に有効にする必要があります。
ipseckeys ファイルには、IPsec SA の鍵情報が含まれています。手動によるファイルの管理の例については、「IPsec セキュリティーアソシエーションを手動で作成する方法」を参照してください。IKE デーモンでは、このファイルを使用しません。IKE によって IPsec SA に対して生成される鍵情報は、カーネルに保存されます。
事前共有鍵は、ハードウェア記憶領域を利用できません。事前共有鍵は、生成後、システムに格納されます。
ikecert コマンドを実行すると、ローカルシステムの公開鍵データベースを操作できます。このコマンドは、ike/config ファイルが公開鍵証明書を要求するときに使用します。IKE ではそれらのデータベースを使用してフェーズ 1 交換を認証するため、in.iked デーモンを起動する前に、それらのデータベースに必要な情報が含まれていなければなりません。3 つのサブコマンド certlocal、certdb、certrldb をそれぞれ実行して、3 つのデータベースを処理します。
ikecert コマンドはキーの格納処理も行います。キーは、ディスク、接続された Sun Crypto Accelerator 6000、&sca 4; ボード、またはソフトトークンキーストアに格納できます。ソフトトークンキーストアは、ハードウェアデバイスと通信するために、Solaris 暗号化フレームワークのメタスロットを使用しているときに使用できます。ikecert コマンドは、PKCS #11 ライブラリを使用してキーの格納場所を見つけます。
Solaris 10 1/06: このリリース以降では、このライブラリを指定する必要はありません。デフォルトでは、PKCS #11 ライブラリは /usr/lib/libpkcs11.so です。
Solaris 10: このリリースでは、PKCS #11 エントリを指定する必要があります。このエントリが存在しない場合、ikecert コマンドの -T オプションは機能しません。エントリは次のようになります。
pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so" |
詳細は、ikecert(1M) のマニュアルページを参照してください。メタスロットとソフトトークンキーストアについては、cryptoadm(1M) のマニュアルページを参照してください。
tokens 引数を使用すると、使用可能なトークン ID がリストされます。トークン ID により、ikecert certlocal コマンドと ikecert certdb コマンドは、公開鍵証明書と証明書要求を生成します。これらの証明書と証明書要求は、暗号化フレームワークによってソフトトークンキーストアに格納するか、接続された Sun Crypto Accelerator 6000 または &sca 4; ボードに格納することができます。ikecert コマンドは、PKCS #11 ライブラリを使用して証明書の格納場所を見つけます。
certlocal サブコマンドは非公開鍵データベースを管理します。このサブコマンドを選択すると、非公開鍵の追加、表示、および削除を行うことができます。また、自己署名付き証明書または証明書要求のいずれかを作成できます。-ks オプションを選択すると、自己署名付き証明書が作成されます。-kc オプションを選択すると、証明書要求が作成されます。鍵はシステムの /etc/inet/secret/ike.privatekeys ディレクトリに格納されます。-T オプションを指定した場合は、システムに接続されたハードウェアに格納されます。
非公開鍵を作成する場合は、ikecert certlocal コマンドへのサブコマンドに関連するエントリが ike/config ファイルに存在しなければなりません。ikecert オプションと ike/config エントリの対応を次の表に示します。
表 24–1 ikecert オプションと ike/config エントリの対応表
ikecert オプション |
ike/config エントリ |
説明 |
---|---|---|
証明書を一意に識別するニックネーム。指定可能な値は IP アドレス、電子メールアドレス、およびドメイン名です。 |
||
X.509-distinguished-name |
国 (C)、組織名 (ON)、組織単位 (OU)、共通名 (CN) を含む認証局のフルネーム。 |
|
RSAよりもわずかに遅い認証方式。 |
||
-t rsa-md5 および -t rsa-sha1 |
auth_method rsa_sig |
DSAよりもわずかに速い認証方式。 RSA 公開鍵は、最大ペイロードを暗号化するのに十分な長さが必要。通常、X.509 識別名などの ID ペイロードが最大ペイロードになります。 |
-t rsa-md5 および -t rsa-sha1 |
RSA 暗号化により、IKE にある ID が不正侵入者から保護されますが、IKE ピアには互いの公開鍵の認識が要求されます。 |
|
PKCS #11 ライブラリは、Sun Crypto Accelerator 1000 ボード、Sun Crypto Accelerator 6000 ボード、および Sun Crypto Accelerator 4000 ボード上のアクセラレータを処理します。また、このライブラリは、Sun Crypto Accelerator 6000 および Sun Crypto Accelerator 4000 ボード上のキーストレージを処理するトークンも提供します。 |
ikecert certlocal -kc コマンドを指定して証明書要求を実行する場合、そのコマンド出力を PKI 機関または認証局 (CA) に送信します。会社が独自の PKI を運営している場合は、出力を PKI 管理者に送信します。PKI 機関、CA、または PKI の管理者はこれに基づいて証明書を作成します。PKI または CA から返された証明書は、certdb サブコマンドに渡されます。PKI から返された証明書失効リスト (CRL) は、certrldb サブコマンドに渡されます。
certdb サブコマンドは、公開鍵データベースを管理します。そのサブコマンドを選択すると、公開鍵と証明書を追加、表示、および削除できます。また、リモートシステムで ikecert certlocal -ks コマンドを実行して作成された証明書を入力として受け入れます。手順については、「自己署名付き公開鍵証明書により IKE を設定する方法」を参照してください。さらに、PKI または CA から受信する証明書も入力として受け入れます。手順については、「CA からの署名付き証明書により IKE を設定する方法」を参照してください。
証明書と公開鍵は、システムの /etc/inet/ike/publickeys ディレクトリに格納されます。-T オプションを指定した場合、証明書、非公開鍵、公開鍵は、システムに接続されたハードウェアに格納されます。
certrldb サブコマンドは、証明書失効リスト (CRL) データベース /etc/inet/ike/crls を管理します。CRL データベースには、公開鍵の失効リストが保存されています。よって、このリストには、すでに有効でない証明書が明記されます。PKI によって CRL が提供されるときに、ikecert certrldb コマンドを指定して CRL データベースにその CRL を格納します。手順については、「証明書失効リストを処理する方法」を参照してください。
/etc/inet/ike/publickeys ディレクトリの複数のファイルまたは「スロット」には、公開鍵と非公開鍵のペアの公開部分とその証明書が含まれています。このディレクトリは 0755 で保護されています。ikecert certdb コマンドを使用して、そのディレクトリを読み込みます。-T オプションを指定すると、鍵は publickeys ディレクトリではなく Sun Crypto Accelerator 6000 または &sca 4; ボード上に格納されます。
スロットには、別のシステムで生成された証明書の X.509 識別名が符号化された形式で含まれます。自己署名付き証明書を使用する場合、そのコマンドへの入力として、リモートシステムの管理者から受信する証明書を使用します。CA からの証明書を使用する場合、CA から受け取る 2 つの署名付き証明書をこのデータベースに格納します。CA に送信した証明書署名要求に基づいた証明書を格納します。また、CA の証明書も格納します。
/etc/inet/secret/ike.privatekeys ディレクトリには、公開鍵非公開鍵ペアの一部である公開鍵ファイルが入っています。このペアはISAKMP SA の鍵情報です。このディレクトリは 0700 で保護されています。ikecert certlocal コマンドを実行して、ike.privatekeys ディレクトリを読み込みます。非公開鍵は、ペアとなる公開鍵、自己署名付き証明書や CA が格納されてから有効になります。ペアとなる公開鍵は、/etc/inet/ike/publickeys ディレクトリか、Sun Crypto Accelerator 6000 または Sun Crypto Accelerator 4000 ボードに格納されます。
/etc/inet/ike/crls ディレクトリには、証明書失効リスト (CRL) ファイルが含まれています。各ファイルは、/etc/inet/ike/publickeys ディレクトリにある公開鍵証明書ファイルに対応しています。PKI 機関により、それらの証明書の CRL が提供されます。ikecert certrldb コマンドを使用して、そのデータベースを読み込むことができます。