一种安全认证方法、系统及装置与流程

文档序号:30096539发布日期:2022-05-18 11:03阅读:97来源:国知局
一种安全认证方法、系统及装置与流程

1.本发明涉及信息安全领域,特别涉及一种安全认证方法、系统及装置。


背景技术:

2.当前,随着工业互联网和信息技术的快速发展,基于handle的标识解析在国内也有了丰富的应用场景。身份鉴别和访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和非常规访问。它也是维护网络系统安全、保护网络资源的重要手段。访问控制规定了主体对客体访问的限制,并在身份认证的基础上,对提出资源访问的请求加以控制。它是对信息系统资源进行保护的重要措施,也是计算机系统最重要和最基础的安全机制。身份认证是实现访问控制的前提和基础。
3.传统互联网中tcp/ip协议作为网络的基础协议,从设计之初并没有考虑到网络将会面临如此多的威胁,导致目前出现了许多种攻击方法。ip协议为了将数据信息包从原设备传送到目的设备,需要依赖ip地址与ip路由器。ip地址是机器语言,通常较长,所以尽管ip地址具有唯一性,但是不方便记忆与使用,人们便在此基础上发明了dns(domain name system)即域名解析系统,域名通常较短,兼具可读性与实用性。由于域名与ip地址呈一一对应关系,因此,上网时只需在地址栏输入域名,系统会直接进行域名解析,将域名翻译成ip地址。
4.针对dns服务的常见攻击主要是两种:一种是“域名劫持”,当dns域名服务器执行完域名检索,域名服务器会保存域名记录,每条记录都会包含域名与ip地址的唯一对应关系,如果域名服务器中被攻击,导致用户欲访问的域名真实对应的ip地址被篡改,那么攻击者就可以人为操纵用户的最终访问地址,而在此过程中用户无法判断dns解析的ip地址的真实性;另一种是“域名欺骗”或“域名污染”,当用户通过电脑发送“域名查询”至域名服务器后,域名服务器解析域名对应的ip地址后会将应答回应发送回用户电脑,发送请求与接收信息过程中间会出现时间差,攻击者可能会利用网络中间人攻击在用户接收信息应答前,伪造错误ip应答至电脑,导致用户访问错误的ip地址。
5.由于标识解析技术的发展路径仍基于dns服务原理,而dns解析过程对解析请求身份鉴别脆弱而导致攻击频繁。因此急需一种安全认证手段,能够避免黑客的dns服务攻击。


技术实现要素:

