題:
為什麼不成為禁止重複輸入密碼猜測的規範?
donjuedo
2017-02-01 04:02:16 UTC
view on stackexchange narkive permalink

每個人都知道強密碼的約定/需要。人們可以在密碼中使用多種線索,再加上各種大寫字母和數字字母的替換方式,黑客平均需要進行多次嘗試才能獲得成功的密碼。

此鏈接:降低重複密碼攻擊的速度討論了阻止所有猜測的方法,儘管我不是同一問題:為什麼為什麼不成為乾擾重複猜測的規範?每次錯誤猜測之後增加退避時間是一種方法,並且已經討論了其他方法。

我看到很少有嘗試在Linux系統或任何基於Web的身份驗證上禁止這種猜測。當我3次遇到錯誤時,我就被鎖定在一個系統之外。但這只是增加了在沒有真正限制次數的情況下所需嘗試的次數。

需要引用!許多系統實現了節流閥,儘管它們可能是靜默的,而不是顯式的鎖定。它們也可能是常規的站點請求限制,而不是特定於登錄的。對於ssh(已經具有內置的延遲),另請參見fail2ban的普及。我懷疑您實際上沒有經常遇到鎖定的原因是因為它們經過了“良好的調整”,不會觸發正常的用戶行為,並且您沒有積極,持久地嘗試破解用戶帳戶。
良好安全性的衡量標準是合法用戶與惡意用戶之間“區別”的程度。將合法用戶鎖定在其帳戶之外的安全系統無法通過CIA三合一的可用性標準(機密性,完整性和可用性)。應該設計良好的帳戶鎖定策略,以便合法用戶永遠不會遇到它們。如果不管使合法用戶付出多大代價都可以阻止壞人,那麼我擁有世界上最好的安全系統:`function login(un,pw){返回“對不起密碼錯誤”;}`。
加上以前的評論,此類節流閥將保持沉默,以避免幫助攻擊者確切地知道採用了哪種保護措施。
一旦帳戶被鎖定,系統通常會返回其正常的“用戶名或密碼錯誤”消息,這很普遍-否則,除非您跟踪每個輸入的用戶名並做出相同的響應,否則您將顯示帳戶是否存在。
例如,@LieRyan,新的驗證碼系統意味著真正的人不必經常從照片中進行選擇
@LieRyan:我將CIA理解為“機密性”(沒人能讀),“完整性”(我正在閱讀發送的內容)和“真實性”(它的確來自我的想法)。
@MartinBonner CIA: https://en.wikipedia.org/wiki/Information_security#可用性
“ IT人員施加了越來越多的限制,例如字符數,字母,數字,大寫字母以及從密碼中排除用戶名。”需要引用。通常,是尖頭的頭髮老闆添加了愚蠢的密碼“強度要求”。https://xkcd.com/936/
密碼強度對於黑客(其中黑客獲得了密碼的哈希表)也很重要。如果每個人的密碼都不正確,則哈希函數的強度將變得不那麼重要。
我不確定我是否會同意“每個人都知道需要強密碼”這一觀點。查看近期發生的任何密碼轉儲,我保證您會在其中找到大量的瑣碎密碼...
人們為什麼仍在使用MD5進行密碼哈希處理?因為他們不了解或不在乎。根據您自己的定義,@MartinBonner“真實性”將是“完整性”的一部分。
六 答案:
Mike Ounsworth
2017-02-01 04:08:47 UTC
view on stackexchange narkive permalink

我想挑戰您的假設,即沒有完成。 p>

請記住,一次成功的暴力攻擊將需要每秒數百萬或數十億的猜測才能在合理的時間內(例如,取決於密碼強度的幾個小時到一個月)來進行破解。甚至每秒100次密碼嘗試的速率限制都會將破解時間從一個月增加到數十萬年。也許我的標準很低,但這對我來說已經足夠了,沒有任何合法嘗試進入其帳戶的人類用戶會注意到這一點。更好的是,如果速率限制是通過IP而不是用戶名,只是為了防止某些拒絕服務攻擊。

此外,我不知道您使用的是哪個Linux發行版,但是在我的Ubuntu和CentOS系統上,當我在GUI或終端登錄屏幕上輸錯密碼時,它會鎖定1秒鐘,然後再次提示我。


即使服務器未處於活動狀態限速登錄嘗試(實際上應該如此),僅ping時間本身就足以使您減速到數百萬年。在達到接近10億個猜測/秒的速度之前,您可能將DDOS服務器。真正的錢是獲得哈希密碼數據庫的副本並將其饋送到GPU裝置中,每秒可能有數十億個猜測。

TL; DR:為了加強登錄服務器的性能,與在登錄屏幕上實施限速相比,通過改進密碼哈希和使數據庫難以被竊取,您將獲得更大的收益。


更新:自從病毒式傳播以來,我將從評論中吸取一些東西:

