在 SSL Labs 上拿到 Perfect Score (完全滿分的 A+)

在「Achieving a Perfect SSL Labs Score with Go」這邊提到要如何在 Go 上面達到 SSL LabsSSL Server Test 的 Perfect Score (完全滿分的 A+),但其實裡面大多數的東西都應該適用於其他地方。

其中 Cipher Strength 這邊讓人非常意外的是,只有在關閉 HTTP/2 的情況下才有可能達到 100%,因為 HTTP/2 規定強制要支援 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,而這是 128bits cipher,會導致無法達到 100%:

No HTTP/2 for you! - HTTP/2 was enabled by default in go 1.6, however HTTP/2 mandates the support of the cipher suite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. As this is a 128bit cipher, it needs to be removed. The only way to achieve a perfect score now is to disable HTTP/2.

這被點出來後不知道會有什麼改變... (無論是 HTTP/2 或是 SSL Labs)

SSL Labs 對 RC4 的退役計畫

SSL Labs 的「SSL Server Test」是個經常被拿來檢測 SSL/TLS 相關設定的服務。

這兩天公佈了對 RC4 的退役計畫:「SSL Labs RC4 Deprecation Plan」。

分成兩個階段進行。

第一個階段會在五月啟用,對於因為需要支援舊的 client 而針對 SSLv3/TLSv1 + RC4 組合的,會給予 B 評價。而全面支援 RC4 的 (包括 TLSv1.1+) 則會給予 C 評價。

到了第二階段 (暫定九月),全面支援 RC4 的將會給予最低的 F 評價。

選擇 OpenSSL Cipher 時的參考資料

Qualys SSL Labs 在「User Agent Capabilities」有提供不少好用的資料,其中每個 client 點進去以後就可以知道支援哪些 cipher,像是「User Agent Capabilities: Android 2.3.7」這頁裡面可以看到只支援 SSLv3 以及 TLSv1,而支援的 cipher 大多都比較弱一點 (3DES 的 112bits 以及 RC4/AES 128bits 為主):

就用這些資訊去湊,設上去後再實際測試 :o