CN105187450B - 一种基于认证设备进行认证的方法和设备 - Google Patents

一种基于认证设备进行认证的方法和设备 Download PDF

Info

Publication number
CN105187450B
CN105187450B CN201510645439.4A CN201510645439A CN105187450B CN 105187450 B CN105187450 B CN 105187450B CN 201510645439 A CN201510645439 A CN 201510645439A CN 105187450 B CN105187450 B CN 105187450B
Authority
CN
China
Prior art keywords
module
client
key
server
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510645439.4A
Other languages
English (en)
Other versions
CN105187450A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201510645439.4A priority Critical patent/CN105187450B/zh
Publication of CN105187450A publication Critical patent/CN105187450A/zh
Priority to PCT/CN2016/096223 priority patent/WO2017059741A1/zh
Priority to US15/856,049 priority patent/US10979427B2/en
Application granted granted Critical
Publication of CN105187450B publication Critical patent/CN105187450B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/72Subscriber identity

Abstract

本发明公开一种基于认证设备进行认证的方法和设备,该方法包括:客户端根据获取到的URI得到应用ID,向服务器发送根据应用ID和用户标识得到的设备认证请求;接收服务器发送的当前认证数据;根据当前认证数据中的挑战值得到客户端数据对象,对客户端数据对象和当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,向认证设备发送根据客户端参数、密钥标识和密钥标识长度组成的当前认证请求信息;接收认证设备返回的认证响应信息,向服务器发送根据认证响应信息、客户端数据对象和当前认证数据中的会话ID组成的签名验证请求;接收服务器返回的信息,若是成功信息则确定认证成功,否则确定认证失败。

Description