此邏輯僅適用於登錄服務器。對於電話或筆記本電腦之類的物理設備,“ 3次嘗試並鎖定”或“ 10次嘗試並擦除設備”類型的提示仍然有意義,因為有人在您輸入密碼時可能會上網衝浪,或者看到污跡圖案在屏幕上,或者知道4位數PIN總共只有10,000個組合,因此他們需要做的猜測非常非常小。

有趣的是,與通常實現鎖定的系統相比,也許某些系統的外觀*並非為了減輕DOS的風險並確定壞人(也許是您的意思,Mike?)而已。
@symcbean我實際上並不是在考慮蜜罐。我的意思是,10毫秒以上的“鎖定”足以阻止對驅動器的強行攻擊,因此,為什麼無緣無故給用戶帶來不便?現在,對於屏幕上有污蹟的電話和PC或人們抬頭看著你的肩膀,也許有人爭論說3點以後會被鎖定,但是OP專門詢問了Web服務器。
在Linux上,特別是在服務器設置上,有一項稱為“登錄失敗守護程序”(LFD)的服務。LFD不會禁用登錄,而是暫時禁止嘗試登錄的IP地址。
-1
DDOS =分佈式拒絕服務攻擊。你不能一個人做。
-1
-1
這非常假設目標是破解一個特定的密碼,而不僅僅是“任何人的密碼”。在這種情況下,攻擊者(在枚舉用戶帳戶之後)只需使用“ Password1”或同等密碼嘗試所有帳戶,然後從那裡去,可能只需要相對較少的猜測就可以訪問(相對於蠻力的一個帳戶),這在Web應用程序中比在Linux機頂盒中更為重要,因為Linux機頂盒中可能會有大量用戶。
RoryMcCune如果您使用fail2ban或其他東西來基於IP進行速率限制,而不是基於所請求的用戶名進行速率限制,那麼它不等於同一件事嗎?
更不用說像這樣的鎖定本身很容易變成DOS攻擊-您所需要做的就是找到該服務用戶的用戶名,並“猜測”三個錯誤的密碼和密碼-該服務不再可用。如果管理員沒有特殊訪問權限,則特別有效,因此他們不能撤消鎖定:P
Ken Whitesell
2017-02-01 06:22:34 UTC
view on stackexchange narkive permalink

在反复無效嘗試之後將人們拒之門外是一個重要的問題-它實際上成為一種拒絕服務攻擊的攻擊媒介。想一想,如果某人試圖破壞某項服務而最終鎖定了數十萬個帳戶,而最終鎖定了數十萬個帳戶,那麼支持服務台或客戶服務站點可能會發生什麼情況。

我什至還有一個網站每當我更改密碼時,都會向我發送一封物理郵件-特別討厭的人可能確實會通過查找帳戶列表並反复暫停它們來製造問題。

在安全性和安全性之間肯定要做出判斷可用性,而且我個人不相信會有固定或輕拍的答案。

您是否要鎖定計算機(源IP)而不是使用的用戶?這樣,攻擊者將必須能夠(假裝)源自與合法用戶相同的IP。現在,儘管這可能實現,但我認為應該要困難得多...
@Thomas殭屍網絡意味著您可以使用成千上萬個IP地址嘗試登錄帳戶。
@Thomas您如何存儲該信息?如果我有一個擁有一萬台計算機的殭屍網絡,並且對來自一萬台不同計算機的系統上的所有用戶進行了鎖定,那麼您的系統是否可以生存?我還設法阻止了一些合法用戶(NAT等)?用戶如何判斷為什麼他不能再訪問他的帳戶,特別是在良好的安全習慣是避免告訴用戶他的帳戶已被鎖定時?您的服務可以處理嗎?
有趣的是,[Stack Exchange本身被用於密碼重置電子郵件泛洪攻擊](http://meta.stackexchange.com/questions/270051/please-rate-limit-the-password-reset-functionality)
@Luaan“總有事”(RFC 1925)
Slava Knyazev
2017-02-01 04:08:21 UTC
view on stackexchange narkive permalink

足夠的複雜性使其在技術上不可行進行暴力破解,將其放慢下來並不能做更多的事情。

“但是,如果再說數十億年,那麼這只會增加所需的嘗試次數”。

我想像的減慢速度可能是第一次失敗後多出1秒,然後是2秒,然後是4,然後是8,依此類推。當然,必須在滿足某些條件後重新設置。由於存在一定程度的延遲,即使是適度的密碼也足夠了(對我來說,是新手)。
@donjuedo但是目的何在?具有足夠的複雜性,根本就沒有關係。服務器在獲得時將成為化石。
目的是記住更簡單的密碼,同時又保持安全性。
那麼要使用不太複雜的密碼嗎?無論您怎麼看,這都是一個壞主意。
我們正在將(高速猜測的複雜密碼)與(低速猜測的較少複雜密碼)進行比較。兩者在本質上都不比另一個更好。重要的是您所說的“對暴力破解不切實際”,或者預期的破解時間太長。
高速猜測的複雜密碼本來就更好。速度是線性的,複雜度是指數的。
這是“責備受害者”的答案。選擇一個熵密碼是一種很好的措施,但是*用戶*採取了這種措施來保護自己免受攻擊者的攻擊。相比之下,限制登錄嘗試是*開發人員*和*管理員*採取的一種措施,目的是保護用戶免受攻擊者*及其自身*的侵害。開發人員和管理員無法從自己的錯誤選擇中挽救*所有*用戶,但我們確實有責任提供合理的保護措施。
@donjuedo,它將僅通過該單個通道*保護弱密碼免受強行攻擊。如果例如鹽漬的哈希值從數據庫中洩漏出來,那麼弱密碼很容易在服務器和節流閥周圍“蠻橫”,而強密碼仍然會受到保護。
Goodbye SE
2017-02-02 15:48:24 UTC
view on stackexchange narkive permalink

您假設只能使用登錄名來檢查密碼,但是經常會發生數據洩漏/黑客攻擊,這使某人獲得了密碼的哈希表。如果有這些密碼,他就可以蠻力破解哈希值,這比使用登錄名快幾倍。這就是您真正需要好的密碼的地方。

Rory McCune
2017-02-02 19:48:03 UTC
view on stackexchange narkive permalink

到目前為止,我在其他答案中都沒有提到的一個非常重要的概念是脫機和在線暴力之間的區別。

在脫機暴力中,攻擊者可以訪問哈希密碼。主要防禦措施是使用適當的密碼哈希算法(例如bcrypt)。圍繞散列算法,GPU破解等問題,它們僅與離線暴力破解有關。

我假設此問題與在線暴力破解有關,攻擊者試圖遠程登錄該系統。

使用SSH等服務進行遠程登錄,如上所述,通常通過fail2ban或類似方法禁止遠程猜測密碼。

在Web應用程序中這種情況不常見(我知道,因為我給所有者缺乏此功能的Web應用程序發現)。

在某些系統中設置了直接鎖定,但這面臨著攻擊者猜測密碼的攻擊會拒絕提供服務的風險以及根據重新激活帳戶的機製而給用戶帶來的不便。

一個更好的解決方案是迫使登錄嘗試的延遲增加,從而使攻擊變得不太可行,但是必須注意,在某些情況下,攻擊者可能只想破壞一個帳戶(而不是真正在乎他們獲得的帳戶是誰)這種情況下,他們只能在整個用戶群中嘗試使用少量通用密碼,以期望有人會使用它們。

您對與在線暴力相關的問題的假設是正確的。當我發帖時,我什至沒有考慮過脫機攻擊,只是在這里和那裡提到它之後才注意到。
dark_st3alth
2017-02-01 04:20:40 UTC
view on stackexchange narkive permalink

看這個的簡單方法是另一個問題。當存在已知的缺陷/問題時,為什麼SHA-1 / MD5仍在使用?

簡單地說,對個人/公司的風險評估認為這些問題不是主要問題。就像滾動超時一樣。

當我為本地學校進行一些管理時,教師“猜測”自己的密碼是很普遍的。強迫老師等待很不便,然後只是在輸入4或5個錯誤密碼後將一個帳戶鎖定,然後讓他們給我打電話以解鎖它。對於本地系統,這可能不是問題,但是以我的學校為例(如上所述),或者是擁有1000名員工的大型企業。由於有人坐在密碼提示符旁等待輸入正確密碼的機會,因此無法再完成工作。也許有人認為讓某人坐在提示處幾個小時會很有趣,或者攻擊者想減慢生產速度?原因在於必須要有一種方法來管理超時時間,超時時間以及重置時間的方法。

我認為鎖定係統是可以允許的,例如通過Windows,實際上更安全。它需要管理干預,並且撤消會更快(加上查看日誌所花費的時間)。在基於Web的系統上,滾動超時可能會更有利,但是正如我們已經看到的那樣,密碼散列將被洩漏,滾動超時將無濟於事。

實際上,Windows登錄屏幕確實有延遲。您可以免費嘗試幾次,然後開始增加其他延遲。(當我嘗試使用其他鍵盤登錄時遇到了這個問題。)
@MartinBonner這將在第3次(或第5次?)錯誤輸入後發生,這會導致嚴重的延遲。如果我還記得,沒有“滾動”功能,延遲不會越來越長。然後,再次,此時應該觸發帳戶鎖定。
鎖定確實有其風險,尤其是在攻擊者位於遠程的情況下,這是因為鎖定對他們來說很容易進行DoS服務,尤其是在用戶名格式已知的情況下。
@dark_st3alth帳戶鎖定僅在域中有意義。儘管Windows機器的很大一部分都在域中運行,但是您不能真正忽略所有那些不在其中的計算機。非域用戶如何從鎖定中恢復?


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