【密碼學】 目標最安全的端對端加密

更新於 發佈於 閱讀時間約 10 分鐘

祕密私聊的夢

記得十多年前台灣有個社交平台叫做『無名小站』。它是那個年代的FB、IG、抖音。年輕人喜歡在上面分享生活、祕密,甚至是私密照片。
即使是現在,你用「無名」、「流出」兩個關鍵字仍然可以找到一堆結果。在無名小站分享私密照片給朋友,需要將相簿設為私密,並且設定一組密碼,然後將密碼交給朋友。只有知道密碼的朋友可以閱讀私密訊息或是私房照片。
然而,除了密碼被惡意"友人"亂傳密碼,當年也是跨站腳本攻擊(XSS)的黃金成長期,各路駭客發明了各種攻擊手法偷取密碼,這對於一般大眾而言根本防不勝防。結果密碼外洩事件頻傳,無數的私密照片外流。
當時的我很意外,大家為什麼就這麼相信這個平台?就算沒有駭客攻擊你的私密資訊、就算沒有人亂傳你的密碼,你就不會擔心這個平台的工程師會不會進後台查閱你的私密資訊?

光是任信還不夠

這類服務通常在使用者協議裡面寫:我們絕對不會偷看你的資料。不然就是寫:我們不保證你的資料不會被我們偷看,使用本服務表示接受我們偷看,不要用我們的服務是你的事。若你接受後者,那只能說是你自願或是沒注意使用者協議。然而,就算是前者的協議...你難道真的百分之百相信他嗎?你可曾想過,資料放在人家那,他看不看你怎麼監督?
在資訊安全越來越受重視的現在,就算有白紙黑字的合約,對資訊從業人員來說仍然不夠。因為我們所處理的資料可能十分重要,重要到人家違約了也有賺頭。
人們對資訊系統的期待是必須做到讓人想違約也違不了。

保護祕密的武器

加密是保護祕密的主要的手段。
我們在使用許多服務時,服務提供商經常會說他們的連線經過加密,只有通訊的雙方可以讀懂內容。比如現在各位在「方格子」閱讀的時候,是否有注意到網址是https開頭?最早的協議,大多是http。而https多出來的s指的是「Secure」也就是安全的意思。哪裡安全?直白的說就是加密啦。https的通訊表示你閱讀網站的內容時,只有你和該網站之間能讀懂內容。任何在中途看到訊息封包的人都只會看到一組加了密的亂碼(嚴格來說,只有內容加密,收/送方的地址沒有加密,不然送訊息的郵差是無法送信的喔XD)。
各位可能感受不到為什麼讀方格子的廢文也要加密(好啦,只有我的比較廢)。其實,加密這個動作也可以確保完整性,也就是說能保證內容不會被人竄改。打個比方,假如您在讀小弟的廢文時封包經過駭客的網站設備(比如在宿舍用學校的網路,訊息會先到學校的機房,才到你的宿舍房間,而駭客躲在學校機房作怪)。此時這位駭客突然駭性大發,把封包的內容改成了非常有營養的《論語》。那麼看到《論語》的你,不就會覺得小弟的文章都非常極品?又比如你在使用某個網路銀行轉帳。駭客截獲你的訊息後,把收款帳號改成自己的帳號,接著再把訊息還給網路銀行。若是網路銀行無法偵測出竄改行為的話,錢錢就進了駭客的口袋。

只是加密也還不夠

