「自主權」有其限制 電腦安全難完全擺脫信任——和「資訊人權貴」商榷

「自主權」有其限制 電腦安全難完全擺脫信任——和「資訊人權貴」商榷
Image Credit: Klaus Ohlenschläger / dpa / Corbis / 達志影像

我們想讓你知道的是

我們對科技業界的信任本來就是脆弱的,畢竟它們為了商業利益做了太多損害用戶的事,而各國政府在這個信任鏈的介入,勢必令我們對科技的信任瓦解。

博客資訊人權貴的一篇文章〈FBI要求蘋果開的,算是後門嗎?自己的隱私自己顧〉提出「把手機安全建立於『自主權』的基礎上,更令人安心」。電腦和智能電話記載我們的大量私隱資訊,若我們能夠「自主」掌控這個重要的裝置固然理想,但是當今的資訊安全的問題越來越複雜的時候,我懷疑這種所謂「自主權」在有關安全的討論中是否具有實際意義。

(編按︰本文刊出後,資訊人權貴已更新文章及回應,讀者可按上述連結閱讀。)

iOS的加密系統

資訊人權貴的文章這樣形容iOS的加密系統:

但是iPhone跟Android手機不一樣的地方在於:想要解開「全機加密」,需要直接或間接用到兩把鑰匙——一把是用戶的,另一把是蘋果公司的。當然,FBI並沒有厚顏地向蘋果要他們公司的密碼,而是希望蘋果透過某種方式繞過(蘋果電腦公司所掌握的)第一道障礙,然後FBI就可以自行暴力攻擊嘗試用戶的密碼,就像面對全機加密的Android手機一樣。

可是他的說明其實並不準確。

要討論這件爭議,有些細節是不能不知道的,現在讓我簡單解釋一下。

加密資料首先要有密匙,密匙就好像保險庫的鑰匙,產生和保護密匙是加密技術的關鍵。iOS 8的密匙由用戶密碼加上處理器的獨特編碼(UID)產生,這個UID的特點是與作業系統和軟件區隔,只能用來衍生密匙而不能取出來。蘋果稱連他們也從不知道UID的內容。可能你會懷疑,既然是廠商放入晶片的,怎可能不知道?雖然蘋果的文件並沒有細節,但這技術上可行,亦不是蘋果獨有的功能。當然,我們看不到晶片的生產過程,相信與否視乎對廠商的「信任」。

所以說,文章指iPhone的加密方法用到客戶及廠商兩把金鑰並不正確,因為第二把鑰匙其實由處理器晶片專屬擁有,而廠商(理論上)並不知道。

那麼為什麼要有這個專屬的金鑰呢?這關乎文章也有提及的「暴力」(brute-force)破解問題。簡單的密碼容易被「暴力」破解,即是把所有可能的密碼逐一嘗試,直至找出正確的組合。越簡單的密碼,越容易被「暴力」破解。

iOS 8的密碼可以設定成4位數字或者任意長度的英文和數字,4位數字的密碼只有10000個不同的組合,以現今電腦的速度,逐一嘗試易如反掌。選擇複雜的密碼當然更難破解,但極少人能夠記住和願意每次使用電話時都輸入冗長的密碼(一個可以抵禦離線暴力攻擊的密碼大約為15個隨機字母)。這是一個「方便」與「安全」之間的取捨。

當多次輸入錯誤密碼,iOS會故意延遲輸入,和在10次錯誤後自動清除資料。可能你會想,能否把已加密的資料複製到另一部更快又沒有這些限制的電腦來破解?這就是iPhone的處理器晶片的專屬金鑰的用途。因為這個金鑰是加密密匙的一部份,但又不能複製到另一部電腦,這樣就確保資料不能被移到其他電腦破解。再者,因為啟動程式(boot loader)只容許運行經蘋果的數碼簽署(digital signature)認證的韌體,令蘋果以外的人要運行繞過密碼限制的韌體十分困難(不過仍非沒可能,例如找到啟動程式的漏洞或能夠盜取蘋果的數碼簽署私匙)。

換句話說,這個晶片專屬金鑰是為了保障使用簡單密碼的用戶,盡可能提高破解密碼的難度。若果製造商忽視用戶偏好簡單密碼這個問題,像文章說「根本靠邊站」,不在密碼之外再加另一道鎖,當然「完全不會惹上蘋果的這身麻煩」,但是這樣執法人員或者黑客都可以輕易破解手機的密碼,這樣將密碼安全的責任完全推到用戶身上,無視一般人手機的個人私隱安全,我認為這是極不負責任的設計。

文章又說,Android沒有iPhone那樣的「第二金鑰」,這也是不正確的(也陷Google於不義)。事實上Android在6.0版本預設啟用全機加密前,已在加密系統中提供類似iPhone的晶片金鑰支援,一些較新的Android手機亦有這個功能。

安全就是取捨

沒有百分百的安全,這是資訊安全的一項基本原理。任何一個保障安全的方法都有其弱點和成本,包括方便和時間——「安全就是取捨」。iOS的加密系統設計也是其中一例。一方面,它的設計保障使用簡單的密碼的用戶,另一方面,令FBI有機可乘要求蘋果更改軟件讓他們進行「暴力」破解。

