我刚刚在密码管理器中读到了一些关于FIDO支持(或缺乏FIDO支持)的文章,想看看我的理解是否正确。
我对FIDO (v1)的理解是,设备包含一个永远不会从设备中泄露出来的秘密,它所需要支持的就是基于这个秘密派生的键盘的数字签名。粗略地说,当您登录到example.com时,该设备根据某个KDF(秘密,"example.com")计算一个特定于站点的键区,然后用它签名服务器的挑战。
换句话说,FIDO令牌不需要作为秘密密钥的来源,这意味着在脱机/独立的密码管理器中使用它是没有意义的。毕竟,您希望使用没有存储在数据库中或数据库旁边的密钥对密码数据库进行加密,这就是为什么要设置主密码以从中派生密钥的原因。FIDO设备允许您证明拥有密钥,但由于它(出于实际目的)“零知识”,因此无法打开加密的数据库。
(相比之下,提供其他模式和FIDO的yubikeys与密码管理器一起使用确实是有意义的,因为它们可以保存您的密钥,并在您需要打开密码管理器时导出它。)
例如,pwsafe+yubikey存在,但pwsafe+generic FIDO不太可能很快发生。(我还没有详细检查过FIDO2标准,也许这有一种模式。)
但是你读到了像管理员密码管理器启用FIDO支持这样的东西。这是如何工作的-秘密是否以某种形式存储在他们的服务器上,只有在您成功地使用FIDO进行身份验证时才向您发布?
发布于 2019-09-01 16:52:27
很抱歉打破了你的泡泡,其实这里只有一种Yubikey模式,对PW经理来说是完全有意义的,那就是智能卡模式,但是基本上没有真正使用它的passowrd管理器。
在线密码管理器通常使用Yubi-OTP,因为它完全兼容,只需要一个USB插槽和基本键盘驱动程序(以及一个不影响modhex的键盘布局),但也有一些使用U2F仅仅是因为
离线密码管理器通常与HMAC路一起使用,这实际上就是HMAC(data, secret),根据密码管理器的详细信息,它们使用以下两种方式之一:
HMAC(some static value,secret)的结果作为解密密钥的一部分,这确实有效,但显然是不好的,因为一次捕获会导致它的妥协。这两种方法都不是理想的,因为只看到一次解密就会破坏数据库的整个生命周期,除非不时地进行轮转(对1的挑战,2的秘密)。
考虑到yubikeys是如何在PW-DBs上工作的,我们基本上可以看到U2F如何在pw数据库中工作。
唯一真正的加密方法是Smartcard和/或PGP模式,在每次保存时都使用旋转对称密钥,因此实际上需要私钥来解密数据库,私钥仅在yubikey中。
https://security.stackexchange.com/questions/191377
复制相似问题