opensslのSSL証明書にCN /ホスト名解決が必要ですか?なぜ? [閉鎖]

opensslのSSL証明書にCN /ホスト名解決が必要ですか?なぜ? [閉鎖]

「信頼証明書」やその他の属性がある場合...これはどのくらい重要ですか?

OpenSSLは今実装されましたか?そうでない場合、OpenSSLがこれを実装しないのはなぜですか?

ベストアンサー1

SSLを使用するほとんどのプロトコル/アプリケーションでは、クライアントは次の2つのことを確認する必要があります。 (1) サーバが有効な証明書を提供します。これは、証明書が信頼できるCAによって発行され、期限切れ、キャンセル、または改ざんされていないことを意味します。 (2)証明書は、間違いや意図的な攻撃のためにあなたの接続がルーティングされた他の人ではなく、あなたが意図したサーバーに対するものです。 (まれにサーバー認証を必要とせず、機密のみを維持する場合は、明示的に認証しない「anon」または「aNULL」暗号スイートを使用することをお勧めします。)

これまで、OpenSSLは(1)を実行しますが、(2)は実行しません。、通常、トラストストアにあるCAルート証明書のみをサポートします。 1 つの CA ルートは、数千または数百万のサーバー証明書を「責任」できます。たとえば、Verisignが両方の証明書に証明書を発行したとしても、私のbigbankアカウントが欲しいというわけではありませんbigbank.comlocaldiner.comlocaldinerさんと一緒にいます。したがって、アプリケーションはverify_callbackまたはハンドシェイクが完了した後(機密)データを送信する前に(2)を実行する必要があります。次のメジャーバージョンである1.0.2には、証明書チェーン検証の機能強化が含まれる予定であり、少なくとも場合によっては名前検証も可能であると思います。 RFC 2818 を使用する HTTPS または RFC 6125 を使用するその他の TLS ベースのプロトコルの場合は、タイトルに CommonName および SubjectAlternativeNames 拡張がある場合は確認する必要があります。

全然知らないOpenSSLを選択する理由(そしてその前にはSSLeay)これをしないでください。すでに。いくつかの珍しいSSL / TLSアプリケーションは、標準のCN / SAN以外のものが必要であると主張するかもしれませんが、OpenSSLが一般的なケースを処理し、まれな場合にコールバックやオプションを提供する他の分野もあります。おそらく仕事が多すぎて(最近まで)スタッフが足りないと思いました。

おすすめ記事