Sun Java System Messaging Server 6 2005Q4 管理ガイド

非公開キーと公開キーの確認

Communications Express メールは、図 20–2 に示された確認テストに合格してからでないと、非公開キーも公開キーも使用できません。この節の以下の部分では、公開キーの証明書を CRL でチェックする方法の詳細について説明します。

図 20–2 非公開キーと公開キーの確認

図は非公開キーおよび公開キーの確認のためのフローチャートを示しています。

ユーザーの非公開キーまたは公開キーを見つける

1 人の Communications Express メールユーザーが複数の非公開および公開キーのペアおよび複数の電子メールアドレス (プライマリ、代替、またはエイリアスアドレス) を持つ場合は、それぞれのキーがそれぞれのアドレスに関連付けられている可能性があります。その場合、S/MIME アプレットが確認のためにすべてのキーを見つけることができることが重要です。smime.conf ファイルで usercertfilter パラメータを使用して、公開キーの証明書を CRL でチェックする時にキーの所有者のメールアドレスのリストを作成するフィルタを定義します。詳細については、「smime.conf ファイルのパラメータ」の「usercerfilter」を参照してください。

証明書が CRL でチェックされるタイミング

証明書失効リスト、すなわち CRL は、キーのペアおよび証明書を発行する CA が管理する失効した証明書のリストのことです。CRL チェックを有効にすると、証明書が要求されるたびに、その証明書が失効しているかどうかを確認するためにシステムが CRL をチェックします。

smime.conf ファイルで crlenable1 を設定すると、有効期限が切れていないキーが見つかると CRL テストが実行されます。公開キーの証明書は、CRL でチェックされます。各 CA の CRL は 1 つのみですが、同じ CRL が異なる場所に存在することは可能です。

S/MIME アプレットが Messaging Server にチェックの要求を送信すると、Messaging Server で CRL による証明書のチェックが実行されます。公開キーの証明書は、公開キーの検証に使用されます。非公開キーは公開されず、そのキーの所有者のみが使用するため、非公開キーを CRL で直接チェックすることはできません。非公開キーが有効であるかどうかを確認するには、キーのペアの公開キーの証明書が使用されます。公開キーの証明書が CRL テストに合格すると、関連する非公開キーもテストに合格します。

証明書の所有者が所属組織の一員でなくなったため、またはスマートカードを失くしたためなど、証明書の失効はさまざまな理由で発生します。

証明書を CRL でチェックする必要がある状況には次の 3 つがあります。

CRL へのアクセス

証明書には、配布点と呼ばれる 0 個以上の URL が含まれています。Messaging Server は、配布点を使用して CRL を検索します。証明書に CRL URL が含まれていない場合、証明書を CRL でチェックすることはできず、本当のステータスがわからない状態で非公開キーまたは公開キーがメッセージの署名や暗号化に使用されます。

Messaging Server が利用できるすべての URL を試行しても CRL を見つけることもアクセスすることもできない場合は、証明書のステータスは不明になります。不明ステータスの非公開キーまたは公開キーを使用するかどうかは、revocationunknown の設定によって決定されます。

各 CA には CRL が 1 つのみサポートされますが、同じ CRL の複数のコピーは、ユーザーの公開キーの証明書の異なる URL で示される異なる場所に存在できます。Messaging Server は、CRL にアクセスできるようになるまで、証明書のすべての URL ロケーションを試行します。

アクセスを最適化するために、最新の CRL を CA から必要な場所に定期的にダウンロードして、複数の CRL のコピーを管理できます。証明書に埋め込まれた URL を変更することはできませんが、CRL 情報が含まれる新しい URL へ証明書内の URL をマッピングして、Messaging Server が新しい CRL の場所を使用するようにリダイレクトできます。次の構文を使用して LDAP ディレクトリ上に 1 つ以上のマッピング定義のリストを作成します (表 20–3 の「crlmappingurl」を参照)。


msgCRLMappingRecord=url_in_certificate==new_url[|url_login_DN|url_login_password]

