TLS クライアントで openSSL を使用して、SSL_CTX_set_cipher_list() で一意の暗号スイートを指定しました。
Wireshark を使用してメッセージを確認すると、Client Hello メッセージで許可されている暗号スイートは指定したものであることがわかります。
しかし、拡張機能: 署名アルゴリズムを見ると、クライアントは、MD5 のようにあまり安全ではないと思われるアルゴリズムも含め、多数のアルゴリズムを受け入れているようです。
この動作を変更するにはどうすればいいでしょうか?
答え1
(他のものを調べているときに見つけました。セキュリティ、または SO の方が良いかどうかはわかりません。)
リリース 1.0.2 (のみ) にこれに関する新しい機能がありますSSL_[CTX_]set1[_client]_sigalgs[_list]
。まだどのリリースにもドキュメントは見当たりませんが、次の Web サイトの「マスター」(つまり開発「トランク」) にはあるようです。https://www.openssl.org/docs/manmaster/ssl/SSL_CTX_set1_sigalgs.htmlおそらく将来のリリースでもそうなるでしょう。
以前のバージョンでは、検証コールバックを設定するか、結果チェーンをチェックするだけで、MD5、RSA<=1024、NSA バックドアの疑いのある曲線を使用する ECC を使用する証明書またはチェーン、または「猫は嫌い」という CA ポリシーなどのその他の好ましくないものを拒否できます。