4

ユーザーがサーバーにリクエストを送信したときにクライアント証明書を取得するタスクに取り組んでいます。証明書を取得し、証明書からユーザー名、ユーザーの電子メールアドレス、ユーザーの会社名の3つの情報を取得する必要があります。

最初は、ユーザー名に「Subject CN」、メールアドレスに「Subject E」、会社名に「subjectOU」を取得するのは非常に簡単なようです。

しかし、後で私は多くの異なるCAとツールがあり、それらが異なる形式で証明書を発行することに気付きました。たとえば、「subject」フィールドに電子メールアドレスフィールドがまったくないが、SubjectAlternativeName拡張子に格納され、ユーザー名が「subject O」に格納されている証明書もあれば、「subjectCN」フィールドに電子メールが含まれている証明書もあります。そして会社のURLアドレスと一緒に。

ユーザーの名前、会社名、メールアドレスを確実に知る方法はないかと思います。そうでない場合、これらの情報が複数の場所に保存されるように証明書形式の標準がある場合、または証明書のどのフィールドに作成されただけですか?

そして最後の質問は、Webサイトが「すべての」CAからのクライアント証明書をサポートしている場合、何個のCAについて話しているのかということです。このシナリオは一般的ですか、それともほとんどのWebサイトは選択した1〜2のCAをサポートしていますか?

返信ありがとうございます。頭の中で質問が多すぎます。

4

1 に答える 1

10

サブジェクト識別名(サブジェクトDN)は、相対識別名(RDN)の順序付けられたシーケンスであり、各RDNは、属性値アサーション(AVA)の順序付けられていないセットです。AVAは、「CN=yourname」や「O=yourorganization」のようなものです(ただし、証明書にはそのように格納されていません)。

ほとんどの場合、RDNごとにAVAは1つしかないため、奇妙な場合を除いて、これをたとえばサブジェクトDNのCN RDN(または、そうでない場合は「フィールド」と呼ぶこともできます)と呼んでもかまいません。具体的すぎる必要があります)。サブジェクトDNを読み取り可能な文字列にシリアル化するための複数の標準があります。特に、左から右または右から左、またはE=vs emailAddress=、コマまたはスラッシュの区切り文字です。最初に、ツールが文字列表現ではなくOID(オブジェクト識別子)からそれらを読み取れることを確認する必要があります。

多くの場合、シーケンスは国、組織、組織単位、一般名、およびおそらく電子メールになります(ただし、電子メールアドレスは、標準使用)。

一般に、CAは、サブジェクトDNの構造、およびサブジェクト代替名の拡張子を使用するかどうかに関して、自由に実行できます。これらのことは、各CAポリシー(非常に長い技術的および法的文書になる可能性があります)によって規制される傾向があります。このドメインにすべてに適合する1つのサイズはありません。

クライアント証明書を受け入れる前に、クライアントのポリシーに同意することを確認する必要があります。CA証明書を信頼すると、PKIモデルは、その後のきめ細かい選択を行うのが困難になるようなものになります。

信頼できるCAのリストは、プラットフォームと構成によって異なります。デフォルトでは、OSX上のJavaのトラストストアには約150のCA証明書がありますが、他のプラットフォームでは約70のCA証明書があると思います。これらの数値は大幅に異なる可能性があります。

とにかく、クライアント証明書を受け入れたい場合は、多かれ少なかれそれらがどこから来たのかを知る必要があるので、非常に多くの場合、それを信頼できるCAの小さなサブセットがあります。(ポリシードキュメントに基づいて)慎重に手動で選択した後、クライアント証明書認証のために信頼できるCAを構成することを強くお勧めします。

実際には、クライアントが証明書を任意のサーバーにランダムに送信する理由がわかりません。クライアント証明書のPKIは、閉じた管理ドメイン内、または確立されたフェデレーション内でより適切に機能する傾向があります。この場合、ユーザーとユーザーはそれらの組織に属し、どのCAを期待するかがわかります。さらに、LDAPサーバーなど、他の場所からさらに属性をフェッチしながら、ユーザーを認証するためのクライアント証明書の使用を制限することをお勧めします。通常、クライアント証明書は1年以上個人に発行されますが、個人に関する情報(組織単位でさえ)は実際には変更される場合があります。CAを使用する場合、またはCAを独自に設定する場合は、これらすべてを考慮する必要があります。

于 2010-07-07T16:43:34.460 に答える