壯闊台灣

隨著現代科技快速發展,網路世界和許多便利的數位工具,逐漸跟我們的生活高度重疊,從日常與人互動的社群軟體到職場團隊合作都離不開網路,人們漸漸習慣將越來越多的資訊放在網路上,不只是為了講求工作上的效益,也是更方便與親友分享自己的生活。

然而,你可能沒想過,方便之餘帶來的卻是安全上的疑慮,事實上,愈方便的系統則可能愈不安全。因此,數位安全是在尋找安全、隱私與便利三者間的平衡。

你可能不知道,數位安全中最困難的因素,是「人」:包含了、不安全的免費網路等,誘使你自己掉入陷阱,不知不覺中將自己珍貴的資料拱手交出;反而不是大眾常想像的,某公司的伺服器被駭客入侵(雖然這也是常見的資料外洩情境,但並不是最普遍的現象,請見數位安全威脅鏈三),或是你的密碼被「破解」了。

當我們談到數位安全,除了關注社群、銀行帳號這些數位資訊會不會被盜用,同時也需要關注數位「隱私」。意思是,你在網路上留下的任何資訊,無論是開「地球」般地公開給所有人存取,或是提供給某個社群媒體平台做「審核」,這些資訊,是否透漏出「你住在哪裡?你的家人有誰?他們在做什麼工作?」給任何陌生人。

當有任何一個陌生人知道這些關於你個人的重要資訊,就有很高的可能會威脅到你的「實體」安全。

這就是為什麼壯闊台灣的緊急應變手冊——這本教了你很多如何搬運、急救、準備避難物資等「實體」活動的手冊——要談到「數位」安全。

【閱讀指南】

數位安全涵蓋許多技術與非技術的主題,本章節會從簡單易懂的部分開始說明,隨著內容的推進,會帶入更多技術性的原理。我們建議你至少看完社交工程密碼管理章節,就能擁有最基本的數位安全基礎知識。

為什麼數位安全重要?

想像我們現在打開手機或電腦,點開了網頁瀏覽器,準備連上某個網站。這個時候,你的網頁瀏覽器會自動上傳一些資訊,提供你的裝置類型、系統版本、IP 位置等相關資訊,分享到網站的伺服器端,而網站會透過這些資料,來提供最適合你的裝置的網站版本。

例如:較舊的手機(特別是已經無法更新系統的裝置)跟最新型的手機,在點開同一個網頁時,有很高的機率頁面會長的不同。

凡走過必留下「數位足跡」

僅是點開一個別人傳給你的 Line 影片,或是閱覽網路上的部落格文章,對方(Line、Facebook、Wordpress 等公司)的伺服器,就可以知道你用什麼手機(注意:每隻手機都有一些潛在的漏洞)、連線定位在哪裡。只要這些使用網路的片段資訊夠多,且被紀錄下來,甚至可以拼湊出你的生活軌跡,明確的知道你的生活圈在哪裡,這就是「數位足跡」。

由此可知,保護自己的數位安全與隱私很重要。該如何做才能減少自己的數位足跡,讓自己的個人資訊比較不容易被攻擊者追蹤呢?

網路作業安全 (OPSEC)

網路作業安全 (Operational Security, OPSEC) 是一個利用風險管理流程,來識別潛在危險和漏洞,避免這些破口被利用作為攻擊手段。

請假想一個情境,你好不容易在生日期間,請了五天特休前往沖繩渡假,而且還買到便宜的機票,非常開心地想要跟朋友分享這段即將開始的旅程,於是在機場候機的時候,就在臉書上「開地球」分享了自己的機票和一週行程。

這個做法可能會有什麼問題呢?要從何開始辨識?

重要資訊

重要資訊就像是一塊塊的拼圖,雖然每個資訊都是一小片段,但若片段資訊夠多,就可以拼湊出你的完整軌跡。這些資訊可能包含:

  • 生日、住址、工作地點、就醫紀錄等等個人資訊。
    • 包含住家附近的照片,或是從家中窗戶向外拍攝的景象,都有可能辨識出你的位置。
    • 平常的通勤軌跡也有可能被收集,讓你的行蹤更容易掌握。
  • 家人的聯絡方式、常用的通訊軟體。
  • 平常使用的存款帳戶、信用卡、銀行等。

