再論 Zoom 的安全性:AES_128_ECB

Zoom 的風暴越演越大,在教育局一聲令下全體禁用之後,我們看到葉丙成老師出來發話了。細節要看他的 Facebook,但是因為我擔心之後會被蓋掉,所以這邊先放上新聞的連結。

教部停用Zoom 葉丙成:老師們的努力全白費

如我所料,另外一位自認是資安專家的李老師出來講話了。


很明顯是在對罵 ... 

以我個人來說,這百分百是政治議題。要資安?那請問政府能不能看你的信件,我不是說中國或是美國,我指的是中華民國或是台灣,看你要怎樣稱呼。

離題了,我們回到 Zoom 這邊來。我這邊只針對爆出來的問題做分析。

昨天又看到一則新聞,關於 Zoom 使用 AES_128_ECB 的方式來進行加密,內容如下:


說真的,這篇寫的內容非常好,有憑有據,比之前只會隨便抓兩句話就上來吹一整篇的人好多了。真要說缺點的話是沒有註明軟體的版本,畢竟 Zoom 都一直有在更新。在通篇文章裡面,扣掉資料傳中國以外(請注意,我知道美國和歐洲應該是有法律規定用戶資料必須要留在國內,所以我之前的文章討論的純粹是技術,畢竟大家拿出來講的是資安而比而不談政治),最大的問題只有一個,Zoom 是使用 AES_128_ECB 的方式進行加密,而且金鑰是來自中國的。按照文章來說,架構如下:


關於金鑰來自中國這件事情我在技術上沒有意見(政治上另外一回事),因為這個架構就是很單純,在資安上是「公正第三方」(Trusted Third Party),簡單來說是你不能去質疑它的安全性,正如你在使用 Google 服務的時候你也不會去質疑 Google 的安全性一樣。問題出在 AES_128_ECB。這沒啥好說的,這是一個問題。128 的意思代表金鑰長度 128 bits,以目前來說還算夠用,根據 wikipedia 的資料

Since 2015, NIST guidance says that "the use of keys that provide less than 112 bits of security strength for key agreement is now disallowed." NIST approved symmetric encryption algorithms include three-key Triple DES, and AES.

所以扣掉 Zoom 在這件事情上沒有很誠實以外(BTW,其實在 Zoom 的文件裡面,有提到在一些情境下會使用 AES 128),128 bits 的金鑰強度目前是夠的。另外一個問題是 ECB,這個東西是 Deterministic Encryption,並不是 Semantic Secure,所以問題比較大條。用白話文來說的話,重複的資料加密後的結果會是一樣的。坦白說,短時間內的問題也不大,畢竟 AES 的 Block Size 是 128 bits。當我們在談到資安的時候,我們強調的是這份資料的安全期有多長,就是說攻擊者在沒有金鑰的情況下要花多少的時間來攻破。確實 Zoom 用的是不好的加密方式,所以破解的時間大概從幾十年變成幾年吧。至於上課的影片內容值不值得安全性保存幾十年,我相信葉老師和李老師有不同的看法。我的話 ... 我上完課以後影片直接公開在網路上的(繫上規定必修課要錄影公開的),破解時間,零!!

但我這邊還要提一件事情,Zoom 發生這樣大的事情,代表長時間以來,軟體工程師沒有受到很好的資安訓練。自己開發加密演算法?拜託,這是密碼學第一門課就告訴你別幹的事情。自己實作加密演算法?拜託,不是會寫程式就有能力實作加密的函式。所以我認為 Zoom 裡面的員工根本沒有會資安的人!!他們犯了太多資安人不會犯的錯誤。話說我要學生交資安的程式作業,還有連查 AES 怎麼用都不肯的說 ... sigh

總結,Zoom 確實使用了不好的加密方式,是很糟糕的示範,但要說影響很大的話倒也沒有立時的危害。真要說起來,金鑰都在對方手上了,AES的金鑰長度多少有差嗎?這邊的對方歡迎帶入 中國、美國、Zoom、Google、Microsoft、Apple ...

留言

這個網誌中的熱門文章

我弟家的新居感恩禮拜分享:善頌善禱

如何將Linux打造成OpenFlow Switch:Openvswitch

Openssl 範例程式:建立SSL連線