4

We have a proprietary framework and now we want to integrate the authentication by client side ssl certificates. What are the best practices to map a client certificate to a proprietary user account (for example a simple user table in the database)?

  • Save to public key of the certificate?
  • Save issuer and serialnumber?

Or are there other possibilities?

4

2 に答える 2

2

証明書を発行していますか (証明書のいくつかのフィールドを設定する可能性がありますか)? これらの証明書は、電子メール署名のような大規模な PKI 環境と統合する必要がありますか (つまり、X.509 相互運用性の悪夢に悩まされているということです)?

ユーザー用の認証局を作成でき、外部システムを気にする必要がない場合は、各クライアント証明書に、ユーザー アカウントに直接マップする共通の名前属性を与えることができます。したがって、クライアント証明書がユーザー認証局によって署名されているかどうかを確認し、証明書の CN 属性と一致させることができます。

署名証明書の数が限られており、よく知られている場合は、この証明書を保存し、クライアント証明書を確認して、署名証明書の 1 つによって署名されている場合にのみ受け入れることをお勧めします。次に、発行 CA がユーザーごとに一意に設定する証明書のフィールドを使用します (ユーザー証明書が更新されても同じままです。多くの協力では、ユーザー証明書は約 1 年後にタイムアウトになります)、このフィールドをユーザー データベースに接続します。

証明書を発行できない場合は、証明書のハッシュをデータベースに保存できますが、証明書が期限切れになるとデータベースを更新する必要があるという欠点があります。ハッシュは証明書ごとに一意ですが、証明書のほとんどのフィールドは偽装できます。

また、署名認証局の証明書失効リストを確認して、ユーザーが盗まれた証明書を使用してサービスにアクセスできないようにすることもできます。

于 2010-04-10T19:20:32.400 に答える
0

クライアント証明書のシリアルDNと発行者DNを保存し、照合します。http://www.tectia.com/manuals/server-admin/60/userauth-cert.htmlによると、これは証明書を一意に識別するのに十分です。

于 2011-05-05T10:04:29.243 に答える