資訊破口

破口是指上述的重要資訊,被陌生人取得、收集的漏洞,可能發生的時機:

  • 在社群媒體上分享渡假時間、地點,這讓其他人知道你什麼時候不在家。
  • 照片上的位置資訊可讓其他人追蹤你的位置。
  • 在未經完整加密的通訊平台(了解通訊軟體加密)傳訊息,可能會讓你的訊息被複製或竊取。

應該怎麼做?

  1. 發文前先想想,盡可能在你已經離開當下地點,或是假期結束後再到社群媒體上分享,避免將自己當下的位置暴露在網路上。
  2. 避免在社群平台上公開發出家中附近的位置、窗外的景象、或是平時上班的路徑。
  3. 關閉手機拍照的定位功能,或是在傳送訊息的時候將位置資訊移除。
  4. 定期在搜尋引擎上搜尋自己名字,查看有哪些不適當公開資訊

如何思考數位安全?

現在我們了解自己的「公開資訊」可能如何被搜集,下一步要來保護自己在「帳號裡面」的的資訊。

你可能在某一次登入臉書、收簡訊驗證碼的時候曾想過:

「我家裡的保險箱只有四位數密碼、以前的電郵帳號密碼是 1234,為什麼現在我連上臉書,都還要設定至少八位數的密碼,甚至還要我收簡訊做兩階段驗證?」

首先我們需要認知到,現在我們儲存在網路上的資料越來越多,也越來越重要。從與朋友的聊天記錄,到政府相關的資料(包含出生年月日、身分證字號、健保卡號等),以及財務相關的銀行帳戶、稅務資料,可能都儲存在網路上。

接著,你對資訊保護程度,除了取決於資訊的重要性外,更關鍵的部分是,你整個存取流程的複雜度。換句話說,就是一個陌生人需要通過幾個關卡,才有辦法拿到你的資訊。

舉例來說:保險箱密碼之所以可以是簡單的四到六位數(任何人只要夠有耐心,試了一萬次終究會打開),是因為要能夠碰到你的實體保險箱之前,陌生人需要:

  1. 知道你家在哪裡
  2. 能夠進到你家
  3. 找到保險箱存放的位置

要達成以上三步(需要通過的關卡),理論上就比破解一個八位數密碼(密碼要多久才能破解)困難多了。因此相對地,最後一道保險箱密碼,可以為了便利設置基本的四到六位密碼,不用太複雜。

然而,如果有人想要進入你的臉書帳號,只要登入到公開存取的 facebook.com,就可以開始猜密碼了,沒有額外需要通過的關卡,因此你的臉書密碼的設定要求會高很多,甚至會希望你設置二階段驗證。

動態平衡與「木桶理論」

我們必須將數位安全視為一個便利與安全性的動態平衡,當儲存的資料越來越重要,且我們取得資料的媒介變得更簡單,他人要竊取的難度也會更低。因此數位安全需要隨之加固——這也是為什麼密碼的要求會越來越長。

上面提到的保險箱案例中,若你平時常常分享旅遊並拍照打卡(得知家中沒有人)、不經意地透露過自己的住址在網路上,那麼前兩道防線就會變得儼然無存。這個時候就算你的保險箱藏得再怎麼隱密,安全性已經不如原本的嚴實了!

透過這個案例,我們希望向你介紹「木桶理論」作為思考數位安全的架構:一個木桶能裝多少水而不會漏出來?不是看最長的那片木版有多長,必須要看最短的那片木板的長度。

因此你的資料的安全性,不是取決於你最後登入的密碼有多複雜,而是取決於存取資料的流程中,那個最簡單被破解的途徑。

再舉一個例子,相信大家都使用過手機或瀏覽器內建的密碼管理器(就是那個每次都跳出來問要不要幫你儲存密碼的小精靈)。當你把你的 36 位數、英數字結合超強密碼儲存在裡面後,若別人只要輸入你手機的四位數密碼,就可以進到密碼管理器內,複製你的超強密碼

