2012-08-15 79 views
2

有沒有什麼方法可以在不加強密碼的情況下強化aes加密以抵禦蠻力攻擊。我的意思是用戶通常選擇簡易密碼。我不想強迫用戶選擇越來越複雜的密碼(這是正確的解決方案,但是當他們連續忘記密碼並且不能使用密碼時,它是無用的)他們從大寫,小寫和數字中選擇密碼。並且密碼長度是8.我想在不改變這些密碼屬性的情況下很難進行暴力攻擊。是否有可能通過強制攻擊加固aes加密?

編輯:密碼長度正好是8.較少的長度是不可接受的。還有一個關於回覆的問題,在內存上保存加密文本(使用salting和密鑰伸縮)是一個安全問題?

+1

http://xkcd.com/936/ – Kimvais 2012-08-15 06:47:36

+0

這是第二個脫離兩個穆罕默德主題問題。 – 2012-08-15 20:26:16

+0

你爲什麼給倒計時? – PepeDeLew 2012-08-15 20:37:07

回答

3

我很想說:不,這是不可能的。爲了使蠻力攻擊更難,你需要更多的熵。

這就是說,如果你做key stretching,你實際上可以讓猜測過程變慢。

+0

那麼在內存中存儲加密文本呢,這是一個安全問題嗎? – PepeDeLew 2012-08-15 07:29:28

2

如果不知道使用方法的確切性質,很難評論這個問題。 (例如,密碼只能存儲爲8個字符?)。

也就是說,選擇一個好的salt會讓蠻力強制變得更難。今天大多數密碼被盜是由於沒有實施適當的鹽析。

爲了更安全起見,您可以使用consistent hashing將鹽分割成多個值。

+1

...或爲每個條目單獨分配的鹽,而不是完整的密碼數據庫。 – Rik 2012-08-15 14:43:23

+0

@Rik:確切地說,麻鹽是一種*全球獨一無二的鹽,128位是您的較低利潤率。 – 2012-08-19 01:15:08

+0

@HubertKario如果每個條目都是單獨分配的鹽,那麼鹽的存儲就成了一個問題。這就是爲什麼我建議使用一致哈希來分配一定範圍內的鹽。對於足夠數量的密碼(大約2 ^(n-1)),鹽很可能是唯一的。 – Asti 2012-08-19 05:54:46

0

使用多輪會減慢嘗試密碼的過程,但那只是我所能想到的。

1

如果你想確保你的用戶不使用密碼,如「密碼」,「12345678」或類似的密碼,然後沒有沒有辦法硬化他們。

您必須能夠檢查提供的密碼是否與合理時間內的散列相匹配(即平均硬件時間少於1秒)。即使在檢查散列和密碼之間的等同性時,Brute強制使用簡單的密碼,但在普通PC上需要1天的時間不到一天。

如果您想要保證平均質量的密碼(不是最常用的密碼1000或最常用的語言中的單個單詞),那麼密碼/密鑰延伸是您最好的選擇:scrypt,bcrypt或標準PBKDF2不錯的選擇。

+1

鹽(每位用戶唯一)與關鍵拉伸一起是一條路。 – CodesInChaos 2012-08-19 11:14:16

+0

正確的鹽分和拉伸使得即使是簡單的密碼(如「密碼」)變得更硬。 (如果這是第一個猜測的密碼,那麼是的,這會失敗,但它仍然可以根據要求對抗強力。) – 2012-09-03 00:20:23

+0

@RobNapier:如何將大多數常見密碼的攻擊時間從5分鐘改爲10小時幫你? – 2012-09-03 10:27:09