如何評價 Chrome Android 不再選用 ChaCha20 作為首選演算法?
01-02
下圖是 Chrome 51 在 Android 上對於 Cipher Suites 的選擇。之前 Google 強勢推廣的 ChaCha20 已經降到了 AES 之後,反而在 PC 上依然是 ChaCha20 優先。
ChaCha20 發布時以 ARM 上的超快速度作為亮點,而 Google 為推廣演算法在有 AES 指令集加成的 PC 上也強行使用了 ChaCha20,為何突然在移動平台上放棄?
Chrome Android是根據CPU特性選擇演算法。
如果CPU支持aes,則優先選擇aes-gcm,其次是chacha20否則chacha20優先於aes-gcm
原因是:
無論是ARM還是x86-64,CPU有aes指令的情況下,aes-gcm的速度均大幅優於chacha20在x86-64 with aes(沒有avx)上,aes-gcm的速度至少是chacha20的10倍以上OpenSSL 1.1.0支持chacha20,在avx2的CPU上性能大約能達到aes-gcm的70%左右。對於新技術,從硬體(比如aes,avx,avx2指令),到基礎組件(openssl,boringssl),再到上層應用(瀏覽器,web server),這麼多東西綜合起來情況就多變了。
相比chacha20,aes的各種環境都成熟很多。總體來說,支持aes的ARM,優先aes-gcm對終端和服務端都是更好的選擇。
PS: TLS v1.3草案18僅支持chacha20、aes-gcm和aes-ccm。
修改記錄:
5月2號更正OpenSSL 1.1.0對chacha20支持的錯誤。這個要分處理器,因為在ARM v8之後加入了AES指令,所以在這些平台上的設備使用AES方式是比Chacha20更快的,同時使用AES也發揮了伺服器的性能優勢。谷歌也沒有取消使用Chacha20,只是開啟了ssl_prefer_server_ciphers ,讓終端檢測是否支持AES指令,如果支持AES就是首選,不支持Chacha20就是首選。
PC上的Chrome ChaCha20-Poly1305也是排在AES-GCM之後的啊。
[1] Qualys SSL Labs: Chrome 51/Win 7[2] Qualys SSL Labs: Chrome 43/OS XChrome 52 on Windows 10 Anniversary Update:
其實瀏覽器的cipher suites排序不是很重要。絕大多數伺服器都忽略客戶端的排序,而用伺服器最喜歡的cipher suite。
我覺得應該是chacha20的在後台的性能不如AES
推薦閱讀:
※大致介紹下SSL?
※如何防止用戶身份被偽造?
※https能防止大家都有公鑰情況下的信息竊取嗎?能防止中間人攻擊嗎?
※https 頁面上如何嵌入像優酷這樣的非 https 的外部資源?
※網站從http轉到https需要多久?
TAG:GoogleChrome | SSL | HTTPS | 密碼學 |