忘記密碼管理器的主密碼怎麼辦?

如果忘記密碼管理器的主密碼,那會發生什麼?Scott Stein在cnet上發表了一篇文章描述這種事:主密碼忘記後,再也打不開密碼管理器,結果存儲的密碼都丟失了。這種痛苦經歷讓人久久難忘。

相信不少人都深有體會,對於像微信這種平時都不需要輸入密碼的平臺,久而久之就忘記密碼了(記得自己微信密碼的小夥伴可以點個贊,看看有多少)。密碼管理器也是如此。如果用戶習慣用指紋識別解鎖,或者一段時間沒有輸入主密碼,就很容易忘記。

一、爲什麼需要主密碼

最早的第一代密碼管理器,僅僅能夠幫用戶保存密碼,以免遺忘,並不具備保護密碼的能力。

直到大約20年前,PBKDF2(Password-Based Key Derivation Function 2) 被推薦爲標準算法,它能將用戶輸入的密碼轉換成複雜隨機的密鑰,滿足用戶對數據加密的要求。

在這個技術的推動下,第二代和第三代密碼管理器紛紛誕生,給密碼存儲帶來了真正的保護。其原理都是先要求用戶設置一個主密碼,然後把主密碼轉換成密鑰,再使用高強度加密算法(如 高級加密標準AES)來加密用戶保存的密碼。如下圖所示,

使用主密碼加密的技術原理

密碼學中,
plaintext 表示要被加密的原始數據;
ciphertext 表示加密後的密文。

解密過程第一步是相同的,第二步則是調用加密算法的解密操作,得到原文plaintext,如下圖,

使用主密碼解密的技術原理

具體技術原理在 密碼管理器的進化史(上)中有詳細講解,這裏不再展開。

本質而言,密碼管理器加密數據,必須依賴於只有用戶自己可以控制的祕密信息,以防止被黑客盜取。

我們的密碼管理器——神鎖離線版,不依賴主密碼生成加密密鑰,而是直接使用存儲在安全芯片內部的密鑰。即使加密數據被黑客偷取,也無法解密。技術原理在 密碼管理器的進化史(下)一文中有詳細講解,這裏也不展開。

安卓手機錢包模擬銀行卡原理

注:現代智能手機的中高端機型都配備了安全芯片。Apple Pay、安卓手機的錢包應用(可以模擬銀行卡、公交卡等NFC支付),都是基於安全芯片的安全能力。

除了使用安全芯片加密保護外,神鎖離線版還爲用戶提供了額外一層主密碼保護(用戶可以自己選擇是否使用)。如果用戶選擇再加一層主密碼保護,那他們可能也會遇到 CNet 作者 Scott Stein 分享過的問題——忘記主密碼導致丟失了所有保存的密碼。我們團隊認爲,密碼可用性與保密性是同等重要的,所以此問題必須要重視。

一些密碼管理器服務商(比如谷歌),允許用戶在忘記主密碼時重置主密碼,然後繼續查看存儲的數據。這說明用戶設置的主密碼實際上只是用來限制訪問,並沒有用於保護數據。

我們團隊不會在安全性上作出妥協,因此也決不會採用這樣的技術。既然不能夠直接重置密碼,那麼在用戶忘記主密碼的時候,能不能找回密碼呢?

二、找回密碼的設計

(一)技術原理

一些社交服務允許用戶,在忘記密碼導致無法登錄時,通過好友協助找回賬號。其原理是,讓用戶利用社交關係,邀請好友完成一些操作,以確認用戶的真實身份。

受此啓發,我們有了一個簡單的想法:請好友協助找回密碼,然後依此出發,逐步完善。

1.好友代保存密碼

一開始最容易想到的方法是:請好友幫忙保存密碼;恢復時,找好友要回密碼,就可以解鎖了。這就好比在生活中,將家裏的鑰匙交給好友臨時保管。

顯然,把密碼直接發給好友,並不安全。很多用戶有重用密碼的習慣,一個密碼泄露,可能危及用戶諸多賬號的安全。

2.加密後請好友代保存

這是一個好主意,問題是加密密鑰該如何選取,讓用戶再設置一個密碼來生成密鑰?那就變成無限套娃了。

如果不依賴其他祕密信息進行加密,就只能寫死密鑰,這是某些密碼管理器曾經犯過的錯誤,我們不能重蹈覆轍。

3.使用安全芯片內部密鑰加密密碼,將密文發送給好友

如下圖所示,

請好友保存密碼文件

由好友保存密碼文件(ciphertext),密鑰key保存在安全芯片內部。找回密碼的時候,請好友將密碼文件發送回來,再通過安全芯片就可以將密碼原文解密了。如下圖所示:

找回主密碼解鎖App

得到密碼後,再按照前面的技術原理,解密用戶保存的其他數據。爲了進一步提升安全性,我們要求好友將密碼文件保存在神鎖離線版中。神鎖離線版會採用手機上的安全芯片加密保存的密碼文件,確保黑客無法偷取。這樣,整體安全性就得到雙倍提升,因爲:

  • 如果黑客偷了用戶的手機,他需要先解鎖手機(輸入手機鎖屏密碼或者通過生物驗證)。然後再輸入主密碼才能解鎖App。

如果黑客不知道主密碼,他只能再偷取該用戶好友的手機,並且破解好友手機上的神鎖離線版,從中將密碼文件發送回來,才能解鎖App。

  • 如果黑客只是偷取了好友保存的密碼文件,他沒有密鑰,也無法解密出密碼原文,更不能解密App數據。

完成這個技術方案的設計後,我們可以允許用戶邀請不止一位好友協助找回密碼。

(二)實操體驗

說了這麼多技術原理,可能還是太過抽象,下面結合圖片做操作講解。

1.進入找回主密碼設置界面,輸入好友名字,點擊發送。如下圖:

2.通過郵件或其他通信工具將密碼文件發送給好友。好友收到後,需要使用神鎖離線版將它保存起來,防止黑客偷取。如下圖:

3.解鎖App時,用戶如果忘記了主密碼,可以查看持有密碼文件的好友列表。如下圖:

4.請好友zhangsan將密碼文件發送回來,用神鎖離線版打開,就可以解鎖App。出於安全考慮,要求用戶立即修改解鎖方式。如下圖:

如果雙方都使用 iOS 系統,可以直接使用 AirDrop 發送給對方,並使用神鎖離線版直接打開,無需其他服務中轉,更加安全。

(三)技術對比

1.社交服務好友協助找回賬號

雖然我們借鑑了社交服務的思路,都是邀請好友協助,但是社交服務要求好友非常可信。否則,好友們可以串謀:假冒我忘記密碼,一起按照社交服務的找回賬號流程完成社交身份確認,然後入侵我的賬號。

本技術方案降低了對好友信任度的要求,因爲好友們都只有密文,即使一起合謀,也無法解密出原密碼,更不可能破解數據。而且,用戶如果忘記了密碼,只要請一個好友把存儲的 密碼文件 發回來即可找回密碼。

2.可以重置主密碼的密碼管理器

前面已經對這類密碼管理器做過簡單分析,二者共同之處是,在忘記密碼後,都可以恢復用戶保存的數據。但方法完全不同:

這類密碼管理器可以重置主密碼,只需要驗證用戶身份,即可重新授權用戶訪問存儲的數據。所以用戶存儲的數據並不依賴於主密碼加密(如果有加密的話),而是完全依賴於服務商的控制和保護。

本技術方案,不可以直接重置主密碼,數據保護仍然依賴於該密碼加密。

本技術方案還增加了備選方法,將主密碼加密後,交給好友保存。好友協助時,也是先解密出原來的主密碼,再使用主密碼解密保存的數據。

3.不可重置主密碼的密碼管理器

這類密碼管理器沒有在數據保密性上作出妥協,因此不能夠重置主密碼。本文提出的技術方案在這點上是完全相同的。

不同之處在於,本技術方案還提供了一個備選方式找回密碼。在不泄密的同時,提升了數據的可用性。對比技術原理圖3和圖8,新技術方案在用戶忘記主密碼時,可以先從 密碼文件 中解密出主密碼,在解密得到主密碼之後,接下來的技術原理完全相同。

(四)安全風險

本技術方案增加了用戶找回密碼的新選項,這也意味着增加了一個新的攻擊面。

之前,黑客獲取並破解手機後,還需要輸入主密碼,才能解密用戶的數據。

現在,多了一個可能,黑客如果可以獲得好友保存的密碼文件,也可以解密用戶的數據。

爲了降低這個風險,神鎖離線版要求好友將密碼文件保存在神鎖離線版App中,使用安全芯片保護。這樣,黑客就不能簡單地偷取密碼文件,而需要完全破解好友的神鎖離線版App。

另外,用戶不應該把密碼文件保存在自己的手機上,就算要通過手機存儲空間或者手機上其他App中轉才能發給好友,也應該在好友接收後立即刪除。如果手機上留有密碼文件備份,那麼黑客破解手機後就可能直接使用密碼文件解鎖App。

三、總結

經過幾輪的技術完善,最終方案實現了幾個重要目標:

1.提高了數據可用性

數據可用性,是密碼管理器的最重要的關鍵性能指標之一,與保密性同等重要。通過這個新方法,忘記主密碼時,還可以找好友協助,找回密碼,恢復數據。

2.沒有在數據保密性上妥協

數據的保護仍然依賴於用戶控制的祕密信息,不可直接重置。好友協助找回密碼後,使用解密出來的原密碼進行下一步解密,沒有削弱保護能力。

黑客如果破解了用戶的手機,還需要進一步破解好友的神鎖離線版並取得密碼文件,才能破解用戶保存的密碼。相當於破解難度加倍。

3.不會泄露用戶主密碼

用戶設置的主密碼仍然保密。使用安全芯片內部的密鑰加密主密碼,得到密碼文件,交給好友保存,好友也無法破解。

同時,該技術方案在安全性上也對用戶提出了要求:不能將密碼文件保存在自己的手機上,否則,就像把保險櫃的鑰匙掛在上面一樣,失去了主密碼這層保護作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章