題:
顯示剩餘的密碼重試是否存在安全風險?
Ahmet Arslan
2019-01-16 14:11:53 UTC
view on stackexchange narkive permalink

當我輸入錯誤密碼兩次以上時,某些網站會顯示剩餘的密碼重試次數。例如,顯示有3次重試,直到鎖定我的帳戶為止。從安全角度來看這很危險嗎?

一個考慮因素是,這可以輕鬆揭示站點上是否存在用戶名。如果用戶名是電子郵件,並且網站是foot-fetish.com之類的個人網站,則這可能是不希望的。您可以通過為不存在的帳戶返回假號碼來避免這種情況
對於黑客來說,在收到鎖定的帳戶消息之前計算失敗嘗試的次數會如此難以置信嗎?通過這種邏輯,您應該詢問顯示“帳戶已鎖定”消息是否存在安全風險。
@MonkeyZeus但是通過顯示一個數字,黑客可以知道何時停止該帳戶,然後該帳戶被阻止並通知失敗的嘗試。然後,他們可以等待一段時間,直到所有者登錄並重置計數器。
@BlackJack不一定。如果用戶在黑客第一次嘗試之前就進行了兩次嘗試,那麼我真的希望他們不要認為單個失敗會導致帳戶被鎖定。無論如何,OP並沒有提到任何威脅模型,因此像這樣的開放式猜想真的沒有任何作用。
為什麼沒有人認為重試計數可以基於IP或設備識別?
-1
不要鎖定帳戶,鎖定進行失敗訪問嘗試的IP地址。[fail2ban](http://www.fail2ban.org)是您的朋友。
@paj28我認為這不能解決您提到的問題。它所做的就是將問題擴展到每個可能的電子郵件地址(就攻擊者所知)
否否否...請勿鎖定IP地址以用於WEBSITE登錄。SSH?當然。但是許多公司/學校/公寓大樓/酒店/旅館等通過單個IP將其整個內部空間NAT出去,並且可以通過IP禁止來阻止大量獨立用戶。
@nightwolf,因為這是一個可怕的想法,可以輕易克服(例如,如果通過cookie完成),或者可能導致針對某人的服務拒絕(例如,設備ID通過mac地址)或導致很多人拒絕服務(IP地址)。
@RobMoir鎖定IP的做法可以通過將ip鎖定5分鐘來防止暴力破解。顯示臨時禁止之前可以進行多少次嘗試的計數似乎是完全合理的,同時還有剩餘的禁止時間。如果合法用戶收到濫用的IP,最多5分鐘將被拒絕,然後明確規定繼續進行。這顯然取決於您的威脅模型。
@Nightwolf我明白。但是,您如何解決Angelo和我自己指出的問題?如果您按IP地址進行阻止,我可以毫不費力地將大約7500名用戶鎖定在不使用您的服務的範圍內。
@RobMoir因此,我的建議只是注意到當前存在定時鎖定,並且需要兩個因素的身份驗證才能登錄(電子郵件鏈接和密碼/手機和密碼),直到定時鎖定到期為止。
對手可以通過選擇一個隨機的其他用戶以及可能的另一個IP地址來簡單地檢查重試次數。畢竟,大多數用戶很有可能處於最大的重試次數,因為他們只有在登錄後才能註銷。如果“洩漏”此信息將使您的系統容易受到攻擊,無論您顯示還是重試。不。
八 答案:
Sean Werkema
2019-01-16 21:52:42 UTC
view on stackexchange narkive permalink

首先,鎖定帳戶是個壞主意。似乎您可以通過使用蠻力阻止“猜中”密碼的“壞人”來使組織更安全。攻擊,但是您真正解決了什麼?即使有了這一策略和一個絕不會犯安全錯誤的完美用戶群,攻擊者仍可以通過重複使用密碼“ aaa”來鎖定關鍵用戶的帳戶,從而對您的組織執行拒絕服務攻擊。請考慮一下,如果您的攻擊者獲得了整個IT部門的用戶名列表的副本,將會發生什麼情況:突然,IT本身(本來可以釋放其他用戶的組織)本身已經完全關閉。

在實施策略之前,請始終考慮威脅模型是什麼。一個決定傷害您的組織的“壞人”會找到其他攻擊手段。您的鎖定政策甚至不會令民族國家演員(例如俄羅斯,中國或國家安全局)震驚。堅定的黑客只會找到其他解決方法(例如社會工程學);

故事的寓意:不要鎖定帳戶。 ,執行Apple對iPhone的操作:每次登錄嘗試都會使登錄延遲加倍,因此,在十幾次失敗之後,您必須在每次連續嘗試之間等待一小時。足夠長的時間來防止“壞蛋”進行暴力攻擊,但仍然足夠短,以至於合法用戶可以花一個小時弄清楚自己的密碼並在午飯後正確鍵入密碼,或者與IT部門聯繫並道歉尋求幫助。 (類似地,“泛洪”策略通常可以在防火牆的IP地址級別上實施,而不僅僅是在軟件中的用戶帳戶級別上實施,如果您擔心專門的攻擊者試圖暴力破解許多不同的帳戶, )

如果您不鎖定帳戶,則無需擁有一個計數器-或顯示它。

[另請參閱:這個類似問題的出色答案 ]

可靠的建議。儘管我仍然稱其為鎖定帳戶,但超時時間很短
我同意這種“一勞永逸”的實現方式,但是短期鎖定(幾分鐘後會自動解鎖)對於限制速率的蠻力攻擊很有用。
除非您能為現場服務的人員提供連續的24/7/365主動監控-足夠的人員即使在聖誕節那天凌晨3點也能處理最壞的情況,否則您的實現將是某種形式的-並忘記它,因此仍然不應使用帳戶鎖定。幾乎所有的服務都在那裡。
並且不要忘記,我們甚至有些人被一套甚至更瘋狂的法律“要求”以對失敗的登錄嘗試強制執行鎖定。有一個原因,甚至NIST都包含一個“ shall”鎖定子句(通常在100次嘗試時很高)。因為通常是政府要求我們進行鎖定。
但是,您是否應該具有一個顯示屏來通知用戶下一次嘗試登錄將延遲多長時間?
我將為多次嘗試登錄失敗的用戶顯示驗證碼。應該停止大多數濫用行為。
在物理設備上逐漸增加鎖定時間是明智的做法。但是,即使是在可以通過互聯網訪問的帳戶上,您也不應這樣做。即使帳戶被鎖定,攻擊者也可以繼續發送密碼嘗試,並且每次鎖定期滿時,合法用戶只有很短的時間可以登錄,然後攻擊者才再次將其鎖定。如果前綴中的多個地址已被鎖定,則鎖定IP地址和前綴。
有趣的是,“ aaa” DoS攻擊是特定的。您沒有碰到類似攻擊的實際歷史記錄,是嗎?也許我可以參考參考指針?我很想讀一讀。
-1
蘋果公司不能使用相同的鎖定原則嗎?在Apple那裡,您可以有效地提高鎖定計數器,直到人們無法長時間登錄為止?也許不是永久的,但仍然是拒絕服務的有效方式,對嗎?
對於在線系統,加倍鎖定時間並不能真正起到很大的幫助作用。與整個IT部門一起封鎖幾天已經足夠令人厭煩了,但是以不斷增加的間隔重複進行攻擊也不難,仍然可以無限期地將您的團隊封鎖。
@kasperd鎖可以綁定到特定IP,而不是連接到帳戶,不是嗎?只是從該來源中丟棄該類型的流量,而不是與之交互。
我們將帳戶鎖定在我工作的地方,但我們也使用服務來阻止特定的設備和IP地址,以防止此處所述的情況。或者至少以我們關心的方式阻止該情況。它僅適用於登錄到我們提供的服務的外部帳戶,不適用於內部員工帳戶。內部帳戶很容易在此處重置和調查。但關鍵是有些服務可以阻止可疑的IP和設備,因此不應普遍取消鎖定。
(1)鎖定帳戶而沒有“魔力”進入方式的安全系統(例如,控制台登錄永遠不會被鎖定,因為服務器已在物理上得到保護)從根本上被破壞了。因此,我們應該假設,即使一個壞的(或惡作劇的)用戶鎖定了IT員工的帳戶,他們也將有一種進入的方式。因此,正如[Flater](https://security.stackexchange.com/q/201566/34757#comment404075_201596)和[Jasper](https://security.stackexchange.com/q/201566/34757#comment404086_201596)所說,將IT人員鎖定一個小時不是真的很糟糕嗎?…(續)
(續)…(2)在我看來,您的最後一句話沒有多大意義。如果您在每次嘗試失敗後將登錄延遲加倍,那麼您仍會跟踪失敗的登錄。實際上,您存儲的是* 2 ^ n *而不是* n *,這實際上並沒有減少計數器的數量。
@SeanWerkema如果登錄延遲過長,並且正在進行拒絕服務攻擊,那麼隊列中將有許多請求,服務器將無法再接受新請求。這不是可能嗎?
@Andrew我的評論確實建議鎖定IP地址(在某些情況下為前綴)。但絕對不要丟棄流量。如果客戶端IP處於鎖定範圍內,則仍然應該以適當的錯誤消息作為響應,只是在發送錯誤消息之前不要嘗試驗證用戶名或密碼。
將登錄時間加倍比完全鎖定帳戶要好,但這仍然是拒絕服務。對於使偽造的登錄過程自動化的對手來說,處理兩倍的登錄時間並不是很大的麻煩。
“民族國家演員(例如俄羅斯或中國或國家安全局)” –有趣的“民族”集合。
至於DoS的管理員用戶,可以採用其他方式保護這些帳戶,例如列入公司IP的白名單。
@Scott:我曾經運行過一個空的root密碼,其背後是這種理論。我安裝了securetty,因此根本無法以root用戶身份進行遠程登錄。
@kasperd IP級別的塊會影響使用VPN來訪問您的服務的人(我經常收到此消息,因為我經常使用VPN,這很煩人)。
我記得在高中時,孩子們會通過猜錯密碼來互相鎖定。有人變得聰明了,也把老師鎖定在外,所以他無法解鎖帳戶。我敢肯定,有些人故意這樣做是為了沒有藉口,儘管人們進入工作場所時,大概已經成熟了。
@LoganPickup VPN與它無關。相反,問題是另外兩件事:** 1。**您可能已選擇使用擁有很多虐待客戶的提供商。** 2。**您可能選擇了使用NAT的提供商。
@northerner如果成熟度提高了,那又有什麼關係呢?我們正在談論一種互聯網上任何人都可以攻擊您的情況。在互聯網上的某個地方,您至少可以找到一個不成熟的人,甚至可能是一個完全邪惡的人。
出於這個原因,我一直提醒不要鎖定帳戶。它們不僅對沒有登錄但又不記得他們使用了哪種密碼的用戶造成了麻煩,而且更重要的是(從安全角度而言),它們創建了一個嚴重的DoS向量。我的一個朋友曾經開發了一個具有激進的鎖定策略的Web應用程序(違反了我對他的建議)。為了把我的觀點帶回家(和我的朋友搞混),我只是通過使用他的電子郵件和一堆偽造的密碼將他鎖定在他自己的應用程序之外。
我討厭超時越來越多。如果使用它們,則它們需要一些限制,否則,即使僅針對一個用戶,您仍然會拒絕服務。
Silver
2019-01-16 15:24:42 UTC
view on stackexchange narkive permalink

這取決於您的鎖定機制。如果一段時間後無效的登錄名被重置並且鎖定的帳戶沒有被解鎖,則顯示計數器可以幫助攻擊者不要鎖定帳戶。但是,熟練的攻擊者會預先確定鎖定策略,並在猜測密碼時將其考慮在內。因此,影響是有限的。

此外,依靠它來保護您的登錄機制也沒有意義。您應該有一個體面的密碼策略和一個鎖定策略才能匹配。如果密碼策略很嚴格,攻擊者將不得不猜測很多次才能正確使用密碼。如果您嘗試20次後鎖定帳戶,則幾乎沒有機會受到威脅。

您必須問自己:向真正的用戶顯示此信息有什麼好處?通常,由於嘗試次數設置得太低,會出現鎖定問題。 3或5是常見的選擇。 NIST(由於政府關閉而當前不可用,因此尚無直接參考)建議嘗試少於100次

NIST的要點是:想出一個密碼,攻擊者不會在3個密碼中猜到嘗試,但他們會嘗試100次。所有攻擊者都使用不同的詞典和方法。如果密碼不安全,無法承受100個猜測,也可以使用較少的嘗試來破解它-儘管這種可能性較小。因此,必須有一個好的密碼策略。

在站點恢復時,我將添加NIST引用。 Troy hunt有一些好的博客文章,其中總結了密碼和登錄機制。他也是NIST準則的粉絲。

您正在尋找NIST特別出版物800-63,通常可以在此處找到(鏈接到相關部分):https://pages.nist.gov/800-63-3/sp800-63b.html#throttle當然,因為他們不遺餘力地將服務器置於維護模式而不是走開(抱怨),所以您必須立即使用Wayback Machine進行查看:https://web.archive.org/web/20181223021935 / https://pages.nist.gov/800-63-3/sp800-63b.html#throttle
我喜歡的是至少記住上一個失敗的密碼(哈希)。如果使用相同的計數器,則不要增加故障計數器。這對於錯誤記住或編寫腳本的客戶端有很大幫助,因為它們不會定期將犯罪者拒之門外。
如果攻擊者只需猜測1000次才能獲得密碼,那麼它不是一個強密碼。
我將把@Qwertie,更改為更模糊的描述;)
jamesdlin
2019-01-19 07:26:40 UTC
view on stackexchange narkive permalink

原則上,不,它不應該構成安全風險。如果是這樣,那麼您將通過模糊性(隱藏信息)來依賴安全性。

隱藏計數最多只會對對手造成較小的麻煩。

相反,隱藏計數可能會對合法用戶造成很大的不便。有時我輸入錯誤的密碼,然後再假設我輸入錯字,然後再輸入幾次,這種情況並不少見。如果我知道我將因另一次錯誤嘗試而被鎖定,我將去查找我的密碼並仔細地複制/粘貼或鍵入。但是,如果我不知不覺地將自己鎖定在自己的帳戶之外,那麼現在我需要經歷很多麻煩才能使其解鎖。

Tom K.
2019-01-16 19:50:51 UTC
view on stackexchange narkive permalink

對此提供另一種觀點:對於熟練的攻擊者而言並不重要

當今在線帳戶通常是如何受到威脅的 > 1 sup>?一種常用的技術有兩種變體。

帶有密碼哈希(或純文本密碼)的數據庫被盜並被攻擊者離線破解。成功破解哈希後,首次嘗試會將正確的密碼提供給登錄機制,因此此控件無效。

這可以是問題服務或 em的數據庫>另一個服務的數據庫。不幸的是,人們傾向於將其密碼用於多種服務,因此機會很大,一旦密碼與電子郵件地址匹配,便可以在另一個站點上使用它。攻擊者可能有兩個或三個密碼可供選擇,但可能沒有20個。同樣,此控件無效。

那麼該控件建立了什麼安全級別?想要避免遭受經驗豐富的腳本小子,惡意的前夥伴和愛管閒事的父母(需要查看您的個人帳戶並隨機嘗試五個密碼)所必需的級別。


1當然,還有其他更“高級”的技術,例如鍵盤記錄,(魚叉式)網絡釣魚,MitM等。無法通過此控件緩解。 sup>

Security Beast
2019-01-16 14:22:23 UTC
view on stackexchange narkive permalink

可能只有兩種情況,但是顯示帳戶鎖定時間策略的風險更多於鎖定時間。

例如,

  • 一次可以配置hydra或其他一些暴力破解登錄的工具,然後嘗試3次。如果您沒有足夠的鎖定時間,則可能會導致帳戶受損。

  • 如果您有30分鐘左右的鎖定時間,儘管它可以為蠻力配置該工具並嘗試三遍後,將需要數年的時間才能破解密碼。

得出的結論是,顯示帳戶鎖定嘗試無風險。

jfran3
2019-01-16 15:29:04 UTC
view on stackexchange narkive permalink

我通常傾向於您向攻擊者提供的信息越少越好。正如@ security-beast所提到的,可以將工具配置為等待適當的時間。向他們提供有關該配置的信息不一定是理想的。

但是,您必須在此與用戶需求之間取得平衡。您是否發現系統管理員因為用戶不斷鎖定帳戶而花費了過多的時間來解鎖帳戶?如果是這種情況,那麼您的分析可能表明,向用戶顯示重試次數可以使您受益更多,使他們知道何時需要等待才能鎖定帳戶。在其他情況下,情況恰恰相反,但是無論哪種方式,答案都應該是對特定係統的權衡進行客觀分析的結果。

希望這會有所幫助。

發佈時我沒有看到Silver的評論,但是我會把NIST指南作為第二個很好的基礎。
Hugo
2019-01-16 19:32:38 UTC
view on stackexchange narkive permalink

安全風險是主觀的,這取決於您要保護安全控制目標的目的以及可以減輕或補償風險的任何其他安全控制。

基於不同的公司/業務對相同風險的接受程度會有所不同。

如果以通用的方式提供您仍然有多少次嘗試可能不會帶來風險(例如:智能卡中的PIN撥打電話),在其他情況下可能會有風險(例如:蠻力手機訪問),您可以在上一次嘗試之前停止並等待一段時間,以便用戶使用有效的訪問權限來重置計數器...

您應檢查安全控制的目標,確定什麼?您正在嘗試保護的內容以及已經採取的哪些安全控制措施可以補償或至少監視異常情況。

基於所有這些,您可以確定對於您的具體情況而言這是否是可接受的風險。

Brandhout
2019-01-20 03:44:34 UTC
view on stackexchange narkive permalink

在某個時候,我在一家公司,那裡只有幾個人測試他們的安全性。這些傢伙發現的這些事情之一是,當存在太多錯誤密碼時,沒有帳戶鎖定。無論CISO多麼高興,他們都無法證明可以通過強行強行輸入密碼來進入。這樣做的原因是帳戶鎖定處於靜默狀態,並且持續了大約15分鐘。

請問問自己,顯示此消息會帶來什麼好處,以及這樣做會給您帶來哪些安全損失。由於過多的錯誤登錄嘗試而沒有給出任何鎖定帳戶的通知是完全有效的。如果您給出這樣的信息,您將只是幫助攻擊者弄清楚何時他浪費了時間蠻力強迫。如果您不這樣做,他們將不太可能解決該問題,但這可能會導致向您的服務台發送更多的呼叫/郵件,這可能會導致成本高昂。 FAQ或幫助頁面可能會減少這種情況。

實施倒計時可能還意味著更多的代碼,更多的代碼意味著更多的錯誤。這不是您想要的安全機制。加上您實施錯誤的方法,它可能允許攻擊者枚舉用戶名,如果用戶名是電子郵件地址,則這是雙重問題。地獄,如果您使用未簽名的cookie來實現它,它實際上可能使攻擊者完全能夠防止鎖定。

通常,如果錯誤消息提供的信息盡可能少,則可以提高安全性。

我是彭特。如果我給出“限制登錄嘗試次數”的建議,而客戶回答“證明它很容易受到攻擊”,我會很生氣。我是否可以通過這種方法進入,這是一個運氣問題。您是否要依靠運氣,還是寧願運用邏輯並發現,如果*您的一個用戶設置了錯誤的密碼,而*一個*攻擊者很幸運,您就會被冒充?因此,我將不得不證明這一點。然後,如果我以後聽說有一個無聲的鎖定(所以您讓我做這項工作,知道它無法成功),那麼我會覺得您倍加浪費了我的時間。
這樣您就煩惱了五個月,現在我們切換到用戶模式。即使我知道它必須是這五個密碼之一,也無法進入我的帳戶。現在,我必須執行其他步驟來恢復我的帳戶。後來我發現我的密碼是正確的,但是由於嘗試過多,系統才不允許我進入。與其浪費時間嘗試不同的密碼,並向網站提供越來越多的可能的密碼(讓我的密碼獲得更多的展示機會),不如將系統告訴我,這將是非常不錯的。
最後,讓我們看看攻擊者的情況。如果我可以創建一個帳戶,則可以嘗試使用自己的帳戶進行100次錯誤嘗試(1.在Firefox中嘗試登錄; 2。從開發人員工具欄複製為curl; 3。使用Bash單行代碼:`for for {1。.100};執行;完成`),然後查看我是否仍然可以登錄。不!因此,有一個鎖定位置。現在,我創建另一個帳戶並編寫一個類似的腳本,該腳本首先進行一次無效嘗試,然後進行兩次,然後進行三次……然後在這之間檢查是否仍然可以登錄。這大約需要五分鐘。隱藏重試計數不是很大的障礙。
@Luc,您可以正確地隱藏重試計數,對於確定的攻擊者而言,這並不是一個很大的障礙,但它仍然是一個障礙。
在我的軼事中,我可能沒有清楚指出的是,這些帳戶在短時間內被默默地鎖定,因此最常見的發現是不正確的,這就是為什麼要求他們證明這一點的原因。關鍵是,無聲鎖定帳戶是執行此操作的完全有效方法,實際上它是在實踐中完成的,它表明這可能會增加攻擊者的障礙。您完全正確,需要權衡取捨,這不是完美的安全性,但情況總是如此。


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