一种基于认证设备进行认证的方法和设备
技术领域
本发明涉及信息安全领域,尤其涉及一种基于认证设备进行认证的方法和设备。
背景技术
现有技术中,基于口令的在线身份认证技术存在很大风险,用户的口令可以通过猜测、网络盗取信用证书、网络钓鱼等技术手段获得,若用户使用的口令长度较短或者属于容易破译的弱口令,则易被攻击从而造成个人隐私信息泄漏甚至财产损失;传统的身份认证方法,需要客户端发送口令到远程服务器的口令库中进行比对,但是存在被拦截和破解的风险,而且口令储存在同一个远程服务器上,如果超级管理员帐号被盗,远程服务器中所有用户的口令均被泄漏。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种基于认证设备进行认证的方法和设备,认证设备参与身份认证过程,实现线上快速身份验证,提高互联网的安全性。
本发明提供的一种基于认证设备进行认证的方法,包括:
步骤S1:客户端获取统一资源标识符,根据所述统一资源标识符得到应用ID,根据所述应用ID和用户输入的用户标识得到设备认证请求,向服务器发送所述设备认证请求;
步骤S2:所述客户端接收所述服务器发送的当前认证数据;
步骤S3:所述客户端根据当前认证数据中的挑战值得到客户端数据对象,对所述客户端数据对象和当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,将所述客户端参数、所述密钥标识和密钥标识长度组成当前认证请求信息,向认证设备发送当前认证请求信息;
步骤S4:所述客户端接收所述认证设备返回的信息,判断接收到的信息的类型,若是认证失败信息则确定认证失败,结束,若是认证响应信息则执行步骤S5;
步骤S5:所述客户端将所述认证响应信息、所述客户端数据对象和当前认证数据中的会话ID组成签名验证请求,向所述服务器发送所述签名验证请求;
步骤S6:所述客户端接收所述服务器返回的信息,判断接收到的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
本发明还提供的一种基于认证设备进行认证的客户端,包括:第一生成模块、第一发送模块、第一接收模块、第二生成模块、第三生成模块、第一判断模块、第四生成模块和第二判断模块;
所述第一生成模块,用于获取统一资源标识符,根据所述统一资源标识符得到应用ID,根据所述应用ID和用户输入的用户标识得到设备认证请求;
所述第一发送模块,用于向所述服务器发送所述第一生成模块生成的所述设备认证请求,向认证设备发送所述第三生成模块生成的当前认证请求信息,向所述服务器发送所述第四生成模块生成的签名验证请求;
所述第一接收模块,用于接收所述服务器返回的当前认证数据,接收所述认证设备返回的信息,接收所述服务器返回的信息;
所述第二生成模块,用于根据所述第一接收模块接收到的当前认证数据中的挑战值得到客户端数据对象;
所述第三生成模块,用于对所述第二生成模块生成的所述客户端数据对象和所述第一接收模块接收到的当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,将所述客户端参数、所述密钥标识和密钥标识长度组成当前认证请求信息;
所述第一判断模块,用于判断所述第一接收模块接收到的认证设备返回的信息的类型,若是认证失败信息则确定认证失败,结束;
所述第四生成模块,用于当所述第一判断模块判断出认证设备返回的信息是认证响应信息时,将所述认证响应信息、所述第二生成模块生成的所述客户端数据对象和所述第一接收模块接收到的当前认证数据中的会话ID组成签名验证请求;
所述第二判断模块,用于判断所述第一接收模块接收到的所述服务器返回的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
本发明还提供的一种基于认证设备进行认证的服务器,包括:第二接收模块、第一解析模块、第七判断模块、第二获取模块、第五生成模块、第三获取模块、第八判断模块、第六生成模块、验证模块、第一更新模块和第二发送模块;
所述第二接收模块,用于接收客户端发送的设备认证请求,接收所述客户端发送的签名验证请求;
所述第一解析模块,用于对所述第二接收模块接收到的所述设备认证请求进行解析,得到应用ID和用户标识;对所述第二接收模块接收到的所述签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
所述第七判断模块,用于根据所述第一解析模块解析得到的所述用户标识,在所述服务器中查找密钥记录,判断是否能够查找到与所述用户标识匹配的密钥记录;
所述第二获取模块,用于当所述第七判断模块判断出能够查找到与所述用户标识匹配的密钥记录时,获取所述密钥记录作为当前密钥记录;
所述第五生成模块,用于在所述第二获取模块获取到的当前密钥记录中获取密钥标识,生成与所述密钥标识对应的会话ID和挑战值,将所述挑战值、所述会话ID、所述第一解析模块解析得到的所述应用ID和所述密钥标识组成当前认证数据;
所述第三获取模块,用于从所述第一解析模块解析得到的所述认证响应信息中获取认证设备的当前认证次数和签名结果;
所述第八判断模块,用于判断所述第三获取模块获取到的所述认证设备的当前认证次数是否大于服务器中的当前认证次数,否则向所述客户端返回错误信息;
所述第六生成模块,用于当所述第八判断模块判断出所述认证设备的当前认证次数大于所述服务器中的当前认证次数时,根据所述第一解析模块解析得到的所述会话ID查找对应的应用ID,对所述第一解析模块解析得到的所述客户端数据对象和查找到的所述应用ID进行哈希运算得到服务器参数,根据所述服务器参数和所述第三获取模块获取到的所述认证设备的当前认证次数组成验证数据;
所述验证模块,用于根据所述第一解析模块解析得到的所述会话ID查找对应的密钥记录中的公钥,根据所述第六生成模块生成的所述验证数据、所述第三获取模块获取到的所述签名结果和查找到的所述密钥记录中的公钥,进行验签,判断是否验签成功;
所述第一更新模块,用于当所述验证模块判断验签成功时,更新所述服务器中的当前认证次数;
所述第二发送模块,用于当所述第七判断模块判断出不能够查找到与所述用户标识匹配的密钥记录时,向所述客户端返回错误信息;向所述客户端发送所述第五生成模块生成的当前认证数据;当所述第八判断模块判断出所述认证设备的当前认证次数不大于所述服务器中的当前认证次数时,向所述客户端返回错误信息;当所述验证模块判断验签成功时,向所述客户端返回成功信息;当所述验证模块判断验签失败时,向所述客户端返回错误信息。
本发明还提供的一种基于认证设备进行认证的认证设备,包括:第三接收模块、第四获取模块、第十四判断模块、第七生成模块、签名模块、第二更新模块、第八生成模块和第三发送模块;
所述第三接收模块,用于等待并接收客户端发送的当前认证请求信息,等待并接收来自用户的确认信息;
所述第四获取模块,用于获取所述第三接收模块接收到的当前认证请求信息中的密钥标识;
所述第十四判断模块,用于根据所述第四获取模块获取到的所述密钥标识在所述认证设备中查找对应的密钥对中的私钥,判断是否能够查找到与所述密钥标识对应的密钥对中的私钥;
所述第七生成模块,用于当所述第十四判断模块判断出能够查找到与所述密钥标识对应的密钥对中的私钥时,根据所述认证设备的当前认证次数、所述第三接收模块接收到的当前认证请求信息中的客户端参数,得到待签名数据;
所述签名模块,用于当所述第三接收模块接收到来自用户的所述确认信息时,使用查找到的与所述密钥标识对应的私钥,根据签名算法对所述第七生成模块生成的所述待签名数据进行签名,得到签名结果;
所述第二更新模块,用于当所述签名模块进行签名时,更新所述认证设备的当前认证次数;
所述第八生成模块,用于将所述第二更新模块更新得到的所述认证设备的当前认证次数和所述签名模块签名得到的所述签名结果组成认证响应信息;
所述第三发送模块,当所述第十四判断模块判断出不能够查找到与所述密钥标识对应的密钥对中的私钥时,向所述客户端返回认证失败信息;向所述客户端发送所述第八生成模块生成的所述认证响应信息。
本发明与现有技术相比,具有以下优点:
本发明提供的一种基于认证设备进行认证的方法和设备,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;身份认证通过后,客户端不保存任何登陆信息;实现线上快速身份验证,提高互联网的安全性。
附图说明
图1是本发明实施例1提供的一种基于认证设备进行认证的方法的流程图;
图2至图3是本发明实施例2提供的一种基于认证设备进行认证的方法的流程图;
图4至图6是本发明实施例3提供的一种基于认证设备进行认证的方法的流程图;
图7是本发明实施例4提供的一种基于认证设备进行认证的客户端的模块图;
图8是本发明实施例5提供的一种基于认证设备进行认证的服务器的模块图;
图9是本发明实施例6提供的一种基于认证设备进行认证的认证设备的模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的一种基于认证设备进行认证的方法,应用于包括客户端、服务器和认证设备的系统中。
实施例1
本发明的实施例1提供了一种基于认证设备进行认证的方法,如图1所示,包括:
步骤S1:客户端获取统一资源标识符,根据统一资源标识符得到应用ID,根据应用ID和用户输入的用户标识得到设备认证请求,向服务器发送设备认证请求;
步骤S2:客户端接收服务器发送的当前认证数据;
步骤S3:客户端根据当前认证数据中的挑战值得到客户端数据对象,对客户端数据对象和当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,将客户端参数、密钥标识和密钥标识长度组成当前认证请求信息,向认证设备发送当前认证请求信息;
具体地,客户端参数包括挑战参数和应用参数;客户端对客户端数据对象进行哈希运算得到挑战参数,对当前认证数据中的应用ID进行哈希运算得到应用参数;
步骤S4:客户端接收认证设备返回的信息,判断接收到的信息的类型,若是认证失败信息则确定认证失败,结束,若是认证响应信息则执行步骤S5;
步骤S5:客户端将认证响应信息、客户端数据对象和当前认证数据中的会话ID组成签名验证请求,向服务器发送签名验证请求;
步骤S6:客户端接收服务器返回的信息,判断接收到的信息是否为成功信息,是则确定认证成功,否则确定认证失败,结束。
本实施例中,当服务器接收到签名验证请求时,执行以下步骤:
步骤P4:服务器对签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
步骤P5:服务器从认证响应信息中获取认证设备的当前认证次数和签名结果;
步骤P6:服务器判断认证设备的当前认证次数是否大于服务器中的当前认证次数,是则执行步骤P7,否则向客户端返回错误信息;
步骤P7:服务器根据会话ID查找对应的应用ID,对客户端数据对象和查找到的应用ID进行哈希运算得到服务器参数,根据服务器参数和认证设备的当前认证次数组成验证数据;
具体地,服务器参数包括挑战参数和应用参数;服务器对客户端数据对象进行哈希运算得到挑战参数,对当前认证数据中的应用ID进行哈希运算得到应用参数;
步骤P8:服务器根据会话ID查找对应的密钥记录中的公钥,根据验证数据、签名结果和查找到的密钥记录中的公钥,进行验签,判断是否验签成功,是则执行步骤P9,否则向客户端返回错误信息;
步骤P9:服务器更新服务器中的当前认证次数,向客户端返回成功信息。
本实施例中提供的一种基于认证设备进行认证的方法,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;身份认证通过后,客户端不保存任何登陆信息;实现线上快速身份验证,提高互联网的安全性。
实施例2
本发明的实施例2提供了一种基于认证设备进行认证的方法,如图2至图3所示,包括:
步骤101:客户端获取统一资源标识符(Uniform Resource Identifier),根据统一资源标识符得到应用ID,根据应用ID和用户输入的用户标识得到设备认证请求,向服务器发送设备认证请求;
具体地,若客户端为浏览器,则客户端获取访问的统一资源标识符的头域作为应用ID;若客户端为安卓系统,则客户端获取被签署的安卓安装包的密钥标示符的内容作为统一资源标识符;若客户端为iOS系统,则客户端获取IOS应用标示符的内容作为统一资源标识符;
例如,本实施例中,应用ID为https://u2f.cloudentify.com,用户输入的用户标识为feitianuser-1439363493424;
客户端向服务器发送的设备认证请求为:
https://api-dfserv.cloudentify.com?u2fmethod=signData&userName=feitianuser-1439363493424&appId=https://u2f.cloudentify.com;
步骤102:服务器接收设备认证请求,对设备认证请求进行解析,得到应用ID和用户标识;
步骤103:服务器根据用户标识,在服务器中查找密钥记录,判断是否能够查找到与用户标识匹配的密钥记录,是则获取第一条与用户标识匹配的密钥记录作为当前密钥记录,执行步骤104,否则向客户端返回错误信息;
步骤104:服务器在当前密钥记录中获取密钥标识,生成与密钥标识对应的会话ID和挑战值,将预设版本号、挑战值、应用ID、会话ID和密钥标识组成当前认证数据,根据当前认证数据更新认证数据包;
具体地,认证数据包初始为空,更新认证数据包为在认证数据包中增加当前认证数据;
优选地,本实施例中,服务器生成一个随机数作为挑战值,再生成一个随机数作为会话ID;
例如,挑战值为qwUhzrFCv2wpwDv1CMkyIQ,预设版本号为U2F_V2,会话ID为8238acbf-3319-4d49-b86c-cd45797d2bd6,应用ID为https://u2f.cloudentify.com,当前密钥记录中获取密钥标识为:GQWE3Oyf2fexWtgn4Y6oQs7M5C-BonVtLzG37nHHdHBr9FlDqFD1HAO5PZfWFLfSCGZk8ICrLHf9aNkF0kpdJw-72uY220zIRwHQ89jcBFNIdhK8rFzbaEP-PtoslGqliTJ1qA9pDT61UOBokK-HI6dkwJk7VRGAKuj2XFos-nU29VhEudTeNVz90cfSQCf6nTNQTRuTXnYqMgWqtf6WREU8g5OVffVoeX0eq10bOWiaFlZzcucWULUHho-AfV661onMp2XR;
则当前认证数据为:
"appId":"https://u2f.cloudentify.com","challenge":"qwUhzrFCv2wpwDv1CMkyIQ","version":"U2F_V2","sessionId":"feitianuser-1439363493424_8238acbf-3319-4d49-b86c-cd45797d2bd6","keyHandle":"GQWE3Oyf2fexWtgn4Y6oQs7M5C-BonVtLzG37nHHdHBr9FlDqFD1HAO5PZfWFLfSCGZk8ICrLHf9aNkF0kpdJw-72uY220zIRwHQ89jcBFNIdhK8rFzbaEP-PtoslGqliTJ1qA9pDT61UOBokK-HI6dkwJk7VRGAKuj2XFos-nU29VhEudTeNVz90cfSQCf6nTNQTRuTXnYqMgWqtf6WREU8g5OVffVoeX0eq10bOWiaFlZzcucWULUHho-AfV661onMp2XR";
步骤105:服务器判断当前密钥记录之后是否还存在与用户标识匹配的密钥记录,是则将当前密钥记录之后的与用户标识匹配的密钥记录作为更新后的当前密钥记录,返回步骤104,否则向客户端发送认证数据包;
步骤106:客户端接收服务器发送的数据,判断接收到的数据是否为错误信息,是则确定认证失败,结束;否则客户端确定接收到的数据为认证数据包,获取认证数据包中的第一条认证数据作为当前认证数据,执行步骤107;
步骤107:客户端根据当前认证数据中的挑战值得到客户端数据对象;
具体地,客户端将第一预设字符串和挑战值组合,并对组合得到的数据进行base64编码,得到客户端数据对象;
例如,第一预设字符串为navigator.id.getAssertion,客户端数据对象为:"clientData":"eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZ2V0QXNzZXJ0aW9uIiwiY2hhbGxlbmdlIjoicXdVaHpyRkN2Mndwd0R2MUNNa3lJUSIsImNpZF9wdWJrZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI 1NiIsIngiOiJBTmFMY3Ryajd6RE9weFR1RVF0eTB3RHR4RlRPdTZxOXBhUWVEb3ViZ2w1ViIsInkiOiJBT0xqSWlJU3hCQ3hXMlFZVXhhdDllaXZleUk2ejNuaEZtbURZb1RnaHhuRyJ9LCJvcmlnaW4iOiJodHRwczovL3UyZi5jbG91ZGVudGlmeS5jb20ifQ";
步骤108:客户端对客户端数据对象进行哈希运算得到挑战参数,对当前认证数据中的应用ID进行哈希运算得到应用参数,获取当前认证数据中的密钥标识,将挑战参数、应用参数、密钥标识和密钥标识长度组成当前认证请求信息,向认证设备发送当前认证请求信息;
具体地,本实施例中,哈希运算的算法为SHA256;
步骤109:认证设备等待并接收当前认证请求信息,获取当前认证请求信息中的密钥标识;
步骤110:认证设备根据密钥标识在认证设备中查找对应的密钥对中的私钥,判断是否能够查找到与密钥标识对应的密钥对中的私钥,是则执行步骤111,否则向客户端返回认证失败信息;
具体地,当认证设备判断出不能够查找到与密钥标识对应的密钥对中的私钥时,向客户端返回认证失败信息,并返回步骤109继续等待并接收当前认证请求信息;
步骤111:认证设备根据认证设备的当前认证次数、当前认证请求信息中的挑战参数和应用参数,得到待签名数据,等待并接收来自用户的确认信息;
本实施例中,来自用户的确认信息包括按键信息;例如,若认证设备上的预设按键被触发,则认证设备确定接收到来自用户的确认信息;
步骤112:当认证设备接收到来自用户的确认信息时,认证设备使用查找到的与密钥标识对应的私钥,根据签名算法对待签名数据进行签名,得到签名结果,更新认证设备的当前认证次数;
具体地,本实施例中,签名算法为ECDSA(Elliptic Curve Digital SignatureAlgorithm,椭圆曲线数字签名算法);认证设备的当前认证次数初始值为0,更新认证设备的当前认证次数为将认证设备的当前认证次数自加1;
例如,签名结果为:
AQAAAAgwRAIgVmzFftuZrSeknWd71GHp9LMVSPPX64MGkTVvsrqA8rMCIBWKt70tLiDlcpS5p_lWNc_BJXklU-BIstsLsHDLzapL;
步骤113:认证设备将认证设备的当前认证次数和签名得到的签名结果组成认证响应信息,向客户端发送认证响应信息;
例如,认证响应信息为:
"signatureData":"AQAAAAgwRAIgVmzFftuZrSeknWd71GHp9LMVSPPX64MGkTVvsrqA8rMCIBWKt70tLiDlcpS5p_lWNc_BJXklU-BIstsLsHDLzapL"
步骤114:客户端接收认证设备返回的信息,判断接收到的信息的类型,若是认证失败信息则执行步骤115,若是认证响应信息则执行步骤116;
步骤115:客户端判断认证数据包中是否存在位于当前认证数据之后的认证数据,是则将当前认证数据之后的认证数据作为更新后的当前认证数据,返回步骤107,否则确定认证失败,结束;
步骤116:客户端将认证响应信息、客户端生成的客户端数据对象和当前认证数据中的会话ID组成签名验证请求,向服务器发送签名验证请求;
例如,客户端向服务器发送的签名验证请求为:
https://api-dfserv.cloudentify.com?u2fmethod=signFinish&appId=https://u2f.cloudentify.com
&browserData=eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZ2V0QXNzZXJ0aW9uIiwiY2hhbGxlbmdlIjoicXdVaHpyRkN2Mndwd0R2MUNNa3lJUSIsImNpZF9wdWJrZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJBTmFMY3Ryajd6RE9weFR1RVF0eTB3RHR4RlRPdTZxOXBhUWVEb3ViZ2w1ViIsInkiOiJBT0xqSWlJU3hCQ3hXMlFZVXhhdDllaXZleUk2ejNuaEZtbURZb1RnaHhuRyJ9LCJvcmlnaW4iOiJodHRwczovL3UyZi5jbG91ZGVudGlmeS5jb20ifQ
&signData=AQAAAAgwRAIgVmzFftuZrSeknWd71GHp9LMVSPPX64MGkTVvsrqA8rMCIBWKt70tLiDlcpS5p_lWNc_BJXklU-BIstsLsHDLzapL
&challenge=qwUhzrFCv2wpwDv1CMkyIQ
&sessionId=8238acbf-3319-4d49-b86c-cd45797d2bd6;
步骤117:服务器接收签名验证请求,对签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
步骤118:服务器从认证响应信息中获取认证设备的当前认证次数和签名结果;
步骤119:服务器判断获取到的认证设备的当前认证次数是否大于服务器中的当前认证次数,是则执行步骤120,否则向客户端返回错误信息;
具体地,服务器中的当前认证次数初始值为0,更新服务器中的当前认证次数为将服务器中的当前认证次数自加1;
步骤120:服务器对签名验证请求中的客户端数据对象进行哈希运算得到第一哈希值,根据会话ID查找对应的应用ID,将查找到的应用ID进行哈希运算得到第二哈希值,根据第一哈希值、第二哈希值和认证设备的当前认证次数组成验证数据;
步骤121:服务器根据会话ID查找对应的密钥记录中的公钥,根据验证数据、获取到的签名结果和查找到的密钥记录中的公钥,进行验签,判断是否验签成功,是则执行步骤122,否则向客户端返回错误信息;
具体地,服务器根据签名算法和密钥记录中的公钥,对获取到的签名结果进行解签名,得到解签名结果,服务器判断解签名结果是否与验证数据一致,是则确定验签成功,否则确定验签失败;
步骤122:服务器更新服务器中的当前认证次数,向客户端返回成功信息;
步骤123:客户端接收服务器返回的信息,判断接收到的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
本实施例中提供的一种基于认证设备进行认证的方法,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;身份认证通过后,客户端不保存任何登陆信息;实现线上快速身份验证,提高互联网的安全性。
实施例3
本发明的实施例3提供了一种基于认证设备进行认证的方法,如图4至图6所示,包括:
步骤201:客户端获取统一资源标识符(Uniform Resource Identifier),根据统一资源标识符得到应用ID,根据应用ID、应用标识和用户输入的用户标识得到设备认证请求,向服务器发送设备认证请求;
具体地,若客户端为浏览器,则客户端获取访问的统一资源标识符的头域作为应用ID;若客户端为安卓系统,则客户端获取被签署的安卓安装包的密钥标示符的内容作为统一资源标识符;若客户端为iOS系统,则客户端获取IOS应用标示符的内容作为统一资源标识符;
例如,本实施例中,应用ID为https://u2f.cloudentify.com,应用标识为89F4D9133E7105CB2654,用户输入的用户标识为feitianuser-1439363493424;客户端向服务器发送的设备认证请求为:
https://api-dfserv.cloudentify.com?u2fmethod=signData&appkey=89F4D9133E7105CB2654&userName=feitianuser-1439363493424&appId=https://u2f.cloudentify.com;
步骤202:服务器接收客户端发送的请求,对该请求进行解析,判断接收到的请求是否为设备认证请求,是则执行步骤203,否则执行相应操作;
步骤203:服务器对设备认证请求进行解析,得到应用标识、应用ID和用户标识;
例如,服务器对设备认证请求进行解析得到应用ID为https://u2f.cloudentify.com、应用标识为89F4D9133E7105CB2654,用户标识为feitianuser-1439363493424;
步骤204:服务器根据应用标识在服务器中查找应用记录,判断是否能够查找到与应用标识匹配的应用记录,是则执行步骤205,否则向客户端返回错误信息;
步骤205:服务器获取与应用标识匹配的应用记录,在应用记录中获取保护地址,判断解析得到的应用ID是否与获取到的保护地址匹配,是则执行步骤206,否则向客户端返回错误信息;
具体地,服务器判断解析得到的应用ID是否与获取到的保护地址一致,是则确定应用ID与获取到的保护地址匹配,否则确定应用ID与获取到的保护地址不匹配;
步骤206:服务器根据用户标识,在服务器中查找密钥记录,判断是否能够查找到与用户标识匹配的密钥记录,是则获取第一条与用户标识匹配的密钥记录作为当前密钥记录,执行步骤207,否则向客户端返回错误信息;
步骤207:服务器在当前密钥记录中获取密钥标识,生成与密钥标识对应的会话ID和挑战值,将预设版本号、挑战值、应用ID、会话ID和密钥标识组成当前认证数据,根据当前认证数据更新认证数据包;
具体地,认证数据包初始为空,更新认证数据包为在认证数据包中增加当前认证数据;
优选地,本实施例中,服务器生成一个随机数作为挑战值,再生成一个随机数与用户标识进行组合作为会话ID;
例如,挑战值为qwUhzrFCv2wpwDv1CMkyIQ,预设版本号为U2F_V2,会话ID为feitianuser-1439363493424_8238acbf-3319-4d49-b86c-cd45797d2bd6,应用ID为https://u2f.cloudentify.com,当前密钥记录中获取密钥标识为:GQWE3Oyf2fexWtgn4Y6oQs7M5C-BonVtLzG37nHHdHBr9FlDqFD1HAO5PZfWFLfSCGZk8ICrLHf9aNkF0kpdJw-72uY220zIRwHQ89jcBFNIdhK8rFzbaEP-PtoslGqliTJ1qA9pDT61UOBokK-HI6dkwJk7VRGAKuj2XFos-nU29VhEudTeNVz90cfSQCf6nTNQTRuTXnYqMgWqtf6WREU8g5OVffVoeX0eq10bOWiaFlZzcucWULUHho-AfV661onMp2XR;
则当前认证数据为:
"appId":"https://u2f.cloudentify.com","challenge":"qwUhzrFCv2wpwDv1CMkyIQ","version":"U2F_V2","sessionId":"feitianuser-1439363493424_8238acbf-3319-4d49-b86c-cd45797d2bd6","keyHandle":"GQWE3Oyf2fexWtgn4Y6oQs7M5C-BonVtLzG37nHHdHBr9FlDqFD1HAO5PZfWFLfSCGZk8ICrLHf9aNkF0kpdJw-72uY220zIRwHQ89jcBFNIdhK8rFzbaEP-PtoslGqliTJ1qA9pDT61UOBokK-HI6dkwJk7VRGAKuj2XFos-nU29VhEudTeNVz90cfSQCf6nTNQTRuTXnYqMgWqtf6WREU8g5OVffVoeX0eq10bOWiaFlZzcucWULUHho-AfV661onMp2XR";
步骤208:服务器判断当前密钥记录之后是否还存在与用户标识匹配的密钥记录,是则将当前密钥记录之后的与用户标识匹配的密钥记录作为更新后的当前密钥记录,返回步骤207,否则向客户端发送认证数据包,执行步骤209;
步骤209:客户端接收服务器发送的数据,对接收到的数据进行判断,若是错误信息则确定认证失败,若是认证数据包则执行步骤210;
步骤210:客户端获取认证数据包中的第一条认证数据作为当前认证数据;
步骤211:客户端获取当前认证数据中的应用ID,对获取到的应用ID进行验证,判断应用ID是否正确,是则执行步骤212,否则确定认证失败,结束;
步骤212:客户端根据当前认证数据中的挑战值和应用ID得到客户端数据对象;
具体地,客户端将第一预设字符串、挑战值和应用ID组合,并对组合得到的数据进行base64编码,得到客户端数据对象;
例如,第一预设字符串为navigator.id.getAssertion,客户端数据对象为:"clientData":"eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZ2V0QXNzZXJ0aW9uIiwiY2hhbGxlbmdlIjoicXdVaHpyRkN2Mndwd0R2MUNNa3lJUSIsImNpZF9wdWJrZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJBTmFMY3Ryajd6RE9weFR1RVF0eTB3RHR4RlRPdTZxOXBhUWVEb3ViZ2w1ViIsInkiOiJBT0xqSWlJU3hCQ3hXMlFZVXhhdDllaXZleUk2ejNuaEZtbURZb1RnaHhuRyJ9LCJvcmlnaW4iOiJodHRwczovL3UyZi5jbG91ZGVudGlmeS5jb20ifQ";
步骤213:客户端对客户端数据对象进行哈希运算得到挑战参数,对当前认证数据中的应用ID进行哈希运算得到应用参数,获取当前认证数据中的密钥标识,将挑战参数、应用参数、密钥标识和密钥标识长度组成当前认证请求信息,向认证设备发送当前认证请求信息;
具体地,本实施例中,哈希运算的算法为SHA256;
步骤214:认证设备等待并接收当前认证请求信息,获取当前认证请求信息中的密钥标识;
步骤215:认证设备根据密钥标识在认证设备中查找对应的密钥对中的私钥,判断是否能够查找到与密钥标识对应的密钥对中的私钥,是则执行步骤216,否则向客户端返回认证失败信息;
具体地,当认证设备判断出不能够查找到与密钥标识对应的密钥对中的私钥时,向客户端返回认证失败信息,并返回步骤214继续等待并接收当前认证请求信息;
步骤216:认证设备根据认证设备的当前认证次数、用户出示字节、当前认证请求信息中的挑战参数和应用参数,得到待签名数据,等待并接收来自用户的确认信息;
本实施例中,来自用户的确认信息包括按键信息;例如,若认证设备上的预设按键被触发,则认证设备确定接收到来自用户的确认信息;
该步骤之后还包括,认证设备判断是否在预设时间内接收到来自用户的确认信息,是则执行步骤217,否则向客户端返回认证失败信息;
步骤217:当认证设备接收到来自用户的确认信息时,认证设备使用查找到的与密钥标识对应的私钥,根据签名算法对待签名数据进行签名,得到签名结果,更新认证设备的当前认证次数;
具体地,本实施例中,签名算法为ECDSA(Elliptic Curve Digital SignatureAlgorithm,椭圆曲线数字签名算法);
例如,签名结果为:
AQAAAAgwRAIgVmzFftuZrSeknWd71GHp9LMVSPPX64MGkTVvsrqA8rMCIBWKt70tLiDlcpS5p_lWNc_BJXklU-BIstsLsHDLzapL;
步骤218:认证设备将认证设备的当前认证次数、用户出示字节和签名得到的签名结果组成认证响应信息,向客户端发送认证响应信息;
步骤219:客户端接收认证设备返回的信息,判断接收到的信息的类型,若是认证失败信息则执行步骤220,若是认证响应信息则执行步骤221;
步骤220:客户端判断认证数据包中是否存在位于当前认证数据之后的认证数据,是则将当前认证数据之后的认证数据作为更新后的当前认证数据,返回步骤211,否则确定认证失败,结束;
步骤221:客户端将认证响应信息、客户端生成的客户端数据对象、当前认证数据中的会话ID、应用ID和挑战值组成签名验证请求,向服务器发送签名验证请求;
例如,客户端向服务器发送的签名验证请求为:
https://api-dfserv.cloudentify.com?u2fmethod=signFinish&appkey=89F4D9133E7105CB2654&appId=https://u2f.cloudentify.com
&browserData=eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZ2V0QXNzZXJ0aW9uIiwiY2hhbGxlbmdlIjoicXdVaHpyRkN2Mndwd0R2MUNNa3lJUSIsImNpZF9wdWJrZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJBTmFMY3Ryajd6RE9weFR1RVF0eTB3RHR4RlRPdTZxOXBhUWVEb3ViZ2w1ViIsInkiOiJBT0xqSWlJU3hCQ3hXMlFZVXhhdDllaXZleUk2ejNuaEZtbURZb1RnaHhuRyJ9LCJvcmlnaW4iOiJodHRwczovL3UyZi5jbG91ZGVudGlmeS5jb20ifQ
&signData=AQAAAAgwRAIgVmzFftuZrSeknWd71GHp9LMVSPPX64MGkTVvsrqA8rMCIBWKt70tLiDlcpS5p_lWNc_BJXklU-BIstsLsHDLzapL
&challenge=qwUhzrFCv2wpwDv1CMkyIQ
&sessionId=feitianuser-1439363493424_8238acbf-3319-4d49-b86c-cd45797d2bd6;
步骤222:服务器接收客户端发送的请求,对该请求进行解析,判断接收到的请求是否为签名验证请求,是则执行步骤223,否则执行相应操作;
步骤223:服务器对签名验证请求进行解析,得到认证响应信息和客户端数据对象和会话ID;
步骤224:服务器根据会话ID在服务器中查找对应的公钥,判断是否能够查找到有效的公钥,是则执行步骤225,否则向客户端返回错误信息;
本实施例中,该步骤还可以包括:服务器根据签名验证请求中的会话ID,在服务器中查找应用ID和挑战值,判断查找到的应用ID和挑战值是否分别与接收到的应用ID和挑战值一致,是则执行步骤224,否则向客户端返回错误信息;
步骤225:服务器从认证响应信息中获取认证设备的当前认证次数、用户出示字节和签名结果;
步骤226:服务器对用户出示字节和认证设备的当前认证次数进行判断,若用户出示字节为预设值,并且认证设备的当前认证次数大于服务器中的当前认证次数,则执行步骤227,否则向客户端返回错误信息;
步骤227:服务器对签名验证请求中的客户端数据对象进行哈希运算得到第一哈希值,将应用ID进行哈希运算得到第二哈希值,根据第一哈希值、第二哈希值、认证设备的当前认证次数和用户出示字节组成验证数据;
步骤228:服务器根据会话ID查找对应的密钥记录中的公钥,根据验证数据、获取到的签名结果和查找到的密钥记录中的公钥,进行验签,判断是否验签成功,是则执行步骤229,否则向客户端返回错误信息;
具体地,服务器根据签名算法和密钥记录中的公钥,对获取到的签名结果进行解签名,得到解签名结果,服务器判断解签名结果是否与验证数据一致,是则确定验签成功,否则确定验签失败;
步骤229:服务器更新服务器中的当前认证次数,向客户端返回成功信息;
步骤230:客户端接收服务器返回的信息,判断接收到的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
本实施例中提供的一种基于认证设备进行认证的方法,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;身份认证通过后,客户端不保存任何登陆信息;实现线上快速身份验证,提高互联网的安全性。
实施例4
本发明的实施例4提供了一种基于认证设备进行认证的客户端,如图7所示,包括:第一生成模块401、第一发送模块402、第一接收模块403、第二生成模块404、第三生成模块405、第一判断模块406、第四生成模块407和第二判断模块408;
第一生成模块401,用于获取统一资源标识符,根据统一资源标识符得到应用ID,根据应用ID和用户输入的用户标识得到设备认证请求;
第一发送模块402,用于向服务器发送第一生成模块401生成的设备认证请求,向认证设备发送第三生成模块405生成的当前认证请求信息,向服务器发送第四生成模块407生成的签名验证请求;
第一接收模块403,用于接收服务器返回的当前认证数据,接收认证设备返回的信息,接收服务器返回的信息;
第二生成模块404,用于根据第一接收模块403接收到的当前认证数据中的挑战值得到客户端数据对象;
第三生成模块405,用于对第二生成模块404生成的客户端数据对象和第一接收模块403接收到的当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,将客户端参数、密钥标识和密钥标识长度组成当前认证请求信息;
第一判断模块406,用于判断第一接收模块403接收到的认证设备返回的信息的类型,若是认证失败信息则确定认证失败,结束;
第四生成模块407,用于当第一判断模块406判断出认证设备返回的信息是认证响应信息时,将认证响应信息、第二生成模块404生成的客户端数据对象和第一接收模块403接收到的当前认证数据中的会话ID组成签名验证请求;
第二判断模块408,用于判断第一接收模块403接收到的服务器返回的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
其中,第一接收模块403具体用于接收服务器发送的数据,接收认证设备返回的信息,接收服务器返回的信息;
客户端还包括第三判断模块,用于判断第一接收模块403接收到的服务器发送的数据是否为错误信息,是则确定认证失败,结束;否则确定接收到的数据为当前认证数据,触发第二生成模块404进行工作。
其中,第一接收模块403,还用于接收服务器发送的认证数据包;
客户端还包括第一获取模块和第四判断模块
第一获取模块,用于获取第一接收模块403接收到的认证数据包中的第一条认证数据作为当前认证数据;当第四判断模块判断出认证数据包中存在位于当前认证数据之后的认证数据时,将当前认证数据之后的认证数据作为更新后的当前认证数据;
第二生成模块404,还用于根据第一获取模块获取到的当前认证数据中的挑战值得到客户端数据对象;
第四判断模块,用于当第一判断模块406判断认证设备返回的信息为认证失败信息时,判断第一接收模块403接收到的认证数据包中是否存在位于当前认证数据之后的认证数据,是则触发第一获取模块进行工作,否则确定认证失败,结束。
其中,第一接收模块403具体用于接收服务器发送的数据,接收认证设备返回的信息,接收服务器返回的信息;
客户端还包括第五判断模块,用于判断第一接收模块403接收到的服务器发送的数据是否为错误信息,是则确定认证失败,结束;否则确定接收到的数据为认证数据包,触发第一获取模块进行工作。
客户端还包括第六判断模块,用于获取第一接收模块403接收到的当前认证数据中的应用ID,对获取到的应用ID进行验证,判断应用ID是否正确,是则触发第二生成模块404进行工作,否则确定认证失败,结束。
其中,第二生成模块404,具体用于将第一预设字符串和挑战值组合再进行base64编码,得到客户端数据对象。
本实施例中提供的一种基于认证设备进行认证的客户端,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;身份认证通过后,客户端不保存任何登陆信息;实现线上快速身份验证,提高互联网的安全性。
实施例5
本发明的实施例5提供了一种基于认证设备进行认证的服务器,如图8所示,包括:第二接收模块501、第一解析模块502、第七判断模块503、第二获取模块504、第五生成模块505、第三获取模块506、第八判断模块507、第六生成模块508、验证模块509、第一更新模块510和第二发送模块511;
第二接收模块501,用于接收客户端发送的设备认证请求,接收客户端发送的签名验证请求;
第一解析模块502,用于对第二接收模块501接收到的设备认证请求进行解析,得到应用ID和用户标识;对第二接收模块501接收到的签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
第七判断模块503,用于根据第一解析模块502解析得到的用户标识,在服务器中查找密钥记录,判断是否能够查找到与用户标识匹配的密钥记录;
第二获取模块504,用于当第七判断模块503判断出能够查找到与用户标识匹配的密钥记录时,获取密钥记录作为当前密钥记录;
第五生成模块505,用于在第二获取模块504获取到的当前密钥记录中获取密钥标识,生成与密钥标识对应的会话ID和挑战值,将挑战值、会话ID、第一解析模块502解析得到的应用ID和密钥标识组成当前认证数据;
第三获取模块506,用于从第一解析模块502解析得到的认证响应信息中获取认证设备的当前认证次数和签名结果;
第八判断模块507,用于判断第三获取模块506获取到的认证设备的当前认证次数是否大于服务器中的当前认证次数,否则向客户端返回错误信息;
第六生成模块508,用于当第八判断模块507判断出认证设备的当前认证次数大于服务器中的当前认证次数时,根据第一解析模块502解析得到的会话ID查找对应的应用ID,对第一解析模块502解析得到的客户端数据对象和查找到的应用ID进行哈希运算得到服务器参数,根据服务器参数和第三获取模块506获取到的认证设备的当前认证次数组成验证数据;
验证模块509,用于根据第一解析模块502解析得到的会话ID查找对应的密钥记录中的公钥,根据第六生成模块508生成的验证数据、第三获取模块506获取到的签名结果和查找到的密钥记录中的公钥,进行验签,判断是否验签成功;
第一更新模块510,用于当验证模块509判断验签成功时,更新服务器中的当前认证次数;
第二发送模块511,用于当第七判断模块503判断出不能够查找到与用户标识匹配的密钥记录时,向客户端返回错误信息;向客户端发送第五生成模块505生成的当前认证数据;当第八判断模块507判断出认证设备的当前认证次数不大于服务器中的当前认证次数时,向客户端返回错误信息;当验证模块509判断验签成功时,向客户端返回成功信息;当验证模块509判断验签失败时,向客户端返回错误信息。
其中,第一解析模块502还用于对第二接收模块501接收到的设备认证请求进行解析,得到应用标识;
服务器还包括第九判断模块和第十判断模块;
第九判断模块,用于根据第一解析模块502解析得到的应用标识在服务器中查找应用记录,判断是否能够查找到与应用标识匹配的应用记录;
第十判断模块,用于当第九判断模块判断出能够查找到与应用标识匹配的应用记录时,获取与应用标识匹配的应用记录,在应用记录中获取保护地址,判断解析得到的应用ID是否与获取到的保护地址匹配,是则触发第七判断模块503进行工作;
第二发送模块511,还用于当第九判断模块判断出不能够查找到与应用标识匹配的应用记录时,向客户端返回错误信息;当第十判断模块判断出解析得到的应用ID与获取到的保护地址不匹配时,向客户端返回错误信息。
其中,第二获取模块504具体用于获取第一条与用户标识匹配的密钥记录作为当前密钥记录;
第五生成模块505,还用于在第二获取模块504获取到的当前密钥记录中获取密钥标识,生成与密钥标识对应的会话ID和挑战值,将挑战值、应用ID、会话ID和密钥标识组成当前认证数据,根据当前认证数据更新认证数据包;
服务器还包括第十一判断模块,用于判断当前密钥记录之后是否还存在与用户标识匹配的密钥记录;
第二获取模块504,还用于当第十一判断模块判断出当前密钥记录之后还存在与用户标识匹配的密钥记录时,将当前密钥记录之后的与用户标识匹配的密钥记录作为更新后的当前密钥记录;
第二发送模块511,还用于当第十一判断模块判断出当前密钥记录之后不存在与用户标识匹配的密钥记录时,向客户端发送第五生成模块505生成的认证数据包。
服务器还包括第十二判断模块,用于根据第一解析模块502解析得到的会话ID在服务器中查找对应的公钥,判断是否能够查找到有效的公钥,是则触发第三获取模块506进行工作;
第二发送模块511,还用于当第十二判断模块判断出不能够查找到有效的公钥时,向客户端返回错误信息。
其中,第三获取模块506还用于从认证响应信息中获取用户出示字节;
服务器还包括第十三判断模块,用于判断第三获取模块506获取到的用户出示字节是否为预设值,是则触发第六生成模块508进行工作;
第二发送模块511,还用于当第十三判断模块判断出用户出示字节不为预设值时,向客户端返回错误信息。
本实施例中提供的一种基于认证设备进行认证的服务器,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;实现线上快速身份验证,提高互联网的安全性。
实施例6
本发明的实施例6提供了一种基于认证设备进行认证的认证设备,如图9所示,包括:第三接收模块601、第四获取模块602、第十四判断模块603、第七生成模块604、签名模块605、第二更新模块606、第八生成模块607和第三发送模块608;
第三接收模块601,用于等待并接收客户端发送的当前认证请求信息,等待并接收来自用户的确认信息;
第四获取模块602,用于获取第三接收模块601接收到的当前认证请求信息中的密钥标识;
第十四判断模块603,用于根据第四获取模块602获取到的密钥标识在认证设备中查找对应的密钥对中的私钥,判断是否能够查找到与密钥标识对应的密钥对中的私钥;
第七生成模块604,用于当第十四判断模块603判断出能够查找到与密钥标识对应的密钥对中的私钥时,根据认证设备的当前认证次数、第三接收模块601接收到的当前认证请求信息中的客户端参数,得到待签名数据;
签名模块605,用于当第三接收模块601接收到来自用户的确认信息时,使用查找到的与密钥标识对应的私钥,根据签名算法对第七生成模块604生成的待签名数据进行签名,得到签名结果;
第二更新模块606,用于当签名模块605进行签名时,更新认证设备的当前认证次数;
第八生成模块607,用于将第二更新模块606更新得到的认证设备的当前认证次数和签名模块605签名得到的签名结果组成认证响应信息;
第三发送模块608,当第十四判断模块603判断出不能够查找到密钥标识对应的密钥对中的私钥时,向客户端返回认证失败信息;向客户端发送第八生成模块607生成的认证响应信息。
其中,第八生成模块607,具体用于将认证设备的当前认证次数、用户出示字节和签名结果组成认证响应信息。
本实施例中提供的一种基于认证设备进行认证的认证设备,认证设备参与身份认证过程,将用户的私钥储存在认证设备中,使网络犯罪者更难得到这些信息,在身份认证过程中,私钥不会被发送出去;身份认证通过后,客户端不保存任何登陆信息;实现线上快速身份验证,提高互联网的安全性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (27)