前幾年發生了一個事件,讓我們發現光是加密還不夠用。那就是美國的FBI以反恐為名義,要求Apple破解疑似恐怖份子的iPhone。雖然是正義之名,但是Apple沒有接受。理由大致就兩個方向。首先,Apple一直打著重視使用者隱私的招牌(與Google和FB分庭抗禮),如果幫FBI的話就自打嘴巴了;另一方面,如果Apple能幫FBI解開的話,也等於承認Apple在自己的產品裡裝了後門(或許也真的沒有)。總而言之,Apple沒幫這個忙。但是美國可沒放過Apple,甚至想用公權力要求Apple必須要在手機裡加裝後門以備政府單位的不時之需。美國的這個法令應該是沒有生效。至少台面上是沒有。Apple領教到國家機器的可怕,為了避免政府死纏爛打,便設計出自己真的無法破解的技術來讓政府死了心。
不止是Apple有這方面的挑戰。一般網路服務業者也有。
上面提到我們已經用https來保護通訊的內容了。然而,這門技術說穿了就是在收發的兩端協議出一把會議金鑰(session key)。而這個協議很大的呈度是依賴server端的金鑰。若是哪天國家機器要求業者交出server端的金鑰。那麼就算https的通訊內容加了密,在政府面前也是赤裸裸的。

死心吧!老大哥!

在小說《1984》裡有一位監控著全民的『老大哥』。我本身沒有看過這部小說,但故事中那句『老大哥在看著你』不正是嚮往自由的我們的夢靨?
為了要避免金鑰失竊或是被『老大哥』拿去用。資訊科學家設計了『前向安全』(Forward Secrecy)的技術以確保金鑰失竊前的訊息不會被解回來。原理很簡單,就是在協議金鑰時加入一次性使用的數值,這個數值用完就丟,也不記錄。只要這個數值搞不回來,就算拿到了server端的金鑰也極難算出當初的那把會議金鑰。當然,金鑰遺失後後的資訊就會被老大哥偷看了;不過我們通常都假定老大哥想看的是過去發送過的訊息。要保護後續的資訊,只要在金鑰交出去後跟大眾說明金鑰遺失了或是說明它在老大哥的手上,然後大眾要不要繼續用就是大眾自己的事了。
如此,我們算是設計了完美的私密溝通管道,解決了所有外部偷看的風險。是時候回到內部的風險了。

內賊難防

上面提到的技術可以接近完美的保護client-server架構的服務。但是現在的應用很複雜。Server有時只扮演中間人的角色,而你真正要溝通的對象是另一位使用者。是的,比如LINE、WhatsApp、Messager等應用,你想要溝通祕密的對象不是LINE也不是FB,而是他們的另一位用戶。
服務供應商(比如上述LINE或FB)一定會用加密通道保護你傳送的訊息,避免外面不相關的人士偷看。但供應商也在這個系統裡,雖然是通訊雙方的外人,卻是實現服務的局內人。
這時又回到了老問題。你是否擔心供應商偷看你和你的交談對象的訊息?他們當然說不會,但你怎麼確認?如何自保?
本篇的主角登場了。我們的救星就是端對端加密。

什麼是端對端加密

端對端加密的英文是end-to-end encryption。其中End指的是終端設備。講白了就是你的手機或電腦。它做的就是提供一個加密技術,讓訊息即使在多方傳輸,也只有通訊的兩個終端能解。其原理就是讓兩個終端自己去協議一把會議金鑰。
超完美對吧?但是資訊科學家很龜毛,他們幫我們問了兩個問題:
  1. 如何確保你的服務真的用了端對端加密?
  2. 如何確保我們使用的端對端加密沒有被入侵?

讓模範生說說

話先說在前頭。小弟沒有業配。
通訊應用裡的Telegram和Signal有為他們的服務回答這個問題。他們將自己的程式碼公開在網路上,讓有興趣研究的人們可以逕自確認。
雖然你會懷疑放上去的程式和實際使用的程式可能不同。但驗證這點對研究人員來說太容易了。只要將實際的程式反編譯,弄回程式碼再比對就好。當然,研究人員夠屌的話也可以在沒有程式碼的情況下直接確認,只不過反編譯回來的程式在沒有引導的情況下會比較難閱讀,要花更多時間確認。
接下來,第二個問題是:如何確保我們使用的端對端加密沒有被入侵?如果攻擊者(或甚至是服務供應商自己)擋在收送兩端的中間,仍然有機會入侵這個通道。中間人攻擊是一種通用的攻擊概念。當攻擊者作為中間人的時候,他很可能能取得兩端的信任,從而不知不覺的偷聽。
比如A要透過E和B通訊。A原本設想,只要和B建立一個具備端對端加密的連線就一切ok了。然而E收到訊息時,沒有讓A與B建立端對端連線,反而是讓A與自己(E)建立端對端連線。然後E再假裝成A,去和B建立端對端連線。如此一來,A以為的A to B實際上是A to E to B。而A與B可能渾然不知。
想避免這個問題,必須要讓A和B能驗證這個通道的加密金鑰有用對方生成的參數來建立!

