SSLハンドシェイクのクライアント認証

SSLハンドシェイクのクライアント認証

SSLハンドシェイク中にクライアント認証がどのように機能するかを理解したいと思います。

  1. サーバートラストストアにクライアントリーフ証明書が必要ですか?双方向SSLハンドシェイク中はいつでも言及されますか?存在する場合は無視されますか?

  2. Server Hello メッセージには Certificate_list メッセージがあります。これには、クライアント証明書に署名したCAまたは相互CAのリストが含まれます。クライアントはこのリストを確認し、リスト内のCAまたはInter CAによって署名されたクライアント証明書のみを送信します。この理解は正しいですか?

  3. クライアントがクライアント証明書をサーバーに送信すると、サーバーは既知のCA(CAがServer helloの証明書リストにあります)によって署名されていることを確認し、そうである場合はサーバーは証明書の詳細(cn)を確認します。証明書は正当です。ただし、この時点で、サーバーはクライアントがクライアント証明書の秘密鍵を所有しているかどうかわからないため(クライアントが違法な方法でクライアント証明書を取得した可能性があるため)、サーバーはクライアントからCertificate_verifyメッセージを期待します。メッセージはクライアントの秘密鍵で署名され、サーバーはクライアントの公開鍵(サーバーがクライアント証明書を介して前のメッセージから受信した鍵)を使用してメッセージを復号化できるため、サーバーはクライアントが誰であるかを確認できるようになりました。と主張します。この理解は正しいですか?

  4. Certificate_verifyメッセージの内容は何ですか?

  5. この場合、サーバーはどのようにクライアントを区別しますか?サーバーはクライアントCNを確認し、それに応じてクライアントを受け入れるか拒否しますか?このサーバーがない場合、すべてのクライアントが証明書に対する正当な権限を持っている場合、証明書を受け入れますか?

ベストアンサー1

おすすめ記事