此時你的超強密碼的強度就和四位數密碼無異了。

事故一定會發生

如同我們整本手冊中提到的所有安全議題一樣,追求零風險、零事故是絕對不可能的。我們必須要假定事故一定會發生,提前設計自己的防禦機制。

數位安全威脅鏈

接下來要介紹整個數位安全威脅鏈中,幾個不同的威脅,幫助你補齊最短木板的長度、建立堅固的木桶底板——

(一)數位安全鏈中,最不安全的可能是「你」

本章開頭提到,大部分的時候,不是別人破解了你的密碼、「駭」進了你的手機,才讓你的資料外洩。而是他們透過社交工程的手段,「假裝」是正當的管道,讓你甘願自己輸入帳號密碼,開放大門讓陌生人來獲取你的資訊。

試想你收到一封 Email,說「你的臉書帳號被他人入侵,請點擊連結重設密碼」,這個時候你會怎麼做?又應該怎麼做?

首先,就跟有人在你家門口敲門一樣,我們要先知道「來者何人」,是誰寄了這封信給你?單純看信件寄來時的「寄件者名稱」是不夠的,因為這個名稱是很容易被偽裝的。

電子郵件中收寄件者的「名稱」並沒有經過驗證,像是 Line 的暱稱那樣,是可以任意更改的,因此就算寄件者看起來是官方的來源,仍需要更近一步檢查。

他人可以註冊免費的信箱,將寄件者名稱假冒成可信的來源
他人可以註冊免費的信箱,將寄件者名稱假冒成可信的來源

網域或信箱如何被偽裝?

因此,我們必須要看寄件者的「信箱」地址,這個通常是比較可靠驗證信件來源的地方,大部分的電子郵件服務(如:Gmail、iCloud、Outlook 等)都會自動比對信箱網域(@ 後面的部分)是否和寄送過來的郵件主機相同,才會接收郵件。

接收郵件時必須格外注意來源「網域」
接收郵件時必須格外注意來源「網域」

接著,我們必須要檢查這個電子郵件信箱,是否是真正該公司使用的信箱,例如:

  • 臉書會使用 @facebookmail.com
  • 蘋果使用 @apple.com
  • Google 會使用 @google.com

有時候詐騙集團或駭客,會註冊很接近的網域,讓你「感覺」這封信是來自於官方的帳號,例如:

真正的來源可能被使用的假冒網域
蘋果
apple.com
аррӏе.com
app1e.com
αpple.com
臉書
facebook.com
faceb00k.com
faceboook.com
台灣政府
振興券 5000.gov.tw
疾管署 cdc.gov.tw
gov-tw.com
5000gov.tw
cdc-gov.tw
國立台灣大學
ntu.edu.tw
ntu-edu.tw
edu.ntu.tw

*上述假冒網址是編造出來的,請勿點擊

上述的網域假冒方式,大概可以分成以下幾種手法:

相近的字母

將真正的網址替換成相近的字母(o0, 1l, nh, oa, pq 等),或是更改連續字詞的字母數(將 facebook,替換成 faceboook),讓你乍看之下無法辨識來源是否正當。

特殊字符

另外一種常見的假冒方式,又稱作 Unicode Hack。來自於我們的生活中時常會需要 26 個英文字母和 10 個數字以外的字元(例如:數學式中的除號 ÷、註冊商標 ®、錢幣符號 £ 等)。

然而,電腦只看得懂英數符號,因此這些符號除了有看起來的型態之外,我們也給每個符號由純英數字組成的編碼,被稱為 Unicode 編碼

Unicode 符號中,也有與英文字母非常相近(甚至在某些字體上完全一樣)的符號,例如:希臘字符和西里爾文字。攻擊者就可以透過顯示與實際上字母編碼的落差,註冊一個看起來幾乎完全相同的網域,來讓你相信某個連結或電子郵件。

舉例來說,我們將 apple.com 的字符,都替換成西里爾文字的 аррӏе.com,看起來幾乎一模一樣,但是當我們貼到瀏覽器時,可以發現後者經過編碼後代表的是 ,會帶你到一個完全不一樣的網址。