目標最安全的端對端加密

先回過頭去談https。https怎麼避免中間人攻擊呢?答案是我們的瀏覽器會去效驗Server端使用的金鑰是否經過合法的機構認證。而合法機構的認證資訊早在你的手機出場時,或電腦安裝完作業系統時就預先裝上了。各位可以搜尋「憑證」、「Android」或「憑證」、「Windows 11」(或任何作業系統)來查詢怎麼檢示預裝的認證資訊。
https這招對瀏覽器來說已經很足夠了。但是像Telegram這類應用,似乎只讓A的app與B的app相互驗證還是不能滿足質疑者。他們會說:app亂驗怎麼辦?或是:app也參與了偷聽怎麼辦?
為此,Telegram除了前面提到的將程式碼公開外,又設計了一個機制讓使用者(A與B)能自己完成驗證。
下圖是Telegram的Secret Chat語音通話畫面。右上角那些怪怪圖示可不是放火氣大的。它們其實是從會議金鑰轉換出來的圖示。
Telegram Secret Chat Voice Call
當A與B通話時,他們可以先在對話中確認彼此螢幕上的圖示是否一致,甚至可以在確認時自帶暗語,比如上面的例子A可能跟B說「強國、海豚、水行俠、耳機」。若是發現圖示不同就表示會議金鑰不一致,通話的管道被人換過了金鑰!而我會提到用暗語的原因是現在有語音合成的技術,如果駭客直的很高端,他有可能遮掉A向B確認圖示的語音,然後換上自己合成的語音來欺A與B。若是通訊的雙方有互通的暗語,就等於和雙方的大腦協議了一把金鑰,能用來做進一步的保護。

端對端加密的未來