1.一种基于认证设备进行认证的方法,其特征在于,所述方法包括:
步骤S1:客户端获取统一资源标识符,根据所述统一资源标识符得到应用ID,根据所述应用ID和用户输入的用户标识得到设备认证请求,向服务器发送所述设备认证请求;
步骤S2:所述客户端接收所述服务器发送的当前认证数据;
步骤S3:所述客户端根据当前认证数据中的挑战值得到客户端数据对象,对所述客户端数据对象和当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,将所述客户端参数、所述密钥标识和密钥标识长度组成当前认证请求信息,向认证设备发送当前认证请求信息;
步骤S4:所述客户端接收所述认证设备返回的信息,判断接收到的信息的类型,若是认证失败信息则确定认证失败,结束,若是认证响应信息则执行步骤S5;
步骤S5:所述客户端将所述认证响应信息、所述客户端数据对象和当前认证数据中的会话ID组成签名验证请求,向所述服务器发送所述签名验证请求;
步骤S6:所述客户端接收所述服务器返回的信息,判断接收到的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2具体为:所述客户端接收所述服务器发送的数据,判断接收到的数据是否为错误信息,是则确定认证失败,结束;否则所述客户端确定接收到的数据为当前认证数据,执行步骤S3。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2具体为:
步骤S2-1:所述客户端接收所述服务器发送的认证数据包,获取所述认证数据包中的第一条认证数据作为当前认证数据,执行步骤S3;
所述步骤S5中所述客户端判断接收到的信息为认证失败信息时,还包括:
所述客户端判断所述认证数据包中是否存在位于当前认证数据之后的认证数据,是则将当前认证数据之后的认证数据作为更新后的当前认证数据,返回步骤S3,否则确定认证失败,结束。
4.根据权利要求3所述的方法,其特征在于,所述步骤S2-1具体为:所述客户端接收所述服务器发送的数据,判断接收到的数据是否为错误信息,是则确定认证失败,结束;否则所述客户端确定接收到的数据为认证数据包,获取认证数据包中的第一条认证数据作为当前认证数据,执行步骤S3。
5.根据权利要求1所述的方法,其特征在于,所述步骤S3之前包括:所述客户端获取当前认证数据中的应用ID,对获取到的应用ID进行验证,判断所述应用ID是否正确,是则执行步骤S3,否则确定认证失败,结束。
6.根据权利要求1所述的方法,其特征在于,所述根据当前认证数据中的挑战值得到客户端数据对象,具体为:所述客户端将第一预设字符串、所述挑战值和所述应用ID组合,并对组合得到的数据进行base64编码,得到所述客户端数据对象。
7.根据权利要求1所述的方法,其特征在于,所述步骤S1之后,所述服务器接收到所述设备认证请求,执行以下步骤:
步骤P1:所述服务器对所述设备认证请求进行解析,得到应用ID和用户标识;
步骤P2:所述服务器根据所述用户标识,在所述服务器中查找密钥记录,判断是否能够查找到与所述用户标识匹配的密钥记录,是则获取所述密钥记录作为当前密钥记录,执行步骤P3,否则向所述客户端返回错误信息;
步骤P3:所述服务器在当前密钥记录中获取密钥标识,生成与所述密钥标识对应的会话ID和挑战值,将所述挑战值、所述应用ID、所述会话ID和所述密钥标识组成当前认证数据,向所述客户端发送当前认证数据。
8.根据权利要求7所述的方法,其特征在于,所述步骤P1还包括:所述服务器对所述设备认证请求进行解析,得到应用标识;
所述步骤P2之前还包括:
步骤P1-1:所述服务器根据所述应用标识在所述服务器中查找应用记录,判断是否能够查找到与所述应用标识匹配的应用记录,是则执行步骤P1-2,否则向所述客户端返回错误信息;
步骤P1-2:所述服务器获取与所述应用标识匹配的应用记录,在所述应用记录中获取保护地址,判断解析得到的所述应用ID是否与获取到的所述保护地址匹配,是则执行步骤P2,否则向所述客户端返回错误信息。
9.根据权利要求7所述的方法,其特征在于,所述步骤P2包括:所述服务器判断能够查找到与所述用户标识匹配的密钥记录时,获取第一条与所述用户标识匹配的密钥记录作为当前密钥记录,执行步骤P3;
所述步骤P3具体为:
步骤P3-1:所述服务器在当前密钥记录中获取密钥标识,生成与所述密钥标识对应的会话ID和挑战值,将所述挑战值、所述应用ID、所述会话ID和所述密钥标识组成当前认证数据,根据当前认证数据更新认证数据包;
步骤P3-2:所述服务器判断当前密钥记录之后是否还存在与所述用户标识匹配的密钥记录,是则将当前密钥记录之后的与所述用户标识匹配的密钥记录作为更新后的当前密钥记录,返回步骤P3-1,否则向所述客户端发送所述认证数据包。
10.根据权利要求1所述的方法,其特征在于,所述步骤S5之后,所述服务器接收到所述签名验证请求,执行以下步骤:
步骤P4:所述服务器对所述签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
步骤P5:所述服务器从所述认证响应信息中获取认证设备的当前认证次数和签名结果;
步骤P6:所述服务器判断所述认证设备的当前认证次数是否大于服务器中的当前认证次数,是则执行步骤P7,否则向所述客户端返回错误信息;
步骤P7:所述服务器根据所述会话ID查找对应的应用ID,对所述客户端数据对象和查找到的所述应用ID进行哈希运算得到服务器参数,根据所述服务器参数和所述认证设备的当前认证次数组成验证数据;
步骤P8:所述服务器根据所述会话ID查找对应的密钥记录中的公钥,根据所述验证数据、所述签名结果和查找到的所述密钥记录中的公钥,进行验签,判断是否验签成功,是则执行步骤P9,否则向所述客户端返回错误信息;
步骤P9:所述服务器更新所述服务器中的当前认证次数,向所述客户端返回成功信息。
11.根据权利要求10所述的方法,其特征在于,所述步骤P5之前包括:所述服务器根据所述会话ID在所述服务器中查找对应的公钥,判断是否能够查找到有效的公钥,是则执行步骤P5,否则向所述客户端返回错误信息。
12.根据权利要求10所述的方法,其特征在于,所述步骤P5还包括:所述服务器从所述认证响应信息中获取用户出示字节;
所述步骤P7之前还包括:
所述服务器判断所述用户出示字节是否为预设值,是则执行步骤P7,否则向所述客户端返回错误信息。
13.根据权利要求1所述的方法,其特征在于,所述步骤S3之后,所述认证设备执行以下步骤:
步骤Q1:所述认证设备等待并接收当前认证请求信息,获取当前认证请求信息中的密钥标识;
步骤Q2:所述认证设备根据所述密钥标识在所述认证设备中查找对应的密钥对中的私钥,判断是否能够查找到与所述密钥标识对应的密钥对中的私钥,是则执行步骤Q3,否则向所述客户端返回认证失败信息;
步骤Q3:所述认证设备根据认证设备的当前认证次数、当前认证请求信息中的客户端参数,得到待签名数据,等待并接收来自用户的确认信息;
步骤Q4:当所述认证设备接收到来自用户的所述确认信息时,所述认证设备使用查找到的与所述密钥标识对应的私钥,根据签名算法对所述待签名数据进行签名,得到签名结果,更新所述认证设备的当前认证次数;
步骤Q5:所述认证设备将所述认证设备的当前认证次数和所述签名结果组成认证响应信息,向所述客户端发送所述认证响应信息。
14.根据权利要求13所述的方法,其特征在于,所述步骤Q5具体为:所述认证设备将所述认证设备的当前认证次数、用户出示字节和所述签名结果组成认证响应信息,向所述客户端发送所述认证响应信息。
15.一种基于认证设备进行认证的客户端,其特征在于,所述客户端包括:第一生成模块、第一发送模块、第一接收模块、第二生成模块、第三生成模块、第一判断模块、第四生成模块和第二判断模块;
所述第一生成模块,用于获取统一资源标识符,根据所述统一资源标识符得到应用ID,根据所述应用ID和用户输入的用户标识得到设备认证请求;
所述第一发送模块,用于向服务器发送所述第一生成模块生成的所述设备认证请求,向认证设备发送所述第三生成模块生成的当前认证请求信息,向所述服务器发送所述第四生成模块生成的签名验证请求;
所述第一接收模块,用于接收所述服务器返回的当前认证数据,接收所述认证设备返回的信息,接收所述服务器返回的信息;
所述第二生成模块,用于根据所述第一接收模块接收到的当前认证数据中的挑战值得到客户端数据对象;
所述第三生成模块,用于对所述第二生成模块生成的所述客户端数据对象和所述第一接收模块接收到的当前认证数据中的应用ID进行哈希运算得到客户端参数,获取当前认证数据中的密钥标识,将所述客户端参数、所述密钥标识和密钥标识长度组成当前认证请求信息;
所述第一判断模块,用于判断所述第一接收模块接收到的认证设备返回的信息的类型,若是认证失败信息则确定认证失败,结束;
所述第四生成模块,用于当所述第一判断模块判断出认证设备返回的信息是认证响应信息时,将所述认证响应信息、所述第二生成模块生成的所述客户端数据对象和所述第一接收模块接收到的当前认证数据中的会话ID组成签名验证请求;
所述第二判断模块,用于判断所述第一接收模块接收到的所述服务器返回的信息是否为成功信息,是则确定认证成功,否则确定认证失败。
16.根据权利要求15所述的客户端,其特征在于,所述第一接收模块具体用于接收所述服务器发送的数据,接收所述认证设备返回的信息,接收所述服务器返回的信息;
所述客户端还包括第三判断模块,用于判断所述第一接收模块接收到的所述服务器发送的数据是否为错误信息,是则确定认证失败,结束;否则确定接收到的数据为当前认证数据,触发所述第二生成模块进行工作。
17.根据权利要求15所述的客户端,其特征在于,所述第一接收模块,还用于接收所述服务器发送的认证数据包;
所述客户端还包括第一获取模块和第四判断模块
所述第一获取模块,用于获取所述第一接收模块接收到的所述认证数据包中的第一条认证数据作为当前认证数据;当所述第四判断模块判断出所述认证数据包中存在位于当前认证数据之后的认证数据时,将当前认证数据之后的认证数据作为更新后的当前认证数据;
所述第二生成模块,还用于根据所述第一获取模块获取到的当前认证数据中的挑战值得到客户端数据对象;
所述第四判断模块,用于当所述第一判断模块判断所述认证设备返回的信息为认证失败信息时,判断所述第一接收模块接收到的所述认证数据包中是否存在位于当前认证数据之后的认证数据,是则触发所述第一获取模块进行工作,否则确定认证失败,结束。
18.根据权利要求17所述的客户端,其特征在于,所述第一接收模块具体用于接收所述服务器发送的数据,接收所述认证设备返回的信息,接收所述服务器返回的信息;
所述客户端还包括第五判断模块,用于判断所述第一接收模块接收到的所述服务器发送的数据是否为错误信息,是则确定认证失败,结束;否则确定接收到的数据为认证数据包,触发所述第一获取模块进行工作。
19.根据权利要求15所述的客户端,其特征在于,所述客户端还包括第六判断模块,用于获取所述第一接收模块接收到的当前认证数据中的应用ID,对获取到的应用ID进行验证,判断所述应用ID是否正确,是则触发所述第二生成模块进行工作,否则确定认证失败,结束。
20.根据权利要求15所述的客户端,其特征在于,所述第二生成模块,具体用于将第一预设字符串和所述挑战值组合再进行base64编码,得到所述客户端数据对象。
21.一种基于认证设备进行认证的服务器,其特征在于,所述服务器通过客户端与认证设备进行通信,所述服务器包括:第二接收模块、第一解析模块、第七判断模块、第二获取模块、第五生成模块、第三获取模块、第八判断模块、第六生成模块、验证模块、第一更新模块和第二发送模块;
所述第二接收模块,用于接收客户端发送的设备认证请求,接收所述客户端发送的签名验证请求;
所述第一解析模块,用于对所述第二接收模块接收到的所述设备认证请求进行解析,得到应用ID和用户标识;对所述第二接收模块接收到的所述签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
所述第七判断模块,用于根据所述第一解析模块解析得到的所述用户标识,在所述服务器中查找密钥记录,判断是否能够查找到与所述用户标识匹配的密钥记录;
所述第二获取模块,用于当所述第七判断模块判断出能够查找到与所述用户标识匹配的密钥记录时,获取所述密钥记录作为当前密钥记录;
所述第五生成模块,用于在所述第二获取模块获取到的当前密钥记录中获取密钥标识,生成与所述密钥标识对应的会话ID和挑战值,将所述挑战值、所述会话ID、所述第一解析模块解析得到的所述应用ID和所述密钥标识组成当前认证数据;
所述第三获取模块,用于从所述第一解析模块解析得到的所述认证响应信息中获取认证设备的当前认证次数和签名结果;
所述第八判断模块,用于判断所述第三获取模块获取到的所述认证设备的当前认证次数是否大于服务器中的当前认证次数,否则向所述客户端返回错误信息;
所述第六生成模块,用于当所述第八判断模块判断出所述认证设备的当前认证次数大于所述服务器中的当前认证次数时,根据所述第一解析模块解析得到的所述会话ID查找对应的应用ID,对所述第一解析模块解析得到的所述客户端数据对象和查找到的所述应用ID进行哈希运算得到服务器参数,根据所述服务器参数和所述第三获取模块获取到的所述认证设备的当前认证次数组成验证数据;
所述验证模块,用于根据所述第一解析模块解析得到的所述会话ID查找对应的密钥记录中的公钥,根据所述第六生成模块生成的所述验证数据、所述第三获取模块获取到的所述签名结果和查找到的所述密钥记录中的公钥,进行验签,判断是否验签成功;
所述第一更新模块,用于当所述验证模块判断验签成功时,更新所述服务器中的当前认证次数;
所述第二发送模块,用于当所述第七判断模块判断出不能够查找到与所述用户标识匹配的密钥记录时,向所述客户端返回错误信息;向所述客户端发送所述第五生成模块生成的当前认证数据;当所述第八判断模块判断出所述认证设备的当前认证次数不大于所述服务器中的当前认证次数时,向所述客户端返回错误信息;当所述验证模块判断验签成功时,向所述客户端返回成功信息;当所述验证模块判断验签失败时,向所述客户端返回错误信息。
22.根据权利要求21所述的服务器,其特征在于,所述第一解析模块还用于对所述第二接收模块接收到的所述设备认证请求进行解析,得到应用标识;
所述服务器还包括第九判断模块和第十判断模块;
所述第九判断模块,用于根据所述第一解析模块解析得到的所述应用标识在所述服务器中查找应用记录,判断是否能够查找到与所述应用标识匹配的应用记录;
所述第十判断模块,用于当所述第九判断模块判断出能够查找到与所述应用标识匹配的应用记录时,获取与所述应用标识匹配的应用记录,在所述应用记录中获取保护地址,判断解析得到的所述应用ID是否与获取到的所述保护地址匹配,是则触发所述第七判断模块进行工作;
所述第二发送模块,还用于当所述第九判断模块判断出不能够查找到与所述应用标识匹配的应用记录时,向所述客户端返回错误信息;当所述第十判断模块判断出解析得到的所述应用ID与获取到的所述保护地址不匹配时,向所述客户端返回错误信息。
23.根据权利要求21所述的服务器,其特征在于,所述第二获取模块具体用于获取第一条与所述用户标识匹配的密钥记录作为当前密钥记录;
所述第五生成模块,还用于在所述第二获取模块获取到的当前密钥记录中获取密钥标识,生成与所述密钥标识对应的会话ID和挑战值,将所述挑战值、所述应用ID、所述会话ID和所述密钥标识组成当前认证数据,根据当前认证数据更新认证数据包;
所述服务器还包括第十一判断模块,用于判断当前密钥记录之后是否还存在与所述用户标识匹配的密钥记录;
所述第二获取模块,还用于当所述第十一判断模块判断出当前密钥记录之后还存在与所述用户标识匹配的密钥记录时,将当前密钥记录之后的与所述用户标识匹配的密钥记录作为更新后的当前密钥记录;
所述第二发送模块,还用于当所述第十一判断模块判断出当前密钥记录之后不存在与所述用户标识匹配的密钥记录时,向所述客户端发送所述第五生成模块生成的所述认证数据包。
24.根据权利要求21所述的服务器,其特征在于,所述服务器还包括第十二判断模块,用于根据所述第一解析模块解析得到的所述会话ID在所述服务器中查找对应的公钥,判断是否能够查找到有效的公钥,是则触发所述第三获取模块进行工作;
所述第二发送模块,还用于当所述第十二判断模块判断出不能够查找到有效的公钥时,向所述客户端返回错误信息。
25.根据权利要求21所述的服务器,其特征在于,所述第三获取模块还用于从所述认证响应信息中获取用户出示字节;
所述服务器还包括第十三判断模块,用于判断所述第三获取模块获取到的所述用户出示字节是否为预设值,是则触发所述第六生成模块进行工作;
所述第二发送模块,还用于当所述第十三判断模块判断出所述用户出示字节不为预设值时,向所述客户端返回错误信息。
26.一种基于认证设备进行认证的认证设备,其特征在于,所述认证设备通过客户端与服务器进行通信,所述认证设备包括:第三接收模块、第四获取模块、第十四判断模块、第七生成模块、签名模块、第二更新模块、第八生成模块和第三发送模块;
所述第三接收模块,用于等待并接收客户端发送的当前认证请求信息,等待并接收来自用户的确认信息;
所述第四获取模块,用于获取所述第三接收模块接收到的当前认证请求信息中的密钥标识;
所述第十四判断模块,用于根据所述第四获取模块获取到的所述密钥标识在所述认证设备中查找对应的密钥对中的私钥,判断是否能够查找到与所述密钥标识对应的密钥对中的私钥;
所述第七生成模块,用于当所述第十四判断模块判断出能够查找到与所述密钥标识对应的密钥对中的私钥时,根据所述认证设备的当前认证次数、所述第三接收模块接收到的当前认证请求信息中的客户端参数,得到待签名数据;
所述签名模块,用于当所述第三接收模块接收到来自用户的所述确认信息时,使用查找到的与所述密钥标识对应的私钥,根据签名算法对所述第七生成模块生成的所述待签名数据进行签名,得到签名结果;
所述第二更新模块,用于当所述签名模块进行签名时,更新所述认证设备的当前认证次数;
所述第八生成模块,用于将所述第二更新模块更新得到的所述认证设备的当前认证次数和所述签名模块签名得到的所述签名结果组成认证响应信息;
所述第三发送模块,当所述第十四判断模块判断出不能够查找到与所述密钥标识对应的密钥对中的私钥时,向所述客户端返回认证失败信息;向所述客户端发送所述第八生成模块生成的所述认证响应信息;
所述服务器包括:第二接收模块、第一解析模块、第七判断模块、第二获取模块、第五生成模块、第三获取模块、第八判断模块、第六生成模块、验证模块、第一更新模块和第二发送模块;
所述第二接收模块,用于接收客户端发送的设备认证请求,接收所述客户端发送的签名验证请求;
所述第一解析模块,用于对所述第二接收模块接收到的所述设备认证请求进行解析,得到应用ID和用户标识;对所述第二接收模块接收到的所述签名验证请求进行解析,得到认证响应信息、客户端数据对象和当前认证数据中的会话ID;
所述第七判断模块,用于根据所述第一解析模块解析得到的所述用户标识,在所述服务器中查找密钥记录,判断是否能够查找到与所述用户标识匹配的密钥记录;
所述第二获取模块,用于当所述第七判断模块判断出能够查找到与所述用户标识匹配的密钥记录时,获取所述密钥记录作为当前密钥记录;
所述第五生成模块,用于在所述第二获取模块获取到的当前密钥记录中获取密钥标识,生成与所述密钥标识对应的会话ID和挑战值,将所述挑战值、所述会话ID、所述第一解析模块解析得到的所述应用ID和所述密钥标识组成当前认证数据;
所述第三获取模块,用于从所述第一解析模块解析得到的所述认证响应信息中获取认证设备的当前认证次数和签名结果;
所述第八判断模块,用于判断所述第三获取模块获取到的所述认证设备的当前认证次数是否大于服务器中的当前认证次数,否则向所述客户端返回错误信息;
所述第六生成模块,用于当所述第八判断模块判断出所述认证设备的当前认证次数大于所述服务器中的当前认证次数时,根据所述第一解析模块解析得到的所述会话ID查找对应的应用ID,对所述第一解析模块解析得到的所述客户端数据对象和查找到的所述应用ID进行哈希运算得到服务器参数,根据所述服务器参数和所述第三获取模块获取到的所述认证设备的当前认证次数组成验证数据;
所述验证模块,用于根据所述第一解析模块解析得到的所述会话ID查找对应的密钥记录中的公钥,根据所述第六生成模块生成的所述验证数据、所述第三获取模块获取到的所述签名结果和查找到的所述密钥记录中的公钥,进行验签,判断是否验签成功;
所述第一更新模块,用于当所述验证模块判断验签成功时,更新所述服务器中的当前认证次数;
所述第二发送模块,用于当所述第七判断模块判断出不能够查找到与所述用户标识匹配的密钥记录时,向所述客户端返回错误信息;向所述客户端发送所述第五生成模块生成的当前认证数据;当所述第八判断模块判断出所述认证设备的当前认证次数不大于所述服务器中的当前认证次数时,向所述客户端返回错误信息;当所述验证模块判断验签成功时,向所述客户端返回成功信息;当所述验证模块判断验签失败时,向所述客户端返回错误信息。
27.根据权利要求26所述的认证设备,其特征在于,所述第八生成模块,具体用于将所述认证设备的当前认证次数、用户出示字节和所述签名结果组成认证响应信息。
CN201510645439.4A 2015-10-08 2015-10-08 一种基于认证设备进行认证的方法和设备 Active CN105187450B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510645439.4A CN105187450B (zh) 2015-10-08 2015-10-08 一种基于认证设备进行认证的方法和设备
PCT/CN2016/096223 WO2017059741A1 (zh) 2015-10-08 2016-08-22 基于认证设备进行认证的方法和设备
US15/856,049 US10979427B2 (en) 2015-10-08 2017-12-27 Method and device for authenticating based on authenticating device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510645439.4A CN105187450B (zh) 2015-10-08 2015-10-08 一种基于认证设备进行认证的方法和设备

