我沒有任何安全方面的經驗或科學知識,我只是想問一問這是否可行,因為我對此感興趣。
如果我加密數據並且每個密碼都將其解密怎麼辦,但是只有正確的登錄帳戶才不會造成毫無意義的數據混亂?登錄可以做到這一點:錯誤的登錄數據會導致虛假的虛擬帳戶,只有正確的登錄詳細信息才能將您定向到正確的帳戶。
將“這不是一種更好的加密方法,因為您不能只是嘗試使用密碼,而必須查看結果以查看是否正確?
我沒有任何安全方面的經驗或科學知識,我只是想問一問這是否可行,因為我對此感興趣。
如果我加密數據並且每個密碼都將其解密怎麼辦,但是只有正確的登錄帳戶才不會造成毫無意義的數據混亂?登錄可以做到這一點:錯誤的登錄數據會導致虛假的虛擬帳戶,只有正確的登錄詳細信息才能將您定向到正確的帳戶。
將“這不是一種更好的加密方法,因為您不能只是嘗試使用密碼,而必須查看結果以查看是否正確?
答案始終取決於您的威脅模型。安全總是編織在安全性和可用性之間的平衡中。您的方法會給試圖闖入該帳戶的黑客帶來不便,但也會給僅輸入密碼錯誤的用戶帶來不便。如果偽造帳戶足以欺騙攻擊者,那麼它也可能足以欺騙有效用戶。這可能非常糟糕。
這在極高風險的環境中可能是理想的。如果您必須在互聯網上公開存儲核秘密,那麼使每個失敗的密碼都將導致您進入一個可以訪問偽造文件的帳戶,而該文件實際上並沒有洩露國家秘密。但是,在大多數情況下,這是不必要的。
您還必須考慮其他選擇。一種非常流行的方法是在N次嘗試之後將帳戶鎖定,這基本上使所有蠻力嘗試都停止了,並具有大多數用戶願意接受的可用性行為。
用誤報來欺騙攻擊者並不是一個壞主意,這也不是新鮮事。以下內容可能會讓您感興趣。
CA技術已獲得稱為“ 密碼偽裝”的技術的專利。
公鑰加密的一個敏感點是如何保護私鑰。我們概述了一種使用加密偽裝保護私鑰的方法。具體來說,我們不會使用太長的密碼來進行詳盡的攻擊,以加密私鑰。取而代之的是,我們對它進行加密,以便只有一個密碼可以正確地對其進行解密,但是許多密碼可以對它進行解密,以產生看起來足夠有效以欺騙攻擊者的密鑰。對於某些應用程序,此方法可以像智能卡一樣保護私鑰免受字典攻擊,但完全在軟件中。
這與您所說的不完全相同(它們是保護密鑰,而不是訪問密鑰),但概念是相同的。
在1984年,Michael Crichton(Andromeda Strain和許多人的作者)其他人)寫了一個短篇小說,圍繞一個黑客,他認為他正在竊取最高機密文件。他猜出了正確的密碼,但是對於他來說,計算機實際上並不是通過查看他的密碼,而是通過他使用鍵盤和鼠標的速度和方式對他進行身份驗證,這是一種生物特徵認證機制。他認證失敗。但是計算機沒有告訴他失敗了,而是向他提供了一份偽造的秘密文件副本,然後他下載並試圖在黑市上出售。
再次,這與您要問的不完全相同,但是(無論如何,在小說中)它證明了使用誤報來阻止攻擊。
要給您一個直接的答案,是,可能會降低蠻力攻擊的有效性,並且可以按照您建議的方式進行,但不應該這樣做。僅通過在每次失敗嘗試和下一次猜測之間實施時間延遲,就可以得到非常相似的結果。同樣,(僅就您所知)非常精確和相似的技術已經針對此具體事物進行了設計和實現。諸如 Canary,Honey Pots和Honey Docs之類的產品都提供類似的東西,例如假環境,設備,服務器,帳戶等。
讓我們假設您的系統將實際的蠻力從解密前四個字節(實際上是第一個大得多的塊,但隨便什麼)轉變為必須解密整個字節。 4 GB的加密數據,使暴力破解的嘗試速度降低了大約十億倍或2 ^ 30倍。
現在,對您來說,這似乎有很大的不同,但實際上,與其他替代方法相比,該效果是 微小 。在密碼學世界中,僅僅是“慢十億倍”的規模就沒有那麼多了。如果只是增加額外的30位到加密密鑰長度上做同樣的事情,並增加密鑰大小,例如為什麼增加複雜性而又可能無法實現預期的速度降低或引入新的錯誤,那又何必呢?從128位(如果還不夠的話)到256位會提供無與倫比的效果嗎?
大多數人已經說過,我只想提供另一種觀點。
想像一下,您將嘗試使用這種技術來保護房屋。如果入侵者試圖打開門一段時間,您可以讓入侵者進入地下室。
問題是,即使在那兒也要入侵者嗎?入侵者一定會意識到,一段時間後他沒有得到想要的東西,並試圖從那兒走得更遠。而且您必須為準備好的酒窖保持額外的安全性。
因此,從某種意義上講,您只能增加自己的工作量來愚弄(無經驗的)攻擊者一段時間。
聽起來像您在談論加密環境中的“可否認加密”或“合理可否認性”形式;也就是,另一種機密,它解密為可信但非真實的明文。有關詳細信息,請參見 https://en.wikipedia.org/wiki/Deniable_encryption。
但是嚴格來說,如果某人有能力對您的密文進行暴力破解,他們將有可能發現所有合理的明文,然後,基於他們對上下文已有的任何了解,他們將能夠確定哪個明文是真實的原始明文。第一部分可以通過偽AI來完成,但是第二部分仍然需要一個人。
鍵的問題在於它們以數據而不是運行代碼的形式存在。即使使用CA和Crichton示例,也會發生帶外過程,該過程會為您進行每次解密嘗試提供合理的響應。從數學上講,這在密文和暴力破解的嘗試上是不可能的。
正如其他人所說,對於遠程訪問,可以進行簡單的鎖定和延遲。
對於密碼,您擁有的是單向哈希。要驗證密碼,請重新哈希它,然後比較兩個哈希。擁有多個簡單的密碼才能針對單個哈希產生有效的匹配被認為是不希望的:這意味著哈希很弱,並且具有“衝突”。
因此,您很可能對加密驅動器感興趣。 / p>
您所描述的-充滿偽造數據的偽造“外部”驅動器可以保護加密的“內部”驅動器-是可能的,並且已經在truecrypt中完成(可悲的是此後就死了)。 >
以下是我自己的天真理解,有些或全部可能是錯誤的。我從未使用過此功能,但認為它很有趣。
Truecrypt允許您指定第二個密碼,該密碼將解鎖加密驅動器的“層”(可能僅限於一個外部容器,我忘記)。這有明顯的問題;外部驅動器不知道內部驅動器,內部驅動器存儲在加密的外部驅動器的“空白空間”中。因此,外部驅動器的更改可能會破壞內部驅動器。此外,訪問加密驅動器時,內部驅動器上的日期戳不會自動更新。因此,具有您的計算機訪問權限的人可以知道您上次修改加密驅動器文件的時間,並且可以將這些日期戳與加密驅動器上的最後修改時間進行比較,並立即得知您最近使用它,因此
但是,主意是,您讓外部驅動器具有易於猜測的密碼(例如password123),在其中放置一些含糊的秘密內容,這會使您的對手認為他們已經進入您的加密驅動器。
少做些什麼-通過檢查解密驅動器上的“魔術字符串”(在任何實際驅動器上都是必需的),只是返回垃圾(等於無格式驅動器的隨機噪聲)的任何東西都可以輕鬆解決,但是
與加密文檔相同:大多數文件類型都有魔術字符串,因此,如果您知道包含哪種文件類型,則可以對所有已完成的加擾進行暴力查找以找到產生魔術字符串的所有方式。
,這並不意味著一個壞主意-如果密碼字符串是“ jfif”,則只有大約1600萬個密碼中的一個會生成該密碼字符串。但是,如果密鑰長度是2 ^ 1024,那麼他們只會將其減少到2 ^ 1000,這當然可以使破解速度提高1600萬倍,但從字面上來看,這將永遠是永恆的。
偶然的密碼輸入錯誤不會使人認為他們已經解密了該文件,但是僅僅尋找魔術字符串是不夠的。
類似的事情實際上是在某些版本的RAR壓縮軟件中完成的(在早期,不確定是否仍然是這樣)。輸入的任何密碼都會解密加密的檔案,但是錯誤的密碼會導致輸出亂碼。這樣做是為了防止暴力破解密碼,這在當時對於ZIP存檔來說是可行的,該存檔立即返回“錯誤密碼”錯誤。