FIDO协议共分为两大类:
U2F和
UAF。对应的也有两套规范(
UAF Specifications,
U2F Specifications)
UAF: Universal Authentication Framework protocal
支持指纹,语音,虹膜,脸部识别等生物身份识别方式。无需用户密码介入,直接进行验证交易。用户在注册阶段,根据服务器支持的本地验证方式,选择一种验证方式,如指纹识别,人脸识别,语音识别等等,服务器也可以保留密码验证方式,将密码和生物相结合,增强账户安全性。
U2F: Universal Second Factor(U2F)protocal
U2F类似于国内的二代U盾的保护机制,使用双因子(密码和能与用户交互的设备)保护用户账户个隐私。当进行验证时,服务器在合适的时候,提示用户插入设备并进行按键操作,加密设备对数据签名,发送给服务器,服务器做验证,如果验证成功,用户则可登录成功。由于有了第二因子(加密设备)的保护,用户可以选择不设置密码或者使用一串简单易记的4位密码。
椭圆曲线数字签名算法(ECDSA)
ECDSA是使用椭圆曲线对 数字签名(DSA)的模拟
ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。他在1998年已经为ISO所接受,并且包含它的一些标准亦在ISO的考虑之中。与普通的离散对数问题和大数分解问题不同,椭圆曲线离散对数问题。没有亚指数时间的解决方法。
因此椭圆曲线密码的单位比特强度要高于其他公钥体制。
DSA称为数字签名标准。它的安全性基于素域上的离散对数问题。
数字签名
数字签名的目的是 提供一个手写签名的数字化副本。 签名是一个依赖于签名者私钥和被签名一段消息的比特串。
签名必须是可验证的,即如果对签名的真实性存在疑问,必须由一个中立的第三方做出公正的裁决,并且无需知道签名者的私钥。对签名的抵赖以及伪造签名应该能被发现。
非对称”即用户的密钥对各不相同。用户的私钥用于签名,其他用户用他的公钥来检验签名的真实性。摘要是指对一段消息先用哈希函数进行摘要计算,而后再对消息摘要进行签名,而不是消息。
数字签名算法
DSA于1991年NIST提出,并在FIPS186中得到确认。DSA可以看做ElGamal签名方案的一个变形。其安全性建立在素域上的离散对数的困难性之上。
UAF: Universal Authentication Framework protocal
支持指纹,语音,虹膜,脸部识别等生物身份识别方式。无需用户密码介入,直接进行验证交易。用户在注册阶段,根据服务器支持的本地验证方式,选择一种验证方式,如指纹识别,人脸识别,语音识别等等,服务器也可以保留密码验证方式,将密码和生物相结合,增强账户安全性。
U2F: Universal Second Factor(U2F)protocal
U2F类似于国内的二代U盾的保护机制,使用双因子(密码和能与用户交互的设备)保护用户账户个隐私。当进行验证时,服务器在合适的时候,提示用户插入设备并进行按键操作,加密设备对数据签名,发送给服务器,服务器做验证,如果验证成功,用户则可登录成功。由于有了第二因子(加密设备)的保护,用户可以选择不设置密码或者使用一串简单易记的4位密码。
安全性:在使用传统的验证方法时,系统需要从客户端发送密码到远程服务器的密码库中进行比对,这样就存在密码被拦截和破解的风险。对远程服务器而言,一旦超级管理员的账号被盗,用户的密码辉被直接或间接获取。破取者便能使用用户信息登陆服务器进行恶意操作。如果服务器使用了U2F,服务器被破解者攻破,但其如果无法获取用户的U2F设备,也就无法登陆服务器进行恶意操作。
FIDO工作原理
FIDO协议使用标准的非对称公私钥对来提供保障。确切的说,FIDO草案中使用的是ECDSA。
当用户登录服务器注册信息时,用户的加密设备产生一对非对称密钥对,私钥在加密设备中保留,黑客无法读取,公钥传给服务器,服务器将此公钥和用户对应的账户相关联。
当用户登录服务器验证消息时,用户使用设备中的私钥对服务器的challenge数据做签名,服务器使用对应的公钥做验证,必须经过用户解锁(如按键,按下指纹等),才能被用来做签名操作。
椭圆曲线数字签名算法(ECDSA)
ECDSA是使用椭圆曲线对 数字签名(DSA)的模拟
ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。他在1998年已经为ISO所接受,并且包含它的一些标准亦在ISO的考虑之中。与普通的离散对数问题和大数分解问题不同,椭圆曲线离散对数问题。没有亚指数时间的解决方法。
因此椭圆曲线密码的单位比特强度要高于其他公钥体制。
DSA称为数字签名标准。它的安全性基于素域上的离散对数问题。
数字签名
数字签名的目的是 提供一个手写签名的数字化副本。 签名是一个依赖于签名者私钥和被签名一段消息的比特串。
签名必须是可验证的,即如果对签名的真实性存在疑问,必须由一个中立的第三方做出公正的裁决,并且无需知道签名者的私钥。对签名的抵赖以及伪造签名应该能被发现。
非对称”即用户的密钥对各不相同。用户的私钥用于签名,其他用户用他的公钥来检验签名的真实性。摘要是指对一段消息先用哈希函数进行摘要计算,而后再对消息摘要进行签名,而不是消息。
数字签名算法
DSA于1991年NIST提出,并在FIPS186中得到确认。DSA可以看做ElGamal签名方案的一个变形。其安全性建立在素域上的离散对数的困难性之上。