签名方法、相关设备和存储介质与流程

文档序号:33252755发布日期:2023-02-18 05:10阅读:41来源:国知局
签名方法、相关设备和存储介质与流程

1.本技术涉及通信技术领域,尤其涉及一种签名方法、相关设备和存储介质。


背景技术:

2.对于银行、电子商务、电子政务等业务,通常采用公钥基础设施(pki,public key infrastructure)技术,为业务提供身份认证、授权以及数字签名等安全服务。
3.相关技术中,通过结合pki技术和sim卡,实现了基于sim卡的移动签名技术;具体地,以sim卡为数字证书载体,并结合pki技术,提供了盾级的数字签名服务。然而,这个过程中,容易存在数字签名被伪造、数据被泄露的问题,即数字签名服务的安全性不足。


技术实现要素:

4.为解决相关技术问题,本技术实施例提供一种签名方法、相关设备和存储介质。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种签名方法,应用于sim卡,包括:
7.接收业务平台发送的签名请求;所述签名请求至少携带加密的第一数据和第一标识;所述签名请求用于请求对第一数据签名;
8.利用所述第一标识,确定第一证书,并利用所述第一证书的私钥对加密的第一数据进行解密;
9.确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名,并向所述业务平台返回签名结果;所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证;所述第一证书与所述第二证书不同。
10.上述方法中,所述签名请求还携带第二标识和应用标识;所述确定第二证书,包括:
11.在本地数据库查找与所述应用标识对应的至少两个证书;
12.在查找到的至少两个证书中确定与所述第二标识对应的第二证书。
13.上述方法中,所述签名请求还携带应用标识;所述确定第二证书,包括:
14.利用所述应用标识,在本地数据库查找对应的至少两个证书;
15.依据第一策略,在查找到的至少两个证书中确定第二证书。
16.上述方法中,所述依据第一策略,在查找到的至少两个证书中确定第二证书,包括:
17.依据查找到的至少两个证书对应的优先级信息,从查找到的至少两个证书中确定所述第二证书;
18.或者,
19.利用随机算法,从查找到的至少两个证书中确定所述第二证书;
20.或者,
21.从查找到的至少两个证书中指定所述第二证书。
22.上述方法中,所述签名请求还携带所述第一数据对应的应用标识;所述利用所述第一标识,确定第一证书,包括:
23.在本地数据库查找与所述应用标识对应的至少两个证书;
24.在查找到的至少两个证书中确定与所述第一标识对应的第一证书。
25.本技术实施例提供一种签名方法,应用于业务平台,包括:
26.获取第一数据;
27.确定第一证书,并利用所述第一证书的公钥,对所述第一数据进行加密;
28.向sim卡发送签名请求;所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名;
29.接收所述sim卡发送的签名结果;所述签名结果至少携带签名后的第一数据;
30.确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证;所述第一证书与所述第二证书不同。
31.上述方法中,所述确定第一证书时,所述方法还包括:
32.依据第二策略,在本地数据库中确定所述第二证书;
33.所述签名请求还携带所述第一数据对应的应用标识和所述第二证书的第二标识。
34.上述方法中,所述依据第二策略,在本地数据库中确定所述第二证书,包括:
35.依据本地数据库中证书的优先级信息,从本地数据库中确定所述第二证书;
36.或者,
37.利用随机算法,从本地数据库中确定所述第二证书;
38.或者,
39.从本地数据库中指定所述第二证书。
40.上述方法中,所述签名结果还携带第二标识;所述确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证,包括:
41.利用所述第二标识,在本地数据库中确定与所述第二标识对应的所述第二证书;
42.利用所述第二证书的公钥,对所述签名结果进行验证。
43.本技术实施例还提供一种sim卡,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
44.其中,所述第一处理器用于运行所述计算机程序时,执行上述sim卡侧任一方法的步骤。
45.本技术实施例还提供一种业务平台,其特征在于,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
46.其中,所述第二处理器用于运行所述计算机程序时,执行上述业务平台侧任一方法的步骤。
47.本技术实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述sim卡侧任一方法的步骤,或者实现业务平台侧任一方法的步骤。
48.本技术实施例提供的签名方法、相关设备和存储介质,业务平台获取第一数据后,确定第一证书,并利用所述第一证书的公钥,对所述第一数据加密;向sim卡发送签名请求;所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名;sim卡接收业务平台发送的签名请求后,利用所述第一标识,确定第一
证书,并利用所述第一证书的私钥对加密的第一数据进行解密;确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名,并向所述业务平台返回签名结果;所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证;所述第一证书与所述第二证书不同;业务平台接收所述sim卡发送的签名结果;确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证。本技术实施例提供的技术方案,针对待签名数据,业务平台和sim卡分别采用不同的证书对待签名数据进行加密和签名。通过不同的证书对数据进行签名,减少了证书被破解而导致的签名被伪造的可能性,同时,也避免了待签名数据被窃取的可能性,提高了签名的安全性。
附图说明
49.图1为相关技术中一种签名的方法流程示意图;
50.图2为本技术实施例第一种签名的方法流程示意图;
51.图3为本技术实施例sim卡本地数据库中证书存储的结构示意图;
52.图4为本技术实施例第二种签名的方法流程示意图;
53.图5为本技术实施例第三种签名的方法流程示意图;
54.图6为本技术应用实施例sim卡的结构示意图;
55.图7为本技术应用实施例第一种签名的方法流程示意图;
56.图8为本技术应用实施例第二种签名的方法流程示意图;
57.图9为本技术实施例第一种签名装置结构示意图;
58.图10为本技术实施例第二种签名装置结构示意图;
59.图11为本技术实施例sim卡结构示意图;
60.图12为本技术实施例业务平台结构示意图;
61.图13为本技术实施例签名系统结构示意图。
具体实施方式
62.下面结合附图及实施例对本技术再作进一步详细的描述。
63.对本技术进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
64.(1)数据短信:一种二进制短信,由协议报文、安全报文和应用报文组成。
65.(2)sim盾平台:服务端,用于与sim卡通过数据短信交互,还用于通过应用程序接口(api,application programming interface)与业务平台交互。
66.(3)业务平台:业务平台是使用sim盾业务的平台,如银行后台。
67.(4)sim卡应用工具包(stk,sim tool kit):stk包含了一系列终端与sim卡的交互指令。
68.相关技术中,基于sim卡的移动签名均采用单证模式,即采用一个证书包含的密钥对,对业务数据进行加密和签名;其中,基于sim卡的移动签名系统中包含业务平台,sim盾平台和sim卡。具体地,如图1所示,基于sim卡的移动签名流程包括以下步骤:
69.步骤101:业务平台获取待签名数据后,通过签名证书的公钥对待签名数据进行加密,并向sim盾平台发送签名认证请求;
70.步骤102:sim盾平台接收签名认证请求后,向业务平台返回签名认证接收响应;
71.步骤103:sim盾平台对签名认证请求进行处理,并以数据短信的方式向sim卡发送签名指令;
72.其中,所述签名指令至少携带加密后的待签名数据;
73.步骤104:sim卡接收签名指令后,通过stk命令将签名指令携带的应用名称和应用提供商提示信息显示在用户终端上;
74.步骤105:sim卡接收用户通过终端输入的签名口令,对签名口令验证成功时,获取签名指令携带的加密后的待签名数据,并采用签名证书的私钥对加密后的待签名数据进行解密;sim卡利用签名规则和签名证书的私钥对解密后的待签名数据签名;
75.步骤106:sim卡向sim盾平台上传签名结果;
76.其中,所述签名结果至少携带签名后的待签名数据;
77.步骤107:sim盾平台对接收的签名结果处理后,向业务平台发送签名认证结果;
78.步骤108:业务平台接收签名认证结果后,向sim盾平台返回签名认证结果接收响应,同时,利用签名证书的公钥对签名认证结果携带的签名后的待签名数据进行验证。
79.这个过程中,由于仅采用一个证书,即采用一对密钥对,对业务数据进行加密和签名,存在证书容易被破解的情况,进而导致签名被伪造、业务数据被泄露的问题,即存在签名安全性低的问题。
80.基于此,在本技术的各种实施例中,对数据进行签名时,业务平台和sim卡采用不同的证书对数据进行加密和签名,实现了加密证书和签名证书的分离,即双证书签名模式,使得签名被破解的可能性降低,进而提高了签名的安全性。
81.本技术实施例提供一种签名方法,应用于sim卡,如图2所示,包括以下步骤:
82.步骤201:接收业务平台发送的签名请求;所述签名请求至少携带加密的第一数据和第一标识;所述签名请求用于请求对第一数据签名;
83.步骤202:利用所述第一标识,确定第一证书,并利用所述第一证书的私钥对加密的第一数据进行解密;
84.步骤203:确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名,并向所述业务平台返回签名结果;所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证;所述第一证书与所述第二证书不同。
85.实际应用时,在步骤201之前,sim卡接收sim盾平台分配的应用标识后,可以为每个应用标识对应的应用分配存储空间,并为每个应用申请对应的证书,存储至对应的存储空间中;申请的证书可以用于加密或者签名;每个证书包含公钥、私钥和证书颁发机构(ca,certificate authority)机构标识;每个应用至少存储了两个证书。
86.示例性地,sim卡可以根据用户发送的证书申请指令来为应用a生成对应的公私钥对,然后,通过数据短信将生成的公钥发送至sim盾平台;sim盾平台接收公钥后,可以将公钥和用户相关信息进行组合,并将组合后的信息发送给sim卡。sim卡利用生成的私钥对组合后的信息进行签名,再将签名后的信息发送至sim盾平台,以使得sim盾平台通过超文本传输协议(http,hyper text transfer protocol)请求向ca机构进行证书申请。证书申请完成后,sim盾平台接收ca机构返回的申请证书,发送至sim卡,同时,sim盾平台还通过api将申请证书发送至业务平台。sim卡接收到sim盾平台发送的申请证书后,可以将申请证书
与私钥进行结合,以形成证书a,并存储至与应用a对应的存储空间中。如图3所示,sim卡为应用a和应用b分配了不同的存储空间;其中,应用a至少对应证书a和证书b;应用b至少对应证书c和证书d。
87.其中,sim卡可以采用密钥对生成算法来生成公私钥对,比如rsa算法,或者sm2算法等。
88.实际应用时,sim卡可以通过sim盾平台,来接收业务平台发送的签名请求。具体地,sim盾平台通过api接收到业务平台发送的签名请求后,可以对所述签名请求进行处理,再以数据短信的方式将处理后的签名请求发送至sim卡。示例性地,sim盾平台通过api接收签名请求后,可以按照预设格式将签名请求编码为十六进制编码字符串,然后再以数据短信的方式将编码后的签名请求发送至sim卡。
89.这里,sim卡还可以通过sim盾平台向业务平台发送签名结果。具体地,sim盾平台通过数据短信接收到sim卡发送的签名结果后,对签名结果进行处理,并通过api发送至业务平台。具体地,sim盾平台接收到sim卡以十六进制编码字符串的方式发送的签名结果后,可以进行解码,然后,将解码后的签名结果通过api发送至业务平台。
90.由于sim卡与业务平台通过数据短信交互,且sim卡与业务平台通过sim盾平台交互,这样,能够保护sim卡本地数据库中存储的证书,避免证书被盗取而导致签名被伪造的情况,从而提高签名的安全性。
91.步骤202中,实际应用时,sim卡利用第一证书的私钥对加密的第一数据进行解密时,可以采用rsa、sm2等算法来进行解密。
92.步骤203中,实际应用时,sim卡利用第二证书的私钥对解密后的第一数据签名时,可以采用sha1withrsa、sha256withrsa、sm3withsm2等签名算法来进行签名。
93.实际应用时,可以由业务平台选择加密证书(即第一证书)和签名证书(即第二证书),通过在业务平台的本地数据库中多个证书中选择签名证书,避免签名证书被轻易盗取,进而降低签名被破解的可能性,提高了签名的安全性。在这种情况下,业务平台可以向sim卡返回证书的标识信息,以便于sim卡在本地数据库中查找到对应的证书。
94.基于此,在一实施例中,所述签名请求还携带第二标识和应用标识;所述确定第二证书,包括:
95.在本地数据库查找与所述应用标识对应的至少两个证书;
96.在查找到的至少两个证书中确定与所述第二标识对应的第二证书。
97.这里,当业务平台选择了第一证书和第二证书后,会通过签名请求向sim卡发送应用标识和第二标识。相应地,sim卡接收到携带第二标识和应用标识的签名请求后,可以先利用应用标识在本地数据库中查找对应的存储空间和存储空间对应的至少两个证书,再利用第二标识在查找到的至少两个证书中确定与第二标识对应的第二证书,即签名证书。
98.实际应用时,还可以由业务平台来选择加密证书,由sim卡来选择第二证书进行签名。通过sim卡从本地数据库中多个证书中来选择签名证书,降低了证书被盗取导致的签名被伪造的可能性,即提高了签名的安全性。
99.基于此,在一实施例中,所述签名请求还携带应用标识;所述确定第二证书,包括:
100.利用所述应用标识,在本地数据库查找对应的至少两个证书;
101.依据第一策略,在查找到的至少两个证书中确定第二证书。
102.这里,当通过sim卡来选择第二证书进行签名时,业务平台返回的签名请求需要携带与第一数据对应的应用标识,以便于sim通过应用标识来查找到应用对应的至少两个证书,进而依据第一策略在应用对应的至少两个证书中选择第二证书。
103.实际应用时,sim卡可以根据不同的方式在本地数据库中选择第二证书。
104.在一实施例中,所述依据第一策略,在查找到的至少两个证书中确定第二证书,包括:
105.依据查找到的至少两个证书对应的优先级信息,从查找到的至少两个证书中确定所述第二证书;
106.或者,
107.利用随机算法,从查找到的至少两个证书中确定所述第二证书;
108.或者,
109.从查找到的至少两个证书中指定所述第二证书。
110.实际应用时,sim卡通过sim盾平台向ca机构申请证书时,由于存在不同的ca机构,所签发的证书对应的优先级也并不相同;所述证书包含ca机构的标识。其中,针对不同类型的业务,sim盾平台可以根据业务的安全级别来确定不同的ca机构,以使得sim卡通过sim盾平台向对应的ca机构申请证书。不同的业务的安全级别对应的ca机构可以不同,因此,所签发的证书对应的优先级也可以不同。另外,当用户通过业务平台向sim盾平台发送证书申请指令时,可以指定ca机构,即将ca机构的标识通过证书申请指令发送至sim盾平台,使得sim卡可以通过sim盾平台向指定的ca机构申请证书。由于用户可以根据需求指定不同的ca机构来进行证书申请,不同的ca机构所签发的证书的优先级可以不相同。也就是说,sim卡可以根据ca机构的标识与优先级信息的对应关系,来确定查找到的至少两个证书的优先级信息。
111.其中,ca机构标识与优先级信息的对应关系可以根据需要预先设置。
112.这里,当sim卡查找到至少两个证书时,便可以依据对应的优先级信息来确定第二证书。示例性地,sim卡可以选择优先级最高的证书作为第二证书。
113.这里,当存在优先级信息相同的至少两个证书时,可以利用随机算法,从优先级信息相同的至少两个证书中选择一个作为第二证书;还可以根据证书的属性,如有效期、主题信息等属性信息,从优先级信息相同的至少两个证书中选择一个作为第二证书;还可以根据证书的算法类型,如国密、rsa2048、rsa1024,从优先级信息相同的至少两个证书中选择一个作为第二证书,本技术实施例对此不作限定。
114.实际应用时,sim卡还可以通过随机算法从查找到的至少两个证书中任意选择一个证书作为第二证书,如线性同余法(lcg,linear congruential generator)等。
115.实际应用时,sim卡还可以预先设置证书标识,然后,将预先设置的证书标识对应的证书作为第二证书;其中,所述证书标识可以根据需要设置。
116.实际应用时,由于sim卡需要对加密的第一数据进行解密,再进行签名。在接收到签名请求时,还需要通过签名请求得到第一数据对应的应用标识,以便于sim卡能够在本地数据库中查找到对应的私钥,进而进行解密。
117.基于此,在一实施例中,所述签名请求还携带所述第一数据对应的应用标识;所述利用所述第一标识,确定第一证书,包括:
118.在本地数据库查找与所述应用标识对应的至少两个证书;
119.在查找到的至少两个证书中确定与所述第一标识对应的第一证书。
120.实际应用时,sim卡接收到签名请求时,所述签名请求至少携带加密的第一数据、第一标识和第一数据对应的应用标识。然后,sim卡可以查找到与应用标识对应的至少两个证书,然后,在至少两个证书中确定与第一标识对应的第一证书。这样,便可以从第一证书中提取私钥,对加密的第一数据进行解密,使得sim卡可以利用第二证书的私钥对解密后的第一数据签名。
121.相应地,本技术实施例还提供了一种签名方法,应用于业务平台,如图4所示,包括以下步骤:
122.步骤401:获取第一数据;
123.步骤402:确定第一证书,并利用所述第一证书的公钥,对所述第一数据进行加密;
124.步骤403:向sim卡发送签名请求;所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名;
125.步骤404:接收所述sim卡发送的签名结果;所述签名结果至少携带签名后的第一数据;
126.步骤405:确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证;所述第一证书与所述第二证书不同。
127.这里,业务平台可以通过接收终端发送的数据的方式,来获取第一数据,还可以通过从本地数据库读取数据的方式,来获取第一数据。本技术实施例对业务平台获取第一数据的方式不作限制。
128.实际应用时,在步骤401之前,业务平台接收sim平台分配的应用标识后,可以为每个应用标识对应的应用分配存储空间,以存储应用对应的证书;其中,每个应用至少存储两个证书;所述证书包含公钥和ca机构标识;证书包括加密证书(即第一证书)和签名证书(即第二证书)。
129.这里,业务平台所存储证书不包含对应的私钥。
130.实际应用时,业务平台可以通过sim盾平台与sim卡进行交互。具体地,业务平台通过api向sim盾平台发送签名请求,使得sim盾平台接收签名请求后,可以对签名请求进行处理,并以数据短信的方式发送至sim卡。
131.这里,业务平台还可以通过sim盾平台接收sim卡发送的签名结果。具体地,sim盾平台接收sim卡发送的签名结果,可以对签名结果进行处理,再通过api发送至业务平台。
132.实际应用时,步骤405中,业务平台确定与第一数据对应的第二证书后,可以从第二证书中提取第二证书的公钥,通过公钥和签名结果,根据验签算法来确定签名是否验证成功;所述签名结果至少包括签名后的第一数据;所述验签算法可以包括rsa算法和sm2算法。具体地,在sim卡利用第二证书的私钥对第一数据签名的过程中,实际上,是利用第二证书的私钥对第一数据进行加密。相应地,业务平台可以利用第二证书的公钥对签名后的第一数据进行解密,然后,将解密后的第一数据和第一数据进行匹配,当解密后的第一数据和第一数据匹配时,则判断签名验证成功。
133.实际应用时,业务平台选择第一证书,以对第一数据进行加密后,还可以选择第二证书,以供sim卡利用第二证书进行签名。
134.在一实施例中,所述确定第一证书时,所述方法还包括:
135.依据第二策略,在本地数据库中确定所述第二证书;
136.所述签名请求还携带所述第一数据对应的应用标识和所述第二证书的第二标识。
137.其中,所述第二策略和第一策略可以相同,也可以与第一策略不同。
138.实际应用时,当业务平台依据第二策略选择第二证书后,向sim发送签名请求时,所述签名请求还携带所述第一数据对应的应用标识和所述第二证书的第二标识。如此,sim卡便能够在对应的本地数据库中查找到第一证书和第二证书,进而可以采用第一证书对加密的第一数据进行解密,还可以采用第二证书对解密后的第一证书进行签名。
139.这里,实际应用时,业务平台可以采用不同的方式在本地数据库中选择第二证书。
140.在一实施例中,所述依据第二策略,在本地数据库中确定所述第二证书,包括:
141.依据本地数据库中证书的优先级信息,从本地数据库中确定所述第二证书;
142.或者,
143.利用随机算法,从本地数据库中确定所述第二证书;
144.或者,
145.从本地数据库中指定所述第二证书。
146.实际应用时,由于存在不同的ca机构,业务平台所存储的证书对应的优先级也并不相同;所述证书包含ca机构的标识。其中,针对不同类型的业务,sim盾平台可以根据业务的安全级别来确定不同的ca机构,以使得sim卡通过sim盾平台向对应的ca机构申请证书。不同的业务的安全级别对应的ca机构可以不同,因此,所签发的证书对应的优先级也可以不同,相应地,业务平台所存储的证书对应的优先级也并不相同。另外,当用户通过业务平台向sim盾平台发送证书申请指令时,可以指定ca机构,即将ca机构的标识通过证书申请指令发送至sim盾平台,使得sim卡可以通过sim盾平台向指定的ca机构申请证书。由于用户可以根据需求指定不同的ca机构来进行证书申请,不同的ca机构所签发的证书的优先级可以不相同,相应地,业务平台所存储的证书的优先级也并不相同。也就是说,业务平台可以根据ca机构的标识与优先级信息的对应关系,来确定本地数据库中证书的优先级信息。
147.其中,所述ca机构的标识与优先级信息的对应关系可以根据需要预先设置。
148.这里,业务平台在本地数据库中确定第二证书时,便可以依据对应的优先级信息来确定。示例性地,业务平台可以选择优先级最高的证书作为第二证书。
149.这里,当存在优先级相同的至少两个证书时,可以利用随机算法,从优先级信息相同的至少两个证书中选择一个作为第二证书;还可以根据证书的属性,如有效期、主题信息等属性信息,从优先级信息相同的至少两个证书中选择一个作为第二证书;还可以根据证书的算法类型,如国密、rsa2048、rsa1024,从优先级信息相同的至少两个证书中选择一个作为第二证书,本技术实施例对此不作限定。
150.实际应用时,业务平台还可以通过随机算法从本地数据库中任意选择一个证书作为第二证书,如线性同余法(lcg,linear congruential generator)。
151.实际应用时,业务平台还可以预先设置证书标识,然后,将预先设置的证书标识对应的证书作为第二证书;其中,实际应用时,所述证书标识可以根据需要设置。
152.实际应用时,还可以通过业务平台来选择第一证书,通过sim卡来选择第二证书。在这种情况下,业务平台还需要通过签名结果获取到第二证书对应的标识,以便于对签名
结果进行验证。
153.基于此,在一实施例中,所述签名结果还携带第二标识;所述确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证,包括:
154.利用所述第二标识,在本地数据库中确定与所述第二标识对应的所述第二证书;
155.利用所述第二证书的公钥,对所述签名结果进行验证。
156.实际应用时,当sim卡确定第二证书后,会利用第二证书的私钥对解密后的第一数据签名,即利用第二证书的私钥对解密后的第一数据进行加密,并返回签名结果;所述签名结果还携带应用标识。业务平台接收签名结果后,能够在本地数据库中查找到与应用标识对应的至少两个证书,进而在查找到的至少两个证书中确定与第二标识对应的第二证书。然后,业务平台便可以通过提取第二证书的公钥,结合验签算法对签名后的第一数据进行解密,并将解密后的第一数据与第一数据进行匹配;所述验签算法包括rsa算法和sm2算法。当解密后的第一数据与第一数据匹配时,则判断验证成功;若两者不匹配,则判断验证失败。
157.本技术实施例还提供了一种签名方法,如图5所示,包括以下步骤:
158.步骤501:业务平台获取第一数据;
159.步骤502:业务平台确定第一证书,并利用所述第一证书的公钥,对所述第一数据进行加密;
160.步骤503:业务平台向sim卡发送签名请求;
161.其中,所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名。
162.步骤504:sim卡利用所述第一标识,确定所述第一证书,并利用所述第一证书的私钥对加密的第一数据进行解密;
163.步骤505:sim卡确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名;
164.步骤506:sim卡向所述业务平台返回签名结果;
165.其中,所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证;所述第一证书与所述第二证书不同。
166.步骤507:业务平台确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证。
167.这里,需要说明的是:业务平台和sim卡的具体处理过程已在上文详述,这里不再赘述。
168.本技术实施例提供的签名方法,业务平台获取第一数据后,确定第一证书,并利用所述第一证书的公钥,对所述第一数据加密;向sim卡发送签名请求;所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名;sim卡接收业务平台发送的签名请求后,利用所述第一标识,确定第一证书,并利用所述第一证书的私钥对加密的第一数据进行解密;确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名,并向所述业务平台返回签名结果;所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证;所述第一证书与所述第二证书不同;业务平台接收所述sim卡发送的签名结果;确定所述第一数据对应的第二证书,并利用
所述第二证书对所述签名结果进行验证。本技术实施例提供的技术方案,针对待签名数据,业务平台和sim卡分别采用不同的证书对待签名数据进行加密和签名。通过不同的证书对数据进行签名,减少了证书被破解而导致的签名被伪造的可能性,同时,也避免了待签名数据被窃取的可能性,提高了签名的安全性。
169.下面结合应用实施例对本技术再做进一步详细的描述。
170.本应用实施例的签名系统框架包括业务平台、sim盾平台和sim卡;其中,如图6所示,sim卡可以具体包括:
171.通信模块,用于通过数据短信与sim盾平台通信;
172.运算模块,用于生成公私钥对、进行加密和解密处理、进行签名处理以及与通信模块和证书存储模块交互;
173.证书存储模块,用于存储应用对应的证书。
174.本应用实施例业务平台选择加密证书和签名证书进行签名的过程,如图7所示,包括以下步骤:
175.步骤701:业务平台选择加密证书(即第一证书),并对待签名数据(即第一数据)进行加密;
176.这里,由于本地数据库中存储了已向ca机构进行证书申请的至少两个证书,业务平台可以依据证书的优先级信息、随机算法或者指定的方式,在本地数据库中选择加密证书。
177.然后,业务平台可以提取加密证书的公钥,利用加密证书的公钥对待签名数据进行加密。
178.步骤702:业务平台选择签名证书(即第二证书);
179.实际应用时,业务平台选择加密证书后,可以从本地数据库中选择除加密证书外的一个证书作为签名证书。具体地,业务平台可以依据证书的优先级信息、随机算法或者指定的方式,来选择签名证书。
180.步骤703:业务平台向sim盾平台发送签名请求;
181.其中,所述签名请求包括加密的待签名数据、加密证书标识(即第一标识)、签名证书标识(即第二标识)和应用标识;所述应用标识是基于待签名数据确定的。
182.实际应用时,业务平台可以通过api向sim盾平台发送签名请求。
183.步骤704:sim盾平台对签名请求进行编码处理;
184.实际应用时,由于sim盾平台是通过数据短信向sim卡发送指令的,接收到签名请求后,需要对签名请求进行编码,形成十六进制编码的字符串,即形成签名指令。
185.步骤705:sim盾平台向sim卡发送签名指令;
186.其中,所述签名指令包括加密的待签名数据、加密证书标识、签名证书标识和应用标识。
187.这里,sim盾平台通过数据短信向sim卡的通信模块发送签名指令。
188.步骤706:sim卡检索加密证书,并解密待签名数据;
189.这里,sim卡的通信模块接收签名指令后,发送至运算模块,运算模块可以在证书存储模块中查找到与应用标识对应的至少两个证书,进而从至少两个证书中确定与加密证书标识对应的加密证书。
190.然后,运算模块可以从加密证书中提取私钥,对加密的待签名数据进行解密。
191.步骤707:sim卡检索签名证书,并进行签名;
192.实际应用,运算模块还可以在证书存储模块中查找到与应用标识对应的至少两个证书,进而从至少两个证书中确定与签名证书标识对应的签名证书。
193.然后,运算模块从签名证书中提取私钥,对解密后的待签名数据进行签名。
194.步骤708:sim卡向sim盾平台返回签名结果指令;
195.其中,所述签名结果指令包括应用标识、签名后的待签名数据。
196.这里,sim卡的通信模块可以通过数据短信向sim盾平台发送签名结果。
197.步骤709:sim盾平台向业务平台返回签名结果;
198.实际应用时,sim盾平台对签名结果指令进行解码处理,并通过api向业务平台返回签名结果。
199.步骤710:业务平台验证签名结果;
200.这里,业务平台通过选择的签名证书,来提取签名证书的公钥,再利用签名证书的公钥对签名后的待签名数据进行解密。然后,业务平台将解密后的待签名数据和原始的待签名数据进行匹配,若匹配成功,则代表验证通过;若匹配失败,则代表验证未通过。
201.本应用实施例业务平台选择加密证书,sim卡选择签名证书进行签名的过程,如图8所示,包括以下步骤:
202.步骤801:业务平台选择加密证书(即第一证书)对待签名数据(即第一数据)进行加密;
203.这里,由于本地数据库中存储了已向ca机构进行证书申请的至少两个证书,业务平台可以依据证书的优先级信息、随机算法或者指定的方式,在本地数据库中选择加密证书。
204.然后,业务平台可以提取加密证书的公钥,利用加密证书的公钥对待签名数据进行加密。
205.步骤802:业务平台向sim盾平台发送签名请求;
206.其中,所述签名请求包括加密的待签名数据、加密证书标识(即第一标识)、和应用标识;所述应用标识是基于待签名数据确定的。
207.实际应用时,业务平台可以通过api向sim盾平台发送签名请求。
208.步骤803:sim盾平台对签名请求进行编码处理;
209.实际应用时,由于sim盾平台是通过数据短信向sim卡发送指令的,接收到签名请求后,需要对签名请求进行编码,形成十六进制编码的字符串,即形成签名指令。
210.步骤804:sim盾平台向sim卡发送签名指令;
211.其中,所述签名指令包括加密的待签名数据、加密证书标识和应用标识。
212.这里,sim盾平台通过数据短信向sim卡的通信模块发送签名指令。
213.步骤805:sim卡检索加密证书,并解密待签名数据;
214.这里,sim卡的通信模块接收签名指令后,发送至运算模块,运算模块可以在证书存储模块中查找到与应用标识对应的至少两个证书,进而从至少两个证书中确定与加密证书标识对应的加密证书。
215.然后,运算模块可以从加密证书中提取私钥,对加密的待签名数据进行解密。
216.步骤806:sim卡选择签名证书;
217.实际应用时,sim卡的运算模块可以从证书存储模块中查找到与应用标识对应的至少两个证书,然后,从查找到的至少两个证书中选择签名证书。示例性地,sim卡的运算模块可以依据证书的优先级信息、随机算法或者指定的方式,来选择签名证书。
218.步骤807:sim卡进行签名,
219.选择签名证书后,sim卡的运算模块可以提取签名证书的私钥,对加密后的待签名数据签名。
220.步骤808:sim卡向sim盾平台返回签名结果指令;
221.其中,所述签名结果指令包括应用标识、签名证书标识和签名后的待签名数据。
222.这里,sim卡的通信模块可以通过数据短信向sim盾平台发送签名结果。
223.步骤809:sim盾平台向业务平台返回签名结果;
224.实际应用时,sim盾平台对签名结果指令进行解码处理,并通过api向业务平台返回签名结果。
225.步骤810:业务平台检索签名证书;
226.这里,业务平台可以在本地数据库中查找与应用标识对应的至少两个证书,进而在至少两个证书中确定与签名证书标识对应的签名证书;所述签名证书包含公钥。
227.步骤811:业务平台验证签名结果;
228.这里,业务平台从确定的签名证书中提取签名证书的公钥,再利用签名证书的公钥对签名后的待签名数据进行解密。然后,业务平台将解密后的待签名数据和原始的待签名数据进行匹配,若匹配成功,则代表验证通过;若匹配失败,则代表验证未通过。
229.本应用实施例中,sim卡为每个应用配置了单独的存储空间,每个应用可以申请多张证书并存储在sim卡中,如此,针对待签名数据,能够在签名时实现双证书签名模式,即业务平台和sim卡可以从应用对应的多张证书中选择不同的证书对待签名数据进行加密和签名,从而降低证书被破解、签名被伪造的风险,保障了签名的安全性。
230.另外,由于采用不同的加密证书和签名证书,且加密证书的私钥存储在sim卡中,使得加密的待签名数据难以被破解。这是因为:加密的待签名数据仅能通过加密证书的私钥来解密,以得到待签名数据。由于加密证书的私钥存储在sim卡中,难以被窃取,从而使得加密的待签名数据难以被破解。另外,sim卡是通过sim盾平台与业务平台进行数据交互的,在这个基础上,可以进一步保障sim卡存储的证书无法被窃取。通常来说,待签名数据为比较敏感的数据,如此,有助于保护敏感数据不被泄露。
231.为了实现本技术实施例sim卡侧的方法,本技术实施例还提供一种签名装置,设置在sim卡上,如图9所示,该装置包括:
232.第一接收单元901,用于接收业务平台发送的签名请求;所述签名请求至少携带加密的第一数据和第一标识;所述签名请求用于请求对第一数据签名;
233.第一处理单元902,利用所述第一标识,确定第一证书,并利用所述第一证书的私钥对加密的第一数据进行解密;确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名;所述第一证书与所述第二证书不同;
234.第一发送单元903,用于向所述业务平台返回签名结果;所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证。
235.这里,所述第一接收单元901和所述第一发送单元903的功能相当于应用实施例中通信模块的功能;所述第一处理单元902的功能相当于应用实施例中运算模块的功能。
236.在一实施例中,所述第一处理单元902,用于:
237.在本地数据库查找与所述应用标识对应的至少两个证书;
238.在查找到的至少两个证书中确定与所述第二标识对应的第二证书。
239.这里,所述本地数据库的功能相当于应用实施例中证书存储模块的功能。
240.在一实施例中,所述第一处理单元902,用于:
241.利用所述应用标识,在本地数据库查找对应的至少两个证书;
242.依据第一策略,在查找到的至少两个证书中确定第二证书。
243.在一实施例中,所述第一处理单元902,用于:
244.依据查找到的至少两个证书对应的优先级信息,从查找到的至少两个证书中确定所述第二证书;
245.或者,
246.利用随机算法,从查找到的至少两个证书中确定所述第二证书;
247.或者,
248.从查找到的至少两个证书中指定所述第二证书。
249.在一实施例中,所述第一处理单元902,用于:
250.在本地数据库查找与所述应用标识对应的至少两个证书;
251.在查找到的至少两个证书中确定与所述第一标识对应的第一证书。
252.实际应用时,所述第一接收单元901、第一发送单元902可由签名装置中的通信接口实现;所述第一处理单元902可由签名装置中的处理器实现。
253.为了实现本技术实施例业务平台侧的方法,本技术实施例还提供了一种签名装置,设置在业务平台上,如图10所示,该装置包括:
254.第二接收单元1001,用于获取第一数据;接收所述sim卡发送的签名结果;所述签名结果至少携带签名后的第一数据;
255.第二处理单元1002,用于确定第一证书,并利用所述第一证书的公钥,对所述第一数据进行加密;
256.第二发送单元1003,用于向sim卡发送签名请求;所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名;
257.验证单元1004,用于确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证;所述第一证书与所述第二证书不同。
258.在一实施例中,所述第二处理单元1002,用于:
259.依据第二策略,在本地数据库中确定所述第二证书;
260.所述签名请求还携带所述第一数据对应的应用标识和所述第二证书的第二标识。
261.在一实施例中,所述第二处理单元1002,用于:
262.依据本地数据库中证书的优先级信息,从本地数据库中确定所述第二证书;
263.或者,
264.利用随机算法,从本地数据库中确定所述第二证书;
265.或者,
266.从本地数据库中指定所述第二证书。
267.在一实施例中,所述验证单元1004,用于:
268.利用所述第二标识,在本地数据库中确定与所述第二标识对应的所述第二证书;
269.利用所述第二证书的公钥,对所述签名结果进行验证。
270.实际应用时,所述第二发送单元1003可由签名装置中的通信接口实现;所述第二处理单元1002和所述验证单元1004可由签名装置中的处理器实现;所述第二获取单元1001可由签名装置中的处理器结合通信接口实现;。
271.需要说明的是:上述实施例提供的签名装置在进行签名时,仅以上述各程序单元的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序单元完成,即将装置的内部结构划分成不同的程序单元,以完成以上描述的全部或者部分处理。另外,上述实施例提供的签名装置与签名方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
272.基于上述程序模块的硬件实现,且为了实现本技术实施例sim卡侧的方法,本技术实施例还提供了一种sim卡,如图11所示,该sim卡1100包括:
273.第一通信接口1101,能够与业务平台进行信息交互;
274.第一处理器1102,与所述第一通信接口1101连接,以实现与业务平台进行信息交互,用于运行计算机程序时,执行上述sim卡侧一个或多个技术方案提供的方法;所述计算机程序存储在第一存储器1103上。
275.具体地,所述第一通信接口1101,用于接收业务平台发送的签名请求;所述签名请求至少携带加密的第一数据和第一标识;所述签名请求用于请求对第一数据签名;向所述业务平台返回签名结果;所述签名结果至少携带签名后的第一数据;所述签名结果用于供所述业务平台进行验证;
276.所述第一处理器1102,用于利用所述第一标识,确定第一证书,并利用所述第一证书的私钥对加密的第一数据进行解密;确定第二证书,利用所述第二证书的私钥对解密后的第一数据签名;所述第一证书与所述第二证书不同。
277.其中,在一实施例中,所述第一处理器1102,用于在本地数据库查找与所述应用标识对应的至少两个证书;在查找到的至少两个证书中确定与所述第二标识对应的第二证书。
278.在一实施例中,所述第一处理器1102,用于利用所述应用标识,在本地数据库查找对应的至少两个证书;依据第一策略,在查找到的至少两个证书中确定第二证书。
279.在一实施例中,所述第一处理器1102,用于依据查找到的至少两个证书对应的优先级信息,从查找到的至少两个证书中确定所述第二证书;或者,利用随机算法,从查找到的至少两个证书中确定所述第二证书;或者,从查找到的至少两个证书中指定所述第二证书。
280.在一实施例中,所述第一处理器1102,用于在本地数据库查找与所述应用标识对应的至少两个证书;在查找到的至少两个证书中确定与所述第一标识对应的第一证书。
281.需要说明的是:第一处理器1102及第一通信接口1101的具体处理过程可参照上述方法理解。
282.当然,实际应用时,sim卡中的各个组件通过总线系统1104耦合在一起。可理解,总
线系统1104用于实现这些组件之间的连接通信。总线系统1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为总线系统1104。
283.本技术实施例中的第一存储器1103用于存储各种类型的数据以支持sim卡1100的操作。这些数据的示例包括:用于在sim卡1100上操作的任何计算机程序。
284.上述本技术实施例揭示的方法可以应用于所述第一处理器1102,或者由所述第一处理器1102实现。所述第一处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器1102可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器1102可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器1103,所述第一处理器1102读取第一存储器1103中的信息,结合其硬件完成前述方法的步骤。
285.在示例性实施例中,sim卡1100可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
286.基于上述程序模块的硬件实现,且为了实现本技术实施例业务平台侧的方法,本技术实施例还提供了一种业务平台,如图12所示,该业务平台1200包括:
287.第二通信接口1201,能够与sim卡进行信息交互;
288.第二处理器1202,与所述第二通信接口1201连接,以实现与sim卡进行信息交互,用于运行计算机程序时,执行上述业务平台侧一个或多个技术方案提供的方法;所述计算机程序存储在第二存储器1203上。
289.具体地,所述第二通信接口1201,用于获取第一数据;向sim卡发送签名请求;所述签名请求至少携带加密的第一数据和所述第一证书的第一标识;所述签名请求用于请求对第一数据签名;接收所述sim卡发送的签名结果;所述签名结果至少携带签名后的第一数据;
290.所述第二处理器1202,用于确定第一证书,并利用所述第一证书的公钥,对所述第一数据进行加密;确定所述第一数据对应的第二证书,并利用所述第二证书对所述签名结果进行验证;所述第一证书与所述第二证书不同。
291.其中,在一实施例中,所述第二处理器1202,用于依据第二策略,在本地数据库中确定所述第二证书;所述签名请求还携带所述第一数据对应的应用标识和所述第二证书的第二标识。
292.在一实施例中,所述第二处理器1202,用于依据本地数据库中证书的优先级信息,
从本地数据库中确定所述第二证书;或者,利用随机算法,从本地数据库中确定所述第二证书;或者,从本地数据库中指定所述第二证书。
293.在一实施例中,所述第二处理器1202,用于利用所述第二标识,在本地数据库中确定与所述第二标识对应的所述第二证书;利用所述第二证书的公钥,对所述签名结果进行验证。
294.需要说明的是:所述第二处理器1202及第二通信接口1201的具体处理过程可参照上述方法理解。
295.当然,实际应用时,业务平台中的各个组件通过总线系统1204耦合在一起。可理解,总线系统1204用于实现这些组件之间的连接通信。总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1204。
296.本技术实施例中的第二存储器1203用于存储各种类型的数据以支持业务平台1200的操作。这些数据的示例包括:用于在业务平台1200上操作的任何计算机程序。
297.上述本技术实施例揭示的方法可以应用于所述第二处理器1202中,或者由所述第二处理器1202实现。所述第二处理器1202可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第二处理器1202中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第二处理器1202可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第二处理器1202可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器1203,所述第二处理器1202读取第二存储器1203中的信息,结合其硬件完成前述方法的步骤。
298.在示例性实施例中,业务平台1200可以被一个或多个asic、dsp、pld、cpld、fpga、通用处理器、控制器、mcu、microprocessor、或其他电子元件实现,用于执行前述方法。
299.为了实现本技术实施例提供的方法,本技术实施例还提供了一种签名系统,如图13所示,该系统包括:sim卡1301和业务平台1302。
300.这里,需要说明的是:所述sim卡1301和业务平台1302的具体处理过程已在上文详述,这里不再赘述。
301.在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器1103,上述计算机程序可由sim卡1100的第一处理器1102执行,以完成前述sim卡侧方法所述步骤,再比如包括存储计算机程序的第二存储器1203,上述计算机程序可由业务平台1200的第二处理器1202执行,以完成前述业务平台侧方法所述步骤。计算机可读存储介质可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁
表面存储器可以是磁盘存储器或磁带存储器。
302.需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
303.另外,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
304.以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围,凡在本技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1