題:
為什麼網站在嘗試三次密碼失敗後執行鎖定?
Bradley Kreider
2010-11-19 06:45:02 UTC
view on stackexchange narkive permalink

我知道不讓無數次密碼嘗試背後的原因-暴力破解不是 meatspace的弱點,而是計算機安全性的問題-但是它們從何而來呢?

在實施易於激活的鎖定策略時,是否拒絕服務是一個問題?

在鎖定一個能夠平衡實際賬戶的帳戶之前,是否有任何艱辛的研究表明可以選擇最佳數量或範圍?具有可用性的安全威脅?

仔細考慮一下,我認為在當今通常使用的密碼複雜性方面,在3次嘗試和20次嘗試之間沒有可測量的安全性差異。

(我知道這會降低主觀性,但是我正在尋找基於度量的意見)

我腦子裡也有同樣的問題...並且認為3還不夠:1.錯誤地輸入了大寫鎖定,2.錯誤地輸入了大寫鎖定,3.錯誤地輸入了可能導致帳戶被鎖定的錯誤信息。 ..
-1
@MarkRipley時間限制鎖定是有意義的。
@MarkRipley我們的薪資系統要求使用大寫字母,常規字母,數字和特殊字符以及最小長度為16個字符的密碼。並且在經過3次認證後,他們將永久鎖定您,因此您需要親自聯繫薪資公司以取回您的帳戶。荒謬。
十三 答案:
Zian Choy
2010-11-19 12:34:35 UTC
view on stackexchange narkive permalink

最近,在奧蘭治縣舉行的OWASP AppSec 2010會議上,來自AT&T的Bill Cheswick詳細討論了這個問題。

簡而言之,研究不足。

長期以來,以下是他對減輕帳戶鎖定的一些想法:

  • 不計算重複的密碼嘗試次數(他們可能認為他們輸入了錯誤的密碼)
  • 為密碼提示主要密碼,並且沒有(弱)次要密碼
  • 允許受信任方擔保用戶,以便他可以更改其密碼。
  • 鎖定帳戶以增加時間遞增
  • 提醒用戶密碼規則。
