23장. 보안
OpenSSL 의 런타임 버전이 마스크되고 OpenSSL 1.0.0으로 실행되는 경우 SSL_OP_NO_TLSv1_1 을 사용해서는 안 됩니다.
특정 애플리케이션이 OpenSSL 버전의 잘못된 버전 검사를 수행하기 때문에
OpenSSL 의 실제 런타임 버전이 마스크되고 대신 빌드 타임 버전이 보고됩니다. 따라서 SSLeay() 함수를 사용하여 현재 실행 중인 OpenSSL 버전을 감지할 수 없습니다.
또한
OpenSSL 1.0.1에 있는 SSL_OP_NO_TLSv1_1 옵션에 해당하는 값을 OpenSSL 1.0.0으로 실행할 때 SSL/TLS 지원을 완전히 수행할 때 SSL_CTX_set_options() 함수에 전달합니다.
이 문제를 해결하려면 다른 방법을 사용하여 현재 실행중인
OpenSSL 버전을 감지하십시오. 예를 들어 SSL_get_ciphers() 함수를 사용하여 활성화된 암호 목록을 가져오고 SSL_CIPHER_description() 함수를 사용하여 목록을 구문 분석하여 TLS 1.2 암호를 검색할 수 있습니다. 이는 TLS 1.2가 버전 1.0.1 이후이기 때문에 OpenSSL 버전에서 실행되는 애플리케이션을 1.0.0 이상임을 나타냅니다. (BZ#1497859)