2017年6月14日 星期三

【弱點那些事】SSL/TLS Renegotiation (SSL/TLS會談重建)



本次使用工具為sslscan, openssl, sslyze, testssl.sh 以下筆記:

SSLSCAN

指令:sslscan --no-failed <target:port>

[不支援Renegotiation]

[支援Secure Renegotiation]




OPENSSL

指令:openssl s_client -connect <target:port>

 注意需使用LinuxOpenSSL且版本需大於0.9.8m (因此版本後預設才是使用Secure Renegotiation)


[不支援Secure Renegotiation但未Renegotiation成功(handshake failure),不算有問題]

[支援 Secure Renegotiation]

[不支援Secure Renegotiation但未Renegotiation成功(write:errno=104),不算有問題]



SSLYZE

指令:sslyze <target:port> --reneg


[支援 Secure Renegotiation、支援Client但無法判定Secure]

[支援 Secure Renegotiation、不支援Client]

[不支援 Secure Renegotiation、支援Client但無法判定Secure]




TESTSSL.SH

指令:./testssl.sh -R <target:port>

[支援 Secure Renegotiation、不確定是否支援Secure Client但大概沒問題]
[支援 Secure Renegotiation、不支援Secure Client]
不過弔詭的是這個站在SSLLabs測的結果是Secure Client YES, Insecure Client NO,所以是…? (ㄏㄏ
//官方說明//

[支援 Secure Renegotiation、支援Secure Client]
[不支援 Secure Renegotiation、支援Secure Client]


-
總結:

這個弱點要成立的條件
1.       支援Renegotiation
2.       不支援Secure Renegotiation


支援測試
sslscan
Openssl
sslyze
testssl.sh
SSLLabs (線上)
Secure Renegotiation (CVE-2009-3555)
v
v
v
v
v
Secure Client-initiated Renegotiation


(只能測Client但無法得知是否Secure)
v
v
備註

1.       先確認Secure Renegotiation NOT Supported
2.       再確認Rwork 才代表有問題





---
SSLScan 1.10.5-static
OpenSSL 1.0.1k
SSLyze v0.6 beta
testssl.sh 2.8
---
參考資料: