手機密碼管理:存在隱患的安全機制
根據知名科技博客TechCrunch報道,2012年丟失和被盜手機將給消費者造成數十億美元的損失。這篇文章主要集中報道重置成本方面,是我非常想要了解的。但是,我更加關注手機上所存儲的數據——例如,密碼。
毫無疑問,我可以使用手機安全服務對手機上所存儲的數據進行定位,鎖定,甚至刪除。并且,另一種方式——我可以使用手機密碼管理。也就是說,如果我的手機丟失或被盜取,敏感密碼能夠被保護直到我找到手機。無論哪種方式,我都能對它進行管理。
也不完全正確
我有一個新聞網頁搜索爬蟲,當它發現密碼和智能手機的文字組合時,就會提醒我。同時考慮到TechCrunch的文章,我的筆記本會發出警示音。智能手機上使用的是安全密碼管理和軍用級別加密,這是一個謊言。顯然,作者Elcomsoft公司的Andrey Belenko和Dmitry Sklyarov知道一些我所不知道的事情。
他們有大量的接受度很高的iOS取證工具包,該軟件能夠消弱ISO數據的保護。因此,我認為我能夠更好檢查該觀點。
我閱讀了該文本----類似一種幫助文本。至少對于我來說,關于高級別加密看上去很神秘:
Read EncryptedDatabaseKey and EncryptedValidator from Database
KEK := MD5 (Password + Salt)
IV := MD5 (KEK + Password + Salt)
7DatabaseKey := AES-128-CBC (KEK, IV, EncryptedDatabaseKey)
Validator := AES-128-CBC (DatabaseKey, NULL, EncryptedValidator)
If Validator = DatabaseKey Then password is correct
我覺得聯系兩位作者并看看他們能否有時間回答我的幾點問題。他們同意了,盡管當時Dimitry在德國,而Andrey在中國。
Kassner: 你們的研究主要集中在“靜態數據安全”,也就是在移動設備上用戶密碼的存儲。為了獲取密碼,攻擊者需要對下列內容之一進行操作:
◆設備占有
◆該設備上所存儲數據的備份
◆訪問密碼管理數據庫
你在文章中提到了蘋果公司iOS系統和RIM公司Blackberry系統,你可以詳細的介紹一下如果對它們進行密碼保護嗎?
Belenko: 兩個平臺都提供了安全機制保護設備上所存儲的數據(不僅僅是密碼):
◆設備密碼(iOS平臺上叫解鎖碼):它們限制訪問設備上的用戶界面和數據。
◆備份加密:一旦你在iTunes設置了加密備份,iOS設備將總會對備份進行加密。BlackBerry平臺你能夠控制每臺設備加密,因為加密是通過桌面應用程序完成,而不是通過設備本身。
◆Keychain服務(僅限于iOS):該服務對密碼,密鑰,證書等提供一個廣泛的存儲方式——這些信息需要額外的保護。
操作系統通常可以實現更好的安全措施,因為它們在一個較低級別上進行操作----更接近硬件。例如,保護蘋果iOS keychain 是iOS數據保護不可分割的一部分(其它部分包括存儲/內容加密以及密碼保護)。
在BlackBerry平臺上,沒有類似iOS keychain的服務,因此,安全性取決于設備密碼,。值得慶幸的是,想繞過設備密碼并不是很容易或沒有可靠的方法。
在我們的研究中,我們想去分析密碼管理應用程序是否能提供額外的安全層面的保護----也可以說是深度保護。
Kassner: 你將操作系統安全和密碼管理安全區別對待。為什么要區分開呢?這會有什么問題嗎?
Sklyarov: 這個不同在于操作系統通常可以訪問設備的所有功能,但是僅限于通過操作系統應用程序編程接口(API)所提供的應用程序。設備固件提供了許多保護機制,但是大部分是為正在運行環境下的應用程序提供保護。
大部分固件和應用程序開發人員認為應用程序應該對安全負責。但是一些應用開發人員通常更關注于改善軟件的實用性而不是增加其安全,因為實用性功能要增加安全性看上去更明顯。
Kassner: iOS平臺下的加密軟件DataVault Password Manager可以在iOS加密鑰匙鏈下存儲密碼---使操作系統和加密應用程序一起工作。這似乎是最好的解決辦法。為什么沒有更多的開發者開發類似DataVault的軟件呢??
Belenko:我想可能以下兩個原因:
◆應用程序必須是便攜式的(適用于iOS和Andriod系統)并且開發人員不想對特定平臺功能過多的投入。因此,他們會利用這些功能的共同特性去開發不同平臺。
◆開發人員不了解設備的安全模式,并且沒有花費大量時間去研究所要支持的平臺的安全服務。
DataVault是一個有趣的例子。它并沒有使用適合的鑰匙鏈,但是它們努力去嘗試做到這點。
Kassner: 這份研究報告著眼于17中不同的密碼管理軟件并對每種應用的缺點做出了詳細的解釋。我使用的是1Password Pro密碼管理軟件。我試圖按照解釋去做,但是失敗了。你就可以用外行人的話解釋以下為什么1Password 軟件容易受到攻擊嗎?
Sklyarov:首先,不存在無懈可擊的解決方案。任何軟件都有可能被破解;僅僅是時間問題。如果這個時間需要幾個世紀,那么我們就會認為這個解決方案足夠好。但是,如果你的密碼幾分鐘內就能被發現----那它就是不夠好。
首先我們假設攻擊者訪問1Password數據庫。對于我們來說如何訪問并不是很重要。對于我來說重要的是所有可能的密碼組合被測試出來的速度有多快。
對于1Password來說,每秒超過 一千萬組密碼被測試出來。理論上,僅使用字符密碼或一組七位密碼能在不到一秒鐘的時間內被測試出來,一組八位密碼需要10秒時間,一組九位密碼僅需要100秒。
包含字母,數字,標點符號和特殊字符(包括95個常用字符)的6位字符密碼可以在24小時之內破解。但是,這種密碼組合很到被用到智能手機上。因為,每次鍵入這些字符太麻煩。
Kassner:我的同事---一個RIM公司產品的狂熱粉絲---使用一款黑莓官方發布的錢包保管程序Blackberry Wallet。雖然在我印象中RIM公司在保存密碼方面的工作做得很好,但是這篇報道指出,恢復密碼是可能的。再次對于外行人來說,你能解釋一下Blackberry Wallet這個程序的漏洞嗎。
Belenko: 與1Password Pro軟件同樣的方法:如果你能夠獲得你同事BlackBerry 設備中的數據備份,你就可以通過運行恢復密碼攻擊他的Wallet 主密碼,盡管有可能比破解1Password Pro程序稍微慢一些---我假設他使用的是針對BlackBerry OS 6+系統的Wallet 1.2 程序。
是什么使得在移動平臺上密碼破解變得更容易---是小型化或受限制的鍵盤造成的。輸入過長的或復雜的密碼非常困難。
Kassner: 很高興給我解釋了這么多。在文章中我讀到一些段落,請幫我解釋一下:
“如今大部分移動設備沒有使用機械鍵盤,使得利用機運動方式記住復雜的密碼變得很困難。因此,平均來說,我們相信日常輸入一個復雜密碼的安全性,對于移動設備而言要比使用機械鍵盤的設備安全性要低。”
真是這樣的嗎?
Sklyarov: 許多人(包括我自己)能夠很容易的在標準鍵盤上輸入很復雜的句子,但是當我們一個字母一個字母的輸入密碼時就會出現問題。我們管它叫做運動記憶。
現在我補充說明一下,事實上虛擬鍵盤很小,并不能產生身體上的反饋,這種反饋你可以感觸到鍵盤的關鍵部分---中心,邊角或一些邊緣。因此,在一個虛擬屏幕鍵盤上輸入過長的密碼變得相當麻煩---簡單密碼變得很普遍。
Kassner: 有如此多的密碼管理應用程序可以使用,有什么建議給那些正在尋找它們的用戶一些建議嗎?
Belenko:聽起來可能有點偏執,但是我認為最好的方法是根本不依靠密碼管理軟件進行保護。相反,用戶可以利用移動設備和它們自身的操作系統所提供的安全機制:
iOS平臺
◆使用設備的密碼應用程序。
◆設置備份密碼并使用復雜的密碼。
◆不要將iOS設備連接到不可信的電腦或電源。
Blackberry平臺
◆設置設備密碼(這是對主要數據保護)。
◆如果你正在對存儲卡進行加密,使用設備密鑰進行加密,設備密碼會讓一個攻擊者恢復數據。
◆不要存儲加密備份。
結語
我不止一次的聽到這種看法。我們所能做的做好的辦法就是使用我們的手機上的設備鎖。一個確鑿的證據就是,FBI無法破解Android平臺的屏幕鎖。并且,現在你聽到世界級專家的闡述。