密碼管理器進化史(4/4)

Autumnhh發表於2020-03-03

➊ TL;DR(太長了,不想讀)

第四代密碼管理器,

  • 安全技術 基於安全晶片的資料保護技術,不再擔心主密碼洩露

➋ 進化

過去的十幾年,各種密碼管理器軟體層出不窮,各類營銷口號花樣百出,而所使用的資料保護技術在本質上卻沒有太大的改進。

很多對資料安全有更高要求的使用者只能選擇專用硬體密碼管理器產品,默默忍受著諸多不便。

讓人興奮的是,智慧手機的發展為我們帶來了很多新的安全技術,沙盒隔離便是其中之一。

在iOS和Android系統上,所有App都可以選擇使用沙盒隔離,每個App的私有資料都不能被其他App訪問。即使使用者不小心安裝了惡意App,該惡意App也無法偷取其他App的私有資料(除非它能夠突破沙盒保護或者獲取到root許可權)。

當然,也並不是所有App都會使用沙盒隔離,相反,有些App可能會選擇使用外部儲存,比如 Keepass2AndroidKeepass2Android資料庫儲存在外部儲存中,所有能夠訪問外部儲存的App都能夠讀取該資料庫。

密碼管理器進化史 (4/4)

使用Keepass2Android的朋友們要注意了,如果你手機上不小心安裝了惡意App(例如惡意的輸入法),該App就可以一邊截獲你輸入的主密碼,一邊讀取資料庫檔案,那你儲存的所有密碼都會洩露!

沙盒技術雖然對資料保護起到一定的作用,卻也難以防止資料因系統備份、網路同步、應用克隆等操作而洩露。

真正激動人心的是,智慧手機帶來了安全晶片的普及,這也為第四代密碼管理器的誕生奠定了堅實的技術基礎。

現在大多數智慧手機都整合了生物識別技術,而為了安全地處理使用者的生物資訊,也都引入了安全晶片。

密碼管理器進化史 (4/4)

☝️ 安卓手機的指紋識別硬體架構圖

圖中的 TEE 是獨立於CPU和作業系統的安全晶片系統(iOS 中叫 Secure Enclave)。指紋感測器硬體線路直連安全晶片,直接將掃描的生物資料傳送到安全晶片內部驗證,安全晶片只告訴作業系統驗證結果,保證了生物資料的安全。

App使用指紋驗證的過程大概如下:

  • 應用程式先呼叫作業系統API,請求系統驗證指紋
  • 作業系統指紋管理和服務元件,請求TEE驗證使用者指紋
  • TEE讀取並且驗證指紋資料
  • TEE把驗證結果告知作業系統,作業系統再告知應用程式

因此,擔心App偷取指紋資料的使用者大可放心,App根本就無法讀取你的指紋資料!

不過,使用人臉識別的App倒是可以採集人臉資料,因為攝像頭掃描的資料是App直接處理的(iPhone 面容ID驗證除外)。

➌ 第四代密碼管理器

第四代密碼管理器使用手機安全晶片保護使用者資料。

安全晶片中儲存的資料都是加密的,執行時的記憶體也是加密的,加密金鑰儲存在晶片內部。即使是外部的作業系統,也無法訪問安全晶片中的資料、無法獲取加密資料的金鑰。

密碼管理器進化史 (4/4)

☝️ 安全晶片加密資料示意圖

App可以請求安全晶片建立金鑰,並且只有建立金鑰的App才能請求安全晶片使用這個金鑰執行加密演算法。不論是加密還是解密,都由安全晶片處理,App只能夠得到加密/解密的結果,而得不到金鑰。

回顧第二代密碼管理器,既不能寫死金鑰,也不能把金鑰和資料庫一起儲存,所以只能通過主密碼生成金鑰來加密資料。

而現在,第四代密碼管理器可以使用安全晶片來安全地儲存金鑰了。就算使用者不設定主密碼,資料也是非常安全的,因為儘管任何其他App偷取了資料庫,也無法解密得到原文。

使用第四代密碼管理器,只要手機解鎖密碼足夠安全,又不擔心女朋友檢視你儲存的密碼,那就完全可以不設定主密碼了。

安卓手機使用者不要使用圖案解鎖,這篇論文 說只需要五次就能破解。

密碼管理器進化史 (4/4)

如果擔心在手機解鎖狀態下被他人偷窺密碼,也可以使用主密碼進一步保護資料的。

➍ 安全分析

第四代密碼管理器的金鑰儲存在安全晶片內部,加密的資料只能夠在本機解密,離開本機將無法解密。

  1. 不設定主密碼仍然足夠安全

    第二代和第三代密碼管理器,必須依賴主密碼生成金鑰來保護資料,否則就和第一代密碼管理器一樣,可以被其他程式讀取使用者資料。

    第四代密碼管理器,保護資料的金鑰儲存在安全晶片內部,即使是作業系統也不可提取,因此不設定主密碼也能保護使用者資料。

  2. 資料庫被盜+洩露主密碼,仍然安全

    第二代和第三代密碼管理器,如果同時洩露了資料庫檔案和主密碼(以及第三代的SecretKey),黑客就可以使用同樣的演算法解密出資料。

    第四代密碼管理器,使用了儲存在安全晶片內部的金鑰來保護資料,黑客無法從安全晶片中提取出金鑰,無法解密資料。

  3. 資料庫被盜+暴力破解,仍然安全

    第二代和第三代密碼管理器,如果資料庫檔案(以及第三代的SecretKey)洩露了,並且主密碼不夠強,黑客就可能通過租用大量雲服務計算資源進行暴力破解。

    第四代密碼管理器,使用了儲存在安全晶片內部的金鑰來保護資料,即使黑客暴力破解了主密碼,也無法解密資料。

當然,有利就有弊,使用安全晶片大幅提升安全性的同時,第四代密碼管理器也難以同步資料到其他裝置。

由於金鑰儲存在安全晶片內部,無法從一個手機遷移到另一個手機,所以如果僅僅把加密後的資料同步到新手機,同樣也是無法解密的。

黑客攻擊

任何技術都是可以被攻擊的,第四代密碼管理器也不例外,畢竟App不可能100%弄清楚使用者是合法使用者還是黑客。

回顧一下,黑客要偷取前幾代密碼管理器中儲存的密碼應具備的條件:

  • 第一代密碼管理器,能夠讀取 資料庫檔案 即可;
  • 第二代密碼管理器,需要讀取 資料庫檔案 + 偷取/破解 主密碼
  • 第三代密碼管理器,需要讀取 資料庫檔案 + 偷取/破解 主密碼 + 讀取 主金鑰

第四代密碼管理器,儘管讀取 資料庫檔案 + 偷取/破解 主密碼 也無法解密。黑客還需要:

  • 控制手機(因為資料離開手機就無法解密);
  • 突破安全晶片的防護;

➎ 總結


在各手機應用商店,搜“神鎖離線版”,即可下載

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章