証明書失効リスト検証
証明書破棄リスト(CRL)は、失効した証明書のデジタル署名されたリストで、対応する証明書を発行した認証機関(CA)によって提供されるものです。CRL に対して証明書を照合することは、証明書が有効かどうかを判断する 1 つの方法です。
casso126jjp
証明書破棄リスト(CRL)は、失効した証明書のデジタル署名されたリストで、対応する証明書を発行した認証機関(CA)によって提供されるものです。CRL に対して証明書を照合することは、証明書が有効かどうかを判断する 1 つの方法です。
ポリシー サーバ証明書マッピングで設定された発行者 DN ごとに 1 つの CRL を使用することができます。
ポリシー サーバは、以下のいずれかの方法で CRL を取得します。
- LDAP ディレクトリから CRL を取得します。ポリシー サーバは、CRL 設定で指定された LDAP ディレクトリへの接続を確立できます。そのディレクトリから CRL が取得されます。LDAP ディレクトリには複数の CRL が存在している可能性がありますが、各証明書マッピングは、エントリ ポイントによって識別される 1 つの CRL のみを参照できます。そのため、各 CRL のエントリ ポイントはそれぞれ異なっている必要があります。注: ポリシー サーバは、すべての理由コードが含まれている CRL のみを受け入れ、特定の理由コードのみを含む CRL は拒否します。
- CRL 配布ポイント拡張情報(CDP)によって指定された場所から CRL を取得します。ユーザ証明書には配布ポイント拡張情報を含めることができます。CDP 拡張情報は、CRL を取得できる場所を指しています。ポリシー サーバでは、配布ポイントについて、1 つの CRL への 1 つのエントリ、または異なる CRL への複数のポインタをサポートします。配布ポイントには、HTTP、HTTPS、LDAP などの異なるソースを使用できます。CDP 拡張情報に、複数の値を持つ配布ポイント名を使用するエントリが含まれる場合、これらの値はすべて同じ CRL を指している必要があります。
ポリシー サーバで CRL を取得した後、必要なチェックを実行することができます。管理 UI で CRL のキャッシュを有効にすると、ポリシー サーバはメモリ内に CRL を格納できます。キャッシュが有効でない場合、ポリシー サーバは認証リクエストごとに CRL を取得する必要があります。
CRL の理由コード要件
ポリシー サーバでは、可能性のあるすべての理由コードの取り消し情報が含まれる CRL のみをサポートします。CRL に、一部の理由コードのみによって取り消された証明書が含まれる場合、ポリシー サーバはエラーを生成し、CRL を無効と見なします。ポリシー サーバでは無効な CRL を無視し、有効な CRL を見つけるまで利用可能な CRL の検索を続行します。
ポリシー サーバは
デルタ
の CRL を無効な CRL を扱います。デルタ CRL には、CA が完全な CRL を発行した後に取り消しステータスが変更された証明書のみがリスト表示されます。ポリシー サーバではデルタ CRL を無視し、有効な CRL を見つけるまで利用可能な CRL の検索を続行します。ポリシー サーバが利用可能なすべての CRL を検索しても有効なものが見つからなかった場合、そのユーザは認証されません。
CRL のサイズ制限
ポリシー サーバは CRL をキャッシュします。ポリシー サーバのデフォルトのキャッシュ サイズは最大 2 MB です。CRL がデフォルトのキャッシュ サイズを超える場合は、最高 1 GB までキャッシュ サイズを増やしてください。キャッシュ サイズを増やすには、MaxCRLBufferMB レジストリ キーを追加します。
以下の手順に従います。
- ポリシー サーバにアクセスし、ご使用のオペレーティング プラットフォームの手順に従ってください。Windows:レジストリ エディタを開き、次のキーまで移動します: HKEY_LOCAL_MACHINE\Software\Netegrity\siteminder\CurrentVersion\PolicyServerUNIX:sm.registry ファイルを開きます。このファイルのデフォルトの場所はsiteminder_home/registry です。siteminder_homeはポリシー サーバのインストール パスです。
- MaxCrlBufferMB を追加し、レジストリ値をのタイプを REG_DWORD にします。測定単位: メガバイトベース: 10 進数デフォルト値: 2最小値: 1最大値: 1023
- 以下のいずれかの操作を実行します。Windows: レジストリ エディタを終了します。UNIX: sm.registry ファイルを保存します。
- ポリシー サーバを再起動します。
CRL 署名の検証
CRL 署名の検証は、CRL チェックのオプション機能です。
ポリシー サーバでは、CRL に対して証明書を比較する前に、LDAP ディレクトリに格納された CA 証明書で CRL の署名を検証します。ポリシー サーバは LDAP ユーザ ディレクトリの特定のエントリから CA 証明書を取得します。これは、証明書内の発行者 DN または管理 UI で証明書マッピングに設定した CRL ディレクトリの DN に基づいて特定されます。
CA 証明書は、ポリシー サーバがアクセスできる LDAP ディレクトリ内に格納します。LDAP ディレクトリで、特定のディレクトリ エントリを
cacertificate
という名前の属性で設定します。cacertificate 属性は複数値属性で、複数の CA 証明書を格納することができます。CRL がパーティションに分割され、それぞれに対して異なる CA キーで署名された場合、複数の CA 証明書が必要になる可能性があります。ポリシー サーバでは、指定されたパーティションについて関連する CA 署名の証明書にアクセスできれば、そのパーティションの署名のみを検証します。署名の検証について、ポリシー サーバでは以下のハッシュ アルゴリズムを使用できます。
- MD5
- MD2
- SHA1
- SHA2 アルゴリズム(SHA224、SHA256、SHA384、SHA512)
注
: 使用されている署名アルゴリズムは CRL に指定されています。CA 証明書が使用できないか、CRL の署名にサポートされていないアルゴリズムが使用されている場合、CRL 検証プロセスで署名チェックをオフにすることができます。
重要
: 署名のチェックがオフにされた場合、CRL が格納されているリポジトリが適切に保護されていることを確認する必要があります。CRL を特定するための CRL 配布ポイント
CRL 配布ポイント(CDP)は 、CRL の場所を指している証明書拡張情報です。指定された場所から、ポリシー サーバは CRL を取得し、どの証明書が取り消されたかを確認できます。
CDP 拡張は、CRL を特定するために複数のソースを指定できます。ソースにはそれぞれ、CRL を特定するための情報がすべて含まれます。取得に関するそれぞれのオプションは、ポリシー サーバが CRL を確実に取得するのに役立ちます。CDP 拡張内のソースには次のものが含まれます。
- LDAP
- HTTP
- HTTPSHTTPS 配布ポイントの場合、ポリシー サーバは安全な接続を使用します。この安全な接続を行うために、有効な CA 証明書ファイルまたは証明書バンドル(チェーンを形成する連結された証明書ファイル)は、ディレクトリpolicy_server_home/config 内に存在する必要があります。有効な証明書がない場合、HTTPS サーバへの接続は失敗します。
HTTPS 接続のための CA 証明書ファイルは PEM 形式(base64 エンコード)で、
cert.pem
という名前が付けられている必要があります。証明書が PEM 形式にない場合は、OpenSSL コマンド ライン ユーティリティを使用して、それを変換します。cert.pem ファイルには、CDP 拡張情報に設定された SSL Web サーバ用の発行者証明書と、各配布ポイント用の信頼された CA 証明書が含まれている必要があります。注
: OpenSSL ユーティリティの詳細については、OpenSSL ドキュメントを参照してください。CDP 拡張に複数のエントリが含まれている場合、ポリシー サーバでは証明書を検証するために、すべての理由コード含む CRL で最初に取得された CRL を使用します。CRL が取得される順序は、エントリが証明書内にリスト表示されているのと同じ順序です。ポリシー サーバが CDP リスト内の最初の CRL を取得できない場合、2 番目の CRL、またその次というように取得を試行します。ポリシー サーバは、このように取得が成功するまで続行します。
ポリシー サーバがどのソースからも有効な CRL を取得できない場合、認証は失敗し、ユーザはアクセスを拒否されます。CRL と OCSP の間のフェールオーバを有効にすることは、この動作の唯一の例外です。CRL チェックがプライマリ検証方法で、それに失敗した場合、ポリシー サーバでは 2 番目の方法として OCSP にフェールオーバします。
注:
OCSP の設定ファイルでフェールオーバを有効にします。CDP 配布ポイントは、[証明書マッピング]ダイアログ ボックスで CRL チェック設定の一部として設定します。
CRL パーティションの署名の検証
異なる CA キーで CRL の各パーティションに署名することができます。ポリシー サーバでは、CRL の各パーティションについて関連 CA で署名された証明書にアクセスできる限り、すべての CRL パーティションの署名を確認できます。
CRL を見つけるために証明書配布ポイントを使用する場合は、CRL パーティションの使用が関与します。拡張情報には別の CRL への複数のリンクが含まれている場合があり、そのすべての署名に検証が必要です。
ポリシー サーバは、LDAP ディレクトリに格納された CA 証明書で CRL の署名を確認します。この LDAP ディレクトリでは、特定のエントリを
cacertificate
という名前の属性で設定します。この属性は、多値属性です。複数の CA 証明書は、異なる CA キーによって署名された CRL パーティションを検証するために必要です。証明書破棄リスト(CRL)のチェックの設定
CRL チェックを設定することにより、ユーザ証明書が取り消されたかどうかを確認することができます。この確認により、無効なクライアント証明書を持つユーザが保護されているリソースにアクセスできないよう徹底できます。
CRL は、LDAP ディレクトリ、または CDP によって指定された場所から取得できます。ポリシー サーバが特定の LDAP ディレクトリから CRL を取得する場合は、そのディレクトリへの接続を設定します。この LDAP ディレクトリは、ユーザ ストアおよび CRL ストアとして機能します。CRL チェックを設定する前または CRL 設定中に、このディレクトリを設定します。
以下の手順に従います。
- [インフラストラクチャ]-[ディレクトリ]をクリックします。
- [証明書マッピング]をクリックします。[証明書マッピング]ページが表示されます。
- 発行者 DN 名をクリックし、証明書マッピングを選択します。[証明書マッピングの表示]ページが表示されます。
- [変更]をクリックします。設定とコントロールがアクティブになります。
- [CRL チェックの実行]を選択します。CRL 固有のフィールドおよびコントロールが表示されます。
- [CRL ディレクトリ]フィールドで、ポリシー サーバが CRL を取得する LDAP ディレクトリの名前を選択します。このディレクトリ名は、管理 UI の[ユーザ ディレクトリ]セクションでディレクトリを設定するときに割り当てた名前です。リストにユーザ ディレクトリがない場合、[作成]をクリックしてディレクトリ接続を追加します。注:LDAP ディレクトリを指定しない場合は、ポリシー サーバが CRL を抽出する方法として[配布ポイントの使用]を選択します。[CRL ディレクトリ]フィールドに対して、「証明書の拡張子から取得します」というオプションのテキスト文字列値が表示されます。このオプションは、CRL の取得に配布ポイントを使用する場合のみ選択してください。
- [CRL ディレクトリ]にユーザ ディレクトリを指定した場合は、[CRL ディレクトリ]内の DN にエントリ ポイントの値を入力します。[CRL ディレクトリ]内の DN に指定された値は、ポリシー サーバが CRL を検索するために CRL ディレクトリを調べる DN です。この値は、LDAP ディレクトリが CRL ディレクトリとして選択されている場合にのみ有効です。CRL の取得に配布ポイントを使用する場合は、このフィールドを空白のままにします。
- (任意)CRL の署名を確認するため[署名の確認]を選択します。ポリシー サーバでは、アクセス可能な LDAP ホストに対して、CRL の署名を確認するのに必要な証明書を取得することを要求します。管理 UI で LDAP ホストがユーザ ディレクトリ接続として設定されていることを確認してください。ポリシー サーバは、CRL を特定するために CRL 配布ポイントを使用できます。その配布ポイントが LDAP URI である場合、ポリシー サーバは CRL の署名を確認できます。配布ポイントが HTTP URI である場合は、証明書を取得する LDAP ホストが利用可能ではないため、[署名の確認]オプションは選択しないでください。
- (任意)CRL の取得に CDP 拡張情報を使用するには、[配布ポイントの使用]を選択します。このオプションは、CRL ディレクトリを指定する代わりに使用できます。[配布ポイントの使用]を選択して[CRL ディレクトリ]にディレクトリを入力した場合、ポリシー サーバでは、CRL の検索に配布ポイントのみを使用します。配布ポイントは、CRL ディレクトリより優先されます。
- 必要に応じて残りの設定を完了し、[サブミット]をクリックします。証明書破棄リストのチェックが有効になりました。
HTTP プロキシを介した CRL へのアクセス
CRL リクエストは、HTTP 接続を使用して送信できます。この場合、HTTP GET リクエストが証明書検証用の CRL を取得する必要があります。
企業が使用する多くの環境では、HTTP トラフィックは HTTP プロキシを経由します。ポリシー サーバが HTTP プロキシ経由で CRL を取得するには、ポリシー サーバが存在するシステム上で http_proxy 環境変数を設定する必要があります。例:
set http_proxy=http://username:[email protected]:8080 export http_proxy
ポート番号を指定しない場合、
Single Sign-On
ではデフォルトでポート 1080 が使用されます。username
プロキシ サーバのログイン ユーザ名。この名前はプロキシ サーバ設定の有効なユーザである必要があります。
パスワード
プロキシ サーバのログイン パスワード。このパスワードはプロキシ ユーザ設定の有効なエントリである必要があります。
注
: この環境変数は、プロキシを介して OCSP レスポンダにアクセスするために使用することはできません。