將看似相同的西里爾文字網域,貼到瀏覽器中顯示其真實編碼
將看似相同的西里爾文字網域,貼到瀏覽器中顯示其真實編碼
子網域與連字符號交換

另外一種假冒的手段,是將代表「子網域」的點 (.),替換成連字符號 (-),讓網址乍看之下跟政府或是某個服務商有關。

例如 5000 元振興券使用的網站是 5000.gov.tw,而駭客可能會想要透過註冊 5000-gov.tw 的網址來假冒政府的網頁。

這時候你可能會有兩個問題:(一)用一個「點」表示的子網域是什麼?(二)假冒一個網站有多容易?

什麼是「子網域」呢?

子網域有點像一個「房子」裡面的「隔間」,通常被用來區別各種不同的服務。例如,壯闊台灣的「房子」的地址是 forward.org.tw,你現在正在看的《緊急應變手冊》是我們其中一個產品,被放在 manual.forward.org.tw 的「房間」子網域裡面;而我們另外一項正在積極發展的工作是志工招募,這套系統則被放在 volunteers.forward.org.tw 另一個房間裡面

那就像真實世界的房間一樣,你必須要先擁有這個房子,才可以在裡面做「隔間」,所以壯闊台灣的地址(forward.org.tw)前面加一個點的網址,都屬於我們的房子。

只要這個房子的地址(主網域)有一點點的不一樣,他裡面任何的隔間,都會將你帶到不同的地方。

而在台灣,gov.tw 這個地址是政府專用的,所有 .gov.tw 的服務都來自政府的「房子」裡面,其他看起來很像的地址,很有可能都不是政府的正版服務

假冒一個網站有多容易?

在 AI 發達的世界,工程師有許多好用的工具,可以幫助他們透過語言的描述、一張示意圖,就寫出想要的網站介面。然而,這些工具的反面就是讓攻擊者,可以透過最低的成本,複製一張和官方網站一樣的「皮」,來騙取你的個資。

使用 same.new AI 工具,複製出和真實文化幣網站(左圖)相同的網頁介面(右)
使用 same.new AI 工具,複製出和真實文化幣網站(左圖)相同的網頁介面(右)

使用 WHOIS Lookup 檢查網域

我們現在知道,用肉眼檢查連結和電子郵件的網域,有時也沒有辦法給我們完全準確的答案。這個時候該怎麼做呢?有沒有一個工具是可以統一檢查網域來源和可信度的呢?

就像房屋交易有實價登錄一樣,有一個服務叫做「WHOIS」,可以讓你查到這個網域的註冊資訊,各大平台以及服務商都有提供這類的查詢服務(例如:網際網路名稱與數位位址分配機構 ICANN、網域註冊商 GandiGodaddy)。

當你把網域輸入進 WHOIS 查詢系統時,你可以看到兩個最重要的資訊:真實無 Unicode 編碼顯示的網域名稱,以及註冊這個網域的公司或個人是誰?

前者的資訊可以讓你破解 Unicode Hack,後者的資訊讓你快速排除明顯假冒的網站。

真實蘋果網域(左)和仿冒版本(右)經過 WHOIS 查詢辨識真偽
真實蘋果網域(左)和仿冒版本(右)經過 WHOIS 查詢辨識真偽

然而,第一個方法只能讓你去除掉一些明顯的假冒,若攻擊者希望做更細緻的攻擊,有可能將 WHOIS 資料也模仿成正版的網站。

因此,下一步我們必須要留意信件中的內容與指示:

在點擊連結之前

最常見的電子郵件類型通常會是:註冊帳號時的驗證、重設密碼等等。當你收到類似郵件、正要點下連結之前,請先想想你有做任何事情讓這個服務(例如 Google 或臉書)需要請你重設密碼或驗證信箱嗎?

如果你最近沒有點擊忘記密碼、也沒有在這裡註冊過帳號,這時候就需要對這樣的信件保持一點警戒心。

繞遠路走走看

我們假設一個情境(真實發生的故事):你在與家人聚餐的過程中,收到一封信件說你的 X 平台帳號在其他裝置上被登入了,裡面附上一個連結希望你進入重設密碼。

