GitHub 預定再兩個星期後廢止 HTTPS 連線的 RC4

GitHub 在「Improving GitHub's SSL setup」這邊開頭就提到要拔掉 RC4

To keep GitHub as secure as possible for every user, we will remove RC4 support in our SSL configuration on github.com and in the GitHub API on January 5th 2015.

看了一下日曆,算一算其實意思就是「放完假的星期一我們就來拔 RC4」XDDD

雖然 GitHub 的人說了 Windows XP + IE8 會沒辦法用,不過翻了「Qualys SSL Labs - Projects / User Agent Capabilities: IE 8 / XP」這頁,手動打開 TLS 1.0 後應該還有 TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x13) 這兩個用 3DES 的 cipher 可以掙扎才對?

不過看 GitHub 目前的 HTTPS 設定,看起來沒打算支援這兩個:「Qualys SSL Labs - Projects / SSL Server Test / github.com」以及「Qualys SSL Labs - Projects / SSL Server Test / github.com」。

不過順便把 3DES 踢出清單也是比較安全啦...

Ubuntu 上把 Chrome 拔掉 RC4 連線的方法

首先先看「SSL Cipher Suite Details of Your Browser」這個網站,會列出你目前瀏覽器支援的 cipher suite,會需要知道要拔掉哪些號碼。

接下來的資料是參考「Remove RC4 from SSL/TLS ciphers in Chromium」這篇的方法。

Ubuntu 的使用者可以到 /usr/share/applications/google-chrome.desktop 這邊修改,本來是:

Exec=/usr/bin/google-chrome-stable

改成:

Exec=/usr/bin/google-chrome-stable --cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007

其中的十六進位數字就是出自最前面提到的網站:

  • 0x0004 對應 RSA-RC4128-MD5,
  • 0x0005 對應 RSA-RC4128-SHA,
  • 0xc011 對應 ECDHE-RSA-RC4128-SHA,
  • 而最後的 0xc007 對應 ECDHE-ECDSA-RC4128-SHA。

這樣就可以將 RC4 禁用掉。

NCCC (聯合信用卡處理中心) 的網站不支援 AES 加密...

看到廉價航空機票在特價跑去刷,結果刷了兩次都死在聯合信用卡處理中心的 acs.nccc.com.tw 畫面出不來。突然想到我把 RC4 關掉了,該不會是這種原因吧...

跑去「SSL Report: acs.nccc.com.tw (210.61.215.16)」這邊一看,果然是不支援 AES

抱頭痛哭啊... 只好 rollback 回來 @_@

選擇 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

CloudFlare 停用 RC4 後的現象,以及後續...

今年一月的時候 CloudFlare 宣佈針對使用 TLS 1.1+ 的使用者停用 RC4:「Killing RC4 (softly)」。

而現在 (五月) 則直接從 cipher priority 上拔掉 RC4:「Killing RC4: The Long Goodbye」。

切換後的資料其實非常有趣:

可以看到本來用 RC4 的有兩塊,一塊是 ECDHE-RC4,一塊是 RSA-RC4。在 RC4 被拿掉後,就流竄到 ECDHE-AES-CBC 與 RSA-AES-CBC... (這兩個本來就可以預期)

但冒出 RSA-3DES 是怎樣 XDDD

Anyway,CloudFlare 在目前市場上算是很大的 provider,由他們出面率先拔掉 RC4 會對整個市場有正面的影響。接下來看看還有誰會動手?

Google 對四個 Cipher 的分析... (以及 ChaCha20-Poly1305)

Google Online Security Blog 上對四種 cipher 的分析:「A roster of TLS cipher suites weaknesses」。

分別是 RC4、AES-CBC、AES-GCM、ChaCha20-Poly1305 四個 cipher。其中 RC4 與 AES-CBC 的問題都很多,而 AES-GCM 與 ChaCha20-Poly1305 是目前還沒有有效攻擊的 cipher。

前面三個都算熟悉,第四個是到是頗意外會出現... 不過 ChaCha20-Poly1305 不只一家打算跳下去實做了:

ChaCha20 與 Poly1305 都是 D. J. Bernstein (djb) 的作品,不知道 OpenSSL 會不會納進去...

在「ChaCha20 and Poly1305 for TLS」這邊有些為什麼有了 AES-GCM 後還要用 ChaCha20-Poly1305 的原因,主要是速度考量。兩者的速度差非常多...