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