如果你認為你沒有任何理由收到這封信。請先不要因為緊張馬上點開信中的連結(因為他有可能帶你到一個假冒的網站)。這時候最安全的做法是「從你已經知道且信任的網站」進去操作,具體上可以這樣執行:

  1. 透過你原本存在電腦上的標籤,或是手機的 App,直接前往 x.com(這是一個你已知安全的網站)
  2. 檢查真實平台上面是否有這樣的警訊(若沒有,你收到的信件很有可能是假的)
  3. 若你還是很擔心帳號被盜用,可以在你已知是真實的網站上面重設密碼

除非你完全理解這封信件的來由(寄件者是你的信任的朋友與單位、你有主動觸發某行動),否則不要點擊來自電子郵件或簡訊中的連結,並另尋其他路徑來檢查訊息的真實性。

設定:不要預設開啟圖片

電子郵件也有可能夾帶惡意程式,而這種程式多半是透過 HTML 網頁的方式傳遞。雖然現在大部分的電子郵件軟體(Gmail、iCloud 等)都會防止電子郵件中的程式執行任何操作。但是為了避免軟體尚未揭露的漏洞(零日漏洞)被濫用,我們建議在你的電子郵件軟體中,設定「不要預設開啟圖片」,讓你的電子郵件僅載入「文字」的部份,而圖片或其他排版用的 HTML 語法則不會在你的裝置上執行,保護裝置安全。

最後一個可能的攻擊手段,來自於「短連結」。

試想你收到一個簡訊,裡面附上一個引導你去購買特價 iPhone 的短連結:bit.ly/great-deal,因為我們常常看到來自 bit.lypse.is 的短連結,所以你不疑有他點下連結,讓這個不知名的短連結帶你到假的購物網站,竊取你的個資或信用卡資料。

內附短連結的簡訊
內附短連結的簡訊

在這個情境中,所有的連結都共用 bit.lypse.is 這幾個常見的短連結網域,無法從網域分辨來源的真假了怎麼辦?

我們特別為此設計了一個小工具,來幫你「展開」這些短連結,看到連結底下真正的網域,此時就可以透過我們提到的 WHOIS 等認證方式,來辨別真偽。

小工具:短連結展開器

輸入你收到的短連結,找找看背後的長連結和網域!

這個小工具的另一個功能,是幫你刪除「追蹤器」參數,讓你的瀏覽行跡比較不會被追蹤。

(二)「123456」仍是世界上最常見的密碼,如何保護自己?

前面的章節,我們討論如何不讓自己「主動」給出個資或重要資訊,接著我們進一步來討論,如何「被動」防止別人來破解我們的密碼呢?

根據調查,「123456」仍是世界上最常見的密碼,用這樣的密碼有什麼問題?相信大家都有忘記過行李箱密碼,當你把家人朋友的生日都試一輪之後仍打不開時,應該下一步直覺想到就是從 0000 試到 9999,「大不了花一小時坐在那裡就可以打開了」。

試想同樣的情況套入你的網路帳號和密碼時,當你的網路密碼長度越短、越簡單的時候,攻擊者就越有可能透過同樣的「排列組合」手段找出你的密碼。

密碼需要多久可以被「破解」?

越長、越複雜的密碼比較不可能在短時間被破解,美國聯邦調查局 FBI 建議使用超過 15 個字母以上的「密詞」來組成你的密碼。

用兩階段驗證來強化密碼的安全性

我們建議你設定「兩階段驗證」,強化帳號登入安全性。

但兩階段驗證有沒有什麼風險,或是可以讓流程更安全的設定呢?

用簡訊做兩階段驗證安全嗎?

現在大部分的帳號都有預設使用簡訊作為兩階段驗證的功能:使用帳號密碼登入之後,要再收取簡訊驗證碼才可以順利登入帳號。

在國外常見一個被稱作 SIM 卡交換 (SIM Swap) 的攻擊手段,攻擊者透過假冒你的身份、撥電話給電信公司客服要求更換 SIM 卡,便能夠接收你接下來所有的簡訊驗證碼。台灣會不會出現類似的攻擊手段呢?據了解,大部分電信公司都沒有提供線上或是電話申請更換 SIM 卡的服務,必須要本人(或代理人)持雙證件到門市辦理,因此直接的 SIM 卡交換攻擊事件比較不容易發生。

