我提供了一个使用FIDO2进行双因素身份验证的web应用程序。最近,我收到报告说,Windows用户每次使用硬件令牌时都必须输入PIN。据我所知,这被认为是用户验证的一种形式。
对我来说,这感觉很傻,因为我已经向用户询问了密码。它有效地将双因素认证转化为三因素认证.
如果FIDO2用于无密码身份验证,这可能更有意义。再说一遍,那不能再被认为是没有密码的了,是吗?
我不想删除相关的安全功能。但我已经收到报告说,人们在智能手机上从FIDO2令牌切换到了TOTP应用程序,而AFAIU在安全性方面被降级了。
用于用户验证的目标用例是什么?一般情况下,不鼓励用户验证双因素身份验证是否合理?
发布于 2023-04-13 21:24:03
安全密钥是否需要PIN取决于您的目标。
如果您希望拥有最大的安全性,例如在某些公司环境中所需的安全性,那么PIN可能会有所帮助。如果PIN不正确,那么安全密钥就不会签名,它将在安全密钥上得到验证。这将防止被盗(或没收,合法或不合法)安全密钥,这可能是您必须考虑的问题,这取决于您的威胁模型。
但是,正如您所提到的,如果人们有其他的因素,比如TOTP,并且他们选择使用TOTP而不是FIDO2安全密钥,那么这肯定不太安全,因为您正在失去对钓鱼的抵抗力。你最好跳过密码让人们在没有密码的情况下使用他们的安全密钥。“气馁”可能是最好的选择。
发布于 2023-04-13 20:06:22
您可以有一个选项,询问是否应该将凭证设置为所需的用户验证。用户验证也有“首选”选项。
密码+ FIDO2 w/ PIN不是三因素.它仍然是两个因素,你只需使用“你知道的东西”两次,它更恰当地称为“多步”。
PIN不同于密码,因为它不让您登录,也不对服务执行身份验证,它将用户身份验证到设备并激活设备,以便通过使用公钥密码系统签名身份验证请求来执行登录。此外,被盗的PIN仍然无法验证,因为实际的签名密钥在设备本身上。“无密码”意味着静态身份验证证书不会发送到服务器进行验证。相反,PIN用于激活安全密钥,因此它可以对身份验证请求进行签名。PIN是不同的,比密码更好!
许多用户更喜欢TOTP,因为对他们来说,使用TOTP可能更容易。而且,即使是TOTP应用程序也有某种用户验证,因为用户在访问应用程序之前,仍然需要用PIN或指纹(锁定屏幕)解锁设备。我同意这仍然是降级,因为它不能防止网络钓鱼或假URL(用户必须自己验证)。
用户验证用例?它省去了密码的需要(不过,只有在设置为“必需”时才需要密码)。即使要求密码登录,如果安全密钥需要一个PIN,就变得无关紧要了。即使密码是知道的,帐户仍然是安全的。用户验证保护不受弱密码的影响(但必须设置为“必需”)。用户验证还防止有人发现周围的安全密钥并使用它,并使用前面提到的弱/可猜测的密码。此外,它还使认证过程“多步”。
我建议,为统一和普遍安全起见,应使用用户验证,并将其设置为“必需”。
https://security.stackexchange.com/questions/269688
复制相似问题