第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)