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