現在的人們愈來愈重視自己的隱私,端對端加密的需求應該會愈來愈多。然而,這門技術卻沒有成為標準配備。
有一位網友整理了歐美常見的通訊軟體的隱私保護設計。你可以看到即使是大廠(Google、FB之流)也被他列得滿江紅。為什麼會這個樣子呢?因為法令對隱私保護的要求非常低標。端對端加密不是必須要提供的功能,所以就算不實作也不會被處罰。更何況...以陰謀論的角度來看,或許大廠和政府因為某些理由而壓根不希望有太完美的端對端加密。像是中國就直接ban掉了Telegram和Signal。
雖然法令不要求,但是上面提到的Telegram靠著端對端加密的噱頭衝上了許多國家前幾名的下載量。因此從市場層面來看這門技術還是有機會成為趨勢。而當它成為標配時,我想大廠也是順手就做出來了吧XD
avatar-img
5會員
8內容數
祕密是有價值的,人人都有戴上面具的需求。本文的目的就是說明現代密碼演算法的現況以及未來的發展,讓各位資訊從業人員與吃瓜群眾自我省視,確認自己是不是戴上了夠勁的面具。 專題圖源:https://www.pexels.com/zh-tw/photo/3051576/
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
J米思的沙龍 的其他內容
難得看到一般大眾也會想注意的密碼學新聞。在此跟大家分享一下三星手機裡的加密機制的問題。
雜湊演算法(hash function)。或許你聽過它,但你是否了解它?劍術大師都說要人劍合一了,若是資訊人員不能人與技術合一,那要如何登峰造極?我們必須正確的使用它,才能讓它變成你的武器。 縮圖來源:https://www.pexels.com/zh-tw/photo/53207/
有鑑於接觸到的許多資訊從業人員對密碼學的認識不足,太低估密碼學,或太高估它的效果。這讓小弟有感而發,想做一些實務上的介紹。希望未來台灣或整個大中華區的資訊從業人員都不會對密碼學有奇怪的見解。 縮圖來源:https://www.pexels.com/zh-tw/photo/53207/
難得看到一般大眾也會想注意的密碼學新聞。在此跟大家分享一下三星手機裡的加密機制的問題。
雜湊演算法(hash function)。或許你聽過它,但你是否了解它?劍術大師都說要人劍合一了,若是資訊人員不能人與技術合一,那要如何登峰造極?我們必須正確的使用它,才能讓它變成你的武器。 縮圖來源:https://www.pexels.com/zh-tw/photo/53207/
有鑑於接觸到的許多資訊從業人員對密碼學的認識不足,太低估密碼學,或太高估它的效果。這讓小弟有感而發,想做一些實務上的介紹。希望未來台灣或整個大中華區的資訊從業人員都不會對密碼學有奇怪的見解。 縮圖來源:https://www.pexels.com/zh-tw/photo/53207/
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在現代社會,網絡扮演著越來越重要的角色。我們的生活和工作都依賴著互聯網和各種數字設備,從銀行帳戶到智慧家居,再到政府和企業的重要系統,這一切都需要確保良好的網絡安全。 網絡安全的重要性可以從以下幾個方面體現: 個人資訊保護個人隱私和金融信息極其敏感,一旦遭到黑客攻擊或數據洩露,都會給個人帶來巨大
在今天的數字世界中,網站安全性是極為重要的議題。隨著越來越多的網站選擇採用HTTPS協議加密數據傳輸,但這並不意味著它是絕對安全的。事實上,HTTPS本身也存在著一些安全隱患,這些隱患可能會影響網站的安全性和用戶的數據隱私。 1. SSL/TLS 憑證漏洞 HTTPS的加密基於SSL/TLS
在今日數位化的世界中,保護資料的安全性尤為重要。加密憑證(SSL/TLS Certificates)扮演著確保網站和用戶之間資料傳輸安全的重要角色。本文將深入探討加密憑證的原理、作用以及如何選擇適合的加密憑證來保護您的網站。 1. 加密憑證的基本概念 加密憑證是一種數位檔案,用於證明網站身份的真
Thumbnail
在行動裝置安全日益嚴峻的環境下,保護手機資料至關重要。使用者除了養成良好的使用習慣之外,也需要定期更新手機OS系統來提升資料安全防護力,而企業端也可以透過APP加殼加密的方式,讓APP達到更高水平的防護。
在現今數位時代,網路安全已成為企業和個人必須面對的首要挑戰。隨著網路犯罪活動的日益猖獗,如何有效地保護敏感資訊並確保網絡環境的安全,成為每個組織和個人不可忽視的重要課題。本文將帶你了解如何利用先進的監控軟體來提升資訊安全,為您提供全面的解決方案。
Thumbnail
零信任機制強調不信任任何實體,要求在每個資源訪問上進行驗證,打破傳統資安模型信任內部網路的假設。
Thumbnail
政府、法令是資訊安全的最後防線,本文從政府及法律層面探討網路安全議題,以及資通安全管理法和個資法的重要性。政府擴大進用資安人才,以及執行資通安全管理法、個資法的相關規定,對維護數位平臺安全有著重要作用。除此之外,文章還強調了民眾的資安素養及企業、政府的連手防禦對抗駭客組織及詐騙集團的重要性。
Thumbnail
假網站攻擊近10年一直是全球銀行業的頭痛問題,過去發卡機構也致力去防止因為日漸盛行的網上購物而引發的騙財技倆。 有一定年資的網購使用者,對於使用保安編碼器會有點印象,但成本太高,而且每天要帶着外出也十分不便(也容易出現遺失的風險),近年智能手機普及,很多銀行已經轉用mobileapp作為主要保安編
Thumbnail
談了許多網路安全的議題,提醒民眾要注意哪些事情,建構哪些網路安全思維,讓我們可以降低踏入詐騙陷阱的風險。但除了民眾本身要不斷學習、提升防詐意識外,是不是還有其他方面的作法呢? 本文就來聊聊在企業端可以做些什麼。 要打造一個密不可破的防護網,企業端就不能夠缺席。 舉幾個例子讓大家知道。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在現代社會,網絡扮演著越來越重要的角色。我們的生活和工作都依賴著互聯網和各種數字設備,從銀行帳戶到智慧家居,再到政府和企業的重要系統,這一切都需要確保良好的網絡安全。 網絡安全的重要性可以從以下幾個方面體現: 個人資訊保護個人隱私和金融信息極其敏感,一旦遭到黑客攻擊或數據洩露,都會給個人帶來巨大
在今天的數字世界中,網站安全性是極為重要的議題。隨著越來越多的網站選擇採用HTTPS協議加密數據傳輸,但這並不意味著它是絕對安全的。事實上,HTTPS本身也存在著一些安全隱患,這些隱患可能會影響網站的安全性和用戶的數據隱私。 1. SSL/TLS 憑證漏洞 HTTPS的加密基於SSL/TLS
在今日數位化的世界中,保護資料的安全性尤為重要。加密憑證(SSL/TLS Certificates)扮演著確保網站和用戶之間資料傳輸安全的重要角色。本文將深入探討加密憑證的原理、作用以及如何選擇適合的加密憑證來保護您的網站。 1. 加密憑證的基本概念 加密憑證是一種數位檔案,用於證明網站身份的真
Thumbnail
在行動裝置安全日益嚴峻的環境下,保護手機資料至關重要。使用者除了養成良好的使用習慣之外,也需要定期更新手機OS系統來提升資料安全防護力,而企業端也可以透過APP加殼加密的方式,讓APP達到更高水平的防護。
在現今數位時代,網路安全已成為企業和個人必須面對的首要挑戰。隨著網路犯罪活動的日益猖獗,如何有效地保護敏感資訊並確保網絡環境的安全,成為每個組織和個人不可忽視的重要課題。本文將帶你了解如何利用先進的監控軟體來提升資訊安全,為您提供全面的解決方案。
Thumbnail
零信任機制強調不信任任何實體,要求在每個資源訪問上進行驗證,打破傳統資安模型信任內部網路的假設。
Thumbnail
政府、法令是資訊安全的最後防線,本文從政府及法律層面探討網路安全議題,以及資通安全管理法和個資法的重要性。政府擴大進用資安人才,以及執行資通安全管理法、個資法的相關規定,對維護數位平臺安全有著重要作用。除此之外,文章還強調了民眾的資安素養及企業、政府的連手防禦對抗駭客組織及詐騙集團的重要性。
Thumbnail
假網站攻擊近10年一直是全球銀行業的頭痛問題,過去發卡機構也致力去防止因為日漸盛行的網上購物而引發的騙財技倆。 有一定年資的網購使用者,對於使用保安編碼器會有點印象,但成本太高,而且每天要帶着外出也十分不便(也容易出現遺失的風險),近年智能手機普及,很多銀行已經轉用mobileapp作為主要保安編
Thumbnail
談了許多網路安全的議題,提醒民眾要注意哪些事情,建構哪些網路安全思維,讓我們可以降低踏入詐騙陷阱的風險。但除了民眾本身要不斷學習、提升防詐意識外,是不是還有其他方面的作法呢? 本文就來聊聊在企業端可以做些什麼。 要打造一個密不可破的防護網,企業端就不能夠缺席。 舉幾個例子讓大家知道。