url_in_certificate は、CRL を検索するための古い情報が含まれる、証明書内の URL です。new_url は、新しい CRL 情報が含まれる新しい URL です。url_login_DN および url_login_password は new_url へのアクセスを許可されたエントリの DN およびパスワードです。両方ともオプションであり、指定した場合、新しい URL のアクセスにのみ使用されます。

DN およびパスワードが受け入れられない場合、LDAP アクセスは拒否され、その他の資格情報での再試行は行われません。これらのログイン資格情報は、LDAP URL に対してのみ有効です。smmime.confcrlurllogindn および crlurlloginpw を使用する場合は、マッピングレコードにログインの DN およびパスワードを指定する必要はありません。詳細については、「公開キー、CA 証明書、および CRL にアクセスするための、資格情報を使用した LDAP へのアクセス」を参照してください。

マッピングには 1 層のみが許されます。証明書内の異なる URL を同一の新しい URL にマッピングできますが、証明書の 1 つの URL に複数の新しい URL を割り当てることはできません。たとえば、次のマッピングリストは無効です。

msgCRLMappingRecord=URL12==URL45
msgCRLMappingRecord=URL12==URL66
msgCRLMappingRecord=URL12==URL88
msgCRLMappingRecord=URL20==URL90
msgCRLMappingRecord=URL20==URL93

次の例は、正しいマッピングリストです。

msgCRLMappingRecord=URL12==URL45
msgCRLMappingRecord=URL14==URL66
msgCRLMappingRecord=URL88==URL66
msgCRLMappingRecord=URL201==URL90
msgCRLMappingRecord=URL202==URL93

LDAP ディレクトリにマッピング定義を作成したら、smime.conf ファイルで crlmappingurl を使用してマッピング定義の場所を特定するためのディレクトリ情報を指定します。詳細については、「smime.conf ファイルのパラメータ」を参照してください。

プロキシサーバーと CRL チェック

システムでクライアントアプリケーションと Messaging Server 間にプロキシサーバーを使用する場合、CRL チェックを実行するように適切に S/MIME アプレットを設定しても CRL チェックが妨げられることがあります。この問題が発生すると、Communications Express メールのユーザーは、有効なキーの証明書に対する失効または不明ステータスを警告するエラーメッセージを受信します。

次の状態は、問題が生じる原因になります。

この問題を解決するには、以下を実行します。

  1. クライアントマシンとプロキシサーバー間の通信リンクを SSL で保護されたリンクに設定し、設定値はすべてそのままにします。または、

  2. 通信リンクを保護しない状態で、checkoverssl0 を設定します。

詳細については、「SSL でインターネットリンクを保護する」を参照してください。

古い CRL の使用

S/MIME アプレットが Messaging Server にチェックの要求を送信すると、Messaging Server で CRL による証明書のチェックが実行されます。証明書をチェックするたびに CRL をメモリーにダウンロードするのではなく、Messaging Server は CRL のコピーをディスクにダウンロードして、そのコピーを証明書のチェックに使用します。すべての CRL には、日付を指定する次の更新日フィールドがあります。この日付以降は、最新のバージョンの CRL を使用する必要があります。次の更新日は、CRL の期限切れ日または使用の時間制限とみなすことができます。 次の更新日を過ぎた CRL は、古いものとみなされ、Messaging Server が証明書を次回チェックするときに最新バージョンの CRL をダウンロードするようにします。

S/MIME アプレットが証明書を CRL でチェックするように要求するたびに、Messaging Server は次のことを実行します。

  1. 現在の日付を CRL の次の更新日と比較します。

  2. CRL が古くなった場合は、Messaging Server は最新バージョンの CRL をダウンロードしてディスク上の古い CRL を置き換え、チェックを続けます。ただし、最新の CRL が見つからない、またはダウンロードできない場合は、smime.conf ファイルの crlusepastnextupdate の値によって何を行うべきかを判断します。

  3. crlusepastnextupdate0 に設定されている場合、古くなった CRL は使用されず、問題の証明書のステータスはあいまいになります。S/MIME アプレットは、smime.confrevocationunknown の値によって次に実行すべきことを判断します。

    1. revocationunknownok が設定されている場合は、証明書を有効とみなし、非公開キーまたは公開キーを使用してメッセージの署名や暗号化が行われます。

    2. revocationunknownrevoked が設定されている場合は、証明書を無効とみなし、メッセージの署名や暗号化には非公開キーも公開キーも使用せず、キーを使用できないことをポップアップエラーメッセージでメールユーザーに警告します。

    crlusepastnextupdate1 が設定されている場合は、S/MIME アプレットは古い CRL を使用し続け、これによって Communications Express メール内では処理が中断されることはありませんが、この状況を警告するメッセージが Messaging Server ログファイルに書き込まれます。

