与传统的 2 因素相比,彭博身份验证系统有什么优势?
免责声明:我以前从未使用过这些终端,我对您所描述的系统的唯一了解就是描述本身。
身份验证的工作原理
所以这就是你实际在做的——
- 您登录网站。
- 您向指纹读取器提供生物特征数据
- 该网站为指纹识别器提供了一些“挑战”价值
- 指纹读取器将其接收到的生物特征数据与网站提供的质询数据相结合,并输出特定于您的指纹和一次性质询的特定组合的结果
- 然后网站读取该验证码并验证注册用户是终端前面的用户
什么被保护
这项技术相当有效,但它不能提供您可能认为的保护。它不是为了保护你,而是为了保护彭博社。
有趣的是,这项技术不会保护您免受网络钓鱼、欺诈或 MITM 攻击。但它保护彭博免受盗版。
众所周知,彭博终端非常昂贵,通常一个终端不仅对支付它的人非常有用,而且通常整个办公室都可以从访问中受益。因此,与您的直接同事“分享”您的订阅是有一定的动机的。布隆伯格不想要这个。
指纹读取器的存在是为了确保除了您之外没有人可以使用您的登录信息。可以共享两因素代币;手指不行。但指纹读取器需要硬件访问权限,而网站则没有。因此,指纹读取器旨在输出您只需在网站中输入的代码。您(彭博社)不想每次都输出相同的代码;所以你需要把它和一些东西混合起来。
您可以使用一些独立变化的数据,例如当前时间(例如,与 Google Authenticator 等 TOTP 系统相同),但您(彭博社)希望确保密钥不是由楼下的某个人生成的。您想确保付费用户正坐在那个座位上看着那个屏幕。因此,您向指纹读取器发送一个唯一的质询码以供其响应。
请注意,只有用户正在被验证;不是服务器,也不是连接。所以在这个方案中,中间人攻击工作得很好。理想情况下,服务器可以使用 TLS 进行身份验证,但由于 TLS 验证工件不是身份验证方案的一部分,因此身份验证根本不依赖于该验证。
因此,当您的保护很重要时,这种机制几乎没有帮助。它并不比基于 OTP 的 2 步验证系统更好,例如您使用 SMS、RSA SecurID 或 Google Authenticator 获得的——但它的成本要高得多。如果您的保护很重要,那么目前您无法比 Google 创建的Yubico U2F密钥做得更好,但可以在任何接受它的网站上使用(包括现在的Github!)。
通常,这种方法用于实现“所见即所得”,欧洲银行经常采用这一原则来阻止浏览器中的人攻击。
在将其用于在线货币交易时,该技术本身就显示出其优势。一个例子更清楚地说明了这一点。
想象一下,攻击者完全控制了浏览器,银行采用了双因素授权,既用于验证登录,也用于验证交易。受害者希望将 500 欧元转入银行账户 556611,并准备使用他/她的 OTP 生成器验证交易。然而,攻击者完全控制了浏览器,并将交易修改为 50000 欧元,该交易将被连接到银行账户 447700。受害者没有看到这一点,因为攻击者修改了浏览器,使其仍然显示原始交易。现在,受害者输入了 OTP(可能还有其他凭据,这与这次攻击无关)。交易被授权,受害者无法知道他/她是授权原始交易还是修改后的交易。
乍一看,在 OTP 的生成中包含交易信息也可能是一种解决方案。但是,由于攻击者可能会向服务器发送错误的交易信息,我们仍然无法信任在服务器上合法计算的 OTP。
解决上述问题的唯一方法是确保受害者有某种方法可以验证转账金额和银行帐号。此验证需要在带外进行,因为我们假设受害者的 PC 已完全受到威胁(包括浏览器)。这就是我们得到“所见即所得”的地方:在上面的示例中,受害者没有签署他/她所看到的内容。这对于货币交易来说是一个巨大的问题。
因此,我们需要一些巧妙的方法,银行客户可以通过它来确认付款细节,而不会过多地影响用户友好性。简单的方法是这样的:
- 让客户输入付款详情(金额、账户、...)
- 根据金额/帐户详细信息计算 OTP(也基于挑战,这是欧洲某些银行的标准 OTP 生成方法)
- 客户使用 PIN 码激活 OTP 生成器(在您的情况下:使用他/她的指纹)
- 让客户在 OTP 生成器中输入所有上述信息(这是:挑战、金额、帐户详细信息以及可能的其他信息)
- 生成器显示响应,交易被授权
如您所见,上述方法对用户来说非常繁琐:他们必须在 OTP 生成器中输入大量信息(通常是离线设备,或者现在可能是智能手机)。为了使此过程更加用户友好,此信息可能包含在图像中,例如:
- 一个二维码
- 一个“不断变化的”条形码,例如显示在本文末尾的图像中
- Cronto图像_
过程很简单。用户使用从银行(或他们的智能手机)收到的阅读器读取上述代码之一。读者无需输入所需信息(挑战/金额/帐户),而是从图像中读取此信息,并将其呈现给用户,然后用户必须确认这一点。例如,读者会问“您要转账 500 欧元吗?”。然后,在阅读器上生成的响应将基于这 500 欧元。请注意,攻击者完全有可能将 500 欧元更改为 50000 欧元,但是当读者询问客户是否希望授权此交易时,客户将(希望)永远不要按“确定”。这是最好的所见即所得。
回答
在您的示例中,必须首先使用指纹激活阅读器。与使用 PIN 激活阅读器相比,这是一种较新的方法,但对 WYSIWYS 方法的其余部分没有影响。现在,要实际回答您的问题。我不知道彭博系统的细节,其中“图像”也可能只包含加快挑战-响应登录的挑战(用户不必在阅读器上输入挑战)。然而,在大多数实现中,这种流程将用于实现所见即所得。对于登录表单,与双因素身份验证相比,这通常不会增加任何安全性(因为除了用户名/挑战之外没有其他信息可以更改)。但是,用户更容易为他们的登录和交易签名使用相同的身份验证流程。
附录:
我在这个答案中谈到的光学条形码(请不要说这个条形码会不断变化,因为静态条形码无法保存所有必需的信息)。要读取这个条形码,需要一个特殊的阅读器,它需要几秒钟来阅读变化的条形码。

为了进行类比,请考虑一些网站如何通过要求您重新输入密码来关注配置文件设置的更改。这是为了防止您的身份验证 cookie 令牌被复制并用于访问帐户的情况。在浏览器本身被破坏或客户端和服务器之间的整个交易是明文的情况下,将损害最小化的行动不是重新建立加密通道,而是绑定在每笔交易中都有一个已建立的经过身份验证的端点,这就是为什么您必须通过使用密码、带外通信等方式提供某种秘密的原因。,这与单笔交易有关。通常这不是对所有动作都完成的,
指纹模块只有在读取机本身不受篡改的情况下才能工作。除此之外,它就像输入密码一样透明。手机上的指纹模块唯一的好处是通过在您身后安装摄像头来发现您的滑动模式,从而阻止窥探者访问您的设备。
我同意终端具有双向功能的观察结果,非常有利于彭博社,以确保它和终端之间只存在一个用户。
