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)