6.针对现有技术在解析过程中容易被攻击的问题,本发明提供了一种安全认证方法、系统及装置,主要针对handle标识解析过程中的身份认证风险,使用密码技术对解析过程进行加强,避免黑客使用类似dns服务攻击的手法来攻击handle标识解析。
7.以下是本发明的技术方案。
8.一种安全认证方法,包括以下步骤:客户端获取私钥以及服务端的公钥;所述客户端根据所述私钥生成第一密钥协商数据,并将所述第一密钥协商数据通
过所述公钥加密后生成第二密钥协商数据发送给服务端;所述客户端接收服务端发送的第三密钥协商数据,并利用第一密钥协商数据和第三密钥协商数据计算会话密钥,其中所述第三密钥协商数据是由所述服务端利用服务端的私钥生成;所述客户端基于该会话密钥与服务端建立安全会话通道,客户端与服务端之间的会话通讯数据由该会话密钥加密和解密;所述客户端请求向服务端进行敏感数据操作时,接收来自服务端的挑战质询消息,所述客户端生成应答值并回复服务端,认证通过后所述客户端获得敏感数据操作权限。
9.本发明在会话层和传输层建立连接过程中,基于非对称加密和挑战应答机制实现客户端与服务端的双向身份证明和鉴别,从而杜绝黑客假冒双方身份的行为,使通信过程真实可信;在会话密钥协商阶段,基于客户端和服务端证书执行双向身份认证和交叉加密的密钥协商机制,从而杜绝了会话劫持和中间人攻击;在接受客户端请求后,生成解析结果并使用服务端私钥对结果数据进行签名,客户端获得查询结果后可通过验证签名确保结果数据无法被篡改。
10.作为优选,接收来自服务端的挑战质询消息,所述客户端生成应答值并回复服务端,包括:所述客户端使用客户端私钥对挑战质询消息中的挑战值进行数字签名,生成应答值,通过所述质询应答消息将所述应答值发送给服务端;其中所述质询应答消息中的应答值的数字签名值如经服务端使用客户端公钥进行验证且通过,则完成安全认证。
11.作为优选,所述客户端获得敏感数据操作权限,包括:所述客户端发送标识解析请求消息查询指定的handle标识对应的数据;客户端收到由服务端采用服务端私钥对handle标识对应的数据检索结果进行签名后生成的标识解析响应消息;客户端使用服务端公钥验证标识解析响应消息中数字签名的有效性,以确定handle解析结果的正确性和完整性。
12.作为优选,所述私钥和公钥通过sm2算法获得。
13.作为优选,还包括:当所述挑战质询未通过时,客户端与服务器端重新进行会话密钥协商,且在会话密钥协商的同时再次进行挑战质询。
14.本发明还提供一种安全认证方法,包括以下步骤:服务端获取私钥以及客户端的公钥;所述服务端接收客户端发来的第二密钥协商数据,利用私钥进行解密得到第一密钥协商数据;所述服务端根据所述私钥生成第三密钥协商数据,并将所述第三密钥协商数据通过所述客户端的公钥加密后生成第四密钥协商数据发送给客户端;所述服务端利用第一密钥协商数据和第三密钥协商数据计算会话密钥;所述服务端端基于该会话密钥与客户端建立安全会话通道,客户端与服务端之间的会话通讯数据由该会话密钥加密和解密;服务端收到客户端的敏感数据操作请求时,发送挑战质询消息至客户端,收到客
户端生成的应答值并认证通过后,所述服务端给予客户端敏感数据操作权限。
15.作为优选,收到客户端生成的应答值并认证,包括:对应答值中的数字签名值使用客户端公钥进行验证,如通过则完成安全认证。
16.作为优选,所述服务端给予客户端敏感数据操作权限,包括:服务端根据客户端发送的标识解析请求消息查询指定的handle标识对应的数据;对handle标识对应的数据检索结果进行签名后生成的标识解析响应消息,发送至客户端。
17.本发明还提供一种安全认证系统,包括客户端及服务端,所述客户端,用于获取私钥以及服务端的公钥;根据所述私钥生成第一密钥协商数据,并将所述第一密钥协商数据通过所述公钥加密后生成第二密钥协商数据发送给服务端;接收服务端发送的第三密钥协商数据,并利用第一密钥协商数据和第三密钥协商数据计算会话密钥,其中所述第三密钥协商数据是由所述服务端利用服务端的私钥生成;基于该会话密钥与服务端建立安全会话通道,客户端与服务端之间的会话通讯数据由该会话密钥加密和解密;请求向服务端进行敏感数据操作时,将接收来自服务端的挑战质询消息,所述客户端生成应答值并回复服务端,认证通过后所述客户端获得敏感数据操作权限。
18.所述服务端,用于获取私钥以及客户端的公钥;接收客户端发来的第二密钥协商数据,利用私钥进行解密得到第一密钥协商数据;根据所述私钥生成第三密钥协商数据,并将所述第三密钥协商数据通过所述客户端的公钥加密后生成第四密钥协商数据发送给客户端;利用第一密钥协商数据和第三密钥协商数据计算会话密钥;基于该会话密钥与客户端建立安全会话通道,客户端与服务端之间的会话通讯数据由该会话密钥加密和解密;收到客户端的敏感数据操作请求时,将发送挑战质询消息至客户端,收到客户端生成的应答值并认证通过后,所述服务端将给予客户端敏感数据操作权限。
19.本发明还提供一种安全认证装置,包括客户端,包括:密钥获取模块,用于获取私钥以及服务端的公钥;密钥协商数据生成模块,用于根据所述私钥生成第一密钥协商数据,并将所述第一密钥协商数据通过所述公钥加密后生成第二密钥协商数据发送给服务端;会话密钥计算模块,用于接收服务端发送的第三密钥协商数据,并利用第一密钥协商数据和第三密钥协商数据计算会话密钥,其中所述第三密钥协商数据是由所述服务端利用服务端的私钥生成;安全会话模块,用于基于该会话密钥与服务端建立安全会话通道;挑战质询应答模块,用于接收来自服务端的挑战质询消息,并生成应答值并回复服务端,认证通过后所述客户端获得敏感数据操作权限。
20.作为优选,接收来自服务端的挑战质询消息,并生成应答值并回复服务端,包括:所述客户端使用客户端私钥对挑战质询消息中的挑战值进行数字签名,生成应答值,通过所述质询应答消息将所述应答值发送给服务端;其中所述质询应答消息中的应答值的数字签名值如经服务端使用客户端公钥进行验证且通过,则完成安全认证。
21.作为优选,所述客户端请求向服务端进行敏感数据操作,包括:客户端发送标识解析请求消息查询指定的handle标识对应的数据;
客户端收到由服务端采用服务端私钥对handle标识对应的数据检索结果进行签名后生成的标识解析响应消息;客户端使用服务端公钥验证标识解析响应消息中数字签名的有效性,以确定handle解析结果的正确性和完整性。
22.本发明还提供一种安全认证装置,包括服务端,包括:密钥获取模块,用于获取私钥以及客户端的公钥;密钥协商数据生成模块,用于接收客户端发来的第二密钥协商数据,利用私钥进行解密得到第一密钥协商数据;根据所述私钥生成第三密钥协商数据,并将所述第三密钥协商数据通过所述客户端的公钥加密后生成第四密钥协商数据发送给客户端;会话密钥计算模块,用于利用第一密钥协商数据和第三密钥协商数据计算会话密钥;安全会话模块,用于基于该会话密钥与客户端建立安全会话通道,客户端与服务端之间的会话通讯数据由该会话密钥加密和解密;挑战质询模块,用于在收到客户端的敏感数据操作请求时,发送挑战质询消息至客户端,收到客户端生成的应答值并认证通过后,所述服务端给予客户端敏感数据操作权限。
23.作为优选,收到客户端生成的应答值并认证,包括:对应答值中的数字签名值经服务端使用客户端公钥进行验证,如通过则完成安全认证。
24.作为优选,所述服务端给予客户端敏感数据操作权限,包括:服务端根据客户端发送的标识解析请求消息查询指定的handle标识对应的数据;对handle标识对应的数据检索结果进行签名后生成的标识解析响应消息,发送至客户端。
25.本发明的实质性效果包括:(1)标识解析请求与应答通讯会话全程加密,服务端和客户端使用各自的sm2公钥完成会话密钥协商;此发明可实现有益的技术效果:有效防止会话被劫持;(2)用户端发起标识解析请求与服务端应答的通讯会话过程中,服务端可通过挑战应答机制验证用户sm2签名,从而确认用户的合法身份;此发明可实现有益的技术效果:有效防止中间人攻击;(3)服务端响应用户端请求检索handle标识数据,将使用服务端sm2私钥对handle标识解析结果进行签名,用户端使用服务端sm2公钥验证签名从而确保解析结果的有效性;此发明可实现的有益技术效果:有效防止handle标识解析数据被非法篡改。
附图说明
26.图1是本发明实施例的流程示意图;图2是本发明实施例的会话建立及密钥协商阶段的过程示意图;图3是本发明实施例的用户身份鉴别阶段的过程示意图;图4是本发明实施例的标识解析阶段的过程示意图。
具体实施方式
27.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例,对本技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
29.应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.下面以具体的实施例对本发明的技术方案进行详细说明。实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
31.实施例:一种安全认证方法及装置,其中,本实施例的客户端及服务端均包括:密钥生成模块,用于从密码基础设施获取私钥以及对方的公钥;还用于生成密钥协商数据并根据两份密钥协商数据计算出一致的会话密钥;数据加密模块,用于基于会话密钥建立客户端与服务端的安全会话通道,并利用会话密钥加密和解密客户端与服务端之间的会话通讯数据;认证模块,用于当客户端请求向服务端进行敏感数据操作时,发送挑战质询消息,并用于生成应答值,以及用于认证是否通过。
32.本实施例的方法包括如图1所示的以下步骤:(1)客户端和服务端分别从可信的密码基础设施获取到各自可信的合法的sm2算法密钥对。
33.(2)客户端如果要和服务端建立安全会话通道,首先生成客户端密钥协商数据,然后使用服务端sm2公钥加密客户端密钥协商数据,并发送包含加密的客户端密钥协商数据的会话建立请求消息(session_setup_req)到服务端。
34.(3)服务端收到session_setup_req消息后,利用自己的私钥解密获得客户端密钥协商数据,然后生成服务端的密钥协商数据,再结合客户端的密钥协商数据计算出会话密钥,最后获得客户端sm2公钥将生成的服务端密钥协商数据加密,并发送包含加密的服务端密钥协商数据的会话建立响应消息(session_setup_resp)返回给客户端。
35.(4)客户端收到session_setup_resp消息后,使用客户端sm2私钥解密获得服务端密钥协商数据,再结合客户端的密钥协商数据计算出会话密钥,至此安全会话通道建立成功,后续的会话通讯数据可用会话密钥进行传输加密保护。
36.(5)客户端向服务端进行敏感数据操作时,服务端发送挑战质询消息(challenge)给客户端要求鉴定客户端的身份。
37.(6)客户端收到challenge消息后,使用客户端的sm2私钥对挑战值进行数字签名,生成应答值,并以质询应答消息(challenge_response)的形式发送给服务端。
38.(7)服务端收到challenge_response消息后对其中的数字签名值使用客户端sm2公钥进行验证,以鉴别客户端身份的真实性。
39.(8)客户端身份验证通过后,客户端发送标识解析请求消息(resolution_req)查询某个指定的handle标识对应的数据。
40.(9)服务端检索到handle标识数据后,用服务端的sm2私钥对handle标识数据检索结果进行签名后生成标识解析响应消息(resolution_resp)返回给客户端。
41.(10)客户端使用服务端sm2公钥验证resolution_resp消息中数字签名的有效性,以确定handle解析结果的正确性和完整性。
42.以上认证过程中,有三种不同的角色,分别是handle用户、handle服务器端和密码基础设施。认证过程遵循国家密码管理局的技术规范,支持两种单向身份鉴别和一种双向身份鉴别方式。
43.以上方案中,当需要认证时,handle服务器将在执行客户端的请求前,向其发送质询挑战值。为了符合身份验证要求,客户端必须进行正确的回应,证明其是一个合法的用户。只有通过客户端身份认证后,handle服务器才会响应客户端的标识解析请求。handle客户端可以使用sm2算法进行身份认证。handle系统的认证也可以通过第三方认证服务进行。为了确保数据的完整性,客户端可要求从handle服务器获得的解析结果数据附带数字签名值。handle客户端和handle服务器之间可使用sm2密钥建立安全的通信会话,这样就可以用会话密钥对任何交换的信息进行加密,以充分保证handle会话过程中的数据机密性。如果不进行密钥协商,handle服务器还也可以使用客户端的sm2公钥对解析数据进行加密来提供机密性。
44.如图2所示是会话建立及密钥协商阶段的过程示意图,其具体工作流程描述如下:步骤a:用户端、服务端初始化,随机生成用户端、服务端sm2密钥对;步骤b:用户端和服务端分别传送用户端、服务端sm2公钥到可信密码基础设施,并申请sm2证书;步骤c:所述可信密码基础设施注册并签发用户端、服务端sm2证书,并将sm2证书分发到用户端和服务端;步骤d:用户端随机生成密钥协商参数p1,并使用服务端sm2证书中的sm2公钥加密p1得到参数密文s1;步骤e:用户端发送会话建立请求信息session_setup_req,并在报文中传送加密参数s1;步骤f:服务端收到用户端会话建立请求,使用服务端sm2私钥解密s1获得密钥协商参数p1明文;步骤g:服务端随机生成密钥协商参数p2,结合p1和p2计算生成会话密钥skey,再使用用户端sm2证书中的sm2公钥对p2加密p2得到参数密文s2;步骤h:服务端发送会话建立应答信息session_setup_resp,并在报文中传送加密参数s2;步骤i:用户端收到服务端会话建立应答,使用用户端sm2私钥解密s2获得密钥协商参数p2明文;步骤j:用户端结合p1和p2计算生成会话密钥skey。
45.如图3所示为用户身份鉴别阶段的过程示意图,其具体工作流程描述如下:步骤a:服务端随机生成挑战质询信息challengs;步骤b:服务端向用户端发送挑战质询信息challengs;步骤c:用户端收到服务端挑战质询信息后,使用用户端sm2私钥对challengs计算数字签名,生成得到签名值c_sign;步骤d:用户端向服务端发送挑战质询应答信息challengs_response,并传送签名值c_sign;步骤e:服务端收到挑战质询应答信息后,向可信密码基础设施申请获得用户端sm2证书;步骤f:密码基础设施检索到用户端sm2证书,并发送给服务端;步骤g:服务端验证用户端sm2证书合法性后,使用用户端sm2证书中的公钥对用户端挑战质询信息签名值c_sign进行验证,确定用户身份的真实性。
46.如图4所示为标识解析阶段的过程示意图,其具体工作流程描述如下:步骤a:用户端向服务端发送标识解析请求resolution_req;步骤b:服务端收到标识解析请求后,检索标识对应数据,使用服务端sm2私钥对标识解析结果计算数字签名,生成得到签名值r_sign;步骤c:服务端向用户端发送标识解析响应信息resolution_resp,并传送签名值r_sign;步骤d:用户端收到标识解析响应信息后,向可信密码基础设施申请获得服务端sm2证书;步骤e:密码基础设施检索到服务端sm2证书,并发送给用户端;步骤f:用户端验证服务端sm2证书合法性后,使用服务端sm2证书中的公钥对服务端标识解析结果签名值r_sign进行验证,确定标识解析数据的真实性和完整性。
47.另外,当所述挑战质询未通过时,客户端与服务器端重新进行会话密钥协商,且在会话密钥协商的同时再次进行挑战质询,包括:客户端生成密钥协商数据,使用服务端公钥加密该客户端密钥协商数据,并将包含加密后客户端密钥协商数据的会话建立请求消息发送到服务端;服务端收到会话建立请求消息后,利用服务端私钥解密,获得客户端密钥协商数据,再结合服务端生成的服务端密钥协商数据计算出会话密钥,利用客户端公钥将生成的服务端密钥协商数据和挑战质询消息加密,并将加密后的服务端密钥协商数据和挑战质询消息打包为会话建立响应消息发送至客户端;客户端收到会话建立响应消息后,使用客户端私钥解密获得服务端密钥协商数据和挑战质询信息,并结合客户端密钥协商数据计算出会话密钥,同时使用客户端私钥对挑战值进行数字签名生成应答值,并以质询应答消息的形式发送给服务端;服务端收到质询应答消息后对其中的数字签名值使用客户端公钥进行验证,验证通过则完成安全认证并启用会话密钥。
48.本实施例在会话建立阶段,客户端与服务端使用sm2算法公钥加密、私钥解密方法实现密钥协商交换会话密钥,并建立加密通信会话通道,从而有效避免会话被非法劫持;本实施例在身份鉴别阶段,客户端与服务端利用sm2算法数字签名技术及通过构
建通信双方的挑战应答机制,确保在后续的信息交换过程中,服务端可验证发起请求用户的真实身份,由于潜在的攻击者无法获得用户端和服务端的sm2私钥,因此也就无法产生用户端或服务端的数字签名,从而可有效防止中间人攻击;本实施例在标识解析阶段,服务端生成标识解析结果,并对结果使用服务端私钥进行数字签名,用户端使用服务端公钥验证签名,从而确认标识解析结果的有效性。在此安全机制下,若发生攻击者篡改标识解析结果,由于攻击者无法伪造服务端的数字签名,因此发生任何形式的标识解析劫持或欺骗都将会被用户端立即发现,从而确保了handle系统的安全性。
49.另外,本实施例的客户端及服务端均包括:密钥生成模块,用于从密码基础设施获取私钥以及对方的公钥;还用于生成密钥协商数据并根据两份密钥协商数据计算出一致的会话密钥;数据加密模块,用于基于会话密钥建立客户端与服务端的安全会话通道,并利用会话密钥加密和解密客户端与服务端之间的会话通讯数据;认证模块,用于当客户端请求向服务端进行敏感数据操作时,发送挑战质询消息,并用于生成应答值,以及用于认证是否通过。
50.通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中可以根据需要而将上述功能分配由不同的功能模块完成,即将具体装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
51.在本技术所提供的实施例中,应该理解到,所揭露的结构和方法,可以通过其它的方式实现。例如,以上所描述的关于结构的实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个结构,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,结构或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
52.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
53.另外,在本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
54.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
55.以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1