一种基于Internet网络实现的FIDO2认证系统及方法与流程


一种基于internet网络实现的fido2认证系统及方法
技术领域
1.本发明涉及数字身份认证领域,尤其涉及一种基于internet网络实现的fido2认证系统及方法。


背景技术:



2.fido联盟是一个由多家企业组成的旨在推进互联网身份认证规范及隐私保护的非赢利组织。fido2规范是由w3c标准webauthn和fido客户端身份验证协议(client to application protocol,ctap)组成,利用基于fido2规范的认证器和server能够实现安全免密认证,从而提高网络安全。
3.当前,互联网账户主流登录认证方式之一是账号+密码,为了便于管理多个网络账户,绝大多数用户都会选择使用同一个密码或者用户名,具备较强网络安全意识的用户最多也就使用3至5个不关联的账号密码,亦或使用密码管理软件。此外,依赖方(relying party,rp)为保障安全,也会要求采用2fa(两步验证)的方式再次进行认证,如在输入用户名和口令后,要求用户二次验证手机号。以上情况除便利性低外,也存在潜在的问题,如用户名和口令方式易被泄露、被攻击盗取、遗忘、密码管理软件本身也会有漏洞、手机号不再使用无法进行二次验证、企业要求定期进行密码更改容易遗忘,而且还容易遭受网络钓鱼的风险。
4.为解决以上问题,fido应运而生,它是基于密码学原理,利用公私钥对实现密码安全。fido2作为最新规范,已被各大操作系统和浏览器厂商实现应用,兼容性很强。因此,基于fido2认证器的需求增大,但问题也随之而来。基于硬件fido认证器(如安全密钥)具有经济成本高、安全漏洞难以更新、极易丢失、特性固定、对c端用户不友好等缺点;而基于fido2标准的软件认证器利用空中下载技术(over-the-air technology,ota)升级能够很好地解决上述问题,但其主流方案主要是利用ble、usb或nfc方式进行通信,它们存在建立连接时间久、效率低、无法远程登录等问题。此外,当前还有不支持上述三种通信方式的设备。基于以上考虑,本发明提出一种基于internet网络实现的fido2认证系统及方法。


技术实现要素:



5.为解决当前技术的不足,本发明提供了一种基于internet网络实现的fido2认证系统及方法。
6.本发明采用的技术方案是:一种基于internet网络实现的fido2认证系统,包括用于fido认证的移动端app (即fido认证器)、用于fido认证请求转发的pc端驱动程序、以及用于移动端app与pc端驱动程序通信的消息服务,所述移动端app、消息服务、pc端驱动程序依次连接。
[0007] 所述移动端app包括功能模块、用户模块、通知模块,三个模块互相连接,通知模块与后端消息服务连接;所述功能模块包括fido2协议实现、加密算法实现、凭证管理存储功能实现、与安全模块(secure element,se)元件进行通信、对用户模块的控制实现、对通
知模块输入识别实现;所述驱动程序,是通过实现操作系统的usb-hid驱动,模拟为fido认证器,然后将用户在pc端的fido认证请求通过后端消息服务转发到移动端app的通知模块;所述后端消息服务,主要负责转发fido认证器与驱动程序之间的数据,将其推送到fido认证器,即移动端app的系统通知上。
[0008]
优选地,所述的消息服务与pc端驱动程序是通过internet的方式进行通信。
[0009]
优选地,所述的消息服务与移动端app是通过internet的方式进行通信。
[0010]
一种基于internet网络实现的fido2认证方法,其应用于一种基于internet网络实现的fido2认证系统,所述方法包括以下步骤:一种基于internet网络实现的fido2认证方法,其应用于一种基于internet网络实现的fido2认证系统,所述方法包括以下步骤:s1,驱动程序初始化,通过调用keychain或可信平台模块(trusted platform module,tpm)分别生成公钥1和私钥1,并向后端消息服务申请一个消息id1并基于websocket进行通信连接;s2,移动app初始化,通过keychain或者 keystore分别生成公钥2和私钥2,并向操作系统申请并获取一个消息id2;s3,驱动程序将公钥1信息以及消息id1通过二维码的形式进行展示;s4,移动端app扫描二维码,获取到公钥1与消息id1;s5,移动端app使用公钥1将公钥2、消息id2及系统平台信息加密,并提交给后端消息服务,表示其将要和消息id1(也就是驱动程序)进行绑定,后端消息服务查询websocket连接,发送移动数据到驱动程序;s6,驱动程序获取到移动数据并用私钥1进行解密,获取到移动端app信息,即消息id2及公钥2;s7,驱动程序用公钥2加密消息进行消息响应,消息响应这里是一个通信机制,处理完消息后通过websocket返回,这也代表完成绑定;s8,移动端app获取到响应,用私钥2进行解密,绑定完成;s9,驱动程序获取到fido认证请求,将请求数据包装为消息数据并通过公钥2进行加密,发送到消息id2;s10,后端消息服务调用移动端对应系统平台的api和消息id2进行系统通知将消息数据加密发送到移动端app;s11,移动端app收到系统通知,通过私钥2进行解密, 若解密成功,则代表是已配对的设备,若解密失败,则舍弃请求;s12,移动端app的功能模块开始解析数据,并通过fido协议标准进行验证;s13,移动端app验证成功后,基于用户模块提示用户进行认证;s14,用户通过生物识别等方式进行认证,表示同意此次fido认证,并将结果通过公钥1进行加密,调用api返回数据;s15,后端消息服务查询消息id1对应websocket连接,并将数据发送到驱动程序;s16,驱动程序使用私钥1解密数据,将认证结果返回给依赖方(relying party,rp)。
[0011]
优选地,所述方法中的消息id1可通过公钥sha1哈希算法求得或者直接采用随机
数作为消息id1。
[0012]
优选地,所述方法中的消息id2是通过系统通知api获取。
[0013]
本发明的有益效果是:首先,本发明所述方法及系统基于现有标准进行拓展,使之适用于各种设备,且无需额外硬件支持;其次,本发明基于inernet网络实现认证过程,可支持远程登录,而且两端通信加密,保障通信安全;最后,本发明方案基于fido2均可使用,无绑定关系,且认证建立耗时较短,操作起来更加方便快捷,提高了认证效率。
附图说明
[0014]
下面结合附图对本发明的具体实施方式作进一步说明:图1是本发明实施例提供的一种基于internet网络实现的fido2认证系统的系统框架图;图2是本发明实施例提供的一种基于internet网络实现的fido2认证方法的方法框架图。
具体实施方式
[0015]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0016]
术语解释:se:安全模块(secure element),通常以芯片形式提供。
[0017]
hid:人机接口设备(human interface devices)。
[0018]
tpm:可信平台模块(trusted platform module),是一项安全密码处理器的国际标准。
[0019]
rp:依赖方(relying party)。
[0020]
如图1所示,一种基于internet网络实现的fido2认证系统,其包括用于fido认证的移动端app(即fido认证器)、用于fido认证请求转发的pc端驱动程序、以及用于移动端app与pc端驱动程序通信的消息服务,所述移动端app、消息服务、pc端驱动程序依次连接,消息服务与pc端驱动程序和移动端app均是通过internet的方式进行通信。
[0021]
所述移动端app包括功能模块、用户模块、通知模块,三个模块互相连接,通知模块与后端消息服务连接;所述功能模块包括fido2协议实现、加密算法实现、凭证管理存储功能实现、与se元件进行通信、对用户模块的控制实现、对通知模块输入识别实现;所述驱动程序,是通过实现操作系统的usb-hid驱动,模拟为fido认证器,然后将用户在pc端的fido认证请求通过后端消息服务转发到移动端app的通知模块;所述后端消息服务,主要负责转发fido认证器与驱动程序之间的数据,将其推送到fido认证器,即移动端app的系统通知上。
[0022]
该实施例中,移动端app以智能手机为例,pc端驱动程序以windows 10系统为例。
[0023]
如图2所示,本发明提供了一种基于internet网络实现的fido2认证方法,包括以
下步骤: s1,驱动程序初始化,通过调用keychain或tpm分别生成公钥1和私钥1,并向后端消息服务申请一个消息id1并基于websocket进行通信连接;s2,移动app初始化,通过keychain或者 keystore分别生成公钥2和私钥2,并向操作系统申请并获取一个消息id2;s3,驱动程序将公钥1信息以及消息id1通过二维码的形式进行展示;s4,移动端app扫描二维码,获取到公钥1与消息id1;s5,移动端app使用公钥1将公钥2、消息id2及系统平台信息加密,并提交给后端消息服务,表示其将要和消息id1(也就是驱动程序)进行绑定,后端消息服务查询websocket连接,发送移动数据到驱动程序;s6,驱动程序获取到移动数据并用私钥1进行解密,获取到移动端app信息,即消息id2及公钥2;s7,驱动程序用移动端app公钥2加密消息进行消息响应,消息响应这里是一个通信机制,处理完消息后通过websocket返回,这也代表完成绑定;s8,移动端app获取到响应,用私钥2进行解密,绑定完成;s9,驱动程序获取到fido认证请求,将请求数据包装为消息数据并通过公钥2进行加密,发送到消息id2;s10,后端消息服务调用移动端对应系统平台的api和消息id2进行系统通知将消息数据加密发送到移动端app;s11,移动端app收到系统通知,通过私钥2进行解密, 若解密成功,则代表是已配对的设备,若解密失败,则舍弃请求;s12,移动端app的功能模块开始解析数据,并通过fido协议标准进行验证;s13,移动端app验证成功后,基于用户模块提示用户进行认证;s14,用户通过生物识别等方式进行认证,表示同意此次fido认证,并将结果通过公钥1进行加密,调用api返回数据;s15,后端消息服务查询消息id1对应websocket连接,并将数据发送到驱动程序;s16,驱动程序使用私钥1解密数据,将认证结果返回给rp。
[0024]
所述方法中的消息id1可通过公钥sha1哈希算法求得或者直接采用随机数作为消息id1,消息id2可通过系统通知api获取。
[0025]
本发明所述的认证方法与认证系统的在实施过程中具有以下优点:第一,因为是移动端设备直接充当了认证器的角,所以不再需要额外的硬件支持,经济实用;第二,本发明是基于internet网络进行认证,可满足远程登录的需要,而且由于是系统直接推送认证信息,提高了认证效率;第三,本发明采用移动端和驱动程序两端加密的通信方式,更加安全;第四,移动端和驱动程序绑定认证后,认证建立时间短暂,且不需要经常修改密码,操作起来更加方便快捷,提高了管理效率。
[0026]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。对于熟悉本技术领域的相关人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种基于internet网络实现的fido2认证系统,其所述系统包括:用于fido认证的移动端app(即fido认证器)、用于fido认证请求转发的pc端驱动程序、以及用于移动端app与pc端驱动程序通信的消息服务,所述移动端app、消息服务、pc端驱动程序依次连接;所述移动端app包括功能模块、用户模块、通知模块,三个模块互相连接,通知模块与后端消息服务连接;所述功能模块包括fido2协议实现、加密算法实现、凭证管理存储功能实现、与安全模块(secure element,se)元件进行通信、对用户模块的控制实现、对通知模块输入识别实现;所述驱动程序,是通过实现操作系统的usb-hid驱动,模拟为fido认证器,然后将用户在pc端的fido认证请求通过后端消息服务转发到移动端app的通知模块;所述后端消息服务,主要负责转发fido认证器与驱动程序之间的数据,将其推送到fido认证器,即移动端app的系统通知上。2.根据权利要求1所述的一种基于internet网络实现的fido2认证系统,其特征在于,所述的消息服务与pc端驱动程序是通过internet的方式进行通信。3.根据权利要求1所述的一种基于internet网络实现的fido2认证系统,其特征在于,所述的消息服务与移动端app是通过internet的方式进行通信。4.一种基于internet网络实现的fido2认证方法,其应用于一种基于internet网络实现的fido2认证系统,所述方法包括以下步骤:s1,驱动程序初始化,通过调用keychain或可信平台模块(trusted platform module,tpm)分别生成公钥1和私钥1,并向后端消息服务申请一个消息id1并基于websocket进行通信连接;s2,移动app初始化,通过keychain或者 keystore分别生成公钥2和私钥2,并向操作系统申请并获取一个消息id2;s3,驱动程序将公钥1信息以及消息id1通过二维码的形式进行展示;s4,移动端app扫描二维码,获取到公钥1与消息id1;s5,移动端app使用公钥1将公钥2、消息id2及系统平台信息加密,并提交给后端消息服务,表示其将要和消息id1(也就是驱动程序)进行绑定,后端消息服务查询websocket连接,发送移动数据到驱动程序;s6,驱动程序获取到移动数据并用私钥1进行解密,获取到移动端app信息,即消息id2及公钥2;s7,驱动程序用公钥2加密消息进行消息响应,消息响应这里是一个通信机制,处理完消息后通过websocket返回,这也代表完成绑定;s8,移动端app获取到响应,用私钥2进行解密,绑定完成;s9,驱动程序获取到fido认证请求,将请求数据包装为消息数据并通过公钥2进行加密,发送到消息id2;s10,后端消息服务调用移动端对应系统平台的api和消息id2进行系统通知将消息数据加密发送到移动端app;s11,移动端app收到系统通知,通过私钥2进行解密, 若解密成功,则代表是已配对的设备,若解密失败,则舍弃请求;
s12,移动端app的功能模块开始解析数据,并通过fido协议标准进行验证;s13,移动端app验证成功后,基于用户模块提示用户进行认证;s14,用户通过生物识别等方式进行认证,表示同意此次fido认证,并将结果通过公钥1进行加密,调用api返回数据;s15,后端消息服务查询消息id1对应websocket连接,并将数据发送到驱动程序;s16,驱动程序使用私钥1解密数据,将认证结果返回给依赖方(relying party,rp)。5.根据权利要求4所述的一种基于internet网络实现的fido2认证方法,其特征在于,所述方法中的消息id1可通过公钥sha1哈希算法求得或者直接采用随机数作为消息id1。6.根据权利要求4所述的一种基于internet网络实现的fido2认证方法,其特征在于,所述方法中的消息id2是通过系统通知api获取。

技术总结


本发明涉及一种基于Internet网络实现的FIDO2认证系统及方法。系统包括用于FIDO认证的移动端APP(即FIDO认证器)、用于FIDO认证请求转发的PC端驱动程序(驱动)、以及用于移动端APP与PC端驱动程序通信的消息服务。方法包括步骤:驱动程序初始化,通过调用keychain或可信平台模块(Trusted Platform Module,TPM)分别生成公钥1和私钥1,并向后端消息服务申请一个消息ID1并基于WebSocket进行通信连接等。本发明基于Internet实现的FIDO2认证方式适用于各种设备、无需额外硬件支持、支持远程登录。此外,两端通信加密实现了高级别安全性,且建立认证耗费时间短,操作起来更加方便快捷,提高了认证效率。了认证效率。了认证效率。


技术研发人员:

陈启敬 王果 贺山峰

受保护的技术使用者:

亚数信息科技(上海)有限公司

技术研发日:

2022.09.06

技术公布日:

2022/12/8

本文发布于:2024-09-20 20:50:22,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/30275.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   驱动程序   所述   系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议