題:
使用keepass提高安全性
Jeremy French
2012-11-26 16:29:42 UTC
view on stackexchange narkive permalink

我正在使用keepass來保護密碼。我有一個合理的密碼,但是如果有人掌握了該文件,我相信最終他們可以將其強行使用。

我當時也在考慮使用密鑰文件,但是如果有人要竊取我的手機或筆記本電腦,該文件可能會與keepass文件一起存儲,因此不會增加安全性。 (不要與擔心鍵記錄器的這個問題混淆)

我當時正在考慮生成1000個密鑰文件與數據文件一起存儲。只有其中之一才是真正使用過的。證明這將提高安全性,就好像有人要嘗試暴力破解一樣,他們將不得不嘗試密碼/密鑰文件組合。使暴力破解更加困難。

這是正確的假設,還是從加密存儲中推斷出密鑰文件相當容易?

文件訪問時間:)將指示哪個文件是:)
如果您最近訪問過該文件,則只會顯示該文件。讀取也會毀滅性的。內存文件緩存,因此您必須儘早猜測,否則緩存將被污染。
是的,最終他們可能會強行使用它,但是您可能要考慮的是,在這種情況下,最終的度量單位是[數百萬年](http://security.stackexchange.com/questions/8476/how-difficult-to- Crack-keepass-master-password)。
要提高對暴力攻擊的彈性,您可以在數據庫設置的KeePass中增加轉換回合的次數。我認為默認值為6,000發,但是您可以安全地將其增加到5,000,000(在我的計算機上保存數據庫的時間約為1秒)。
您能說明您的意圖嗎?您是否要生成*可以供KeePass使用*的1,000個密鑰文件(我不確定,但我相信KeePass允許多個密鑰文件),還是要在1,000個潛在候選者中隱藏一個(或幾個)密鑰文件?關於您的建議,這裡可能有也可能沒有混淆。
我建議後者。我會盡力澄清。
五 答案:
Thomas Pornin
2012-11-26 21:26:39 UTC
view on stackexchange narkive permalink

在1000個可能的文件中選擇密鑰文件(假設可以做得很好)(例如,選擇不會因訪問時間而洩漏),等同於在密碼末尾添加三位數。添加三位數意味著(記住密碼)要記住三位數,這與記住要使用1000個密鑰文件中的哪個完全相同。

因此,與其使用密鑰文件,不如說是,只需將額外的秘密數據(三位數)添加到您的密碼中即可。這將至少與您的關鍵文件一樣安全(並且可能會更安全些,因為您選擇的文件 可能以某種方式洩漏)並且使用起來不那麼麻煩。

Polynomial
2012-11-26 17:09:55 UTC
view on stackexchange narkive permalink

您正在使用的“大海撈針”方法正是我對TrueCrypt所做的。閃存棒的目錄中大約有600個密鑰文件,其中約有10個被使用。

閃存棒具有硬件只讀開關,可防止操作系統更新“上次訪問” ”元數據。請記住,如果您使用可寫介質進行存儲-訪問的密鑰文件(很可能)會在訪問日期前被贈送。我還通過隨機分配文件上創建/修改/訪問的日期來添加一些額外的“ chaff”,以使所有日期完全不可信。 -1,545,269,050,000,000,000,000個潛在組合,假設順序從600個文件中選擇10個,並且一個密鑰文件只能使用一次。必須嘗試使用每個組合的每個潛在密碼,這使得這種蠻力完全不可行。只要您使用的隨機密鑰文件足夠大(我通常使用4kB或更大的大小),就沒有可行的方法來暴力破解內容。密鑰通常由文件內容的哈希值生成,如果使用多個密鑰文件,則由這些哈希值的組合與密碼的哈希值生成。請注意,“哈希”可能意味著像SHA256這樣的簡單哈希,或者是諸如PBKDF2或bcrypt之類的密鑰派生算法的輸出。因此,沒有密鑰文件就無法計算密鑰。相反,不可能從卷中識別密鑰文件,因為您需要知道密鑰才能推斷出這種情況。

要解決fatfredyy的評論中提到的潛在的高速緩存定時攻擊-這是極不可能的。擬議的攻擊包括讀取各種文件並比較它們的訪問時間。最近讀取的文件應該讀取速度比其他文件快,因為它位於緩存中。但是,從磁盤讀取時間在硬盤上比較嘈雜(從未知當前扇區中尋找時間會使事情變得有趣),並且訪問緩存具有海森堡效應-讀取文件可能會將其加載到緩存中,並可能破壞緩存的完整性就定時攻擊的可能性而言。在採用相對較少的讀取緩存和大量的寫入緩存的SSD上也會發生類似的問題。在某些系統中,您可能會發現順序讀取目錄中的文件將導致以後的文件被預取,從而使定時攻擊更加複雜。沒有從驅動器中物理提取硬件緩存數據,我認為這是不可行的。

AJ Henderson
2012-11-26 20:23:57 UTC
view on stackexchange narkive permalink

縱深防禦很少是一件壞事,但我要挑戰的是,擁有多個可以使用的證書實際上不會增加您的安全性,並且會增加很多開銷。通常,最好的加密機制對於線性工作會成倍地增加難度,即,向密碼添加一個隨機的字母數字/符號字符會使密碼的猜測難度提高80倍以上。以這種速度,在密碼中添加兩個字符會使您難以猜測6400倍,這比通過蠻力攻擊密碼獲得的1000個密鑰文件要難得多。

也就是說,您的方法確實如果他們嘗試通過密鑰文件本身中發現的某些弱點直接攻擊密鑰文件,則仍然具有優勢,但是,如果在密鑰存儲中發現瞭如此嚴重的問題,則有可能考慮將密鑰存儲整體上失效,如果您想要維持足夠高的安全性,以考慮破壞文件加密威脅的時間。

null
2012-11-26 23:26:13 UTC
view on stackexchange narkive permalink

為什麼不將密鑰文件存儲在USB密鑰上?如果有人偷了您的筆記本電腦,他們仍然需要鑰匙。如果這樣做,您將獲得兩因素驗證。

一個很好的建議,但我在這裡看不到任何實際上可以解決提出的問題的東西。 OP似乎擔心,如果授予他們對加密存儲和密鑰文件的訪問權限(例如,如果加密的筆記本電腦與具有其密鑰的USB驅動器放在同一個袋子中,並且袋子被盜),攻擊者可能能夠根據來自加密卷的信息來推斷密鑰文件。
user5065
2012-11-28 02:32:53 UTC
view on stackexchange narkive permalink

例如,如果您使用加密的主目錄並採取其他本地安全措施,則可以完全拒絕攻擊者對keepass數據庫的訪問。如果您忽略了本地安全性,那麼有人可以安裝鍵盤記錄器(軟件或硬件)或rootkit,該鍵盤記錄器會告訴他們您正在使用哪個密鑰文件以及可能的主密碼。



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