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

第 24 章 インターネットキー交換 (リファレンス)

この章では、IKE に関する次のリファレンス情報について説明します。

IKE の実装方法については、第 23 章IKE の設定 (手順)を参照してください。概要については、第 22 章インターネットキー交換 (概要)を参照してください。

サービス管理機能

svc:/network/ipsec/ike:default サービス – service サービス管理機能 (SMF) では、IKE を管理するための ike サービスが提供されています。デフォルトでは、このサービスは無効になっています。このサービスを有効にする前に、IKE 構成ファイル /etc/inet/ike/config を作成する必要があります。

次に示す ike サービスのプロパティーは構成可能です。

SMF の詳細については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。smf(5)svcadm(1M)、および svccfg(1M) のマニュアルページも参照してください。

IKE デーモン

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.privatekeyspublickeys を管理します。公開鍵の操作とハードウェア上の公開鍵の記憶領域も管理します。

IKE ポリシーファイル

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.confipsecconf のセキュリティーについて」を参照してください。

IKE 管理コマンド

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

このコマンドのオプションの例と詳しい説明については、ikeadm(1M) のマニュアルページを参照してください。

実行する IKE デーモンの特権レベルにより、表示および変更可能な IKE デーモンの要素が決まります。使用可能な特権レベルは 3 つあります。

base レベル

鍵情報を表示したり変更したりすることはできません。base レベルはデフォルトの特権レベルです。

modkeys レベル

事前共有鍵の削除、変更、追加ができます。

keymat レベル

ikeadm コマンドで実際の鍵情報を表示できます。

特権を一時的に変更する場合は、ikeadm コマンドを使用できます。永続的に変更する場合は、ike サービスの admin_privilege プロパティーを変更します。手順については、「IKE および IPsec サービスを管理する方法」を参照してください。

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

IKE 事前共有鍵ファイル

事前共有鍵を手動で作成すると、キーは、/etc/inet/secret ディレクトリのファイルに格納されます。ike.preshared ファイルに Internet Security Association and Key Management Protocol (ISAKMP) SA の事前共有鍵が含まれ、ipseckeys ファイルに IPsec SA の事前共有鍵が含まれます。これらのファイルは 0600 で保護されます。secret ディレクトリは 0700 で保護されます。


注 –

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


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

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

ikecert コマンドはキーの格納処理も行います。キーは、ディスク、接続された Sun Crypto Accelerator 6000、&sca 4; ボード、またはソフトトークンキーストアに格納できます。ソフトトークンキーストアは、ハードウェアデバイスと通信するために、Solaris 暗号化フレームワークのメタスロットを使用しているときに使用できます。ikecert コマンドは、PKCS #11 ライブラリを使用してキーの格納場所を見つけます。

詳細は、ikecert(1M) のマニュアルページを参照してください。メタスロットとソフトトークンキーストアについては、cryptoadm(1M) のマニュアルページを参照してください。

ikecert tokens コマンド

tokens 引数を使用すると、使用可能なトークン ID がリストされます。トークン ID により、ikecert certlocal コマンドと ikecert certdb コマンドは、公開鍵証明書と証明書要求を生成します。これらの証明書と証明書要求は、暗号化フレームワークによってソフトトークンキーストアに格納するか、接続された Sun Crypto Accelerator 6000 または &sca 4; ボードに格納することができます。ikecert コマンドは、PKCS #11 ライブラリを使用して証明書の格納場所を見つけます。

ikecert certlocal コマンド

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

非公開鍵を作成する場合は、ikecert certlocal コマンドへのサブコマンドに関連するエントリが ike/config ファイルに存在しなければなりません。ikecert オプションと ike/config エントリの対応を次の表に示します。

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

ikecert オプション

ike/config エントリ

説明 

-A subject-alternate-name

cert_trust subject-alternate-name

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

-D X.509-distinguished-name

X.509-distinguished-name

国 (C)、組織名 (ON)、組織単位 (OU)、共通名 (CN) を含む認証局のフルネーム。 

-t dsa-sha1

auth_method dss_sig

RSAよりもわずかに遅い認証方式。

-t rsa-md5 および

-t rsa-sha1

auth_method rsa_sig

DSAよりもわずかに速い認証方式。

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 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 サブコマンドに渡されます。

ikecert certdb コマンド

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

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

ikecert certrldb コマンド

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

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

/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 ディレクトリ

/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 ディレクトリ

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