2013-11-04 43 views
0

我保護某些字符串具有以下功能:是否有可能對機器密鑰加密進行明文攻擊?

public static string ProtectString(string input) 
{ 
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 
    return enc.GetString(MachineKey.Protect(enc.GetBytes(input), null)); 
} 

如果我現在加密的字符串,攻擊者現在可能(即一個用戶名),是他能夠提取與加密和解密值機鍵?

+0

如果你們能夠依賴於加密算法 – Shai

+0

@Shai相當蹩腳算法。 – Aron

+0

@Aron,多協議( - : – Shai

回答

1

我做了一些研究和發現,那所使用的算法就是其中的一個:DES, 3DES or AES。而且這些算法對純文本攻擊非常有抵抗力。

基於克里斯的評論,DES是非常弱的,所以如果可能的選擇AES。

但是,這不是理由,贈與純文本值的攻擊者:)

+0

'DES'現在極其虛弱,有一臺電腦可以在3天左右破解它,'3DES'仍然可以接受,但低於標準,'AES'是最好的,'256'位模式是行業標準,只是在這裏添加額外的信息:) – christopher

-1

如果你給黑客密文和明文,這是所有他需要暴力破解加密密鑰。這和一個高性能計算機的農場。

真的很少有一個理由發送的同時明文和純文本。只是不要這樣做。如果要使明文防篡改,請將明文與HMAC一起傳遞。

+0

這是不正確的。 OP所描述的攻擊被稱爲「[已知明文攻擊](http://en.wikipedia.org/wiki/Known-plaintext_attack)」,大多數流行的現代加密 - algorithoms不易受它影響。你所說的是一個簡單的「[蠻力攻擊](http://en.wikipedia.org/wiki/Brute-force_attack)」,如果你只是蠻橫強制你的密鑰,你不需要明文去做吧。對於除正確密鑰之外的所有密鑰,密文應解密爲亂碼。 –

+0

當我說「這是一個高性能計算機的農場」時,你錯位了我的臉頰。也就是說,還有其他明文攻擊(例如自適應/選擇明文),可能會導致問題。一個聰明的黑客會多次註冊該應用程序,並提供通用密碼作爲用戶名 - 隨後他將能夠看到那些加密並識別其他用戶使用通用密碼的內容。最安全的做法是不要以明文和密文明顯配對的方式提供。 –

相關問題