Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第23章 セキュリティー

OpenSSL のランタイムバージョンがマスクされているため、アプリケーションが OpenSSL 1.0.0 で実行する際、 SSL_OP_NO_TLSv1_1 を使用してはならない

一部のアプリケーションでは 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 の暗号を検索します。TLS 1.2 がサポートされるのはバージョン 1.0.1 以降であるため、これにより、OpenSSL のバージョンが 1.0.0 以降のものを使用して実行しているアプリケーションが示されます。(BZ#1497859)