我絕對討厭“密碼提示”。該機制實際上有用嗎?
是。 http://www.penny-arcade.com/comic/2006/7/12/一個很好的提示可能會有用,而無需向黑客提供任何真實信息。它在很少使用的站點中特別有用,在該站點中,“我的密碼是什麼?
+1000“提醒用戶密碼規則。”當我長時間在網站上嘗試僅使用文本密碼時,我發現它必須有一個數字,我對此很討厭。然後,我記得我使用了哪個密碼並登錄。
@Echo:也許您應該研究[LastPass](http://lastpass.com/)
“提醒用戶密碼規則”的另一個障礙。但是,我的情況實際上與@Echo's相反。通常,我嘗試使用我的一個更安全(更長,更複雜)的密碼,並最終發現該站點的身份驗證系統的功能受到限制。當我要重置該密碼時,這尤其令人沮喪,並且該網站未說明任何限制-讓我設置另一個不會被“正確”記住的密碼,或者想知道為什麼我的密碼不會被使用。
@Trevel有時可以以[意外](https://xkcd.com/1286/)的方式使用提示。
realworldcoder
2010-11-19 20:14:09 UTC
view on stackexchange narkive permalink

任何符合 PCI數據安全標準 的網站都必須遵守

  • 8.5.13 部分>(通過不超過六次嘗試鎖定用戶ID來限制重複訪問嘗試)
  • 8.5.14 (將鎖定持續時間設置為30分鐘,或者直到管理員啟用用戶為止ID)。

這就是為什麼很多接受信用卡的網站都實行嚴酷的鎖定政策的原因,即使他們的設計人員可能不一定同意他們實施的方法。

編輯:請注意,這些要求僅適用於“非消費用戶”系統,因此它們不會影響接受卡的客戶站點。

令人恐懼和沮喪的發現。他們需要鋼製門,後門需要多個鑰匙,但前門已解鎖。為了慈善起見,是否有可能存在財務(欺詐和盜竊)數據來支持6次嘗試限制?
就是說,如果我失敗了6次嘗試並且不得不等待30分鐘,那還不錯。這不像需要明確的管理員解鎖的鎖定。我很樂意看到他們的研究雖然導致了第六名……?
如果可能,PCI通常會設置一個最小的基準,最小公分母。儘管我懷疑數字6是否如此重要並受到研究的支持,但出於他們的目的,他們必須輸入*一些*數字,否則強制遵守的意義何在? 1000次嘗試同樣有效,但毫無意義(儘管可能仍然具有相同的數學效果)。另請參閱http://security.stackexchange.com/q/622/33
在進行六次嘗試後將帳戶鎖定30分鐘,而在第六次嘗試後每五分鐘允許一次鎖定,是否有安全優勢?兩者都需要花費相同的時間來進行暴力破解,但是後者會使拒絕服務攻擊的效率降低。
6太低了。我必須登錄許多站點,儘管我很少登錄,但其中一些站點需要我定期更改密碼。本質上,我必須至少擁有20個密碼組合。我不會將它們寫下來,所以會很樂意坐下來嘗試多種組合。然後只有某些站點將我拒之門外(通常不告訴我他們已經這樣做了)。我更希望看到至少10次嘗試。
所以現在我知道是誰提出了這樣的智障
Tate Hansen
2010-11-19 07:59:11 UTC
view on stackexchange narkive permalink

我的經驗是,鎖定機制正在逐漸普及(至少對於Web應用程序而言)。您無需在一系列嘗試失敗後鎖定帳戶,而是開始要求其他信息以成功進行身份驗證。

我看到一些網站要求您在幾次密碼嘗試失敗後解決驗證碼;這對我來說很有意義。
@beetstra, ocr和人類農場可以解決驗證碼。
Gary
2010-11-19 08:32:31 UTC
view on stackexchange narkive permalink

如果它來自棒球的“三擊”規則,而不是技術性的規則,將不會感到驚訝。

一個理由(無論如何都是字母數字密碼)是

通常,一次失敗的嘗試是錯誤鍵入或CAPS開/關問題。因此,您嘗試登錄並被拒絕(1),然後再輸入一次,因為您認為鍵入錯誤(2),然後意識到CAPS密鑰已打開,因此您進行了第三次嘗試。

Doesn通常在輸入數字代碼的情況下,從網絡上解鎖手機並非真正有效。

更好的建議是連續兩次失敗的登錄嘗試之間的延遲會越來越大。首先,您允許即時重試,然後是1秒,2、4、8個……您正快速地等待兩次嘗試之間的一分鐘,這足以表示任何暴力攻擊。

確保您考慮了攻擊者更改用戶名的情況。蠻力攻擊不一定要先深入。他們可以先廣度,選擇密碼並更改用戶名。
@DanMcGrath與此相關的一些注意事項:[強Web密碼能完成任何工作嗎?](http://research.microsoft.com/pubs/70445/tr-2007-64.pdf)
itinsecurity
2010-11-19 15:57:46 UTC
view on stackexchange narkive permalink

我同意OP。如果您考慮鎖定可以保護您的利益,那麼3次或20次嘗試(或100次嘗試)之間沒有區別。使用這些鎖定所能獲得的結果,除了懲罰健忘的用戶外,還可以防止暴力攻擊您還可以使用它來觸發正在進行攻擊的警告,但這不是主要目的(如果是,則意味著您故意對用戶進行DoS僅僅是為了使您自己的監視工作更容易。這不是一個很好的做法)。

如果某人擁有您的密碼數據庫,並且可以離線破解它,那麼他們可以進行無限制的嘗試。您的20個猜測限制在那裡並不足夠。

如果有人嘗試進行在線暴力破解,您所需要的只是一個可以承受“足夠長的時間”的密碼:足夠長的時間讓IRT響應,或者足夠長的時間讓攻擊者放棄。

Conficker密碼數據庫略低於200個密碼IIRC,並且其中充滿了地球上一些最愚蠢的密碼。現在,假設您的密碼不在此列表中。如果您允許20次密碼嘗試(例如每15分鐘15次)而不進行鎖定,則攻擊者僅兩個多小時就可以通過該列表。

事實上,即使您將猜測列表縮小到由有關該用戶的相關信息製成的密碼,例如kidsname02,birthday99等,您最終仍將至少獲得幾十個密碼,從而將字典攻擊的時間延長到一個小時或更長時間。在幾分鐘之內觸發警報,而不是少數錯誤的密碼。

因此,如果您可以讓用戶遠離最基本的密碼陷阱,那麼您可以欣然接受許多錯誤的密碼嘗試。

我個人在15點畫了一條線。這完全是任意的,並且基本上是一件實際的事情:我發現任何真正的用戶在此之前就已經放棄了。通常,如果嘗試的次數很多,則可能是一個進程或會話掛著舊憑據。如果不是這種情況,那麼我們可以談談尋找攻擊的機會。

AmaDaden
2010-11-19 20:36:04 UTC
view on stackexchange narkive permalink

這是一個愚蠢的任意規則,帶有一種奇怪的DDOS攻擊風險。可以說Marv討厭網站X,而網站X的嘗試鎖定策略次數為Y。 Marv通過讓腳本使用偽造的密碼自動嘗試隨機輸入Y次,可能會引起嚴重後果。即使密碼有效,Marv也可能不會在意並忽略它。這將有效地鎖定網站X的許多用戶,並引起很多用戶的沮喪,如果您需要重新設置密碼來獲得銀行的資金,上帝可以幫助他們。我很驚訝沒有人嘗試過這個。

我認為使用“ 3”作為最大嘗試次數的任意性已經為大多數先前的張貼者所回答,但是我確實想支持AmaDaden的DoS方案。這是一項技術含量較低的攻擊,可能會在業務方面造成大量損失,尤其是在網站沒有足夠的備用資源來處理它的情況下。
Vineet Reynolds
2011-06-02 19:11:15 UTC
view on stackexchange narkive permalink

我相信我對此辯論遲到了,但我希望在此處添加一些有用的內容。

帳戶鎖定策略(連續無效嘗試的次數通常在個位數範圍內)對於大多數組織而言,並不是專門針對自動蠻力攻擊而設計的。

它更多地是為了防止人類攻擊者(尤其是已經知道一部分密碼的個人)對密碼的猜測。攻擊者可以通過猜測個人用於選擇密碼的方式,通過

  • 肩膀衝浪
  • 來獲取密碼片段。畢竟,有多少次使用密碼中的元素按順序排列,例如 password#01 password#02 等。

當然,不利的一面是,閾值較低,勢必會拒絕服務,並帶來相關的業務成本。 Microsoft發布的帳戶鎖定最佳做法白皮書,建議值為10。它還說明瞭如何使用Windows帳戶鎖定策略中的參數來估計成功攻擊的可能性:

例如,假設管理員使用LockoutDuration註冊表值0鎖定帳戶時,管理員重置密碼。將LockoutDuration註冊表值設置為0並將LockoutThreshold註冊表值設置為20,則惡意用戶有20個猜測可以使用該密碼。如果鎖定持續時間為30分鐘,則惡意用戶每30分鐘針對該密碼進行20次猜測,直到更改為止。與惡意用戶可用的猜測總數相比,這是非常顯著的差異。

相比之下,如果管理員將最長密碼使用期限設置為42天,則第一個惡意用戶只有20個猜測使用第二個惡意用戶進行40320次猜測(20次嘗試進行永久鎖定,然後乘以每天48次鎖定), 在用戶更改密碼之前乘以42天)。使用默認密碼設置,大約有10 ^ 12個可能的密碼。這意味著惡意用戶猜密碼的機率約為.000004(%)。通過優化的猜測方案,該百分比很可能會更大。考慮過的。因此,可以安全地假設某些組織沒有努力計算其帳戶鎖定策略的貨幣影響,以及在保留其提供的安全性利益的同時放鬆其政策的相關利益。

AviD
2010-11-22 17:40:00 UTC
view on stackexchange narkive permalink

這有兩個方面;正如您所提到的,第一是防止暴力攻擊。

為此,實際上可以進行任意多次嘗試-3、5、20、2000 ...使用適當的密碼策略(長度+複雜度+ ...)提供足夠大的密鑰空間,任何節流(每小時X次嘗試)將確保蠻力逼迫整個空間需要數十年的時間。 (算一算)。

即使-並且這應該是必需的-鎖定只是暫時的,並且在短時間後會自動解鎖。

因此,嘗試鎖定前的次數是任意的。

但是,這裡還有另一個更微妙的非數學問題在起作用:

對於單個用戶而言,反复輸入錯誤根本沒有意義。密碼連續輸入2000次。

也就是說,如果您任意選擇2000,那麼您在 long 之前就知道該用戶不是合法用戶。因此,這實際上歸結為有意義的業務,以及以業務為中心的風險分析權衡。

我認為,從歷史上看,這種權衡更傾向於風險方面-由於密碼更短,更簡單,所以3或10的差異更大。此外,人們的密碼更少,因此更容易記住...而且,用戶通常在技術上更加精明。

如今,考慮到業務影響,三個確實沒有意義。這實際上是一個問題,對於您的應用有意義,什麼類型的用戶,他們登錄的頻率等等。我通常建議找出可能失敗的合法嘗試次數,然後將其加倍。

正如@realworldcoder所提到的,PCI任意選擇了六個,如果您受制於PCI,則此處沒有太多決定。否則,請選擇一個對您。)

Dan McGrath
2010-11-19 19:31:33 UTC
view on stackexchange narkive permalink

關於建議增加時間“鎖定”以延遲連續的失敗嘗試並從而防止暴力破解的建議,請記住這僅適用於有針對性的用戶攻擊。

如果攻擊者只在乎關於進入系統,他們可以執行廣度優先攻擊(在循環使用下一個密碼之前,請循環所有已知/猜測的用戶名)。補充說,如果做得好,它可能來自分佈式機器網絡,很容易看到延遲系統也不起作用。

正如其他人所提到的,正確監控失敗嘗試是的,儘早發現攻擊是至關重要的。

是的,嘗試3次是相當隨意的,並且會帶來DoS風險。我真的希望人們不再使用面向公眾的系統……請!

另一種解決方案:2因子識別。 RSA令牌。如果只有我們有辦法親自擁有一個帶有“ id number”的RSA令牌。然後,我們可以在任何系統上註冊該“ id號”,然後將需要令牌中的當前值以及密碼進行登錄。

但這對於實現和解決其他問題信任...

好點。它甚至不必那麼複雜。他們可以進行廣度優先的攻擊,也可以進行間隔數週的攻擊。但是,延遲確實會為您提供已知的最大攻擊率(如果您忽略源IP)。如果您連續10000次失敗(任何高位數)後鎖定帳戶,則可以使用DoS(如果管理員不注意)來進行破解(假設2個因素無法達到)。
Jose
2010-11-20 06:18:38 UTC
view on stackexchange narkive permalink

公眾公司(在證券交易所出售股票)受《薩班斯-奧克斯利法案》(Sarbanes-Oxley Act)監管,並每年接受幾次審核,以確保合規性。關鍵軟件應用程序必須符合某些安全功能,其中之一就是在密碼嘗試失敗後鎖定帳戶。

這些應用程序的大多數工作是與已經啟用了功能的公司Active Directory集成。

user124863
2016-09-20 22:34:57 UTC
view on stackexchange narkive permalink

這是非常好的讀物,涵蓋了我認為您要尋找的內容。他們採用三擊,十擊和無限擊的策略從大學生那裡獲取數據,以建議我們將這一數字從三增加到十(因為登錄成功率大約是三倍)。

在這裡回到主觀觀點...

為什麼大多數地方都採用三擊政策?隨著時間的流逝,這肯定只是一種啟發。三次嘗試或多或少是管理員和用戶的中間立場,因為三種機會已足夠。

密碼背後的想法是,您應該知道它。您真的不需要一次以上的嘗試。我知道犯錯了,但是在戰爭中……您實際上只有一次機會證明自己是盟友,對嗎?

Rush Frisby
2010-11-19 17:49:16 UTC
view on stackexchange narkive permalink

他們必須隨機選擇3個。這是極低的。也許他們過去曾遇到安全問題,所以選擇了較低的鎖定數量,而不是正確解決或解決問題。

我更喜歡以增加時間增量鎖定用戶的方法。不過,我不會將其從用戶名中刪除,而是使用此人的IP地址,因為該人可能正在嘗試多個用戶名。我將鎖定時間設置為(無效登錄嘗試次數)^ 2秒,一旦用戶達到5次無效嘗試。如果用戶在相對較少的嘗試時間內不知道自己的密碼,則在該站點提供密碼恢復工具的情況下,他們通常會使用密碼恢復工具。如果這是一次真正的黑客嘗試,它將使黑客感到沮喪,最終他們將放棄。殭屍程序會嘗試很多次,幾乎幾乎永遠不會被允許登錄...例如,如果他們嘗試了1000個密碼(無論如何實際上都要花很長時間),他們必須等待11 1/2天才能嘗試第1001個密碼。您可以通過將乘數提高到^ 3來輕鬆地提高威懾能力。對於有效的人類用戶,上述任何內容都可能會變得過高。

根據IP進行鎖定的問題在於,它也可以被繞開或濫用。例如。分佈式攻擊...如果一個IP由許多用戶共享,例如公司代理人?
如果您沒有適當的位置,則分佈式攻擊將更加殘酷。無論您做什麼,都將始終提高威脅的程度。 /如果用戶隱藏在代理後面,則只需等待。可能是使用代理而不是真實用戶的黑客。事情是你永遠不知道,這就是匿名的結果。您不應該為了方便而犧牲安全性。
這並不是要破壞安全性,它的實施措施與您要防止的威脅沒有任何關係。是的,分佈式攻擊將是殘酷的,但是從DoS的角度來看,不是密碼暴力。用戶常常被迫使用代理,而常常甚至根本不了解代理-他們不是在“躲藏”在代理後面。
安全勝過遺憾。
不幸的是,這是最破壞性的誤解之一,這種誤解是如此受歡迎。“安全勝於遺憾” *可能*有效(可以說),**如果**不涉及其他相關費用或弊端。在這種情況下,肯定有,您最終會得到一個更糟糕的解決方案。“以可用性為代價的安全性以犧牲安全性為代價”。
該死的,你真生氣嗎?沒有人坐在那裡嘗試嘗試重置密碼數千次。只有機器人。F那些機器人。如果您知道它們是什麼,然後讓他們重新進入,那將是很糟糕的安全性。
嘿,對不起,如果我發瘋了,一點也沒有。沒錯,如果單個用戶嘗試輸入錯誤的密碼一千次,那麼您就可以確定這是某種形式的攻擊。但問題是,交換到IP地址時,您會失去這一點。當然,可以將其跟踪,與其他嘗試進行比較,甚至可以將其放入灰色列表中-但不要忽略更廣泛的上下文和典型的有效使用情況(更不用說,很少的IP地址真正限制了攻擊者)。
Josh
2010-11-19 19:37:28 UTC
view on stackexchange narkive permalink

不久前,我實現了一個遵循以下基本規則的登錄安全方案:

  1. 第一次失敗的嘗試會立即給出反饋。 他們可能會發胖。
  2. 第二次至第五次失敗嘗試使響應每次失敗嘗試延遲一秒鐘。 例如2秒,3秒,4秒...
  3. 如果第五次嘗試失敗,則會話結束,並向他們顯示一條消息,指示他們必須關閉瀏覽器並嘗試
  4. ol>

    對我來說,這足以防止暴力攻擊;最終用戶最多會感到不便,並且不會創建任何其他支持工作。

暴力破解的嘗試很可能並非來自單一端點,這使“關閉瀏覽器”成為一個爭論點。
@Dan,沒錯-但它們甚至可能來自SAME端點,但沒有瀏覽器。而且,無會話-每個請求都是一個新會話。所以“會議結束”也沒有意義
在這種特殊情況下,如果不啟用會話就不可能達到這一點。但是,公認的一種更好的方法是在數據庫中維護鎖定統計信息。對於我們來說,我們已經記錄並監視了一組特定的事件ID。如果在任何時候都對同一用戶進行了大量嘗試……我們很快就會知道。
我認為AviD的要點是會話組件可以實現自動化,在這種情況下,您只能通過瀏覽器來克服暴力破解(即:嘗試暴力破解或自動瀏覽器自動化的人)。另一個問題是,響應延遲更可能打擊有效用戶,而不是阻止自動暴力攻擊。如果99%的用戶在10次嘗試中就可以正確使用它,而您又不能在10次嘗試中被強行使用,最好將限制設置為10(例如,由數字組成)。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...