2014-06-23 63 views

回答

2

根據代碼,這只是OpenSSL 1.0.0a。 OpenSS L1.0.1增加了TLS1.2支持,因此該庫不支持TLS1.2。順便說一句,TLS1.2是TLSv1_2而不是TLSv2。

0

我使用下面的OpenSSL庫爲Android

根據斯特芬,它的一個dwonlevel版本。你可能會考慮自己構建它。您可以在OpenSSL的wiki上找到相關信息:OpenSSL and Android。或者,你可以從這個Github獲取1.0.1h:Noloader GitHub。 GitHub擁有爲API 14(GCC 4.6 toolchain)和API 18(GCC 4.8工具鏈)構建的OpenSSL 1.0.1h。

OpenSSL庫是否支持TLS 1.2及更高版本的庫是基於哪個Openssl版本構建的?

如果你是一個現代版的OpenSSL的工作,那麼TLS 1.2將可以在默認情況下(除非像Debian和Ubuntu的一個發行版,其中前約2014禁用TLS 1.1和TLS 1.2)。如果發行沒有禁用的協議,那麼就應該執行以下,收緊協議:

/* Useless return value ??? */ 
SSL_library_init(); 

const SSL_METHOD* method = SSLv23_method(); 
if(!(NULL != method)) handleFailure(); 

SSL_CTX* ctx = SSL_CTX_new(method); 
if(!(ctx != NULL)) handleFailure(); 

/* Cannot fail ??? */ 
const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_COMPRESSION; 
SSL_CTX_set_options(ctx, flags); 

上面的代碼提供了TLS 1.0及以上。由於TLS無處不在(因此,不需要SSLv3),您將可以使用TLS。該代碼還將確保TLS 1.3在其標準化(IETF現在正在對其進行標準化)後可用。並且由於諸如CRIME之類的攻擊,它會禁用壓縮。

還有一個機會來收緊密碼套件。你應該提供16或20個左右的認可密碼,不要再提供。 2014年沒有理由使用出口級密碼,RC4或MD5。另外,如果您宣傳所有80+密碼,它會導致一些設備突破,如舊的F5和IronPort。應用程序使用的固定大小的緩衝區太小,他們嗆/掛在ClientHello