为了尊重2FA的理念,在认证的第一个因素(登录/密码)之后,我们需要请求第二个认证因素。
但是对于移动应用程序,我想我们不能使用SMS OTP、email OTP或TOTP (与另一个移动应用一起),因为所有这些技术都可以从同一台手机上访问吗?
因此,对于移动应用程序,唯一的第二个授权因素是一个单独的设备(例如: Yubikey,Nitrokey,等等)?
如果我们请求一些我们知道的东西(userID +十六进制密码)和我们拥有的东西(只有这个移动设备),这就足够了吗?设备上安装了一个ECDSA私钥,服务器可以检查它是否是具有签名的好移动设备。
发布于 2017-11-06 15:11:42
这完全取决于你想要对付的威胁。您建议的威胁缓解(需要一个单独的设备)适用于有人未经授权访问该设备的威胁。但这是多余的,为你声称的威胁,有人获得未经授权访问用户的帐户通过应用程序。
在您声明的威胁场景中,未经授权的参与者安装应用程序并使用受害者的凭据登录。这可以通过在授权用户的授权设备上使用MFA进程来缓解。
有不同的方法可以做到这一点:发送OTP代码,本地TOTP生成应用程序,或者有一个进程来注册和授权设备。
授权该设备是MFA方法的“你拥有的”形式。
您必须考虑的只有一件事:注册该设备的进程的安全性。
如果攻击者拥有用户的凭据,他们是否也可以注册未经授权的设备?如果是这样的话,那么您需要考虑这个新的威胁场景。
在这里,拥有一个完全独立的身份验证过程是非常有用的,就像电话上的TOTP应用程序一样。通过这种方式,攻击者需要服务的凭据和TOTP服务的凭据。
https://security.stackexchange.com/questions/172891
复制相似问题