[发明专利]基于智能手机和用户口令的双因子身份认证系统及方法有效

专利信息
申请号: 201610415857.9 申请日: 2016-06-14
公开(公告)号: CN106100848B 公开(公告)日: 2019-02-05
发明(设计)人: 魏来文;徐剑;玄鹏开;吴淇毓 申请(专利权)人: 东北大学
主分类号: H04L9/32 分类号: H04L9/32;H04L29/06
代理公司: 沈阳东大知识产权代理有限公司 21109 代理人: 梁焱
地址: 110819 辽宁*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要: 基于智能手机和用户口令的双因子身份认证系统及方法,属于计算机网络技术领域,该系统包括手机认证客户端模块、浏览器扩展模块和Web服务器模块。该方法包括用户注册阶段和用户身份认证阶段,在用户注册阶段,用户在浏览器注册页面输入用户名和密码进行注册,并使用手机扫描浏览器显示的二维码;在用户认证阶段,用户在浏览器认证页面输入用户名和密码进行认证,浏览器利用服务器发送的手机蓝牙地址主动与手机建立蓝牙连接,进行用户身份的认证。本发明在对用户进行认证时,不需要用户对手机进行操作,保证了用户操作简单;使用用户智能手机作为认证设备,减少制造成本,便于部署,且方便用户使用;认证过程具有良好的安全性。
搜索关键词: 基于 智能手机 用户 口令 因子 身份 认证 系统 方法
【主权项】:
1.基于智能手机和用户口令的双因子身份认证系统,其特征在于:该系统包括:设置于用户智能手机中的手机认证客户端模块、设置于浏览器中的浏览器扩展模块和设置于Web服务器中的Web服务器模块,所述用户智能手机为用户随身携带且日常使用的智能手机;所述手机认证客户端模块,在用户注册阶段,用于读取浏览器扩展模块提供的存储有浏览器所在计算机蓝牙地址的二维码,实现用户智能手机与浏览器所在计算机的蓝牙通讯;通过蓝牙通讯,接收浏览器扩展模块发送的消息,并判断消息类型:a.如果是注册挑战请求消息,则使用服务器公钥serverPubKey验证签名SignSsk:如果验证成功,则生成对注册挑战请求消息的响应消息即注册响应消息,并将该注册响应消息发送给浏览器扩展模块,如果验证失败,则向浏览器扩展模块发送注册过程出错消息;b.如果是注册成功的消息,则存储用户私钥userPriKey、标识keyHandle、服务器公钥serverPubKey、服务器地址origin,并将客户端下次认证信息字段CNext设置为C1;c.如果是注册失败消息,则手机认证客户端模块丢弃之前生成的用户RSA公私密钥对、keyHandle、C、C1、C2;所述手机认证客户端模块,在用户认证阶段,用于通过蓝牙通讯接收浏览器扩展模块发送的消息,并判断消息类型:a.如果为认证挑战请求消息,则使用服务器公钥serverPubKey验证认证签名SignSsk*:如果验证失败,则向浏览器扩展模块发送认证过程出错消息;如果验证成功,则根据标识keyHandle取出用户私钥userPriKey、提取存储的客户端下次认证信息字段CNext的值和服务器地址origin,并判断标识keyHandle和服务器地址origin是否与其接收到的认证挑战请求消息中的keyHandle和origin一一匹配,如果匹配,则生成对认证挑战请求消息的响应消息即认证响应消息,并通过蓝牙通讯将该认证响应消息发送给浏览器扩展模块,如果不匹配,则向浏览器扩展模块发送认证过程出错消息;b.如果是认证失败消息,则丢弃C*、C*1、C*2;c.如果是认证成功消息,则比较C*3与H(C*2):如果C*3与H(C*2)相等,则将客户端下次认证消息字段CNext设置为C*1,并向浏览器扩展模块发送认证成功消息;如果C*3与H(C*2)不相等,则丢弃C*、C*1、C*2;所述手机认证客户端模块生成注册响应消息过程为:随机生成一对由用户私钥userPriKey和用户公钥userPubKey构成的用户RSA公私密钥对和随机数C,并获取手机蓝牙地址btAddr;为用户RSA公私密钥对和Web服务器地址origin生成标识keyHandle;对C进行散列计算得到C1,再对C1进行散列计算得到C2,即C2=H(C1)=H(H(C));使用用户私钥userPriKey对userPubKey、keyHandle、btAddr、C2、random和origin进行签名,得到签名数据SignUsk;使用服务器公钥serverPubKey对SignUsk、userPubKey、keyHandle、btAddr和C2进行加密,得到加密数据EncSpk,EncSpk即为注册响应消息;所述手机认证客户端模块生成认证响应消息过程为:首先生成随机数C*,然后对C*进行散列计算得到C*1,再对C*1进行散列计算得到C*2,即C*2=H(C*1)=H(H(C*)),最后使用用户私钥userPriKey对客户端下次认证信息字段CNext、C*2、random*和origin进行签名,得到签名数据SignUsk*,使用服务器公钥serverPubKey对SignUsk*、CNext和C*2进行加密,得到加密数据EncSpk*,EncSpk*即为认证响应消息;所述浏览器扩展模块,用于读取用户在浏览器页面输入的网址和用户口令信息,并将用户口令信息发送给Web服务器模块,所述用户口令信息包括用户名和用户密码;所述浏览器扩展模块,在用户注册阶段,用于接收Web服务器模块发送的消息,并判断消息类型:a.如果是用户名重复消息,则提示用户名已被注册;b.如果是注册挑战请求消息,则首先根据用户输入的网址验证服务器地址origin是否正确,如果正确,则获取浏览器所在计算机的蓝牙地址,并生成存储该蓝牙地址的二维码,且向手机认证客户端模块发送注册挑战请求消息;如果不正确,则提示用户停止操作,并向Web服务器模块发送注册过程出错消息;c.如果为注册成功或注册失败消息,则对消息进行显示,并发送注册成功或注册失败消息给手机认证客户端模块;接收手机认证客户端模块发送的消息,并判断消息类型:如果是注册响应消息EncSpk,则发送此注册响应消息EncSpk给Web服务器模块;如果是注册过程出错消息,则提示用户停止操作,并向Web服务器模块发送注册过程出错消息;所述浏览器扩展模块,在用户认证阶段,用于收来自Web服务器模块的消息,并判断消息类型:a.如果是用户口令错误消息,则提示用户认证失败;b.如果是认证挑战请求消息,则首先根据用户输入的网址验证Web服务器地址origin是否正确,如果正确,则提取手机蓝牙地址btAddr,并与手机建立蓝牙连接后,通过蓝牙通讯向手机认证客户端模块发送认证挑战请求消息,如果不正确,则提示用户停止操作,并向Web服务器模块发送认证过程出错消息;如果是C*3,则将C*3发送给手机认证客户端模块;如果是认证失败消息,则提示用户认证失败,并向手机认证客户端模块发送认证失败消息;根据手机蓝牙地址主动与手机建立蓝牙通讯,通过蓝牙通讯接收手机认证客户端模块发送的消息,并判断消息类型:如果是认证响应消息EncSpk*,则发送此认证响应消息EncSpk*给Web服务器模块;如果是认证过程出错消息,则提示用户停止操作,并向Web服务器模块发送认证过程出错消息;如果是认证成功消息,则进行显示;所述Web服务器模块,在用户注册阶段,接收浏览器扩展模块发送的消息,并判断消息类型:a.如果是用户口令消息,则判断用户名是否已被注册,如果用户名已被注册,则向浏览器扩展模块发送用户名重复消息,如果用户名未被注册,则向浏览器扩展模块发送注册挑战请求消息;b.如果是注册过程出错消息,则向浏览器扩展模块发送注册失败消息,并记录日志;c.如果是注册响应消息,则首先使用服务器私钥serverPriKey对消息进行解密,得到SignUsk、userPubKey、keyHandle、btAddr和C2,然后使用用户公钥userPubKey验证签名SignUsk,如果验证失败,则向浏览器扩展模块发送注册失败消息,并记录日志;如果验证通过,则服务器进行如下操作:在数据库中为用户创建一条记录,其中包括用户口令、用户公钥、标识、手机蓝牙地址、服务器本次认证信息字段SCurrent、服务器上次认证信息字段SLast,并对应存入用户注册时输入的用户名和密码、userPubKey、keyHandle、btAddr、C2和空值,并向浏览器扩展模块发送注册成功消息;所述Web服务器模块,在用户认证阶段,接收浏览器扩展模块发送的消息,并判断消息类型:a.如果为用户口令信息,则验证用户口令信息是否正确,如果用户口令信息不正确,则向浏览器扩展模块发送用户口令错误消息;如果用户口令正确,则生成认证挑战请求消息,并发送给浏览器扩展模块;b.如果为认证过程出错消息,则向浏览器扩展模块发送认证失败消息,并记录日志;c.如果为认证响应消息,则首先使用服务器私钥serverPriKey对消息进行解密得到SignUsk*、CNext和C*2,然后使用用户公钥userPubKey验证签名SignUsk*,如果验证失败,则向浏览器扩展模块发送认证失败消息,并记录日志,如果验证通过,则对CNext中的值C1进行散列计算得到H(C1),并验证H(C1)与数据库中服务器本次认证信息字段SCurrent中的值C2是否相同,如果相同,则将服务器上次认证信息字段SLast设置为C2,将服务器本次认证信息字段SCurrent设置为C*2,对C*2进行散列计算得到C*3=H(C*2),并将C*3发送给浏览器扩展模块,如果不相同,则验证H(C1)与数据库中服务器上次认证信息字段SLast的值是否相同:如果不相同,则向浏览器扩展模块发送认证失败消息,并记录日志;如果相同,则服务器上次认证信息字段SLast保持不变,服务器本次认证信息字段SCurrent设置为C*2,并对C*2进行散列计算得到C*3=H(C*2),且将C*3发送给浏览器扩展模块;所述Web服务器模块生成注册挑战请求消息的过程为:随机产生一对由服务器私钥serverPriKey和服务器公钥serverPubKey构成的服务器RSA公私密钥对和一个注册随机数random,并获取服务器地址origin;使用服务器私钥serverPriKey对serverPubKey、random和origin进行签名,得到注册签名数据SignSsk;将SignSsk、serverPubKey、random和origin一起作为注册挑战请求消息;所述Web服务器模块生成认证挑战请求消息的过程为:产生一个认证随机数random*,并获取服务器地址origin;在数据库中取出用户对应的用户公钥userPubKey、标识keyHandle、手机蓝牙地址btAddr;使用服务器私钥serverPriKey对random*、origin和keyHandle进行签名,得到认证签名数据SignSsk*;将SignSsk*、random*、origin、keyHandle和btAddr一起作为认证挑战请求消息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610415857.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top