IPsec と IKE の管理

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

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

表 3–1 IKE ファイルおよび IKE コマンドのリスト

ファイルまたはコマンド 

説明 

in.iked(1M) デーモン

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

ikeadm(1M)

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

ikecert(1M)

認証データベース管理コマンド。ローカル公開鍵の認証データベースの操作用 

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

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

IKE デーモン

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

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

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

2 つのプログラムで IKE デーモンをサポートします。ikeadm(1M) コマンドを実行すると、管理者は IKE ポリシーを表示できます。さらに、このコマンドを実行して IKE ポリシーを変更することもできます。ikecert(1M) コマンドを実行すると、管理者は 2 つの公開鍵データベース ike.privatekeyspublickeys を表示したり管理したりできます。

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 ファイルのセキュリティに関する注意点は、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(1M) コマンドを実行すると、ローカルホストの公開鍵データベースを操作できます。このコマンドは、ike/config ファイルが公開鍵証明書を要求するときに使用します。IKE ではそれらのデータベースを使用してフェーズ 1 交換を認証するため、in.iked デーモンを起動する前に、それらのデータベースに必要な情報が含まれていなければなりません。3 つのサブコマンド certlocalcertdbcertrldb をそれぞれ実行して、3 つのデータベースを処理します。

ikecert certlocal コマンド

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

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

表 3–2 ike certlocal の値と ike/config の値の対応表

certlocal オプション

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 公開鍵は、最大ペイロードを暗号化するのに十分な長さが必要。一般的に識別名などの ID ペイロードが最大 

-t rsa-md5

-t rsa-sha1

auth_method rsa_encrypt

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

ikecert certlocal -kc コマンドを指定して証明書要求を実行する場合、そのコマンドの出力を PKI 機関に送信します。会社が独自の PKI を運営している場合は、出力を PKI 管理者に送信します。機関または PKI 管理者はこれに基づいてキー情報を作成します。ユーザーは、返されたキー情報を certdbcertrldb サブコマンドへの入力として使用します。

ikecert certdb コマンド

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

ikecert certrldb コマンド

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

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

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

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

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

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

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

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