メインコンテンツまでスキップ

3. クライアント認証

本文書は、関与するクライアント証明書の種類にちなんで名付けられたクライアント認証メカニズム、ECDSA_sign を定義する。ECDSA_sign メカニズムは、セクション2で説明した非匿名 ECC 鍵交換アルゴリズムのいずれかと共に使用可能であり、TLS で定義されている他の非匿名(非 ECC)鍵交換アルゴリズムとも使用可能である。

EdDSA 公開鍵を持つクライアント証明書もこのメカニズムを使用することに注意されたい。

サーバは、CertificateRequest メッセージにこの証明書タイプを含めることで、ECC ベースのクライアント認証を要求できる。クライアントは、サーバが提案する方法に適した証明書を所有しているか、およびそれを認証に使用する意思があるかを確認しなければならない。

これらの条件が満たされない場合、クライアントは証明書を含まないクライアント Certificate メッセージを送信すべきである (SHOULD)。この場合、ClientKeyExchange はセクション2の記述通りに送信されなければならず (MUST)、CertificateVerify は送信されてはならない (MUST NOT)。サーバがクライアント認証を必要とする場合、致命的なハンドシェイク失敗アラートで応答してもよい。

クライアントが適切な証明書を持ち、それを認証に使用する意思がある場合、クライアントの Certificate メッセージでその証明書を送信し(セクション5.6に従い)、認証された鍵に対応する秘密鍵の所有を証明しなければならない。適切な証明書を決定し、所有を証明するプロセスは、各認証メカニズムごとに異なり、以下に説明する。

注:サーバがサーバ証明書とは異なるタイプのクライアント証明書を要求し(クライアントが送信する)ことは許可されている。

3.1. ECDSA_sign

この認証メカニズムを使用するには、クライアントは ECDSA または EdDSA 能力を持つ公開鍵を含む証明書を所有していなければならない (MUST)。

クライアントは、セクション5.8で説明されているように、CertificateVerify メッセージに署名を含めることによって、認証された鍵に対応する秘密鍵の所有を証明する。