有關 Zoom 的安全性問題:End-to-End Encryption

因應新冠肺炎的影響,教育部開始大力鼓吹「遠距教學」。教育部本來主打的軟體是 Zoom,直到下面的這些新聞:

立委點名教育部、司法院,籲公部門禁用 Zoom!
Zoom爆資安疑慮 立委提醒教育注意遠距資安風險
Zoom 資安爭議懶人包,專家建議如何使用這套視訊會議服務較為安全

然後教育部做了下面的裁示:

教育部對zoom資安疑慮後續處置說明

好,接下來是我的看法。

End-to-End Encryption

Zoom 最大的問題是它曾宣稱它具有 End-to-End Encryption,對作資安的人來說,這個宣告指的是 Sender 和 Receiver 之間有共享的金鑰可以加密(當然建立金鑰可以透過非對稱式的方式)。但後來被抓到並沒有這樣實作!!Zoom 因此宣稱他們的點對點加密指的是「從用戶端到Zoom的伺服器」。作資安的沒有半個會認可這樣的說法。上面這段敘述的資料來源附在下面:

ZOOM MEETINGS AREN’T END-TO-END ENCRYPTED, DESPITE MISLEADING MARKETING

問題來了,要做到 Zoom 那樣的功能,有可能實現 End-to-End 的加密嗎?我認為不可能。一般一對一的聊天軟體這並不難,但想想看,Zoom 可以在多人的會議室當中,允許有些成員在私下講話,根據 End-to-End 的定義,每個成員之間都要有一把共享的金鑰,這在金鑰管理的機制下是不可行的,因為會議成員是來來去去的,動態金鑰管理一直是資安領域一個難解的問題。

為了證明我的猜想沒錯,我們來看看大部分新聞提到的幾套軟體:Google Meet、Microsoft Team、Cisco Webex。當然還有其他軟體啦,不過我只找了這三套的資料,若有人有興趣歡迎找其他的相關資料。

Google Hangouts Meet

Meet security and privacy

在 Encryption 那邊很明確寫到「All data in Meet is encrypted in transit by default between the client and Google for video meetings on a web browser, on the Meet Android and Apple® iOS® apps, and in meeting rooms with Google meeting room hardware.」所以 Google 直接就告訴你,我和 Zoom 的做法一樣。為什麼 Google 要在當中看你的資料呢?因為這樣 Google 才能提供整合的服務,像是和你的行事曆、信箱彼此連動。當你在使用 Google 服務的時候,Google 一定會要求看你的資料,不然 Google 要怎樣幫你做文法校正、圖片修圖等功能呢?至於 Google 會不會把你的資料傳給 FBI ... 看看 Edward Snowden 吧 ...

Microsoft Teams

首先來看看下面這些在 Microsoft 社群上的對話

End to end encryption with Microsoft Teams?

裡面有個成員Steven Collier (看起來是員工?)說:「E2EE means something different. It means that the messages are encrypted on the senders device and can only be decrypted on the recipients device. All of the infrastructure in the middle is irrelevant as it can not decrypt the content at all. This is not how Teams works, while every stage of the journey is encrypted the service in the middle can decrypt content if it needs, for example to store data within the retention records or if you add a new person to the conversation. E2EE is only really relevant in apps which don't have any central services.」微軟直街告訴你我要看你的資料就可以看。當然啦,也許這傢伙不是專家,不能代表微軟,所以下面有人找了相關的資料。

Learn about the availability key for Office 365 Customer Key

開頭第一句話:「The availability key is a root key automatically generated and provisioned when you create a data encryption policy. Office 365 stores and protects the availability key. The availability key is functionally like the two root keys that you supply for service encryption with Customer Key. 」也就是說,微軟手上有一把萬能的鑰匙。當然微軟在下面有做一個宣稱:「SharePoint Online, OneDrive for Business, and Teams files never use the availability key unless you explicitly instruct Microsoft to initiate the recovery process.」請注意,這邊說的是「它不會」,不是「它不能」。

Cisco Webex

話說 Zoom 的創辦人本來是 Cisco 的員工 ... 首先來看看 Cisco 的文件。


好高興,我總算看到 end-to-end encryption 的支援了,但等一下,怎麼開啟這功能好像有些東西就沒啦:
  • Web APP ... OK 可以理解,畢竟要做點對點的加密可能需要 webex 的專用軟體。
  • Network-based Recording ... 沒問題,反正你看不懂資料我也不期待你要幫我錄影。
  • Join Before Host ... OK,畢竟要 End-to-End,其中一端還沒上線當然建立不起來囉。
  • Telepresence Video End Points ... What ... 這不就是我們要的功能嗎?我要看到學生啊、要看到學生的螢幕、要監督學生寫程式啊 ... 沒這功能哪叫 meeting ...

看完上述這些軟體的描述,我們可以知道,互動式的線上會議本質上就並非一對一的溝通,因此就不是 End-to-End 的軟體,要期待 End-to-End 的加密不知道在想什麼。當然我並不是認為 Zoom 做出錯誤的宣稱是件好事,因為它是用欺騙換來市佔率(只是這個鍋要算在工程師頭上還是行銷的頭上我就不知道了)。但這跟資安沒有關係!!因為所有的人都是這樣做的。

資料傳到中國

我實在很不想回應這個議題,對我來說,其他的軟體一樣會把資料傳回自家的公司,起碼 Google、Microsoft、Cisco 都是。Cisco來學校宣傳的時候,就說租用他們家的服務,可以享受他們家的網路(Infrastructure),所以品質可以得到保障。這句話的意思就是用他們的服務,你的資料會經過他們家,那這是不是資安的漏洞??所以要拒絕 Zoom 就直接說我們不歡迎中國的軟體(雖然老闆是華裔美國人),不要什麼都包裝成資安。

另一方面,我也看到很多人說我們自己來做!!Well ... 我是不相信「人可以寫出沒有漏洞的軟體」,所以到頭來 zero-day 的問題一定不少,請問這是故意的,還是無意的?另外一方面,看看 Cisco 的宣稱,「他們家的網路」,所以這種視訊會議軟體要好,就是要有好的網路基礎建設。Zoom會崛起的理由除了一開始低價搶市以外,最主要是方便,翻成白話叫做防呆,用資安來說叫做省去一堆認證的程序,到現在的新聞叫做漏洞,我認為這是他們本來就是朝這個方向來做的主打功能。但就基礎建設而言,一定比不上 Cisco。台灣要做的話,應該先問問那些公司敢在全世界投資自己專屬的網路基礎建設。我印象中有一家鴻海的子公司在做這件事情,目的:服務鴻海集團的所有成員。有誰願意做這件事情來服務大眾呢?所以這個軟體不好做不是程式不好寫,而是其他外在的因素。如果不能克服,那也沒什麼好開發的。 

結論

其實都是我自己的看法,我很討厭一堆人老是拿資安來做擋箭牌。不過為了我自己的飯碗,我還是會乖乖遵照學校的政策,學校說用什麼就用什麼吧。






留言

這個網誌中的熱門文章

如何將Linux打造成OpenFlow Switch:Openvswitch

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

Linux Virtual Interface: TUN/TAP