然而,簡訊驗證方式仍然有風險存在:假設你的手機遭竊,攻擊者雖然沒有辦法破解你的手機密碼,直接獲取你帳號的資料,在台灣也沒有辦法執行 SIM 卡交換攻擊;但是他們可以將你手機的「實體 SIM 卡」取出,放到其他裝置上面,接收你的簡訊驗證碼,藉此獲取你的個資與帳號資料。

因此,我們建議透過設定 SIM 卡密碼,或是到電信公司申請更換 eSIM(Embedded-SIM,虛擬 SIM 卡,中華電信、遠傳電信、台灣大哥大申請方式),來防止 SIM 被取出換到其他裝置中盜用。

設定安全的驗證方式:TOTP & Passkey

那有沒有不仰賴實體裝置的驗證方式呢?

時間性單次密碼 (Time-based One-Time Password, TOTP) 則是其中一個比簡訊更安全的兩階段驗證方式。TOTP 是透過一個預先生成的密碼(可以想像成是一個隨機的數學公式),配上當下的時間(每三十秒更換一次),生成出六位數的驗證碼。因為驗證碼每 30 秒就會更新一次,所以若攻擊者想要用破解的方式,找出你當下的 TOTP 驗證碼,必須要在時間內嘗試一百萬 (10^6) 種組合,也就是每秒嘗試三萬次,難度相當高。

另一種近年來開始推廣的驗證方式「通行密鑰 (Passkey)」則是透過非對稱加密的方式,生成一組加密和解密金鑰,將加密的金鑰儲存在伺服器上、你的裝置(手機、密碼管理器等)中儲存解密金鑰。並在你想要登入的時候,伺服器隨機生成一個密碼,透過加密金鑰加密,傳送到你的裝置上,讓你的裝置用解密金鑰解密之後回傳,若兩者相符,則成功登入。

想像加密金鑰是一組毒藥、解密金鑰是解藥,而伺服器只有毒藥、你手上只有解藥。當你想要登入帳號時,伺服器會隨機選一瓶可樂、咖啡或汽水,放入毒藥,你必須要用你手上的解藥解毒之後喝下去,告訴伺服器,這瓶飲料是什麼,答對了才可以登入。

這兩種方式都提供相較於簡訊驗證碼更高的安全性(從解釋的複雜程度或許可以窺知一二),因此,我們建議你將手邊帳號的兩階段驗證方式,更改為 TOTP 或 Passkey 驗證。

(三)你把資料給了誰?他們怎麼儲存?

當我們把自己和帳號密碼,都訓練到滴水不漏地安全時,我們就可以來處理最初的問題了:如果今天我使用的服務商(例如:Line、iCloud、Whatsapp 等)的資料庫被入侵、外洩了,我的資料該怎麼辦?

現在你可能會在各個地方看到「加密」這兩個字,無論是網址列旁邊的 https 鎖頭、Line 裡面的 Letter Sealing 等。這些名詞代表什麼意思?哪種加密方式才能真正確保我的資料安全呢?

通訊軟體怎麼「加密」你的資料?

首先我們要先了解訊息從你的手機,經過通訊軟體(例如 Line),到你朋友的手機上,會經過哪些步驟:

  1. 你的手機經過網路將訊息送到 Line 的伺服器中
  2. Line 在伺服器上處理和儲存訊息(讓你的手機和電腦都看得到訊息)
  3. Line 將訊息轉送給你的朋友
訊息經由通訊軟體傳遞的步驟
訊息經由通訊軟體傳遞的步驟

根據這三個階段的加密狀況,可以分為無加密(就是沒有加密!)、傳輸中加密和最安全的端對端加密:

傳輸中加密 (Encryption in Transit)

這種加密方式,僅在資訊離開你的裝置,經由網路傳送到伺服器時加密(假設加密密碼是 1234),到伺服器的時候服務商用同一個密碼解密你的訊息,再加密傳到朋友的手機上面解密。這個是我們在使用網路時,網址開頭的 https 中「s (security)」的意思,我們現在大部分的網路活動,都有經過這個最基本的加密機制

