第14章 セキュリティー
OpenSSL のランタイムバージョンがマスクされ、SSL_OP_NO_TLSv1_1 を OpenSSL 1.0.0 で使用することはできません。
一部のアプリケーションは
OpenSSL バージョンの誤ったバージョンチェックを実行するため、OpenSSL の実際のランタイムバージョンがマスクされ、代わりにビルドタイムバージョンが報告されます。したがって、SSLeay () 関数を使用して現在実行中の OpenSSL バージョンを検出することはできません。
さらに、
OpenSSL 1.0.0 で実行するときに、OpenSSL 1.0.1 に存在する SSL_OP_NO_TLSv1_1 オプションと同等の値を SSL_CTX_set_options () 関数に渡すと、SSL/TLS のサポートが完全に壊れます。
この問題を回避するには、別の方法を使用して、現在実行中の
OpenSSL バージョンを検出します。たとえば、SSL_get_ciphers ()関数で有効な暗号のリストを取得し、SSL_ CIPHER_description () 関数を使用して一覧を解析して TLS 1.2 暗号を検索できます。これは、バージョン 1.0.1 以降に存在するため、1.0.0 より後の OpenSSL バージョンで実行されるアプリケーションを示しています。(BZ#1497859)