你傳的訊息會被LINE看光光嗎?
你傳的訊息會被LINE看光光嗎?
從通訊軟體的隱私議題,看中心化解法的極限
你是否曾有過這樣的疑慮?像 LINE 這樣的通訊軟體,如果他們願意,有辦法偷看我們傳給朋友的訊息或圖片嗎?
我想大部分人的答案是肯定的。只是,這些通訊軟體大家都在用,雖然偶爾覺得心裡毛毛的,但好像也只能選擇「相信廠商」,並告訴自己:「像 LINE 這樣的大公司應該不敢做壞事吧?!」
越來越多的「商業溝通」甚至是「政府會議」是透過即時通訊來傳遞,COVID-19 疫情爆發以來 Google Meet 每日使用量成長 30 倍,單日參與 Google Meet 會議的人數已超過 1 億人。
如果有一天,人們心中的天秤產生了動搖,
人類的技術已經準備好可以不依賴 Google 的善良了嗎?
當問題從「資安漏洞」變成「信任崩潰」
今年四月視訊會議軟體 Zoom 被質疑將資料傳送至中國,加上創辦人袁征華裔的身份,觸動了許多人的敏感神經,包含台灣在內,許多國家及組織下令禁用 Zoom,改以其他視訊軟體替代,如 Cisco Webex、Microsoft Teams 或 Google Meet。
資訊安全的目標是保護資訊及資訊系統免受未經授權的進入或破壞,通常並不考慮主人自己作惡的可能性。
這次事件之所以引起市場這麼大的反應,不只是所謂的程式漏洞(其它大廠每年的漏洞又何曾少過),筆者認為更大程度是:人們心中對 Zoom 這間公司的天秤發生了變化,與其說是「資安漏洞」更像是「信任崩潰」。
正因為我們對通訊服務廠商的內心契約是「相信你不會這麼做」而非「相信你無法這麼做」,所以當有一天,人們開始不信任這個服務商時,恐怕就不是資訊安全層級的事了。
難道廠商就不能透過技術手段,徹底證明自己就算想做惡也辦不到嗎?
信任的極致,是不需仰賴對任何單一主體的信任(Trustless),亦可與之展開合作。
像 Zoom 這樣的服務商,是否能像金庸筆下的葵花寶典「欲練神功,引刀自宮」,對自己加諸若干限制,從邏輯上直接證明自己不可能作惡?以下我們將花一些篇幅來探討這個重要的議題。
端對端加密
通訊隱私並不是什麼新鮮的訴求,WhatsApp、iMessage、LINE 等主流通訊服務近年來也都不約而同提出「端對端加密」來作為技術解方。我們不妨順著前人的思路,探討端對端加密的機制是否真的能夠證明廠商無法作惡。如果你對「端對端加密」有基本的了解,可以跳過這一段。
訊息加密- 服務商讓自己變成只是加密訊息的傳輸者
似乎不難想像,假設小明與小美在 Zoom 開啟了視訊會議,只要小明這一端在視訊內容傳出前都先對其加密,而小美這一端收到後再加以解密,便可防止傳輸過程中有人偷看。
這便是「對稱加密法」- 目前應用最廣泛的加密法,成員之間「共享同一把密鑰」,密鑰用來對傳輸內容做加解或解密,只要保證密鑰安全,那麼成員之間通訊基本上就是安全的。
重點並不在於Zoom有沒有儲存資料或把資料傳到哪裡,而是資料是否經過加密,以及密鑰是否只有會議成員知道。
問題是…密鑰怎麼給到對方?
密鑰一旦涉及傳送,就又會回到老問題:中途被偷看了怎麼辦?
難道小明和小美每次溝通密鑰時,都得見上一面?(七O年代,在大銀行裡還真的有專門的職位,提著保險箱,飛到全世界各地給客戶送鑰匙。)
為了解決密鑰在傳輸時被竊的風險,後來人們想到了一個方法:利用「非對稱加密法」來處理一開始的密鑰溝通。現今我們每天使用到的各種網路服務,其數據加密過程都少不了這個環節,例如網頁的傳輸安全協定HTTPS。
接下來,為了讓所有讀者能理解「無信任(Trustless)端對端加密」實現的可能性,以下先簡單介紹非對稱加密法應用於溝通密鑰的原理。
首先,小明和小美會各自在的一端,生成一組非對稱金鑰;金鑰一組兩把,透過數學算法同時產生,一把稱之為公鑰,另一把稱之為私鑰。(如下圖)
非對稱加密法有以下特性:若小明使用他的公鑰加密資料,則全世界只有小明的私鑰才解得開;相反的,若小明使用其私鑰加密(在應用上,常作為簽名用途),則全世界只有小明的公鑰才能夠解開。
這個方法實施時,所有人都得把自己的公鑰公開,好讓其他人可以找得到。我們就先假定大家是把自己的公鑰上傳到服務商 Zoom 那邊,並且因為服務商知道你是小明或小美,所以這把公鑰會跟小明或小美的身份綁定起來。(如下圖)
當要交換密鑰時,小明先到服務商那邊查詢得到「小美公鑰」,接著利用「小美公鑰」加密密鑰,再把結果用「小明私鑰」加密一次,然後透過服務商傳送給小美。(如下圖)
這時候小美,可以利用她從服務商那邊取得的「小明公鑰」解開第一層,如果成功解密,根據密碼學原理,就代表該資訊必定是小明私鑰所加密,因此驗證了資訊由小明發出。接著,小美再用自己的私鑰解開第二層,獲得最終資訊- 也就是小明要給小美的密鑰。只要確保小美私鑰只有她自己擁有,那就能確保任何人包括服務商 Zoom 也無法解開。(如下圖)
至此,小明和小美終於溝通好密鑰,可以利用那一把密鑰展開加密傳訊了。當然,實作上有更多的細節和變化,但大致不脫這個概念。
只要通訊服務商宣稱採用端對端加密,就可以確保他們無法解密通訊內容了嗎?
非對稱加密神奇地解決了密鑰溝通的問題。這時候,我們已經可以斷定廠商從此無法窺探通訊隱私了嗎?仔細思考一下,好像哪裡怪怪的…
從密碼學的邏輯來看,剛剛那套加密機制若要完全發揮效果,還有以下兩個條件必須先成立:
- 服務商不可以拿到小明和小美的私鑰
- 小明查詢小美公鑰時所拿到的那一把,必須真的是小美的
- 服務商不可以拿到小明和小美的私鑰
這一點沒有技術難度,只要公私鑰是在使用者的本地端產生,例如使用者手上的App,並且本地端的程式碼必須開源,確保沒有任何後門程式偷偷上傳私鑰,便可以確保服務商拿不到私鑰了。
雖然本地端程式開源這個要求,對軟體公司來講有點為難,即使 2014 年就開始致力於端對端加密的 WhatsApp 都沒有做到,不過市面上還是有像 Telegram 或 Signal 這種既採用端對端加密又開源客戶端的服務。因此我們可以說,要滿足第一點已經不具備任何技術障礙。
題外話,Signal 是連 Edward Snowden 及密碼學大師 Bruce Schneier 都幫忙掛保證的通訊軟體。如果你對私密通訊有興趣,那也一定不能錯過 Signal 創辦人 Marlinspike 所創立的非營利組織 Open Whisper Systems。
2. 小明查詢小美公鑰時所拿到的那一把,必須真的是小美的
這恐怕就沒有第一點來得容易了,假設所有使用者都把公鑰上傳給服務商,而且查詢公鑰都找服務商詢問,那便永遠無法確保服務商給你的是真的小美公鑰,甚至服務商可以同時假冒小美與小明,從中竊取或修改訊息內容(即中間人攻擊,如下圖)。而後端程式是運行在服務商的環境,非用戶手上,所以即便開源,意義也不大。
這麼一來,似乎又繞回問題的原點「我們還是得信任服務商」,信任他們會誠實地保管所有使用者的公鑰,並且誠實地回答所有使用者對於公鑰的查詢。
只要服務商願意,他還是「能夠」竊聽使用者間的私密通訊!
這個結論確實有點令人沮喪… 但世界還是可以運作
可以這麼說,通訊軟體服務商應該是全世界知道最多秘密的了。現今我們所仰賴的網路服務,確實完全建立在服務商不會做惡的基本假設之下:
「Google 這麼大,應該不會為了我個人這一點小小的隱私,就自毀前程吧!」
服務商跟客戶之間就就靠著這一道博弈心理達到了納許均衡:相對於作惡,不作惡對服務商更有利;相對於拒絕使用,睜一隻眼閉一隻眼地用下去,對使用者更有利。這個地基所搭起的商業信任,還是相當牢固的,支撐了現今世界許許多多的商業行為。
難道這就是人類協作技術的極限嗎?
當然不是,這只是中心化解法的極限。
我們回顧一下問題的核心,最終欠缺一個完美的公鑰佈告欄(即公鑰基礎建設 Public Key Infrastructure,以下稱 PKI),按照剛才的邏輯:
PKI 要可被審計追蹤(Audit trail),最好公開透明,因為公鑰不怕被偷看,就怕被偷偷改掉;它必須確保高度的可使用性(High Availability and Replication),不可拒絕使用者對公鑰的查詢,因為一旦查不到公鑰,對方就相當於失去身份了 ;
這不正是區塊鏈最擅長的事嗎?區塊鏈具有:紀錄透明、可追溯、不可竄改、多節點共同確保 Fault Tolerance、任何節點都可提供查詢等特性;若將PKI搭建在區塊鏈之上,就可以確保公鑰不被調包且一定查得到,完全可以從技術層面直接限制單一主體作惡的可能性,使通訊服務達到真正的 Trustless。(筆者所在的公司 BSOS 便曾經與重量級的客戶合作,共同嘗試「公鑰基礎建設結合區塊鏈」的可行性。)
區塊鏈解法和傳統解法,最大的區別在哪裡?
從商業的角度來看,這兩種解法最大區別在於「維持信任所需的成本」
當企業與用戶的關係是建立在「信任企業」的基礎上,那就注定了企業必須不斷地透過各種「間接」的方式撐起這一道信任,而且隨著天秤另一端的持續累積,這成本恐將永止境的擴大。常見的信任成本有:
- 企業的品牌或商譽
- 合規(企業每年都花費了大量支出在符合 ISO27001這類規範標準上)
- 交由第三方處理(第三方自己同樣也需要付出大量成本以維持可被信任)
- 企業使自己變得越來越龐大(這是最常見的方式,但效益卻是逐步遞減)
相反的,Trustless的信任成本並不是逐年攀升的無底洞。以上述的區塊鏈PKI來說,可能只需要數十個參與者來擔任節點,也就是約數十台伺服器的運作成本,就可以搭起一個可信的區塊鏈 PKI,服務一家甚至多家企業。若 PKI 是建置在以太坊這樣的公有鏈上,甚至可以省去初期的搭建成本,改為紀錄上鏈時支付手續費。如此一來,這些「引刀自宮」的企業,信任成本幾乎可恆定,不再需要耗費那麼龐大的資源來取信於客戶。
Trustless 的實現,不只降低了大企業維持信任的成本,更有價值的是,它降低了小規模創新服務被人們信任的門檻,整個社會的交易成本及創新價值都可能被重新建構。
再擴展一下想像空間…
利用區塊鏈作為公鑰基礎建設,也是實現「自主身份」(Self-Sovereign Identity,以下稱 SSI)的重要路徑之一,關乎民眾是否能「真正擁有」對自己身份的支配權及數位行為的控制權。例如:跟著人走的醫療數據、可信賴的公民投票…等,這些常被提起的未來理想,都有賴於可信的公鑰基礎建設。
關於區塊鏈 PKI 或 SSI 議題,雖技術上已趨近完備,但實現的路途卻十分遙遠,例如「使用者的社會身份如何綁定到公鑰」執行起來難度就非常高,甚至需要政府或公民組織共同參與打造基礎建設。本文僅就通訊服務商 trustless 的可能性,提供一條新的思路,未來有機會我們也可以專文探討 SSI。
區塊鏈思維
筆者因工作的關係,經常都在回答朋友這個問題:區塊鏈可以拿來做什麼?
這個問題不容易回答的原因在於,區塊鏈解法並不在人們過去熟悉的問題解決框架內,就如同本文提及,在中心化解法到達極限、商業信任成本不可承受時,區塊鏈才翩然而至,以分散式的方式化解信任危機。關於區塊鏈思維,BSOS 非常樂意與大家共同交流。
這篇文章的目的,主要是希望藉由 Zoom 的事件,創造一個場景脈絡,與讀者共同去思考:區塊鏈技術在碰撞的,到底是什麼樣的問題(雖然 PKI 只是眾多區塊鏈應用的其中之一),並且提供一種衡量區塊鏈應用價值的「商業視角」:
降低信任成本(降低交易成本)
區塊鏈到底是虛幻的炒作?還是征服宇宙的黑科技?
已經讀到這裡的你,答案是什麼呢?在我們第一線從業人員的眼中,區塊鏈肯定不是 YouTuber 老高口中說的「二十一世紀的最大謎團」。對我們來說,區塊鏈一點都不神秘,甚至有時候還有點枯燥,但是我們可以肯定的是,它所要解決的,的確是紮紮實實的硬問題,而且這兩三年來,全球已經有許多像 BSOS 這樣公司正在以區塊鏈思維,解決某些特定問題,並不斷推進這個領域的疆界。
BSOS Medium: https://medium.com/bsos-taiwan