題:
以“ a”開頭的隨機生成的密碼安全性較低嗎?
lynn
2019-07-10 18:36:59 UTC
view on stackexchange narkive permalink

我最近為一個新帳戶生成了一個密碼,前三個字符為“ aa1”。

在用盡所有其他攻擊之後,破解者將開始強行強制使用。假設他們從“ a”開始,我的密碼“ aa1”的破解速度將比“ ba1”快,而其破解速度將比“ za1”快。

此密碼時間很長,所以這個問題比理論上更實際。 (當然,除非限制密碼長度,否則...)我對暴力破解和密碼的假設正確嗎?

蠻力可能會並行化,因此,如果您有26個正在運行的攻擊實例,則第一個開始的小寫字母不會改變任何內容,但是問題很有趣:)
這取決於使用的總長度和字符集,越多的字符。您必須確保彩虹攻擊不可行,您應該查看此彩虹表計算器https://www.tobtu.com/rtcalc.php
*“關於暴力破解和密碼的假設正確嗎?” *-您可能需要提供更多上下文。攻擊者可能會使用1M或10M密碼瀏覽[密碼列表](https://github.com/danielmiessler/SecLists)。如果當前用戶帳戶不成功,他們將移至下一個用戶帳戶並再次使用相同的密碼列表。另請參閱彼得·古特曼(Peter Gutmann)的* [工程安全](http://www.cs.auckland.ac.nz/~pgut001/pubs/book.pdf)*。
如果是這樣,請使用“ zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz”作為最安全的密碼。
答案顯然是“是”。您已經減少了搜索空間。
從技術上講,它取決於@user207421。如果他們將密碼的前三個字符替換為“ zzz”,則可以減少熵。如果他們在密碼前加上“ zzz”,否則它們不會增加熵,但會增加長度,因此獲勝很小。但是,如果有人試圖破解密碼,這兩種更改都不會影響...
我見過的大多數密碼破解器的“試用順序”是`aaa`,`baa`,`caa`,...,`zaa`,`aba`,`bba`,因此值得一試還要查看密碼的最後一個字符。您不知道攻擊者使用哪種工具來獲取密碼。但可能所有工具都以“ a”,“ 0”或類似名稱開頭。因此,如果您只是在密碼的開頭和結尾“從中間”添加一個或兩個字符(例如“ m”)來避免描述的問題,那麼您的密碼可能會更安全一些。
您假設攻擊將以“ a”開頭可能是錯誤的。
您假設暴力攻擊一定是順序攻擊,但是我們都知道,如果將任何進程限制在一個執行線程中,則只能實現這一目標。進行暴力攻擊的攻擊者將使用多個線程。當使用多個線程時,為什麼要劃分工作,以便依次選擇密碼?有效地將下一個密碼分派到一個新線程甚至變得很複雜...給線程1以a..d開頭的所有密碼,給線程2以e..h開頭的所有密碼更簡單。
如果每個人都知道以“ a”開頭的密碼不太安全,那麼在理性世界中,人們永遠不會使用它們。因此,出於相同的原因,以“ b”開頭的密碼現在不那麼安全。沖洗並重複。結論:安全密碼根本不可能有第一個字符:)
這就是為什麼任何理性的攻擊者都會在* reverse:*中以正常方式以“ aaaaaaaa”開頭的密碼,而不是接下來的“ aaaaaaab”,而是執行“ baaaaaaa”。;)
@alephzero表示同意。確保密碼唯一合理的解決方案是不要使用第一個字符!
顯然,“正確的胸椎電池裝訂”比“正確的胸椎電池裝訂”更安全,但不如“很多正確的胸椎電池裝訂”安全
對於任何非平凡的裂紋,搜索順序都不是線性的。但是,在我看來,您可能會嘗試在有意攻擊者嘗試優化其搜索以發現更多內容的前提下,有意地設計密碼以偏向不太常見的字符序列,以便“以後”出現在搜索中。通用密碼優先。但這是一個荒謬而毫無意義的遊戲,任何可能的(非常可疑的)潛在收益可能都比將隨機密碼的長度增加一個字符還要小。
@dn3s也有相同的想法,並寫了一個答案,但請隨時補充!https://security.stackexchange.com/a/213381/15756
我曾經不得不用暴力破解(我自己的)密碼鎖。我從4-0-0開始,因為我更有可能更快地遇到我的組合(出於這種原因,人性是為了避免人數過少)。很久以後,我終於打出3-9-8並打開了...
@IMil OP提出了一個非常真實的問題,不要對此感到奇怪。真的不好
-1
九 答案:
reed
2019-07-10 20:52:55 UTC
view on stackexchange narkive permalink

