OCSP(Online Certificate Status Protocol)の検証
OCSP は、ユーザ証明書が有効かどうかを確認します。OCSP では、OCSP レスポンダを使用して、X.509 クライアント証明書の取り消しステータスを判断します。OCSP レスポンダは、特定の証明書について証明書検証データを集計し、OCSP リクエストに応答することによって、リアル タイムに検証を実行します。OCSP は、CRL 失効に比べてオーバーヘッドが若干下回ります。最新の証明書ステータス情報を保持するためにクライアント側で頻繁に CRL をダウンロードする必要はありません。
casso127jpjp
OCSP は、ユーザ証明書が有効かどうかを確認します。OCSP では、OCSP レスポンダを使用して、X.509 クライアント証明書の取り消しステータスを判断します。OCSP レスポンダは、特定の証明書について証明書検証データを集計し、OCSP リクエストに応答することによって、リアル タイムに検証を実行します。OCSP は、CRL 失効に比べてオーバーヘッドが若干下回ります。最新の証明書ステータス情報を保持するためにクライアント側で頻繁に CRL をダウンロードする必要はありません。
OCSP チェックを実行するために、ポリシー サーバでは、
SMocsp.conf
ファイルという名前のテキストベースの設定ファイルを使用します。このファイルの場所は policy_server_home
/config ディレクトリです。OCSP 機能を使用するには、このファイルが存在する必要があります。注:
X.509 認証方式に対する OCSP を設定するには、SMocsp.conf ファイルのみを使用してください。管理 UI の[OCSP 設定]オプションは使用しないでください。この UI オプションで設定されるのは、CDS のみです。SMocsp.conf ファイルには、1 つ以上の OCSP レスポンダの操作を定義する設定が含まれます。ユーザ証明書が有効かどうか確認する際、ポリシー サーバでは SMocsp.conf ファイル内の発行者 DN を検索します。発行者 DN が見つかった場合、その発行者 DN と関連付けられた指定の OCSP レスポンダを使用して証明書ステータスの確認が行われます。ポリシー サーバは OCSP チェックのみを実行し、ポリシー サーバで発行者 DN が見つかった場合は、証明書が有効であると見なします。OCSP 検証が必要でない場合は、発行者 DN がなくても証明書が有効とみなされます。
OCSP リクエストに署名することはできますが、この署名は任意です。
OCSP レスポンダがポリシー サーバにレスポンスを返した場合、ポリシー サーバのデフォルトの動作では署名されたレスポンスを検証します。SMocsp.conf ファイル内のいくつかの設定では、レスポンス検証を有効にすることが必要とされます。
注:
管理 UI で CRL チェックが有効にされている場合、ポリシー サーバでは、SMocsp.conf ファイルが存在するかどうかにかかわらず、デフォルトで CRL チェックを使用します。フェイルオーバーを有効にし、OCSP をプライマリ検証方法に設定した場合のみ、OCSP が CRL チェックより優先されます。フェイルオーバーは OCSP 設定ファイルで設定されます。OCSP の前提条件
証明書検証に OCSP を使用するには、以下のコンポーネントをセットアップする必要があります。
- 認証機関(CA)環境を確立します。
- OCSP レスポンダをセットアップします。
- OCSP 信頼レスポンダ証明書を格納するように LDAP ディレクトリを設定します。ポリシー サーバに返された OCSP レスポンスの署名を、この証明書で検証します。OCSP の信頼されたレスポンダ証明書は、1 つの信頼された検証証明書または証明書の集合になります。これらの証明書は、OCSP トランザクションとは別の通信で取得します。証明書の信頼された証明書または証明書の集合を格納するには、管理 UI の[ユーザ ディレクトリ]セクションに LDAP ディレクトリを設定します。ユーザ ディレクトリの存在によって、ポリシー サーバはディレクトリに接続し、レスポンスの署名を検証するための証明書またはその集合を特定できるようになります。証明書のコレクションを格納している場合は、すべての証明書を格納するために、ディレクトリ エントリには必ず複数値のバイナリ属性を使用してください。OCSP レスポンダには、レスポンスと共に署名検証の証明書を含めることができます。この場合、ポリシー サーバは証明書を検証し、さらに LDAP ディレクトリ内の信頼された証明書でレスポンスの署名を検証します。署名検証の証明書がレスポンスにない場合、ポリシー サーバは LDAP ディレクトリ内の証明書のまたはその集合でレスポンスの署名を検証します。OCSP を設定する際は、証明書の場所またはその集合を SMocsp.conf ファイルの ResponderCertEP 設定に指定します。ポリシー サーバは、SHA-1 および SHA-2 アルゴリズム(SHA224、SHA256、SHA384、SHA512)を使用して署名されたすべての OCSP レスポンスを使用することができます。
- ユーザ証明書を発行した CA 証明書を LDAP ディレクトリに格納します。この CA 証明書はユーザ証明書を検証します。この証明書は OCSP の信頼されたレスポンダ証明書を格納するのと同じ LDAP ディレクトリに格納することも、別の LDAP ディレクトリに格納することもできます。
- Single Sign-OnOCSP 設定ファイル(SMocsp.conf)を設定します。サンプルの設定ファイルである SMocsp.Sample.conf がポリシー サーバと併せてインストールされます。このファイルをコピーして名前を SMocsp.conf に変更し、必要に応じて内容を変更します。UNIX オペレーティング プラットフォームの場合は、ファイル名で大文字と小文字が区別されます。
- 必要に応じて、ポリシー サーバが OCSP リクエストに署名するために使用する秘密キー/証明書のペアがポリシー サーバで利用可能であることを確認します。このキー/証明書のペアを証明書データ ストアに格納します。
OCSP 設定ファイルの作成
ポリシー サーバは、SMocsp.conf という名前のファイルを使用して OCSP チェックを行います。このファイルは、1 つ以上の OCSPResponder レコードを含む ASCII ファイルです。
SMocsp.conf ファイルは
siteminder_home
/config ディレクトリに存在する必要があります。設定を容易にするため、サンプル ファイル(SMocsp.Sample.conf)がポリシー サーバと共に config フォルダにインストールされます。お使いの環境用に OCSP を設定するには、サンプル ファイルをコピーして名前を SMocsp.conf に変更します。注:
UNIX プラットフォームの場合、ファイル名の大文字と小文字が区別されます。以下は、1 つの OCSPResponder エントリを含む SMocsp.conf ファイルの例です。
注:
サンプル ファイルには利用可能なすべての設定が示されています。すべての設定が必須とは限りません。[ OCSPResponder IssuerDN C=US,ST=Massachusetts,L=Boston,O=,OU=QA,CN=Issuer,[email protected] AlternateIssuerDN C=US,ST=New York,L=Islandia,O=,OU=QA,CN=Issuer,[email protected] CACertDir 10.1.22.2:389 CACertEP uid=caroot,dc=systest,dc=com ResponderCertDir 10.2.11.1:389 ResponderCertEP cn=OCSP,ou=PKI,ou=Engineering,o=ExampleInc,c=US ResponderCertAttr cacertificate ResponderLocation http://10.12.2.4:389 AIAExtension NO HttpProxyEnabled YES HttpProxyLocation http://10.11.2.5:80 HttpProxyUserName proxyuser1 HttpProxyPassword letmein SignRequestEnabled YES SignDigest SHA256 Alias defaultenterpriseprivatekey IgnoreNonceExtension NO PrimaryValidationMethod OCSP EnableFailover YES ResponderCertAlias cert1 ResponderGracePeriod 0 ]
SMocsp.conf ファイルを変更する際のガイドラインを以下に示します。
- 設定の名前はすべて大文字と小文字が区別されるわけではありません。エントリの大文字と小文字が区別されるかどうかは特定の設定によって決まります。
- ファイル内の設定が空白のままの場合、ポリシー サーバはエラー メッセージを送信します。メッセージは、エントリが無効であることを示します。ポリシー サーバは設定を無視します。設定が意図的に空白になっている場合は、メッセージを無視してかまいません。
- 設定の名前の先頭にスペースを含めることはしないでください。
このファイルには以下の設定項目があります。
- OCSPResponder必須です。エントリが OCSP レスポンダレコードであることを示します。各 OCSP レスポンダ レコードは、OCSPResponder で始まる必要があります。
- IssuerDN必須です。証明書発行者の DN を指定します。この値は、ファイル内の各 OCSP レスポンダ レコードのラベルとなります。エントリ:証明書内の発行者 DN 値。
- AlternateIssuerDN(オプション) セカンダリ IssuerDN または逆の DN を指定します。
- CACertDir必須です。ユーザ証明書を発行する CA 証明書を保持する CA 証明書ディレクトリの名前を指定します。このディレクトリは、Single Sign-Onユーザ ディレクトリとして管理 UI で設定してください。ポリシー サーバから接続できるようにするためです。ユーザ ディレクトリの有効な IP アドレスおよびポート番号を入力します。
- CACertEP必須です。CA 証明書が存在する CA 証明書ディレクトリのエントリ ポイントを指定します。証明書ディレクトリのエントリ ポイントを表す文字列を入力します。
- ResponderCertDir必須です。レスポンダ証明書が格納される LDAP ディレクトリを指定します。このディレクトリは、Single Sign-Onユーザ ディレクトリとして管理 UI で設定してください。ポリシー サーバから接続できるようにするためです。ディレクトリの有効な IP アドレスおよびポート番号を入力します。
- ResponderCertEP必須です。レスポンダ証明書が存在する LDAP ディレクトリのエントリ ポイントを指定します。レスポンダ証明書ディレクトリは ResponderCertDir 設定で指定されます。署名検証の証明書は、レスポンスの署名または中間の証明書の集合を直接検証する証明書です。OCSP レスポンダには、レスポンスと共に署名検証の証明書を含めることができます。この場合、ポリシー サーバは、LDAP ディレクトリ内の信頼された証明書を使用してレスポンスの署名および証明書を検証します。署名検証の証明書がレスポンスにない場合、ポリシー サーバは LDAP ディレクトリ内の証明書のまたはその集合のみでレスポンスの署名を検証します。証明書またはその集合が存在するディレクトリのエントリ ポイントを表す文字列を入力します。
- ResponderCertAttr必須です。ポリシー サーバがレスポンダ証明書ディレクトリ(ResponderCertDir 設定で指定される)でレスポンダ証明書の検索に使用する LDAP ディレクトリ属性を指定します。
- ResponderLocation(オプション) OCSP レスポンダ サーバの場所を示します。ResponderLocation 設定または AIAExtension 設定を使用できますが、以下の点に注意してください。
- ResponderLocation 設定が空白のままか、または SMocsp.conf ファイルにない場合、AIAExtension 設定は「YES」に設定します。また、AIA 拡張が証明書に含まれている必要があります。
- ResponderLocation 設定に値があり、AIAExtension が YES に設定されている場合、ポリシー サーバは検証に ResponderLocation を使用します。ResponderLocation 設定は AIAExtension より優先されます。
- この設定に指定された OCSP レスポンダがダウンしており、AIAExtension が YES に設定されている場合、認証は失敗します。ポリシー サーバは、この証明書の AIA 拡張で指定されたレスポンダの使用は試しません。
responder_server_url:port_numberの形式で入力します。レスポンダ サーバの URL およびポート番号を入力します。 - AIAExtension(オプション) ポリシー サーバが検証情報を見つけるために証明書の Authority Information Access (AIA)拡張を使用するかどうかを指定します。AIAExtension 設定または ResponderLocation 設定を使用できますが、以下の点に注意してください。
- AIAExtension が「YES」に設定され、ResponderLocation が設定されていない場合、ポリシー サーバは検証用に証明書の AIA 拡張を使用します。この拡張は、証明書内に存在する必要があります。
- AIAExtension が YES に設定され、ResponderLocation にも値がある場合、ポリシー サーバは検証に ResponderLocation を使用します。ResponderLocation 設定は AIAExtension より優先されます。
- AIAExtension が「NO」に設定される場合、ポリシー サーバは ResponderLocation 設定を使用します。AIA 拡張が存在しても、ポリシー サーバはそれを無視します。
デフォルト:NO - HttpProxyEnabled(オプション) Web サーバではなくプロキシ サーバに OCSP リクエストを送信するようにポリシー サーバに指示します。「YES」または「NO」を入力します。デフォルト:NO
- HttpProxyLocation(オプション) プロキシ サーバの URL を指定します。この値は、HttpProxyEnabled が YES に設定されている場合のみ必須です。http://で始まる URL を入力します。注:https://で始まる URL は入力しないでください。
- HttpProxyUserName(オプション) プロキシ サーバに対するログイン認証情報のユーザ名を指定します。このユーザ名はプロキシ サーバの有効なユーザの名前である必要があります。この値は、HttpProxyEnabled が YES に設定されている場合のみ必須です。英数字の文字列を入力します。
- HttpProxyPassword(オプション) プロキシ サーバ ユーザ名に対応するパスワードを指定します。この値はクリア テキストで表示されます。この値は、HttpProxyEnabled が YES に設定されている場合のみ必須です。英数字の文字列を入力します。
- SignRequestEnabled(オプション) 生成された OCSP リクエストに署名するようポリシー サーバに指示します。署名機能を使用する場合はこの値を Yes に設定します。この値は、ユーザ証明書の署名とは関係がなく、OCSP リクエストにのみ関係があります。注:この設定は、OCSP レスポンダで署名されたリクエストが必要とされる場合のみ必須です。「YES」または「NO」を入力します。デフォルト:NO
- SignDigest(オプション) OCSP リクエストを署名するときにポリシー サーバが使用するアルゴリズムを指定します。この設定では大文字と小文字は区別されません。この設定は、SignRequestEnabled 設定が YES に設定された場合のみ必須です。次のいずれかのオプションを入力します: SHA1、SHA224、SHA256、SHA384、SHA512デフォルト:SHA1
- エイリアス(オプション) OCSP リクエストに署名するキー/証明書ペアのエイリアスを指定します。OCSP リクエストは、OCSP レスポンダに送信されます。このキー/証明書ペアは、Single Sign-On証明書データ ストア内に存在する必要があります。注:このエイリアスは、SignRequestEnabled 設定が YES に設定された場合のみ必須です。小文字の ASCII 英数文字を使用してエイリアスを入力します。
- IgnoreNonceExtension(オプション) OCSP リクエストに乱数を含めないようにポリシー サーバに指示します。乱数(一度使用される数字)は、レスポンスの再利用を防ぐため認証リクエスト内に含まれることがある一意の数です。このパラメータを Yes に設定すると、OCSP リクエストに乱数が含まれないようになります。「YES」または「NO」を入力します。デフォルト:NO
- PrimaryValidationMethod(オプション) ポリシー サーバで証明書の検証に使用するプライマリ検証方法が OCSP または CRL であるかを示します。この設定は、EnableFailover 設定が YES に設定された場合のみ必須です。「OCSP」または「CRL」を入力します。デフォルト:OCSP
- EnableFailoverOCSP と CRL の証明書検証方法間でフェールオーバするように、ポリシー サーバに指示します。「YES」または「NO」を入力します。デフォルト:NO
- ResponderCertAlias(フェデレーションに対してのみ必須) OCSP レスポンスの署名を検証する証明書のエイリアスを指定します。ポリシー サーバによってレスポンスの署名の検証を実行するには、この設定のエイリアスを指定してください。指定しない場合、CA 発行者には利用できる OCSP 設定がありません。注:ポリシー サーバは、X.509 証明書の認証に対してこの設定を使用しません。エイリアスを指定する文字列を入力します。SMocsp.conf ファイルがロードされると、それぞれの発行者に OCSP 設定があるかどうかを確認できます。以下のメッセージはステータス メッセージの一例です。The SMocsp.conf file was loaded. OCSP configuration was added for the following issuer aliases: ocspcacert ocspcacert1 ocspcacert2ステータス メッセージ内の発行者エイリアスは、CA 証明書をデータ ストアに追加するときに、管理 UI で指定したエイリアスを参照します。発行者エイリアスがリストにない場合は、SMocsp.conf および cds.log ファイルを確認します。ログ ファイルはsiteminder_home\log にあります。
- RevocationGracePeriod(オプション)失効した後の証明書の無効化を遅らせるための期間(日数)を指定します。OCSP 猶予期間によって、設定が突然機能しなくならないように証明書を更新する時間が与えられます。値 0 は、証明書が破棄されると直ちに無効になることを示します。このフィールドに値を指定しない場合、ポリシー サーバは、管理 UI で設定するデフォルトの廃棄猶予期間を使用します。デフォルトの設定は、[インフラストラクチャ]-[X509 証明書管理]-[証明書管理]を選択して確認できます。デフォルト:0
OCSP チェックの設定
OCSP チェックを設定して、無効なクライアント証明書を持つユーザが保護されているリソースにアクセスできないようにします。
注:
OCSP チェックを有効にする前に、証明書認証用の環境をセットアップする必要があります。ポリシー サーバは、SHA-1 および SHA-2 アルゴリズム(SHA224、SHA256、SHA384、SHA512)を使用して署名されたすべての OCSP レスポンスを使用することができます。
以下の手順に従います。
- policy_server_home/config に移動します。SMocsp.Sample.conf という名前のサンプル ファイルがポリシー サーバと共に config ディレクトリにインストールされます。
- サンプルの設定ファイルをコピーして名前を SMocsp.conf に変更します。UNIX プラットフォームの場合、ファイル名で大文字と小文字が区別されます。Windows プラットフォームの場合は区別されません。
- テキスト エディタでファイルを開きます。
- 証明書マッピングで指定された IssuerDN と一致する IssuerDN ごとに、ファイル内に一意の OCSPResponder エントリを追加します。重要:発行者 DN ごとにレスポンダ レコードを設定してください。設定しない場合、ポリシー サーバでは証明書の有効性を検証せずにユーザを認証します。
- ファイルを保存します。
- ポリシー サーバを再起動します。
- 管理 UI にログオンします。
- [インフラストラクチャ]-[ディレクトリ]を選択します。
- [証明書マッピング]オプションを展開します。
- [証明書マッピングの作成]または[証明書マッピングの変更]を選択します。[証明書マッピング]ダイアログ ボックスが表示されます。
- OSCP が使用する予定の唯一の有効性チェック方法である場合は、[CRL チェックの実行]チェック ボックスをオフにします。フェイルオーバーを使用する場合は、CRL チェックを無効にしないでください。ユーザ証明書の発行者が証明書マッピングと一致し、CRL チェックが有効になっている場合、ポリシー サーバは OCSP ではなく CRL チェックを使用します。CRL が OCSP より優先される唯一の例外は、フェイルオーバーが有効にされた場合です。フェイルオーバーを有効にした場合、ポリシー サーバは設定されたプライマリ検証方法を使用します。
- 変更を保存して管理 UI を終了します。
- (任意)OCSP リクエストに署名するようポリシー サーバを設定します。
OCSP が有効になりました。OCSP を無効にするには、SMocsp.conf ファイルの名前を変更します。
HTTP プロキシを介した OCSP レスポンダへのアクセス
OCSP リクエストは HTTP 接続を介して送信されます。この場合、証明書検証のため OCSP レスポンダへのリクエストに対する HTTP GET が必要になります。
企業が使用する多くの環境では、HTTP トラフィックは HTTP プロキシを経由します。ポリシー サーバが HTTP プロキシを介して OCSP リクエストを送信できるようにするには、SMocsp.conf ファイルにプロキシ情報を設定します。
以下の手順に従います。
- 既存の SMocsp.conf ファイルを編集するか、またはポリシー サーバの config ディレクトリ(policy_server_home/config)にファイルを作成します。
- 以下のように設定を編集します。
- HttpProxyEnabled YES
- HttpProxyLocationproxy_server_URL
- HttpProxyUserNameuser_login_name
- HttpProxyPasswordpassword_for_login
- ポリシー サーバを再起動します。
OCSP リクエストを署名するための前提条件の設定(オプション)
Single Sign-On
証明書認証方式を使用するときは、ポリシー サーバが OCSP リクエストに署名することができます。リクエストの署名は、OCSP レスポンダが署名されたリクエストを必要とする場合のみ必須となります。以下の手順に従います。
OCSP の署名を設定する前に、以下の前提条件タスクを完了する必要があります。
- OCSP チェックを設定します。
- 証明書データ ストアに、リクエストを署名するキー/証明書ペアを追加します。このタスクは、管理 UI を使用して実行します。キー/証明書のペアを追加する際に、エイリアスを指定します。ポリシー サーバはエイリアスを使用して、証明書データ ストア内の証明書エントリを識別します。エイリアスを指定する際は以下の制限に注意します。
- 1 つの証明書は、1 つのエイリアスでのみ格納します。別のエイリアスで同じ証明書を格納しようとした場合、失敗します。同じ署名証明書を使用する場合は、複数のレスポンダに対して同じエイリアスを使用します。
- 指定するエイリアス値は、SMocsp.conf ファイルで設定するエイリアスの値に一致させる必要があります。
- 証明書のエイリアス名には任意の名前を付けることができますが、最初のエイリアスはdefaultenterpriseprivatekeyである必要があります。
- エイリアスには以下の文字を使用する必要があります。
- すべて小文字の USA ASCII にする。
- 英数文字を使用する。
注:秘密キーは RSA キーである必要があります。
OCSP リクエストの署名の設定
Single Sign-On
証明書認証方式を使用するときは、ポリシー サーバがリクエストに署名することとレスポンスを検証することができます。以下の手順に従います。
- テキスト エディタで SMocsp.conf ファイルを開きます。このファイルは、policy_server_home/config ディレクトリにあります。
- 各レスポンダについて SMocsp.conf ファイルに以下のエントリを追加します。
- SignRequestEnabledOCSP リクエストに署名するようポリシー サーバに指示します。有効値:Yes または No署名機能を使用する場合はこの値を Yes に設定します。署名を無効にするにはデフォルトの No のままにします。デフォルト:No SignRequestEnabled エントリがレスポンダ レコードにない場合、ポリシー サーバでは OCSP リクエストに署名できません。
- SignDigestOCSP リクエストの署名に使用するアルゴリズムを示します。オプション:
- SHA1
- SHA224
- SHA256
- SHA384
- SHA512
デフォルト:SHA1 - エイリアスポリシー サーバが署名用のキー/証明書ペアを取得するために使用するエイリアスを示します。エイリアスは小文字の USA ASCII 英数文字に制限されます。
- SMocsp.conf ファイルを保存します。
- ポリシー サーバを再起動します。
OCSP リクエストの署名が有効になりました。