基于协同签名的身份认证方法及计算机可读存储介质与流程

文档序号:24653912发布日期:2021-04-13 20:38阅读:322来源:国知局
基于协同签名的身份认证方法及计算机可读存储介质与流程

1.本发明涉及数据安全技术领域,尤其涉及一种基于协同签名的身份认证方法及计算机可读存储介质。


背景技术:

2.近年来,随着电网输配网规模的不断扩大,网省需要管理的电网设备资源日益增长。为了提高管理效率,电网gis技术将庞大而复杂的电网资源信息可视化地展现在管理系统中。电网数据中包含许多敏感信息,需要高度保密,这些数据如果被泄露或者被篡改,将会引发重大的安全事故。因此在系统投入使用时,需要确保数据得到足够的安全保护,对系统使用者进行身份认证。
3.目前,主要采用以下几种方案来进行身份认证。
4.1、用户名+口令,该方式为目前使用最广泛的身份认证的方式。
5.2、银行系统中使用的电子口令:将口令矩阵表存储于智能卡中,通过便携式读卡终端来读取智能卡,从而进行认证,能有效避免口令被拍照、复制的风险。
6.3、加密u盾:通过电路板、芯片,以及用于与移动端进行连接的总线接口,以实现与第三方app之间通信。其中,智能卡芯片包括身份认证模块、数据存储模块,身份认证模块用于检验用户pin码及应用特征值,数据存储模块通过加解密接口通信连接,用于用户身份认证通过后,实现数据的加解密存储。
7.4、sd密码卡:sd密码卡中存储有用户端证书、ca公钥和web服务器证书的公钥,客户端证书中存储用户身份标识id。sd密码卡具有唯一的序列号,客户端证书和服务器证书基于公钥证书和ca的认证协议,ca公钥用于用户端证书和web服务器证书的验证。
8.然而,对于方案1,为了便于记忆,许多用户趋向于在不同应用中使用相同口令,或者设置弱口令,这使得口令容易被猜测、窃取或者破解,安全性堪忧。对于上述方案2和方案3,多数用户不习惯随身携带硬件设备;对于方案4,部分终端没有配备sd卡卡槽,这降低了上述方案的实用性。


技术实现要素:

