身份验证器应用程序是一种多因素身份验证 (MFA)
概览
公众对生物识别技术及其在保护我们的私人信息方面的使用存在误解。 人们普遍认为生物识别技术(例如 Touch ID 或 Face ID)可以完全取代传统密码。 然而,事实并非如此。 如此处所述,生物识别技术仅作为用户的便利功能,或作为身份验证的第二个因素。
我们仍然需要密码
我们日常使用的每个软件、云应用程序或网站都需要创建一个帐户。 通常,这意味着提供用户名(或电子邮件)和密码。 许多服务还提供“使用 Google 登录”或“使用 Facebook 登录”的选项,这些选项使用 OAuth 或 OpenID Connect 协议将身份验证委托给受信任的第三方身份信息提供商。 这些身份提供程序不仅需要用户名和密码,通常还要求进行第二因素身份验证(例如,通过短信或同等方式提供一次性密码)。 在商业领域,有大量广泛使用的身份提供商,例如 Okta、Azure 和 JumpCloud,它们使用不同的协议 (SAML 2.0) 来提供单点登录 (SSO) 功能。 同样,这些提供商中的每一个最终都需要在登录其系统时使用用户名和密码。
生物识别技术如何在移动设备上使用
我们以 iOS 为例。 当您激活 Touch ID 功能时,您的指纹数据将由 Apple 存储在设备的芯片组中,并且软件开发人员无法以任何方式获取。 希望利用 Touch ID 的软件开发人员只需要求操作系统提示您输入指纹,然后等待“通过”或“失败”。 如果是“通过”,则可以检索开发人员存储在钥匙串中的一些数据(例如加密密钥或密码)。 这可用于绕过应用程序的密码屏幕并自动登录用户。 使用此过程只是为用户提供了便利,不需要他们输入密码。 但是,钥匙串和应用程序之间仍然需要传递密码。
现在,如果特定应用程序的密码强度很弱(例如 123456)怎么办? 使用生物识别技术从钥匙串中提取密码并将其传递给应用程序,这对加强安全性毫无帮助。 如果应用程序允许此弱密码,则可以假设世界另一端的攻击者可以猜测您的密码并登录到同一应用程序。
利用生物识别技术进行登录的应用程序只是将您的密码存储在设备的钥匙串或安全元件中。 生物识别数据永远不会直接转换为密码或密钥。 它只能用作“通过”或“失败”操作,以从硬件中检索该应用程序先前存储的信息。 因此,生物识别技术只是提供一种便利方式,而不是增加安全性。
众所周知,苹果和谷歌等硬件制造商永远不会向网站或应用程序开发商提供用于识别用户身份的实际生物识别数据。 这样做会泄露用户的私人信息,并使生物识别数据面临潜在的盗窃或黑客攻击。
为什么最终总是需要密码
需要密码的第一个主要原因是密码可以被更改。 如果您的服务密码意外泄露或被攻击者窃取,您只需在目标站点上重置密码。 但是,您无法重置指纹或面部信息。
其次,只有强大而唯一的密码才能抵御暴力攻击,因为它只存在于您的大脑(或加密的密码管理器)中。
最后,对于最安全的产品,您的密码数据是加密的。加密需要密码索引来解密存储的信息。 密钥只能从每次以完全相同的方式输入的强密码中派生。 加密密钥不能直接从指纹导出。 这是因为操作系统不会向开发人员提供原始生物识别数据,这样做可能会导致将您的指纹泄露给全世界。 即使原始生物识别数据可供软件开发人员使用,也无法将其用作加密密钥。 解密要么成功,要么失败——密钥不得有任何偏差,即使是一个 0 或 1。 众所周知,生物识别技术从来都不是精确的,“通过”或“失败”只是一种估计。 解密永远无法基于估计来进行。
只有密码无懈可击,您的账户才足够安全
事实上,在 iOS 上,输入设备密码即可绕过 Touch ID 和 Face ID 功能。 对于大多数人来说,这是一个 4 或 6 位数字。 Apple 和 Android 强制用户不断输入此代码作为后备机制。 因此,如果您的设备密码泄露,攻击者就可以登录您的设备并建立新的指纹或重置您的面部 ID。 这可能会让许多用户感到惊讶,鼓励您在设备上设置更强的字母数字密码。 寻找一款允许客户选择不使用 Touch ID 并限制使用生物识别技术的产品非常重要。
加密至关重要
寻找一款零知识产品。这意味着您存储在产品中的信息仅在设备级别进行加密和解密 – 使用从您的主密码派生的加密密钥。
如果网站、应用程序或服务允许您无需密码即可登录,或者该服务不执行客户端解密,您应该意识到,这意味着您的信息完全公开地存储在他们的服务器上。 如果该公司的员工想要查看您的信息,他们完全有能力这样做。 这也意味着,如果该公司的软件存在漏洞,理论上您的信息可能会在互联网上公开曝光。
这对您来说可能并不重要,具体取决于服务存储的信息类型。 但是,对于机密文件、密码和其他秘密信息来说,这可能具有毁灭性。 私人和机密信息应在设备级别进行加密,而这最终只能通过从您大脑中其他人不知道的东西(密码!)派生的加密密钥来实现。
搭建一款零知识产品是极其困难的。 这就是为什么大多数公司不这样做。 对于用户和企业来说,重要的是了解您正在存储的是什么信息,以及对保护您的信息的公司的满意程度。
关于生物识别技术,主要的要点是生物识别技术无法直接加密您的信息。 因此,任何没有密码保护并且完全依赖生物识别进行访问的服务都不可能完全安全可靠。
生物识别技术作为身份验证的第二个因素
作为登录设备的第二个因素,生物识别技术对于大多数应用程序都很宝贵,同时可保持最高级别的安全性。 例如,在电脑上输入密码或使用密码管理器登录网站或应用程序后,系统可能会提示您在移动设备上使用指纹或面部识别进行身份验证。
这种类型的工作流程需要应用程序或网站开发人员与支持生物识别设备的移动应用程序或第三方身份验证服务集成。 为了正确地将生物识别身份验证作为第二因素关联起来,必须有注册功能和后端在应用程序和后端服务器之间安全地传递第二因素信息。
因此,当使用生物识别技术作为第二个因素时,保护您的信息的最重要因素是生物识别设备和后端服务器之间的通信通道。 试图闯入受生物识别设备保护的帐户的黑客将花时间试图欺骗服务器对用户进行身份验证,而不是试图闯入指纹读取器。 因此,您对应用程序或软件提供商的信任不仅基于他们具有生物识别身份验证的事实,还基于他们的实施方法。
摘要
生物识别技术逐渐成为主流,但公众必须了解它们提供的安全性与所获得的便利之间的差异。 每个个人用户和组织都有不同程度的风险规避。 生物识别技术本身无法提供安全性,强大的密码管理策略对于防止网络攻击和数据盗窃至关重要。
包含生物识别身份验证的移动设备和台式计算机只是提供了一种将密码从物理硬件传输到您正在登录的应用程序的便捷方法。 即使您使用生物识别设备,使用弱密码或对多个应用程序和网站使用相同密码仍然会导致自己面临黑客攻击和数据盗窃风险。 然而,作为第二个因素,当软件提供商安全实施时,生物识别技术可以提供方便且有价值的安全机制。
Craig Lurey
Keeper Security 首席技术官