蘋果可以改良設計防止這種破解方法,這樣背後也有取捨,譬如限制變更韌體會可能令啟動程式更複雜,增加出現漏洞的機會,或者令修正某些程式錯誤更困難。

安全並非一個絕對的概念,對一些人安全的方法,對另一些人可能不能接受。所以,每當論及資訊安全,我們不得不提每一個方法/建議背後的假設和取捨,術語稱為「威脅模型」(Threat Modeling)。

例如,在《第四公民》裡,斯諾登每次輸入密碼都是躲在棉被下。這樣固然能夠保證密碼安全,但我們無法想像每一個人都這樣輸入密碼,可是對於斯諾登來說,這卻是必須而且生死攸關的。

在《第四公民》裡斯諾登是這樣輸入密碼的。電影《第四公民》截圖。

在《第四公民》裡斯諾登是這樣輸入密碼的。電影《第四公民》截圖。

現代電腦系統裡,信任必然存在

資訊安全的一個困難之處是現代電腦系統的龐雜。40年前的電腦發燒友可以一個人用原始的零件焊接出當時先進的個人電腦,但電腦經過了幾十年的發展,今天即使是最資深的工程師也只能理解到整個系統的一小部分。再加上互聯網,我們要處理的己經不只是一部電腦的軟硬件,而是一個由數以千計系統組成、分散而又互相影響的龐大複雜體系。可是,資訊安全卻是「千里之堤,潰於蟻穴」(as strong as its weakest link),入侵者往往只要在這個複雜的系統中找到一個細微的弱點就能達成目的。


猜你喜歡


年末壓軸不容錯過!線下大型開發者聚會「AWS Enterprise Dev Day」,精進企業雲端技術競爭力就在此刻

年末壓軸不容錯過!線下大型開發者聚會「AWS Enterprise Dev Day」,精進企業雲端技術競爭力就在此刻
Photo Credit:TNL Brand Studio

我們想讓你知道的是

AWS將於今年10月7日上午10:00舉辦線下開發者聚會AWS Enterprise Dev Day,以「技術開發」為活動主旨,透工作坊、講座形式,圍繞NET & Java現代應用、雲端服務、人工智慧等數位技術進行交流,精進企業雲端技術競爭力。

現今雲端已達到隨需可用的成熟度,企業該如何備戰自身技術力,了解透過雲端發展AI/ML應用、大數據分析、優化架構,並趁著新服務或新應用的契機嘗試上雲,或是將既有應用搬遷上雲,達到未來以更低成本有效管理內部資源及強化資安,並減少資源閒置,搭配現代化的方法論及工具保持未來彈性,在技術系統上達到永續經營。

AWS首次在台灣舉辦「AWS Enterprise Dev Day」,希望與企業交流如何在AWS上快速有效地遷移和現代化,以及針對希望了解開發、部署、管理現代應用程序的.NET與Java開發者介紹適合使用的工具和服務。

AWS Enterprise Dev Day活動特色

此次活動為首次為企業舉辦線下大型開發者聚會,為所有.NET與Java開發者量身打造的技術議程,以及同時從主管與開發者角色出發的活動內容設計,如有關於企業上雲挑戰、資安、現代化、開發、訓練考照等精彩內容。歡迎企業執行長、資安長、技術主管、及開發人員團隊立即報名,幫助您利用AWS雲端的廣度和規模,與眾多技術專家交流,持續保持自身企業在未來的即戰力!此外,本次活動全程錄影,報名參與者即可獲得AWS的演講內容。

最特別的是,此次活動下午場次採多軌分場的方式進行,屆時將有多場堂精選技術議程及實作上機工作坊,包含AWS熱門服務精華、方法論、最佳實踐、實戰分享等;而後續更將開放另外報名「.NET & Java現代應用開發實作工作坊」,帶您透過專業技術團隊支援及現場技術專家一對一諮詢,搭配實作課程與團隊協作解決實際技術難題,並與開發者技術同好現場即時互動交流。

立即點此報名「AWS Enterprise Dev Day」開發者技術盛宴!

本場開發者聚會將包含以下七大主題:

  1. NET & Java現代應用開發(.NET & Java Modern Application)
  2. 搬遷上雲(Migration)
  3. 無伺服器服務(Serverless)
  4. 容器服務(Containers)
  5. AI / ML人工智慧與機器學習(AI/ML)
  6. Data Analytics資訊安全(Security)(Security)
  7. 訓練考照(Training & Certificate)
1080x1080_02
Photo Credit:AWS

無論您是企業執行長、技術長、技術主管、資安相關人員、IT人員、解決方案架構師、開發人員、工程師或系統管理員,邀請您一同現場交流,藉此掌握現代開發趨勢、AWS的熱門雲端技術、平台與服務。

AWS Enterprise Dev Day活動資訊

1200x628
Photo Credit:AWS

日期:2022年10月7日(星期五)
時間:10:00 AM~3:30 PM
地點:南港展覽館二館 7F

立即點此報名「AWS Enterprise Dev Day」開發者技術盛宴!


猜你喜歡