當我輸入錯誤密碼兩次以上時,某些網站會顯示剩餘的密碼重試次數。例如,顯示有3次重試,直到鎖定我的帳戶為止。從安全角度來看這很危險嗎?
當我輸入錯誤密碼兩次以上時,某些網站會顯示剩餘的密碼重試次數。例如,顯示有3次重試,直到鎖定我的帳戶為止。從安全角度來看這很危險嗎?
首先,鎖定帳戶是個壞主意。似乎您可以通過使用蠻力阻止“猜中”密碼的“壞人”來使組織更安全。攻擊,但是您真正解決了什麼?即使有了這一策略和一個絕不會犯安全錯誤的完美用戶群,攻擊者仍可以通過重複使用密碼“ aaa”來鎖定關鍵用戶的帳戶,從而對您的組織執行拒絕服務攻擊。請考慮一下,如果您的攻擊者獲得了整個IT部門的用戶名列表的副本,將會發生什麼情況:突然,IT本身(本來可以釋放其他用戶的組織)本身已經完全關閉。
在實施策略之前,請始終考慮威脅模型是什麼。一個決定傷害您的組織的“壞人”會找到其他攻擊手段。您的鎖定政策甚至不會令民族國家演員(例如俄羅斯,中國或國家安全局)震驚。堅定的黑客只會找到其他解決方法(例如社會工程學);
故事的寓意:不要鎖定帳戶。 ,執行Apple對iPhone的操作:每次登錄嘗試都會使登錄延遲加倍,因此,在十幾次失敗之後,您必須在每次連續嘗試之間等待一小時。足夠長的時間來防止“壞蛋”進行暴力攻擊,但仍然足夠短,以至於合法用戶可以花一個小時弄清楚自己的密碼並在午飯後正確鍵入密碼,或者與IT部門聯繫並道歉尋求幫助。 (類似地,“泛洪”策略通常可以在防火牆的IP地址級別上實施,而不僅僅是在軟件中的用戶帳戶級別上實施,如果您擔心專門的攻擊者試圖暴力破解許多不同的帳戶, )
如果您不鎖定帳戶,則無需擁有一個計數器-或顯示它。
[另請參閱:這個類似問題的出色答案 ]
這取決於您的鎖定機制。如果一段時間後無效的登錄名被重置並且鎖定的帳戶沒有被解鎖,則顯示計數器可以幫助攻擊者不要鎖定帳戶。但是,熟練的攻擊者會預先確定鎖定策略,並在猜測密碼時將其考慮在內。因此,影響是有限的。
此外,依靠它來保護您的登錄機制也沒有意義。您應該有一個體面的密碼策略和一個鎖定策略才能匹配。如果密碼策略很嚴格,攻擊者將不得不猜測很多次才能正確使用密碼。如果您嘗試20次後鎖定帳戶,則幾乎沒有機會受到威脅。
您必須問自己:向真正的用戶顯示此信息有什麼好處?通常,由於嘗試次數設置得太低,會出現鎖定問題。 3或5是常見的選擇。 NIST(由於政府關閉而當前不可用,因此尚無直接參考)建議嘗試少於100次。
NIST的要點是:想出一個密碼,攻擊者不會在3個密碼中猜到嘗試,但他們會嘗試100次。所有攻擊者都使用不同的詞典和方法。如果密碼不安全,無法承受100個猜測,也可以使用較少的嘗試來破解它-儘管這種可能性較小。因此,必須有一個好的密碼策略。
在站點恢復時,我將添加NIST引用。 Troy hunt有一些好的博客文章,其中總結了密碼和登錄機制。他也是NIST準則的粉絲。
原則上,不,它不應該構成安全風險。如果是這樣,那麼您將通過模糊性(隱藏信息)來依賴安全性。
隱藏計數最多只會對對手造成較小的麻煩。
相反,隱藏計數可能會對合法用戶造成很大的不便。有時我輸入錯誤的密碼,然後再假設我輸入錯字,然後再輸入幾次,這種情況並不少見。如果我知道我將因另一次錯誤嘗試而被鎖定,我將去查找我的密碼並仔細地複制/粘貼或鍵入。但是,如果我不知不覺地將自己鎖定在自己的帳戶之外,那麼現在我需要經歷很多麻煩才能使其解鎖。
對此提供另一種觀點:對於熟練的攻擊者而言並不重要。
當今在線帳戶通常是如何受到威脅的 > 1 sup>?一種常用的技術有兩種變體。
帶有密碼哈希(或純文本密碼)的數據庫被盜並被攻擊者離線破解。成功破解哈希後,首次嘗試會將正確的密碼提供給登錄機制,因此此控件無效。
這可以是問題服務或 em的數據庫>另一個服務的數據庫。不幸的是,人們傾向於將其密碼用於多種服務,因此機會很大,一旦密碼與電子郵件地址匹配,便可以在另一個站點上使用它。攻擊者可能有兩個或三個密碼可供選擇,但可能沒有20個。同樣,此控件無效。
那麼該控件建立了什麼安全級別?想要避免遭受經驗豐富的腳本小子,惡意的前夥伴和愛管閒事的父母(需要查看您的個人帳戶並隨機嘗試五個密碼)所必需的級別。
1當然,還有其他更“高級”的技術,例如鍵盤記錄,(魚叉式)網絡釣魚,MitM等。無法通過此控件緩解。 sup>
可能只有兩種情況,但是顯示帳戶鎖定時間策略的風險更多於鎖定時間。
例如,
一次可以配置hydra或其他一些暴力破解登錄的工具,然後嘗試3次。如果您沒有足夠的鎖定時間,則可能會導致帳戶受損。
如果您有30分鐘左右的鎖定時間,儘管它可以為蠻力配置該工具並嘗試三遍後,將需要數年的時間才能破解密碼。
得出的結論是,顯示帳戶鎖定嘗試無風險。
我通常傾向於您向攻擊者提供的信息越少越好。正如@ security-beast所提到的,可以將工具配置為等待適當的時間。向他們提供有關該配置的信息不一定是理想的。
但是,您必須在此與用戶需求之間取得平衡。您是否發現系統管理員因為用戶不斷鎖定帳戶而花費了過多的時間來解鎖帳戶?如果是這種情況,那麼您的分析可能表明,向用戶顯示重試次數可以使您受益更多,使他們知道何時需要等待才能鎖定帳戶。在其他情況下,情況恰恰相反,但是無論哪種方式,答案都應該是對特定係統的權衡進行客觀分析的結果。
希望這會有所幫助。
安全風險是主觀的,這取決於您要保護安全控制目標的目的以及可以減輕或補償風險的任何其他安全控制。
基於不同的公司/業務對相同風險的接受程度會有所不同。
如果以通用的方式提供您仍然有多少次嘗試可能不會帶來風險(例如:智能卡中的PIN撥打電話),在其他情況下可能會有風險(例如:蠻力手機訪問),您可以在上一次嘗試之前停止並等待一段時間,以便用戶使用有效的訪問權限來重置計數器...
您應檢查安全控制的目標,確定什麼?您正在嘗試保護的內容以及已經採取的哪些安全控制措施可以補償或至少監視異常情況。
基於所有這些,您可以確定對於您的具體情況而言這是否是可接受的風險。
在某個時候,我在一家公司,那裡只有幾個人測試他們的安全性。這些傢伙發現的這些事情之一是,當存在太多錯誤密碼時,沒有帳戶鎖定。無論CISO多麼高興,他們都無法證明可以通過強行強行輸入密碼來進入。這樣做的原因是帳戶鎖定處於靜默狀態,並且持續了大約15分鐘。
請問問自己,顯示此消息會帶來什麼好處,以及這樣做會給您帶來哪些安全損失。由於過多的錯誤登錄嘗試而沒有給出任何鎖定帳戶的通知是完全有效的。如果您給出這樣的信息,您將只是幫助攻擊者弄清楚何時他浪費了時間蠻力強迫。如果您不這樣做,他們將不太可能解決該問題,但這可能會導致向您的服務台發送更多的呼叫/郵件,這可能會導致成本高昂。 FAQ或幫助頁面可能會減少這種情況。
實施倒計時可能還意味著更多的代碼,更多的代碼意味著更多的錯誤。這不是您想要的安全機制。加上您實施錯誤的方法,它可能允許攻擊者枚舉用戶名,如果用戶名是電子郵件地址,則這是雙重問題。地獄,如果您使用未簽名的cookie來實現它,它實際上可能使攻擊者完全能夠防止鎖定。
通常,如果錯誤消息提供的信息盡可能少,則可以提高安全性。