Publications (2)

Publication Number Publication Date
CN105187450A CN105187450A (zh) 2015-12-23
CN105187450B true CN105187450B (zh) 2019-05-10

Family

ID=54909294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510645439.4A Active CN105187450B (zh) 2015-10-08 2015-10-08 一种基于认证设备进行认证的方法和设备

Country Status (3)

Country Link
US (1) US10979427B2 (zh)
CN (1) CN105187450B (zh)
WO (1) WO2017059741A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187450B (zh) 2015-10-08 2019-05-10 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备
CN105847247B (zh) * 2016-03-21 2020-04-10 飞天诚信科技股份有限公司 一种认证系统及其工作方法
CN105933428B (zh) * 2016-05-27 2019-05-10 飞天诚信科技股份有限公司 一种与苹果终端进行通讯的方法及设备
CN106102058B (zh) * 2016-05-30 2019-04-12 飞天诚信科技股份有限公司 一种身份认证方法及装置
CN107666498B (zh) * 2016-07-27 2021-05-14 比亚迪股份有限公司 车载模块的更新方法、装置、云端服务器、系统和车辆
CN107733636B (zh) * 2016-08-11 2021-03-02 中国电信股份有限公司 认证方法以及认证系统
CN106529948A (zh) * 2016-11-07 2017-03-22 飞天诚信科技股份有限公司 一种支付认证方法及系统
CN106529963B (zh) * 2016-11-26 2018-02-16 浙江邦盛科技有限公司 一种用于移动设备安全认证的系统及方法
WO2018127118A1 (zh) * 2017-01-06 2018-07-12 中国移动通信有限公司研究院 一种身份认证方法及装置
CN106686004B (zh) * 2017-02-28 2019-07-12 飞天诚信科技股份有限公司 一种登录认证方法及系统
CN109214182B (zh) * 2017-07-03 2022-04-15 阿里巴巴集团控股有限公司 在云平台下虚拟机运行中对勒索软件的处理方法
CN110999210A (zh) * 2017-08-04 2020-04-10 日本电产株式会社 认证系统、在该认证系统中使用的电子设备以及认证方法
CN107579991B (zh) * 2017-09-28 2021-03-02 奇安信科技集团股份有限公司 一种对客户端进行云端防护认证的方法、服务器和客户端
CN109587098B (zh) * 2017-09-29 2022-04-08 阿里巴巴集团控股有限公司 一种认证系统和方法、授权服务器
CN107612940A (zh) * 2017-10-31 2018-01-19 飞天诚信科技股份有限公司 一种身份认证方法及认证装置
US10868812B2 (en) * 2017-12-29 2020-12-15 ANI Technologies Private Limited Method and system for device authentication
CN108270791B (zh) * 2018-01-30 2020-07-07 飞天诚信科技股份有限公司 一种安全运行可执行文件的方法及系统
CN110719245A (zh) * 2018-07-11 2020-01-21 中国移动通信集团浙江有限公司 一种物联网数据传输方法及系统
CN108932425B (zh) * 2018-07-11 2020-06-16 飞天诚信科技股份有限公司 一种离线身份认证方法、认证系统及认证设备
US11227041B2 (en) * 2018-08-24 2022-01-18 Baskaran Dharmarajan Identification service based authorization
CN110932858B (zh) * 2018-09-19 2023-05-02 阿里巴巴集团控股有限公司 认证方法和系统
CN109618194B (zh) * 2018-12-10 2021-05-11 贝尔合控(深圳)科技有限责任公司 一种基于点播平台端的鉴权点播方法及其装置
CN109684791B (zh) * 2018-12-26 2020-09-15 飞天诚信科技股份有限公司 一种软件保护方法及装置
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
CN110166576B (zh) * 2019-06-28 2022-07-01 飞天诚信科技股份有限公司 一种实现云音箱消息补推的方法及系统
US11290453B2 (en) 2019-07-12 2022-03-29 Bank Of America Corporation Split-tiered point-to-point inline authentication architecture
CN110460609B (zh) * 2019-08-16 2021-12-14 江苏恒宝智能系统技术有限公司 终端应用与安全认证平台的双向认证方法及系统
CN110830264B (zh) * 2019-11-06 2022-11-29 北京一砂信息技术有限公司 业务数据验证方法、服务器、客户端及可读存储介质
CN111126978B (zh) * 2019-12-28 2023-03-14 飞天诚信科技股份有限公司 一种区块链上快速处理事务的实现方法及装置
US11411952B2 (en) * 2020-04-02 2022-08-09 Verizon Patent And Licensing Inc. Systems and methods for multi-level authentication
CN111541775B (zh) * 2020-05-09 2023-06-16 飞天诚信科技股份有限公司 一种认证报文的安全转换方法及系统
CN112491881B (zh) * 2020-11-26 2023-05-12 中国人寿保险股份有限公司 跨平台单点登录方法、系统、电子设备及存储介质
CN112291773B (zh) * 2020-12-31 2021-04-06 飞天诚信科技股份有限公司 一种认证器及其通信方法
CN112291774B (zh) * 2020-12-31 2021-03-16 飞天诚信科技股份有限公司 一种与认证器进行通信的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685311A (zh) * 2013-12-27 2014-03-26 网易(杭州)网络有限公司 一种登录验证方法及设备
WO2014154110A1 (zh) * 2013-03-25 2014-10-02 中国银联股份有限公司 一种基于二维码的在线支付系统和方法
CN104394001A (zh) * 2014-12-12 2015-03-04 恒宝股份有限公司 一种基于二维码的动态口令认证方法及系统
CN104639562A (zh) * 2015-02-27 2015-05-20 飞天诚信科技股份有限公司 一种推送认证的系统和设备的工作方法
CN104639559A (zh) * 2015-02-27 2015-05-20 飞天诚信科技股份有限公司 一种支持多种认证协议的认证方法、认证服务器及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895443B2 (en) * 2002-11-05 2011-02-22 Safenet, Inc. Secure authentication using hardware token and computer fingerprint
WO2006078820A1 (en) * 2005-01-21 2006-07-27 Innovative Inventions, Inc. Methods for authentication
US20080115192A1 (en) * 2006-11-07 2008-05-15 Rajandra Laxman Kulkarni Customizable authentication for service provisioning
US9490984B2 (en) * 2009-09-14 2016-11-08 Interdigital Patent Holdings, Inc. Method and apparatus for trusted authentication and logon
EP2345975A1 (en) * 2010-01-18 2011-07-20 Trinity Mobile Limited Content delivery verification system
US9667423B2 (en) * 2010-09-27 2017-05-30 Nokia Technologies Oy Method and apparatus for accelerated authentication
US9264237B2 (en) * 2011-06-15 2016-02-16 Microsoft Technology Licensing, Llc Verifying requests for access to a service provider using an authentication component
US9654466B1 (en) * 2012-05-29 2017-05-16 Citigroup Technology, Inc. Methods and systems for electronic transactions using dynamic password authentication
CN103634265B (zh) * 2012-08-20 2019-01-11 腾讯科技(深圳)有限公司 安全认证的方法、设备及系统
US8769651B2 (en) * 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
US9338007B1 (en) * 2012-10-26 2016-05-10 Google Inc. Secure delegated authentication for applications
US10075437B1 (en) * 2012-11-06 2018-09-11 Behaviosec Secure authentication of a user of a device during a session with a connected server
US9935953B1 (en) * 2012-11-06 2018-04-03 Behaviometrics Ab Secure authenticating an user of a device during a session with a connected server
US10437971B2 (en) * 2012-11-06 2019-10-08 Behaviosec Inc. Secure authentication of a user of a device during a session with a connected server
US9219732B2 (en) * 2012-12-28 2015-12-22 Nok Nok Labs, Inc. System and method for processing random challenges within an authentication framework
JP6307593B2 (ja) * 2013-04-26 2018-04-04 インターデイジタル パテント ホールディングス インコーポレイテッド 必要とされる認証保証レベルを達成するための多要素認証
US9288208B1 (en) * 2013-09-06 2016-03-15 Amazon Technologies, Inc. Cryptographic key escrow
US20150180869A1 (en) * 2013-12-23 2015-06-25 Samsung Electronics Company, Ltd. Cloud-based scalable authentication for electronic devices
CN104104687B (zh) * 2014-07-28 2017-02-22 飞天诚信科技股份有限公司 一种安全登录的方法和系统
US10341414B2 (en) * 2014-10-31 2019-07-02 Vmware, Inc. File sharing using remote applications
US9641341B2 (en) * 2015-03-31 2017-05-02 Duo Security, Inc. Method for distributed trust authentication
US11070380B2 (en) * 2015-10-02 2021-07-20 Samsung Electronics Co., Ltd. Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method
CN105187450B (zh) * 2015-10-08 2019-05-10 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备
US10708251B2 (en) * 2016-08-01 2020-07-07 Timothy Steiner Portable authentication and encryption device and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014154110A1 (zh) * 2013-03-25 2014-10-02 中国银联股份有限公司 一种基于二维码的在线支付系统和方法
CN103685311A (zh) * 2013-12-27 2014-03-26 网易(杭州)网络有限公司 一种登录验证方法及设备
CN104394001A (zh) * 2014-12-12 2015-03-04 恒宝股份有限公司 一种基于二维码的动态口令认证方法及系统
CN104639562A (zh) * 2015-02-27 2015-05-20 飞天诚信科技股份有限公司 一种推送认证的系统和设备的工作方法
CN104639559A (zh) * 2015-02-27 2015-05-20 飞天诚信科技股份有限公司 一种支持多种认证协议的认证方法、认证服务器及系统

