安全研究人員Elie Bursztein和Ilan Caron對Google用戶使用的數(shù)以百萬計(jì)的密保問題及答案進(jìn)行了數(shù)據(jù)分析,研究結(jié)果表明,密保這種“忘記密碼”后最基本的驗(yàn)證方式存在諸多安全隱患。
你的密保問題安全嗎?
你第一個(gè)寵物的名字叫什么?
你最喜歡的食物是什么?
你母親的婚前姓是什么?
這些看似隨機(jī)的問題有什么共同點(diǎn)?他們都是典型的“密保問題/安全問題”。你很可能回答過這種密保問題——很多在線服務(wù)用這些問題幫助用戶在忘記密碼的情況下進(jìn)入賬號,或者用作防止異地登錄的額外安全保護(hù)。
盡管密保問題非常普及,他們的安全性和效率很少被深入研究過。我們對Google用戶們使用的數(shù)以百萬計(jì)的安全問題和答案進(jìn)行了分析,然后計(jì)算黑客猜解這些問題答案的可能性。
最終我們得出的結(jié)論是——密保問題既不安全也不可靠,它不能夠被單獨(dú)當(dāng)做“忘記密碼”的恢復(fù)機(jī)制。因?yàn)樗械拿鼙栴}都有一個(gè)基本缺陷:問題的答案要么安全但很難記憶,要么容易記憶但并不安全。
易被猜解的密保問題
密碼保護(hù)答案通常都會包含大家都知道的某些信息,或者由于文化的原因,答案被局限在某個(gè)小范圍里面——比如某些國家中,有些姓比較常見。
我們的一些具體發(fā)現(xiàn):
如果攻擊者猜一次,他就有19.7%的概率猜到英語國家用戶的“你最喜歡的食物”問題(順便提一下,答案是“批薩”);
如果攻擊者猜十次,他就有近24%的概率猜到阿拉伯語國家用戶的“你第一位老師的名字”問題;
如果攻擊者猜十次,他就有21%的概率猜中西班牙語國家用戶的“你父親的中間名”問題;
如果攻擊者猜十次,他就有39%的概率猜中韓語國家用戶的“你出生的城市”問題,有43%的概率能猜到他們最喜歡的食物。
而如果將密保設(shè)為“你的手機(jī)號碼是什么?”這類相對私密的問題呢?
我們研究表明,37%的用戶會故意為該問題設(shè)置為一個(gè)假的答案,并自作聰明地以為這會使得問題更難猜。事實(shí)上這種做法適得其反,因?yàn)楹芏嗳藭氲揭粔K去并使用相同的“假答案”,這反而增加了攻擊者猜解正確的可能性。
問題安全了,但答案記不住了
“你母親在哪讀小學(xué)?”“你的圖書館卡號是多少?”這類密保問題的答案總歸安全了吧?是的,但是這種問題的答案也更加難以記憶。
調(diào)查顯示,40%美國用戶回想不起他們的安全問題答案,上述兩個(gè)問題,用戶想起正確答案的概率僅為22%和9%。
用戶對于相對簡單的問題“你父親的中間名?”記起答案的概率為76%,而“你的第一個(gè)手機(jī)號碼?”則只有55%。
為什么不增加安全問題呢?
相比一個(gè)密保問題,兩個(gè)或更多的密保問題猜解難度當(dāng)然更大。但是代價(jià)就是用戶成功恢復(fù)賬號的概率大幅下降。
根據(jù)我們的數(shù)據(jù),最簡單的問題是“你出生的城市?”,用戶有超過79%的概率回憶起答案;第二簡單的是“你父親的中間名?”,概率為74%。如果攻擊者有十次猜測機(jī)會,他們6.9%和14.6%的可能性能夠猜到問題的正確答案。
然而當(dāng)用戶需要同時(shí)回答這兩個(gè)問題的時(shí)候,攻擊者十次猜測,同時(shí)猜中兩個(gè)答案的概率僅為1%,而用戶同時(shí)回答對兩個(gè)問題的概率也降至59%。
密保問題該淘汰了
密保問題是目前“忘記密碼”的基本方式。但是根據(jù)本文的分析,你會發(fā)現(xiàn)這種方式的用戶體驗(yàn)真的令人失望。
研究人員還是建議產(chǎn)品盡可能使用其他驗(yàn)證方式而不是密保問題,例如發(fā)送驗(yàn)證碼到用戶的手機(jī)或者備用email地址。這些是更安全,用戶體驗(yàn)更好的方法。