本文讲的是下一代双因子身份认证什么样?,暴力破解攻击可被各种形式的双因子身份认证缓解,比如基于时间的令牌、短信和使用手机的身份认证。如今,新的竞争者出现了:通用双因子身份认证(U2F)。
U2F是线上快速身份认证(FIDO)联盟支持的一个身份认证标准。FIDO联盟成员涵盖了技术产业顶级公司和厂商。
U2F协议通过一键激活的USB令牌设备实现。U2F结合了质询-响应身份认证和公钥加密。服务器向客户端Web浏览器发送质询请求,浏览器再向USB设备发出请求。
该USB设备随即亮灯,敦促用户按下按钮激活设备。一旦被激活,设备便会签署质询,向浏览器返回被签名的数据,再交回给服务器。
U2F机制以多种方式提供更强壮的安全。顶级制造商透露,该设备主打硬件随机数产生功能,用于在注册阶段创建随机数。注册过程中,服务器会向设备提供一个“AppId”。然后,该随机数和AppId,成为使用设备中所存私钥的散列消息认证函数(HMAC)的输入参数。
HMAC的输出,是特定于该个人服务的私钥。该新产生的私钥随后与AppId一起,再行HMAC,其产生的MAC与上述随机数组合形成“密钥句柄”。一个公钥便经由该新私钥产生,并连同该密钥句柄被返回至服务器。
通过身份认证,该服务向设备发送AppId、密钥句柄和质询,设备使用这些数据来产生同样的私钥以签署质询。然后,服务器与公钥比对被签署的质询,确保是经由正确的密钥签署的。令牌也有计数器,防止重放攻击——服务器需认证计数器数值大于之前收到的数字。
这就是确保U2F免遭网络钓鱼的过程。因为攻击者必须知道AppId和密钥句柄才可以成功冒充服务。另外,即便攻击者入侵了不同服务的多个身份认证数据库,因为每个服务都创建唯一的密钥,攻击者也就无法关联设备用户了。这种做法可有效减小数据泄露漏洞的影响,比如心脏滴血、云滴血和行锤击(Rowhammer)。
厂商还写了设备认证证书,可用于认证令牌生产厂商。该证书由数字证书认证机构签发,包含厂商和模型信息。
U2F为基于时间的令牌提供了几个优势。不需要电池(除了基于蓝牙的设备),不会因时间漂移而同步失败。私钥存储在无法抽取的设备上,不会被克隆。
U2F加密狗价格普遍在10-20美元之间,有特殊安全需求的人士,也可以自己制作,成本大约5美元。DIY方式让用户可以对私钥和认证证书生成拥有控制权。
仅使用USB令牌的方式只针对计算机有效,限制了其在移动设备上的使用。市场上也有一些U2F设备除USB外还用近场通讯(NFC)或蓝牙。对这些令牌仅有的担忧,就是遗失。因此,建议多注册几个以备不时之需。
目前,谷歌Chrome和Opera都支持U2F。火狐浏览器需要装插件才支持U2F。测试中发现,有些服务器端实现只支持Chrome。
对U2F标准的采纳,加速了很多使用它的Web服务,比如Facebook、整个谷歌平台、Dropbox和GitHub。U2F还能以 Linux Pam 模块的形式实现。
U2F当然不能解决所有网络安全问题,但肯定是在正确的方向上迈进。