Also Published As

Publication number Publication date
US10979427B2 (en) 2021-04-13
CN105187450A (zh) 2015-12-23
US20180124049A1 (en) 2018-05-03
WO2017059741A1 (zh) 2017-04-13

Similar Documents

Publication Publication Date Title
CN105187450B (zh) 一种基于认证设备进行认证的方法和设备
CN105162785B (zh) 一种基于认证设备进行注册的方法和设备
CN107733852B (zh) 一种身份验证方法及装置,电子设备
CN105516195B (zh) 一种基于应用平台登录的安全认证系统及其认证方法
CN103428001B (zh) 一种隐式增强便捷web身份认证方法
CN105187431B (zh) 第三方应用的登录方法、服务器、客户端及通信系统
CN104243458B (zh) 一种安全的网络游戏登录方法及系统
CN108881310A (zh) 一种注册系统及其工作方法
CN103023911B (zh) 可信网络设备接入可信网络认证方法
CN106330838B (zh) 一种动态签名方法及应用该方法的客户端和服务器
CN108055253A (zh) 一种软件登录验证方法、装置及系统
US8732464B2 (en) Bidirectional entity authentication method with introduction of online third party
CN103124266B (zh) 移动终端及通过其进行登录的方法、系统和云端服务器
CN107612889B (zh) 防止用户信息泄露的方法
CN106100848A (zh) 基于智能手机和用户口令的双因子身份认证系统及方法
CN101291216B (zh) P2p网络系统及其认证方法
CN104506321B (zh) 一种更新动态令牌中种子数据的方法
CN101527632B (zh) 响应消息认证方法、装置及系统
CN106549973A (zh) 一种基于生物特征识别的客户端及其工作方法
CN102333085B (zh) 安全的网络认证系统和方法
CN101304318A (zh) 安全的网络认证系统和方法
CN105407102B (zh) http请求数据可靠性验证方法
CN101488945A (zh) 一种面向会话初始化协议的鉴权方法
CN108616350A (zh) 一种基于对称密钥池的HTTP-Digest类AKA身份认证系统和方法
CN103546292A (zh) 多识别码的第三方认证系统或方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant