剛剛過去的FreeBuf互聯(lián)網(wǎng)安全創(chuàng)新大會(huì)(FIT)中,平安科技銀河實(shí)驗(yàn)室安全研究員姜若芾帶來的“解鎖iOS手勢密碼”的議題尤為吸睛。 什么是手勢密碼? 手勢密碼,就是用一個(gè)手勢作為密碼,手機(jī)界面上有9個(gè)點(diǎn),任意連接其中若干個(gè)點(diǎn)就能組成一個(gè)圖案,這個(gè)圖案即可作為一種密碼。相比于傳統(tǒng)密碼,手勢密碼更為便捷,更易記憶,用戶體驗(yàn)也非常良好。 據(jù)說只有安卓系統(tǒng)可以使用手勢密碼解鎖手機(jī),于是…… iOS手勢密碼原理 查閱GitHub上關(guān)于iOS手勢密碼組件講解最為詳細(xì)、最受好評的非KKGestureLockView莫屬。閱讀源代碼可以知道,只需在手勢密碼界面的控制類中實(shí)現(xiàn)組件的兩個(gè)代理回調(diào)方法即可集成KKGestureLockView。這兩個(gè)回調(diào)方法分別是
解鎖姿勢 設(shè)置密碼的初衷是為了阻止別人進(jìn)入自己的設(shè)備,泄露不該泄露的信息。正是由于密碼的存在,也激發(fā)了安全研究員們尋找解鎖密碼的各種姿勢。 姿勢0:飛行模式越過手勢密碼 2013年,支付寶iOS客戶端被爆出一個(gè)嚴(yán)重漏洞,在飛行模式下,進(jìn)入支付寶錢包,并連續(xù)輸入5次錯(cuò)誤手勢密碼后,支付寶會(huì)提示輸入登錄密碼。隨后在后臺(tái)關(guān)閉支付寶應(yīng)用,重新進(jìn)入支付寶應(yīng)用后,會(huì)提示重新設(shè)置手勢密碼,重新繪制手勢密碼后,關(guān)閉飛行模式,即出現(xiàn)賬戶已經(jīng)登錄的界面。 姿勢1:修改文件重置手勢密碼 有些應(yīng)用在用戶設(shè)定好手勢密碼之后,會(huì)將手勢密碼對應(yīng)的數(shù)字序列以明文或者單次MD5的方式存儲(chǔ)在本地,用戶解鎖時(shí)需要對比明文或者M(jìn)D5數(shù)字序列。而對于攻擊者來說,只需將某個(gè)特定手勢對應(yīng)的數(shù)字序列替換掉本地存儲(chǔ)的數(shù)據(jù),即可重置用戶的手勢密碼。 姿勢2:“偷窺“手勢密碼 這里所說的偷窺,不是在別人輸入密碼時(shí)偷瞄別人的密碼,而是應(yīng)用在校驗(yàn)密碼的過程中處理不當(dāng),導(dǎo)致內(nèi)存中的“password“變量可被攻擊者識(shí)別。 姿勢3:芝麻開門 這個(gè)姿勢實(shí)際上是開發(fā)者在開發(fā)進(jìn)程中留下的一個(gè)問題,我們稱之為校驗(yàn)密碼成功回調(diào)。此處需要配備一些逆向技術(shù)知識(shí)才可成功實(shí)現(xiàn)。 姿勢4:買通密碼審判官 這也是開發(fā)者不小心犯的一個(gè)錯(cuò)誤,將校驗(yàn)手勢密碼的方法暴露在了外面,攻擊者只需簡單的修改一下就能順利買通“審判官“,拿到用戶手勢密碼。 姿勢5:暴力破解手勢密碼 沒有辦法的辦法就是暴力破解。通常手勢密碼都有錯(cuò)誤次數(shù)限制,一旦輸錯(cuò)手勢密碼超過一定次數(shù),應(yīng)用就會(huì)要求用戶重新登錄。所以攻擊者一定要注意控制輸入密碼的次數(shù)。 對于安全研究員來說,解鎖密碼不是目的,他們的目的是發(fā)現(xiàn)問題并解決問題,所以姜同學(xué)在解鎖iOS手勢密碼的同時(shí)也想出了一些破解之法,比如優(yōu)化本地敏感信息的存儲(chǔ)、優(yōu)化密碼校驗(yàn)邏輯、隱藏關(guān)鍵代碼等。 觀看視頻
|
|