9.本发明所要解决的技术问题是:提供一种基于协同签名的身份认证方法及计算机可读存储介质,可在不增加额外设备的情况下,对移动端进行安全可靠的身份认证。
10.为了解决上述技术问题,本发明采用的技术方案为:一种基于协同签名的身份认证方法,包括:
11.移动端生成移动端密钥因子;
12.移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器,所述密钥对生成请求包括所述移动端密钥因子;
13.认证服务器接收到所述密钥对生成请求后,生成服务端密钥因子;
14.认证服务器根据所述服务端密钥因子和移动端密钥因子进行协同运算,得到协同
公钥;
15.认证服务器从数字认证中心请求所述移动端对应的数字证书,并进行存储,所述移动端对应的数字证书包括所述协同公钥;
16.移动端和认证服务器分别通过移动端密钥因子和服务端密钥因子对业务数据请求进行协同签名,得到完整请求签名;
17.移动端将所述业务数据请求及其完整请求签名发送至业务服务器;
18.业务服务器从认证服务器获取所述移动端对应的数字证书;
19.业务服务器根据所述数字证书中的协同公钥、所述业务数据请求和所述完整请求签名进行验签;
20.若验签成功,则判定所述移动端的身份认证通过。
21.本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
22.本发明的有益效果在于:通过私钥分段存储在移动端和云端(认证服务器),提高密钥的安全性;通过移动端与云端的协同操作,将移动端变成u盾,轻松实现移动终端的强身份认证,提高身份认证的便携性;采用“云+端”服务模式,具备高性能和高扩展性;无需额外硬件设备投入即可提供强身份认证和协同签名验签等安全防护功能,降低成本;通过对移动端的身份进行安全可靠地认证,保证应用业务数据的安全性。本发明可在不增加额外设备的情况下,对移动端进行安全可靠的身份认证。
附图说明
23.图1为本发明的一种基于协同签名的身份认证方法的流程图;
24.图2为本发明实施例一的方法流程图一;
25.图3为本发明实施例一的方法流程图二;
26.图4为本发明实施例二的系统架构示意图。
具体实施方式
27.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
28.请参阅图1,一种基于协同签名的身份认证方法,包括:
29.移动端生成移动端密钥因子;
30.移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器,所述密钥对生成请求包括所述移动端密钥因子;
31.认证服务器接收到所述密钥对生成请求后,生成服务端密钥因子;
32.认证服务器根据所述服务端密钥因子和移动端密钥因子进行协同运算,得到协同公钥;
33.认证服务器从数字认证中心请求所述移动端对应的数字证书,并进行存储,所述移动端对应的数字证书包括所述协同公钥;
34.移动端和认证服务器分别通过移动端密钥因子和服务端密钥因子对业务数据请求进行协同签名,得到完整请求签名;
35.移动端将所述业务数据请求及其完整请求签名发送至业务服务器;
36.业务服务器从认证服务器获取所述移动端对应的数字证书;
37.业务服务器根据所述数字证书中的协同公钥、所述业务数据请求和所述完整请求签名进行验签;
38.若验签成功,则判定所述移动端的身份认证通过。
39.从上述描述可知,本发明的有益效果在于:可在不增加额外设备的情况下,为用户提供安全可靠的身份认证服务。
40.进一步地,所述移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器之前,进一步包括:
41.移动端发送激活请求至认证服务器,所述激活请求包括应用信息和用户信息;
42.认证服务器对所述激活请求进行校验,若校验通过,则返回激活成功消息至移动端。
43.进一步地,所述移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器之前,进一步包括:
44.移动端发送授权认证请求至认证服务器,所述授权认证请求包括身份识别信息,所述身份识别信息包括预设的pin码和生物识别信息;
45.认证服务器对所述授权认证请求进行验证,若验证通过,则返回授权认证通过消息至移动端。
46.由上述描述可知,在生成协同密钥对之前,对移动端先进行激活以及授权认证的步骤,保证使用移动端的用户对移动端上的应用具有权限;此处的授权认证也相当于进行了一次身份认证。
47.进一步地,所述认证服务器从数字认证中心请求所述移动端对应的数字证书,并进行存储具体为:
48.移动端发送证书申请请求至认证服务器;
49.认证服务器接收到所述证书申请请求后,生成证书申请文件,并将所述证书申请文件返回至移动端;
50.移动端通过所述移动端密钥因子对所述证书申请文件进行签名,得到第一文件签名,并将所述第一文件签名发送至认证服务器;
51.认证服务器通过所述服务端密钥因子对所述证书申请文件进行签名,得到第二文件签名;
52.认证服务器对所述第一签名和第二签名进行合并运算,得到完整文件签名,并将所述完整文件签名和所述协同公钥发送至数字认证中心;
53.数字认证中心通过所述协同公钥对所述完整文件签名进行解密,得到所述证书申请文件;
54.数字认证中心根据所述证书申请文件,生成所述移动端对应的数字证书,并将所述数字证书发送至认证服务器,所述移动端对应的数字证书包括所述协同公钥;
55.认证服务器存储所述移动端对应的数字证书。
56.由上述描述可知,通过对证书申请文件进行协同签名,并在数字认证中心进行验签,保证移动端密钥因子、服务端密钥因子和协同公钥未被篡改。
57.进一步地,所述移动端和认证服务器分别通过移动端密钥因子和服务端密钥因子对业务数据请求进行协同签名,得到完整请求签名具体为:
58.移动端生成业务数据请求,并将所述业务数据请求发送至认证服务器;
59.移动端通过所述移动端密钥因子对所述业务数据请求进行签名,得到第一请求签名;
60.认证服务器通过所述服务端密钥因子对所述业务数据请求进行签名,得到第二请求签名,并将所述第二请求签名返回至移动端;
61.移动端根据所述第一请求签名和第二请求签名进行合并运算,得到完整请求签名。
62.进一步地,所述业务服务器根据所述数字证书中的协同公钥、所述业务数据请求和所述完整请求签名进行验签具体为:
63.业务服务器通过所述协同公钥对所述完整请求签名进行解密,判断是否解密成功;
64.若解密成功,则判断解密得到的数据与所述电网数据请求是否一致;
65.若一致,则判定验签成功。
66.由上述描述可知,通过对协同签名得到的完整请求签名进行验签,若验签成功,则表示协同加密所用的移动端密钥因子、服务端密钥因子和数字证书中的协同公钥是对应的,从而可对移动端进行身份认证。
67.进一步地,所述判定所述移动端的身份认证通过之后,进一步包括:
68.业务服务器根据所述业务数据请求,获取业务数据,并将所述业务数据返回至移动端。
69.由上述描述可知,保证业务数据发送给合法的移动端,从而防止数据泄露或被篡改。
70.本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
71.实施例一
72.请参照图2

3,本发明的实施例一为:一种基于协同签名的身份认证方法,即对系统使用进行身份认证,适用于电网、金融、电子政务、oa协同等众多领域。本实施例中即对移动端进行身份认证。本方法主要包括协同密钥生成、数字证书下发以及业务数据请求三大部分。
73.其中,如图2所示,协同密钥生成部分包括如下步骤:
74.s101:移动端随机生成移动端密钥因子。
75.s102:激活移动端。具体地,移动端发送激活请求至认证服务器,所述激活请求包括应用信息(应用唯一标识、版本号等)和用户信息(用户唯一标识、用户名、手机号等);认证服务器对所述激活请求进行校验,若该移动端已注册,且信息校验成功,则激活当前用户,并返回激活成功消息至移动端。若该移动端未注册,则提醒该移动端先进行注册。
76.若当前用户未在其他设备登录,则移动端只需要当前用户激活一次即可保持已激活状态。
77.s103:移动端进行授权认证。具体地,移动端发送授权认证请求至认证服务器,所
述授权认证请求包括身份识别信息,所述身份识别信息包括预设的pin码和生物识别信息(人脸或指纹);认证服务器对所述授权认证请求进行验证,若验证通过,则返回授权认证通过消息至移动端。
78.在具体实施场景中,激活时会默认设置一个默认pin码,后续用户可通过移动端对其进行修改;首次授权认证时,只能使用pin码进行身份识别。授权认证后,可开启指纹或人脸识别,首次开启时会要求用户录入人脸信息或指纹信息,并进行存储。再次授权认证时,即可直接用人脸或指纹进行身份识别。
79.s104:移动端发送密钥对生成请求至认证服务器,所述密钥对生成请求包括移动端密钥因子。即移动端将移动端密钥因子发送给认证服务器。
80.s105:认证服务器接收到协同密钥对生成请求后,生成服务端密钥因子。即认证服务器接收到移动端密钥因子后,也对等生成一个服务端密钥因子。
81.s106:认证服务器根据所述服务端密钥因子和移动端密钥因子进行协同运算,得到协同公钥。进一步地,认证服务器计算得到协同公钥后,可删除所述移动端密钥因子。
82.也就是说,本实施例中,将私钥分为了两部分,一部分存储在移动端,另一部分存储在认证服务器(云端),移动端和认证服务器均没有存储完整的私钥,即使被攻击,黑客也无法获取到完整私钥。
83.如图2所示,数字证书下发部分包括如下步骤:
84.s201:移动端发送证书申请请求至认证服务器。
85.s202:认证服务器接收到所述证书申请请求后,生成证书申请文件csr,并将所述证书申请文件返回至移动端。
86.s203:移动端通过所述移动端密钥因子对所述证书申请文件进行签名,得到第一文件签名,并将所述第一文件签名发送至认证服务器。
87.s204:认证服务器通过所述服务端密钥因子对所述证书申请文件进行签名,得到第二文件签名。
88.s205:认证服务器对所述第一文件签名和第二文件签名进行合并运算,得到完整文件签名,并将所述完整文件签名和所述协同公钥发送至数字认证中心ca。
89.本实施例中,认证服务器支持任意第三方ca。
90.s206:数字认证中心通过所述协同公钥对所述完整文件签名进行解密,得到所述证书申请文件csr。即数字认证中心ca根据所述协同公钥对完整文件签名进行验签,若解密成功,则表示验签成功,得到证书申请文件csr,保证移动端密钥因子、移动端密钥因子和协同公钥未被篡改。
91.s207:数字认证中心通过ca根证书密钥对所述证书申请文件进行签名,生成所述移动端对应的数字证书,并将所述数字证书发送至认证服务器,所述移动端对应的数字证书包括所述协同公钥。
92.进一步地,本实施例中的数字证书的格式是x.509v3国际标准,一个标准的x.509数字证书包含以下一些内容:
93.1、证书的版本信息;
94.2、证书的序列号,每个证书都有一个唯一的证书序列号;
95.3、证书所使用的签名算法;
96.4、证书的发行机构名称;
97.5、证书的有效期;
98.6、证书所有人的名称(csr除了用到公钥外,还含有所有人信息,用来标识持有人的信息,如手机号、组织机构等信息);
99.7、证书所有人的公钥;
100.8、证书发行者对证书的签名。
101.s208:认证服务器接收到所述移动端对应的数字证书后,存储所述移动端对应的数字证书。具体地,认证服务器通过数字认证中心的公钥对数字认证中心发送的数据进行验签,验签成功即可得到所述移动端对应的数字证书,并进行保存。
102.如图3所示,业务数据请求部分包括如下步骤:
103.s301:移动端生成业务数据请求,并将所述业务数据请求发送至认证服务器;
104.s302:移动端通过所述移动端密钥因子对所述业务数据请求进行签名,得到第一请求签名。
105.s303:认证服务器通过所述服务端密钥因子对所述业务数据请求进行签名,得到第二请求签名,并将所述第二请求签名返回至移动端。
106.s304:移动端根据所述第一请求签名和第二请求签名进行合并运算,得到完整请求签名。
107.s305:移动端将所述业务数据请求和完整请求签名发送至业务服务器。
108.s306:业务服务器从认证服务器获取所述移动端对应的数字证书。
109.s307:业务服务器根据所述数字证书中的协同公钥、所述业务数据请求和所述完整请求签名进行验签,判断是否验签成功,若是,则执行步骤s308。
110.具体地,业务服务器通过所述协同公钥对所述完整请求签名进行解密,判断是否解密成功;若解密不成功,则判定验签失败;若解密成功,则判断解密得到的数据与所述业务数据请求是否一致;若一致,则判定验签成功;若不一致,则判定验签失败。
111.s308:判定所述移动端的身份认证通过。
112.s309:业务服务器根据所述业务数据请求,获取业务数据,并将所述业务数据返回至移动端。具体地,业务服务器根据业务数据请求,从业务数据库获取对应的业务数据,然后返回给移动端。
113.进一步地,移动端获取到业务数据后在移动应用中进行展示,或者对业务数据进行其他操作。
114.本实施例以密码技术为核心,通过融合云密钥、数字证书、生物识别、设备指纹等多种安全技术,为用户提供移动终端、pc端等全终端环境下的可信身份认证服务。在不增加额外设备的前提下,将密钥分段存储在移动端、云端,通过移动端、与云端的协同操作,将手机终端变成u盾,使移动设备可以完成sm2数字证书的签名验签、加解密等密码运算,其安全强度等同于u盾、sd密码卡等终端硬件设备,用户体验极佳。
115.实施例二
116.本实施例是实施例一的一种具体实现场景。
117.1、数据模型设计
118.根据用户、应用、应用归属的群组的(具有统一权限的应用集合称为群组)组合以
及鉴权体系,设计了能够便捷管理授权应用的用户在通过鉴权后访问电网数据的数据模型结构,所需的数据模型表结构描述如下:
119.表1.1:应用信息表conf_application
[0120][0121][0122]
表1.2:用户信息表conf_user
[0123][0124]
表1.3:群组表conf_collect_app
[0125][0126]
表1.4:授权配置表conf_auth
[0127][0128][0129]
表1.5:资源表conf_resource
[0130][0131]
表1.6:鉴权配置表conf_auth
[0132]
[0133][0134]
表1.7:资源鉴权配置关系表conf_resource_auth
[0135][0136]
在用户进行授权认证前,获取应用、用户和群组关系,根据获取的应用、用户和群组关系,判断当前用户在该应用发起的请求,是否通过配置的权限并进行口令认证或生物认证。
[0137]
2、系统架构
[0138]
因为电网资源数据涉及比较大的私密性和安全性,常规的加密机制存在被拦截破解的风险,整体的安全性将会比较低。因此需要在新模型下进行更深层次的数据安全防护处理。
[0139]
主体流程是双端防护机制+鉴权体系:在加载电网数据之前,需要在移动端对设备或账号进行注册激活,并通过认证授权后再通过与服务端进行二次签名验签认证。
[0140]
本实施例的系统架构如图4所示,主要包括移动端中的移动应用(集成sdk)、认证服务器、数字认证中心、业务服务器和商用数据服务。
[0141]
其中,认证服务器用于将sm2密钥云化,实现云密钥的管理、用户管理,与移动端私钥因子协同操作完成签名、解密等密码运算。通过给第三方ca提交证书请求,认证服务器支持任意第三方ca。
[0142]
集成sdk提供给移动端app调用,完成sm2签名验签、加解密等密码运算。接口sdk采用类skf接口,app端无需关心集成sdk与云密钥服务器之间的交互,通过简单的api调用,即可实现应用调用。
[0143]
移动应用实现移动端证书的管理,包括移动端私钥因子,与认证服务器协同操作完成sm2签名、解密等密码运算。
[0144]
业务服务器用于在签名验签通过后,实现鉴权认证,包括对移动端应用、移动设备和访问域名等认证处理。最终加载渲染电网数据和电网数据的其他操作。
[0145]
本实施例根据用户、应用、群组组合以及鉴权体系,设计了一套数据模型结构,能够便捷管理授权应用用户在通过鉴权后访问电网数据。后续可提供加解密算法并封装成简单易用的客户端sdk。
[0146]
本实施例具有以下优点:
[0147]
1、安全性:金融级加密保护,支持国密算法,支持生物识别、设备指纹、用户口令等多种安全认证模式。
[0148]
2、便捷性:移动端即令牌,激活即登录,轻松实现移动终端的强身份认证。
[0149]
3、扩展性:采用“云+端”服务模式,具备高性能、高扩展性,支持多种移动终端环境。
[0150]
4、易用性:提供简单易用的客户端sdk,涵盖android和ios平台,可实现与应用系统快速对接,提升用户体验。
[0151]
5、低成本:无需额外硬件设备投入即可提供强身份认证和协同签名验签、加解密等安全防护功能。
[0152]
实施例三
[0153]
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
[0154]
移动端生成移动端密钥因子;
[0155]
移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器,所述密钥对生成请求包括所述移动端密钥因子;
[0156]
认证服务器接收到所述密钥对生成请求后,生成服务端密钥因子;
[0157]
认证服务器根据所述服务端密钥因子和移动端密钥因子进行协同运算,得到协同公钥;
[0158]
认证服务器从数字认证中心请求所述移动端对应的数字证书,并进行存储,所述移动端对应的数字证书包括所述协同公钥;
[0159]
移动端和认证服务器分别通过移动端密钥因子和服务端密钥因子对业务数据请求进行协同签名,得到完整请求签名;
[0160]
移动端将所述业务数据请求及其完整请求签名发送至业务服务器;
[0161]
业务服务器从认证服务器获取所述移动端对应的数字证书;
[0162]
业务服务器根据所述数字证书中的协同公钥、所述业务数据请求和所述完整请求签名进行验签;
[0163]
若验签成功,则判定所述移动端的身份认证通过。
[0164]
进一步地,所述移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器之前,进一步包括:
[0165]
移动端发送激活请求至认证服务器,所述激活请求包括应用信息和用户信息;
[0166]
认证服务器对所述激活请求进行校验,若校验通过,则返回激活成功消息至移动端。
[0167]
进一步地,所述移动端激活成功并授权认证通过后,发送密钥对生成请求至认证服务器之前,进一步包括:
[0168]
移动端发送授权认证请求至认证服务器,所述授权认证请求包括身份识别信息,
所述身份识别信息包括预设的pin码和生物识别信息;
[0169]
认证服务器对所述授权认证请求进行验证,若验证通过,则返回授权认证通过消息至移动端。
[0170]
进一步地,所述认证服务器从数字认证中心请求所述移动端对应的数字证书,并进行存储具体为:
[0171]
移动端发送证书申请请求至认证服务器;
[0172]
认证服务器接收到所述证书申请请求后,生成证书申请文件,并将所述证书申请文件返回至移动端;
[0173]
移动端通过所述移动端密钥因子对所述证书申请文件进行签名,得到第一文件签名,并将所述第一文件签名发送至认证服务器;
[0174]
认证服务器通过所述服务端密钥因子对所述证书申请文件进行签名,得到第二文件签名;
[0175]
认证服务器对所述第一签名和第二签名进行合并运算,得到完整文件签名,并将所述完整文件签名和所述协同公钥发送至数字认证中心;
[0176]
数字认证中心通过所述协同公钥对所述完整文件签名进行解密,得到所述证书申请文件;
[0177]
数字认证中心根据所述证书申请文件,生成所述移动端对应的数字证书,并将所述数字证书发送至认证服务器,所述移动端对应的数字证书包括所述协同公钥;
[0178]
认证服务器存储所述移动端对应的数字证书。
[0179]
进一步地,所述移动端和认证服务器分别通过移动端密钥因子和服务端密钥因子对业务数据请求进行协同签名,得到完整请求签名具体为:
[0180]
移动端生成业务数据请求,并将所述业务数据请求发送至认证服务器;
[0181]
移动端通过所述移动端密钥因子对所述业务数据请求进行签名,得到第一请求签名;
[0182]
认证服务器通过所述服务端密钥因子对所述业务数据请求进行签名,得到第二请求签名,并将所述第二请求签名返回至移动端;
[0183]
移动端根据所述第一请求签名和第二请求签名进行合并运算,得到完整请求签名。
[0184]
进一步地,所述业务服务器根据所述数字证书中的协同公钥、所述业务数据请求和所述完整请求签名进行验签具体为:
[0185]
业务服务器通过所述协同公钥对所述完整请求签名进行解密,判断是否解密成功;
[0186]
若解密成功,则判断解密得到的数据与所述电网数据请求是否一致;
[0187]
若一致,则判定验签成功。
[0188]
进一步地,所述判定所述移动端的身份认证通过之后,进一步包括:
[0189]
业务服务器根据所述业务数据请求,获取业务数据,并将所述业务数据返回至移动端。
[0190]
综上所述,本发明提供的一种基于协同签名的身份认证方法及计算机可读存储介质,通过私钥分段存储在移动端和云端(认证服务器),提高密钥的安全性;通过移动端与云
端的协同操作,将移动端变成u盾,轻松实现移动终端的强身份认证,提高身份认证的便携性;采用“云+端”服务模式,具备高性能和高扩展性;无需额外硬件设备投入即可提供强身份认证和协同签名验签等安全防护功能,降低成本;通过对移动端的身份进行安全可靠地认证,保证应用业务数据的安全性。本发明可在不增加额外设备的情况下,对移动端进行安全可靠的身份认证。
[0191]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1