証明書が CRL でチェックされるたびに、この一連の手順が実行されます。Messaging Server が新しいバージョンの CRL を適時ダウンロードできる限り、また smime.conf ファイルの設定によっては、メールの処理は中断することなく進行します。古くなった CRL が使用されていることを示すメッセージが繰り返し表示されていないかどうか、Messaging Server ログを定期的に確認してください。新しい CRL がダウンロードできない場合は、アクセスできない理由を調査する必要があります。

使用するメッセージ時刻の判断

timestampdelta パラメータは、主に次の目的で使用されます。

  1. 送信先に到着するまでに時間がかかるメッセージの状況に対処するため。この場合、送信者のキーが、メッセージが送信されたときに有効であったにもかかわらず無効として処理された可能性があります。

  2. 送信時間が偽造されている可能性があるので、メッセージの送信時間の信頼性を限定するため。

どのメッセージにも次の 2 つの時間が関連付けられています。


注 –

メッセージヘッダーの詳細は、メッセージの From フィールドの右側にある三角のアイコンをクリックして表示できます。


メッセージの送信時に有効であった証明書は、メッセージが送信先に到着するまでに失効したり有効期限が切れたりする場合があります。このようになった場合、証明書の妥当性のチェックを行う際に送信時間と受信時間のどちらの時間を使用すべきでしょうか。送信時間を使用すると、メッセージが送信されたときに証明書が有効であったことが確認されます。しかし、常に送信時間を使用することは、メッセージが送信先に到着するのに長い時間がかかることがあるということを考慮していません。そのような場合は、受信時間を使用するほうがよいこともあります。

smime.conf ファイルで timestampdelta パラメータを使用して CRL チェックに使用する時間に影響を与えることができます。このパラメータに秒を表す正の整数を設定します。受信時間から timestampdelta の値を差し引いた時間が送信時間より前の時間である場合は、送信時間が使用されます。そうでない場合は、受信時間が使用されます。timestampdelta の値が小さいほど、受信時間が使用される頻度が高まります。timestampdelta が設定されていない場合は、常に受信時間が使用されます。詳細については、表 20–3 の「timestampdelta」を参照してください。

CRL へのアクセスの問題

ネットワークやサーバーの問題などさまざまな理由で、Messaging Server が証明書を CRL でチェックしようとしたときに CRL が利用できないことがあります。Messaging Server に絶えず CRL へのアクセスを試行させるのではなく、smime.conf ファイルで crlaccessfail パラメータを使用して、CRL へのアクセスを試みる頻度を管理し、ほかのタスクのために Messaging Server を解放できます。

crlaccessfail で次のことを定義します。

パラメータの構文および例については、表 20–3 の「crlaccessfail」を参照してください。

証明書が失効した場合

公開キーの証明書が CRL のエントリに一致しない場合、非公開キーまたは公開キーを使用して、送信するメッセージの署名や暗号化を行います。証明書が CRL のエントリに一致する場合、または証明書のステータスが不明な場合は、非公開キーまたは公開キーは失効したとみなされます。デフォルトでは、Communications Express メールは送信するメッセージの署名や暗号化に、証明書が失効しているキーは使用しません。受信者が署名付きのメッセージを読む時点でそのメッセージの非公開キーが失効している場合は、受信者は署名が信頼できないことを示す警告メッセージを受け取ります。

必要に応じて、smime.conf ファイルに次のパラメータを指定して、すべての失効した証明書に対する各種デフォルトポリシーを変更できます。