這似乎取決於攻擊者對密碼的暴力破解程度。但是,我的看法是,最後無所謂。

一個嚴重的攻擊者永遠不會從字母數字順序(從 aaaaaaaa 99999999 ,除非他們知道他們可以在合理的時間內做到這一點。如果那將花費他們一千年的時間,為什麼知道他們必然要停止在 cccccccc 上,他們為什麼要使用該方法?但是,如果攻擊者知道他們可以在合理的時間內嘗試所有可能性,那麼您的密碼是在第一個組合中還是在最後一個組合中都沒有關係,因為最終他們無論如何都會在合理的時間內找到它。 )。

大多數密碼仍然很弱(例如,您的狗的名字,也許還有您的出生日期等),並且攻擊者不喜歡浪費太多時間,更不用說花幾年時間來破解密碼了。因此,攻擊者通常使用的是詞典和模式。他們將首先嘗試使用密碼,例如: pass123 123pass john90 john91 John92 JOHN93 123456 l1nux4dm1n 等。如果每次使用字典和模式的嘗試都失敗了,它們可能會繼續前進並假定密碼看起來像真正隨機的。嘗試所有可能需要多長時間?如果可以在合理的時間內完成操作,則他們可以嘗試所有操作(例如,從 aaaaaaaa 99999999 )。否則,如果攻擊者認為他們將永遠無法嘗試所有密碼,則他們可能會嘗試通過一些隨機猜測(隨機字符串,未排序)暴力破解密碼: 12hrisn589sjlf 9f2jcvew85hdye otnwc739vhe82b 等。如果攻擊者很幸運,他們遲早會找到密碼。但是,如果密碼太強以至於要花很多年才能猜出來,他們最好放棄或考慮其他攻擊方式(網絡釣魚,肩膀衝浪,鍵盤記錄程序等)

確實,我認為這才是真正的原因-黑客很清楚自己的密碼率,因此他們可以在合理的時間內破解哪些密碼。在合理的時間內強行使用整個搜索空間,或者根本不可能,在這種情況下,他們不會打擾,也沒有關係。
....除非隨機密碼生成器帶有'aardvark'
嗯...這可能意味著在運行之前/之後添加相同的數字只是為了延長密碼而實際上並未增加熵,卻可能會使密碼超出“合理時間”範圍而變得更安全?
@SamuelÅslund,如果將“ banana123”視為不安全,則“ banana123zzzzzzzzzzzzzzzz”絕對更安全,但是很難確切地說出有多少幫助。一些攻擊者可能會嘗試將內容添加或添加到基本模式中(最終,添加或添加內容仍將是一種模式),但是沒有辦法知道。最佳實踐是唯一可以保證安全的做法,它使用的密碼具有真實的熵,並且不依賴技巧,助記符和密碼重用。
@SamuelÅslund熵是關於混沌的,而不是原始數的範圍。我聽說它描述的最好方法是為您輸入密碼,然後一次塗黑一項(這樣香蕉將變成Ban-na-> B-n-na)。您可以帶走多少個才能高度確定地猜測出拆下的零件?這就是模式可預測性。而且您的模式越可預測,它實際上包含的熵(混亂)就越少。由於缺乏實際的熵,因此可以在檔案中很好地壓縮文本。(以及為什麼彼此不相關的隨機字符比相同長度的單詞包含更多的熵)
也許這是有倉鼠代替狗的原因。一隻狗的壽命大約為10-13歲,而倉鼠的壽命為2-2.5歲。使用倉鼠名稱代替狗名會增加5倍的搜索空間?
@Tezra是衡量人類語言中熵的一種方法,但是熵本身是一個複雜的主題,在不同領域(物理,計算機,信息論等)的定義有所不同。
-1
@doneal24而且,狗和貓的名字經常被註冊,即使沒有其他地方,至少是與當地的獸醫一起註冊的,這提供了一個社會工程學的薄弱點。幾乎沒有人註冊倉鼠。
為了扮演魔鬼的擁護者,如果攻擊者有1/12的機會獲得超過其12倍的投資,則攻擊者可能會嘗試將“ aaaaaaa”強行強制為“ ccccccc”。
-1
最後,它甚至都不是maaattee-e-eeer。
Conor Mancone
2019-07-10 19:11:09 UTC
view on stackexchange narkive permalink

熵確實是最大的問題,熵取決於密碼生成過程中的隨機性。

讓我們以18個字符的密碼為例。我們將僅查看字母數字字符(62個可能的字符)。這給出了:

log2(62 ** 18)= 107 熵位

如果您決定始終將前3個字符轉換為Z,很難破解,那麼您實際上已經從密碼中刪除了3個隨機字符,留下了:

log2(62 ** 15)= 89

這大約要弱1,000,000倍。當然,仍然都不可能絕對完全進行暴力破解,因此,如果有人嘗試暴力破解您的密碼,我不會擔心。

破解強密碼是不可能的

但是,值得強調的是,強行破解這樣的密碼是不可能的(以防萬一我的鏈接不能說服您)。 line MD5 hash rig的頂端可以每秒嘗試2000億次哈希。它的速度非常快(這就是為什麼不應將MD5用於密碼的原因)。甚至您較弱的密碼(當您用 z 替換前三個字符時)也有7.6e26可能的組合。以每秒2000億個哈希值計算,如果密碼用MD5散列,則僅需120年 MILLION 年即可嘗試所有密碼。我認為您無需擔心。

aa

的影響

因此,以“較高”字符開頭是否會使某人更難於強行使用密碼更好?也許吧,也許不是。如果攻擊者碰巧是從字母的開頭開始的,那麼可以肯定的是,您的攻擊者將“更快地”破解(儘管這輩子還不是)。但是,不能保證嘗試暴力的人會按照特定順序進行操作。結果,無法猜測以 aa 開頭的密碼是否更容易破解。同樣,如果您使用較長的隨機密碼,則該密碼被黑的可能性實際上為零。所以我不用擔心。當談到密碼時,長度為王

柯克霍夫原理(h / t Adonalsium)

我認為柯克霍夫原理在這裡非常適用。從某種意義上講,這是安全性的核心“特網”。 Kerchkhoff原理背後的思想是,系統的安全性應該基於一個(只有一個)秘密/密鑰。這個想法是,需要更多的“零件”來保持系統的安全,某些零件洩漏的可能性和發生安全漏洞的可能性就越大。當我們談論密碼時,很清楚“密鑰”是什麼:密碼。具體來說,是長而隨機的。如上所述,這實際上就是您所需要的。通過在隨機密碼之上添加其他“規則”,您實際上只是在提供潛在的提示,從而使以您為目標的攻擊者更容易猜測密碼。

通過消除“容易猜測”的模式,這種“巧妙”的熵減少[一直回到Engima機器](https://en.wikipedia.org/wiki/Cryptanalysis_of_the_Enigma#Operating_shortcomings)。例如:連續兩天沒有轉子可以位於同一地點;沒有兩個插板連接可以相鄰;一個月內不會重複進行任何轉子設置。一旦密碼破解者弄清楚了程序是什麼,所有這些*減少*了他們必須搜索的組合。
@Schwern可能是有史以來最好的評論。我認為應該自己做一個答案。
評論不作進一步討論;此對話已[移至聊天](https://chat.stackexchange.com/rooms/96200/discussion-on-answer-by-conor-mancone-are-randomly-generation-passwords-starting)。
Tom
2019-07-11 10:03:16 UTC
view on stackexchange narkive permalink

在用盡所有其他攻擊之後,破解者將開始暴力破解。

說誰?

只有兩種情況會出現暴力破解實際上是一件事。一種是攻擊者擁有密碼哈希,另一種則是攻擊者擁有控制登錄信息的軟件的控制權,因為任何未完全破壞的軟件都不會首先使他遭受暴力破解。

最常見的情況是攻擊者確實擁有密碼數據庫。他將使用開膛手約翰之類的破解軟件。在以“ aa”開頭之前,他將測試過數百萬個可能的密碼。在大多數情況下,此時他已經破解了數千個帳戶,因為它們的密碼是“ password”或“ 12345678”。或者-為了滿足虛擬的“密碼強度”檢查器-“ Pass123!”。

他可能不會打擾他的餅乾進入實際的暴力步驟,因為他有更好的選擇他的時間。而且您實際上不知道暴力破解實際上是否會從aa開始,因為很有可能不會。

您的真實問題是,當您制定關於哪​​些密碼被視為“錯誤”密碼的規則時,實際上是減少搜索空間。事實證明,密碼策略是有害的。瞧,JtR的作者甚至在他的Wiki上有有關此內容的頁面。當然,說服您的CISO採用其愚蠢的密碼策略的$$$顧問永遠不會閱讀該頁面,甚至可能甚至不知道JtR仍然存在。 :-)

因此,“ aa1”的安全性沒有比“ zz9”的安全性低。首先,因為暴力是最後一種武器,而不是第一把武器,其次,因為不能保證暴力軟件實際上是從a而不是z開始的。如果要寫一個,我不會從a開始。例如,我將隨機化字母並使用它。正是因為我認為人們可能會避免使用“ aaaaaaaa”作為密碼。

遺憾的是,根據https://haveibeenpwned.com/Passwords,密碼aaaaaaaa實際上已經被使用,洩露和破解了七萬多次。(zzzzzzzz的收入為54k,llllllll的收入為7k。)
與“密碼”(超過3.6 **百萬**)或“秘密”(僅6個字符)與近25萬相比,這幾乎是什麼。:-)
確實如此。絕對不是世界上最糟糕的密碼。:)
實際上,許多攻擊者使用蠻力作為他們的“第一”技術,儘管他們只會蠻力地說(例如4個字符),然後再進行更好的攻擊,例如字典攻擊和混合攻擊。
您鏈接到的有關密碼策略的JtR Wiki頁面並不能真正支持您的論點。它說,對於長度為8的ASCII密碼,要求至少3個字符類僅會使搜索空間減少5.5%,“因此,這樣做是合理的”。一些機構可能斷言“密碼策略有害”,但該特定頁面卻沒有。
@IMSoP的關鍵是它“縮小”了搜索空間,而不是擴大了搜索空間。這對於大多數人來說是違反直覺的。
確實。不過,可能有一個更好的參考,因為您鏈接到的那個鏈接大多假設您已經知道並且只是量化效果。
pslessard
2019-07-11 20:06:48 UTC
view on stackexchange narkive permalink

許多其他答案都集中在為什麼以'a'開頭的密碼不會比其他任何開頭字母的安全性都低的原因,因為您假設攻擊者是順序執行密碼還是並行執行密碼,或者是因為假設它們從“ a”開始,而熟練的攻擊者可能沒有。由於這些論點,在熟練的攻擊中,沒有一個起始字母比另一個字母安全。

但是,我認為,對於一個天真的攻擊者,以“ a”開頭的密碼的安全性稍差一些,原因是事實是,由於缺乏技能和經驗,他們更有可能按順序從“ a”開始這樣做。

但是,實際上,就像其他答案所說的那樣,這沒有什麼區別,因為在實踐中,足夠長的隨機生成的密碼可能在合理的時間內無法被強行使用,而避免使用字母“ a”只會縮小搜索空間。

allo
2019-07-11 15:49:11 UTC
view on stackexchange narkive permalink

當您進行暴力攻擊時,以“ a”開頭的密碼可能會更弱。如果使用“ z”變得流行,那麼“ a”和“ z”將是正確的,這會使評估風險更加複雜。

讓我們假設我們知道一個字符,在其他字符之前已經嘗試過。然後,攻擊者只需測試搜索空間的 1/26 。解決方案是延長密碼

攻擊者可能會以短密碼開頭進行暴力搜索*,因此,較長的用戶可能會得到更好的保護。即使他不這樣做,他也需要在獲得密碼之前測試更多的密碼。

字典攻擊或混合攻擊可能會在嘗試“ b”之前先嘗試“ a”,“ aa”,“ aaaaaaaa”雖然。這是攻擊者和您之間的頭腦遊戲,因此,選擇隨機密碼短語是最好的方法,並且拒絕可能出現在單詞列表中的密碼是合理的(但是,無論如何,隨機長密碼都不太可能出現在單詞列表中)。

* 測試所有1-8個char密碼只需要測試以“ a”開頭的所有9個char密碼的大約兩倍的時間,因此,如果有的話,從較短的字符開始比較合理密碼短的可能性。

您為什麼認為暴力攻擊會以“ a”開頭?
-1
-1
在我看來,9個字符的密碼(N ^ 9)的數量大約是1-8個字符的密碼(N ^ 9-N)/(N-1)的(N-1)倍,其中N為字母大小。那是相當大的(除非在眾所周知的情況下,N = 2)。我想念什麼嗎?
確實,我把這混了。我希望它現在正確。
Dennis Jaheruddin
2019-07-12 13:24:57 UTC
view on stackexchange narkive permalink

跳出思路:糾正威脅模型

許多現有答案已經表明,僅避免使用a並不會帶來什麼好處,並且應用'修復”,實際上會使情況變得更糟。

但是,從概念上講,忽略攻擊者的完全工作方式也是錯誤的。因此,我提出了這個解決方案指導,該指導方針在理論上應該是可行的(但在實踐中可能會有些困難):

如果您的威脅模型定義了攻擊者更有可能攻擊某種模式,最好減少這種模式的出現

示例:

  1. 假設您知道有一些通用工具可以將'a 'forward
  2. 假設這些通常是通過分配的時間/嘗試進行配置的,碰巧他們嘗試使用a的次數要多於嘗試使用“ a”的次數,
  3. 假設這導致世界上每個人對您的攻擊的總數,因此,“ a”的使用頻率比其他字母高2%
  4. ol>

    在這種情況下,使'a'的可能性降低1%

    結論

    如果您已經(並跟踪)對您的真正威脅,則應該能夠稍微降低您的密碼被破解了。不幸的是,您將需要一家大型公司隨時了解其狀態,並且每次威脅模型發生變化時都需要重新生成密碼。例如,由於攻擊者還了解到您正在糾正上週的模式

    簡而言之,請意識到您在概念上是正確的,但是正確實施只是不切實際的

Dmitry Grigoryev
2019-07-11 16:32:37 UTC
view on stackexchange narkive permalink

嚴格來說,是的,如果破解歸結為暴力破解,則更有可能在以“ z”開頭的密碼之前檢查以“ a”開頭的密碼。

了解密碼熵的重要一件事是必須計算密碼。攻擊者可能會使用的模型來破解密碼,而不是wrt。您用來生成模型的模型。例如,如果您生成了一個完全隨機的字母數字密碼,並且得到了“ passwordpassword123”,則它具有與任何其他相同長度的隨機密碼相同的“生成”熵。高“生成”熵並不是一個好的密碼,因為假設典型的字典攻擊,它的“破解”熵非常低。

正是出於這個原因,我們確實聽說過丟棄隨機生成的密碼。丟棄雖然減少了可用密碼的數量(從而降低了密碼安全性),但避免了生成非常容易破解的密碼。

“ *丟棄隨機生成的密碼並非聞所未聞*”您有例子嗎?除了4位數的PIN碼,我想我從未聽說有人丟棄過弱的隨機密碼。如果您的隨機密碼生成器在宇宙熱死之前生成了“ passwordpassword123”,那麼它就不可能是一個好的生成器。
@Luc也許您真的很幸運,需要去玩彩票...
@ConorMancone並非如此。如果您假設這個星球上的所有80億人每秒鐘都創建一個新帳戶(因此他們每個人每秒鐘都生成一個隨機的16個字符的密碼),那麼還需要940億年的時間,才有50%的機會生成某人“密碼密碼”。如果您是在開玩笑,那麼我完全同意您的看法,但是我不能告訴您您是否認為這很有可能;)
如果您的隨機密碼生成器正在生成易於猜測的密碼,則您可能無意間創建了一些非常特殊的東西。也許您可以下一步寫一些莎士比亞作品?我相信它將產生一些新作品。
-1
@SteveSether並不是重點。我要說的是密碼不強,因為它具有很多熵。之所以強大,是因為它需要很長時間才能破解。
Hey
2019-07-11 19:30:57 UTC
view on stackexchange narkive permalink

如果您想對此做些什麼,除了增加密碼長度之外,您所能做的就是拒絕以'a'開頭的密碼。現在,您刪除了可能的密碼的1/26,攻擊者可以更快地破解平均密碼26/25倍。

...現在,最弱的密碼以'b'開頭。我們是否將其刪除並將“ c”設為新的最弱的第一個字符?

其他答案很好地解釋了為什麼沒關係,我只想指出,通過避免使用某些密碼來解決此問題是荒謬的。

rbsec
2019-07-12 16:25:29 UTC
view on stackexchange narkive permalink

要在此處補充許多好的答案,值得注意的是,即使在攻擊者使用蠻力攻擊的情況下(鑑於所討論的所有更好的選擇,這種攻擊也很少見),好的工具也不會進行順序蠻力力。

例如,《開膛手約翰》中的蠻力模式(上面@Tom提到)稱為增量模式,儘管它確實覆蓋了整個鍵空間,它使用基於頻率的模型以比順序AZ攻擊更有效的順序覆蓋鍵空間。

我還記得,還有一個名為PasswordsPro的舊工具,它可以進行順序蠻力操作,但是在字符串的末尾而不是開頭(aaaa,aaab,aaac等)。



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