傳輸中加密
傳輸中加密

因此,我們也建議你在瀏覽器中設定,永遠使用 https 的網站,並且避免前往僅有 http 協定、完全無加密的頁面。

端對端加密 (End-to-End Encryption)

但是傳輸中加密代表,你的訊息仍然有被第三者攔截的可能(例如服務商的伺服器被入侵)。然而,透過「端對端加密」的機制,代表從訊息傳送、到對方接收,都是加密的狀態,服務商的伺服器也無法看見你傳了什麼訊息給對方。

端對端加密
端對端加密

因此,在選擇通訊軟體時,請盡可能使用具有「端對端加密」功能的通訊軟體,例如:Line, Whatsapp, Signal 等,這樣就算服務商的資料外洩,攻擊者也無從解密其中的資訊(因為密碼只存在你和朋友的手機裡)

如何安全地做到端對端加密?

你可能曾經將壓縮檔加密,透過電子郵件寄給同事,但密碼也一起放在電子郵件中,這樣的加密方式雖然也是一種「端對端加密」(傳輸過程中壓縮檔都沒有解密過),但是聽起來顯然不太安全【把保險箱(壓縮檔)和鑰匙(密碼)一起寄出去】。

現在大部分端對端加密軟體使用的機制叫做「非對稱加密 (Asymmetric Encryption)」,這個聰明的機制在加密和解密時,使用不同的密碼,讓你的鑰匙不必透過網路傳輸,只留在你的裝置上。

非對稱加密,又稱公開金鑰加密,採用公鑰和私鑰配對加密。公鑰儲存在服務商或是朋友的手機上,可用於加密訊息和驗證數位簽章,私鑰則僅存在你的裝置上面,用於解密訊息和創建數位簽章。由於加密和解密使用不同金鑰,即使伺服器資料外洩、讓你的公鑰洩露,私鑰仍安全儲存在你的手機裡面,加密後的訊息不會被解密洩漏。

這就像你有兩把鑰匙,一把是「公鑰」,你可以到處發,就像你在網路上公開你的銀行帳號或信箱地址一樣,別人可以用這個帳號匯款給你(加密訊息)。另一把是「私鑰」,是你一定要收好的,就像你的銀行密碼一樣,只有你能用這個密碼把錢領出來(解密訊息)。就算別人知道你的銀行帳號,沒有你的密碼,也沒辦法把你的錢領走。

所以,非對稱加密就是用兩把不同的鑰匙,一把公開給別人用來加密,另一把自己藏好用來解密,安全地傳送資訊。

非對稱加密
非對稱加密

(四)開源軟體=安全?

如果你稍微熟悉軟體的世界,你一定聽過幾個開源程式碼平台,例如 Github、GitLab 等等,上面充滿了許多工程師設計的開源軟體。這個世界的科技也大部分仰賴這些開源技術,例如 Postgres/SQLite 資料庫這些很可能在你手機上就有的軟體。

但是「開放原始碼」的軟體一定安全嗎?我們直覺會覺得開源的軟體的每一個操作邏輯都公諸於世,大家可以檢查。但事實上,當開源軟體上架的時候,不見得有被完整地檢視過,就算你是一個有經驗的軟體工程師,你也不見得有時間完整檢查這個程式庫。

快速用常見的惡意程式碼,搜尋 Github 的程式庫,就可以看到許多專案中。2024 年 3 月 29 日,裝在成千上萬 Linux 系統中的 XZ 函式庫,被植入了惡意程式。雖然最後帶有惡意程式的版本並沒有真正進到正式版本中,但這也展現了開源軟體脆弱的一面。

因此,在下載任何軟體之前,無論它是否開源,都請執行上述段落提及的檢查步驟,確保自己下載的是正確的軟體版本。


「數位安全」章節希望透過簡單的概念、工具與手段,持續更新內容,讓你保護自己與他人在數位世界的安全。歡迎與我們聯繫,分享你對於數位安全手冊的更多想法、建議與疑問,你的回饋也將幫助我們持續精進手冊內容。