KeePass:使用密钥文件还是常规密码?


17

我正在建立一个KeePass数据库,它提供了使用密钥文件的功能,它说比较安全,因为它可以使用更长,更复杂的密码,但更容易破解,因为您只需要打开密钥文件即可。数据库。我将仅在两台计算机(一台台式机和一台笔记本电脑)上使用密钥文件,哪一种是最佳选择?

请注意,对我来说使用密钥文件绝对更具吸引力,因为我很难记住任何接近随机密码的内容。

Answers:


17

关于KeePass一起使用' key files'的能力。

为了生成分组密码的256位密钥,使用了安全哈希算法SHA-256。该算法将用户提供的用户密钥(由密码和/或密钥文件组成)压缩为256位固定大小的密钥。这种转换是单向的,即,反转哈希函数或找到压缩为相同哈希的第二条消息在计算上是不可行的。

最近发现的针对SHA-1的攻击不会影响SHA-256的安全性。SHA-256 仍然被认为是非常安全的

(还有另一个最近的更新,但是我认为这里不相关)。
就目前而言

密钥派生
如果仅使用密码(即不使用密钥文件),则使用SHA-256对密码加上128位随机盐进行哈希处理以形成最终密钥(但请注意,需要进行一些预处理:防止字典攻击)。随机盐可以防止基于预先计算的哈希的攻击。

当同时使用密码密钥文件时,最终密钥的导出方式如下:SHA-256(SHA-256(密码),密钥文件内容),即主密码的哈希值与密钥文件字节和所得字节连接在一起再次使用SHA-256对字符串进行哈希处理。如果密钥文件不完全包含32个字节(256位),则它们也将使用SHA-256进行哈希处理,以形成256位密钥。然后,上面的公式将更改为:SHA-256(SHA-256(密码),SHA-256(密钥文件内容))。

如果您认为您的密码会更弱一些(并且对您的内存更好),
那么密钥文件是个不错的选择
因此,请同时使用两者。


我将看一下史蒂夫·吉布森(Steve Gibson)对此事的评论:grc.com/sn/sn-182.txt
杰森2009年

@jasonh,哇!您因建议采用两因素安全性而否决了我,并Gibson接受了您从他自己网站上获得的采访参考(是的,我之前听过Leo,很好)。请在此处添加您的观点作为新答案,以便人们受益。
nik

7
是的,我做到了。我知道有第二个因素,但这在这里没有用。如果您是移动用户,则密钥文件实际上将与密码数据库一起保留。如果您失去对数据库的控制,则可能也失去了对密钥文件的控制。正如史蒂夫·吉布森(Steve Gibson)所指出的那样,密钥文件并不能给您带来更多的安全保护(如果有的话)。
杰森2009年

2
第二个因素在贝宝足球的例子中很有用。在这种情况下,您具有物理设备和密码。如果您的密码遭到破坏,则默认情况下没有理由认为您的足球同时丢失。相比之下,当商品是一个密码数据库,而保护机制只是数据库本身旁边的另一个文件时,这有什么用呢?没有。
杰森

2
+1表示使用密钥文件和主密码。因此,即使他们得到了数据库和密钥文件,您也只需要记住一个长密码即可。他们还不能动脑筋,因此可以接受一些酷刑抵抗训练。
Piotr Kula

5

关键是要确保密码的安全,所以这很容易:密码。如果您使用密钥文件而失去对密码数据库的控制,则所有密码都将公开。


4
如果将“密码”存储在某个地方(无论是在便笺上还是作为密钥文件),您总是会处于危险之中。只要您将密码记在脑海里(而且足够复杂),那么您应该会更好。
山姆

1
当同时使用密码 密钥文件时,最终密钥的得出如下:SHA-256(SHA-256(password), key file contents)。仅访问文件是没有用的。但是,了解密码但没有文件内容会使破解密码变得更加困难。并且,该文件还salt为您的密码添加了一个强项。
nik

1

同时使用。将密钥文件保存在闪存驱动器中,并随身携带。但是在台式机上却不行(与在便笺上写密码相同)。我正在使用这种方式来加密HDD分区(使用truecrypt)。因此,如果仍然有人以某种方式获取您的密码,他们也需要密钥文件。


1
只要确保备份了密钥文件以及密码数据库本身即可。如果其中任何一个损坏,则需要重新备份。
Torbjørn

0

对于新手进行密码管理:
仅密码
为什么?
它将您对文件(错误)管理的关注减少了一半,并将其限制为一个文件。
可以使用混合的64个字符的密码来保护KeepassX .kdbx数据库。创建一个长而安全的密码的范围很大。
这有助于强调(头上的)(强)密码是您的主要重点(而不是保存密钥文件的位置等)。
如果您在记住密码时遇到麻烦(当然,我们所有人都这样做),请使用密码管理器(例如KeepassX),您只需要记住一个安全性高的密码即可。


1
这不能回答提出的(非常具体的)问题。
Mokubai

-1

我已选择使用密钥文件。我还创建了一个电子邮件帐户,专门用于存储我的密钥文件(例如,我不希望每次想访问我的电子银行帐户时都随身携带USB闪存)。

如果我使用的计算机不是我的个人计算机,则只需在要使用密钥文件的计算机上登录该电子邮件帐户,然后登录到另一个具有我的.kdbx最新版本的电子邮件帐户。文件。

最后,我下载KeePass并将其安装在PC上,使用密钥和.kdbx以及我的数据库密码,就是这样!

当然,我擦除了所用PC上的.kdbx和密钥文件。


10
我会在许多层面上考虑这种不良的安全做法。
kluka

1
是的,毫无用处,而且肯定是危险的;尤其是有关在“不是我个人的”计算机上简单打开密码文件的部分。嘘。坏坏,因为我无法表达这种做法有多糟糕。我有一台工作用的笔记本电脑随身携带,因此很方便,因为其他人(如IT部门)“维护”它,我什至不相信存储或打开我的个人密码数据库。
nanker

@nanker然后您如何在笔记本电脑上使用个人密码数据库?您是否在USB密钥上同时拥有密钥文件和数据库?
RED_

2
@RED_无论何时看起来似乎多么方便,我都不会在工作笔记本电脑上打开我的个人keepass数据库。对于我的日常工作而言,笔记本电脑的负载非常大,尽管我以前曾尝试确定笔记本电脑上运行的所有服务是什么,但我还无法将它们全部固定下来。因此,我不能也不信任它,无法打开我的keepass DB。我猜叫我偏执狂,但就我的密码安全性而言,我觉得自己处在一个消息灵通,开心的地方。
nanker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.