一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种保存大对象数据的方法及装置与流程

2022-04-30 10:46:40 来源:中国专利 TAG:


1.本发明涉及信息安全领域,特别涉及一种保存大对象数据的方法及装置。


背景技术:

2.现有技术中,在fido协议的框架下,客户端在注册和认证过程中,仅仅允许客户端在身份认证器(如密钥设备)中存储凭证数据,无法使客户端在身份认证器中存储与凭证关联的数据或者证书数据,从而限制了身份认证器的使用场景的扩展和用途。


技术实现要素:

3.本发明提供了一种保存大对象数据的方法及装置,解决了上述技术问题。
4.本发明提供了一种保存大对象数据的方法,该方法包括:注册过程和认证过程;注册过程包括:
5.步骤01,客户端判断身份认证器支持大对象扩展后,获取身份认证器生成的凭证标识和与凭证标识关联的大对象密钥,组织大对象数据,使用大对象密钥对大对象数据进行加密后得到密文数据;
6.步骤02,客户端向身份认证器发送读取大对象数据指令;
7.步骤03,身份认证器向客户端返回大对象数组;
8.步骤04,客户端按照预定格式根据密文数据生成大对象数据块,将大对象数据块封装到大对象数组中生成新大对象数组,根据新大对象数组生成设置大对象指令;
9.步骤05,客户端将设置大对象指令发送给身份认证器;
10.步骤06,身份认证器对设置大对象指令进行解析,得到新大对象数组,将新大对象数组存储为大对象数组;
11.认证过程包括:
12.步骤b1,客户端判断身份认证器支持大对象扩展后,向身份认证器发送包含凭证标识的凭证验证指令;
13.步骤b2,身份认证器根据凭证标识获取凭证,根据凭证执行认证操作获得操作结果,根据操作结果生成凭证验证指令响应,将凭证验证指令响应发送给客户端;
14.步骤b3,客户端接收凭证验证指令响应,对凭证验证指令响应中的操作结果进行判断,当操作结果为认证成功的操作结果,客户端获取凭证验证指令响应中的大对象密钥,执行步骤b4,当操作结果为认证失败的操作结果,客户端报错,结束;
15.步骤b4,客户端向身份认证器发送读取大对象数据指令;
16.步骤b5,身份认证器向客户端返回大对象数组;
17.步骤b6,客户端对大对象数组中的大对象数据块进行遍历,找到符合预定格式的大对象数据块,对找到的大对象数据块进行解析后得到解析结果,使用大对象密钥对解析结果进行解密后得到明文数据;
18.步骤b7,客户端计算明文数据的长度,判断明文数据的长度是否合法,如果是,则
根据明文数据获取大对象数据,执行步骤b8;如果否,报错;
19.步骤b8,客户端根据获取的大对象数据进行身份验证操作。
20.本发明还提供了一种保存大对象数据的装置,该装置包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现上述保存大对象数据的方法。
21.本发明还提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述保存大对象数据的方法。
22.本发明还提供了一种芯片,该芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行上述保存大对象数据的方法。
23.本发明的有益效果:本发明提供了一种保存大对象数据的方法及装置,可以将与凭证关联的数据或者证书数据等封装为大对象数据存储到身份认证器(如密钥设备)中,从而扩展了fido协议的框架下的身份认证器的使用场景和行业用途,从而推动身份认证器与各个行业领域的结合。
附图说明
24.图1和图2为本发明实施例一提供的一种保存大对象数据的方法流程图;
25.图3和图4为本发明实施例二提供的一种保存大对象数据的方法流程图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.术语说明:
28.大对象就是与当前凭证关联的大块的数据对象,数据对象可以为证书数据,用户隐私信息数据、图片信息或者权限限制等。通常大于1k的数据对象称为大块的数据对象。
29.实施例一
30.本实施例提供了一种保存大对象数据的方法,如图1和图2所示,包括:注册过程和认证过程;
31.注册过程包括:
32.步骤101,客户端判断身份认证器支持大对象扩展后,获取身份认证器生成的凭证标识和与凭证标识关联的大对象密钥,组织大对象数据,使用大对象密钥对大对象数据进行加密后得到密文数据;
33.步骤102,客户端向身份认证器发送读取大对象数据指令;
34.步骤103,身份认证器向客户端返回大对象数组;
35.步骤104,客户端按照预定格式根据密文数据生成大对象数据块,将大对象数据块封装到大对象数组中生成新大对象数组,根据新大对象数组生成设置大对象指令;
36.步骤105,客户端将设置大对象指令发送给身份认证器;
37.步骤106,身份认证器对设置大对象指令进行解析,得到新大对象数组,将新大对象数组存储为大对象数组;
38.认证过程包括:
39.步骤b101,客户端判断身份认证器支持大对象扩展后,向身份认证器发送包含凭证标识的凭证验证指令;
40.步骤b102,身份认证器根据凭证标识获取凭证,根据凭证执行认证操作获得操作结果,根据操作结果生成凭证验证指令响应,将凭证验证指令响应发送给客户端;
41.步骤b103,客户端接收凭证验证指令响应,对凭证验证指令响应中的操作结果进行判断,当操作结果为认证成功的操作结果,客户端获取凭证验证指令响应中的大对象密钥,执行步骤b104,当操作结果为认证失败的操作结果,客户端报错,结束;
42.步骤b104,客户端向身份认证器发送读取大对象数据指令;
43.步骤b105,身份认证器向客户端返回大对象数组;
44.步骤b106,客户端对大对象数组中的大对象数据块进行遍历,找到符合预定格式的大对象数据块,对找到的大对象数据块进行解析后得到解析结果,使用大对象密钥对解析结果进行解密后得到明文数据;
45.步骤b107,客户端计算明文数据的长度,判断明文数据的长度是否合法,如果是,则根据明文数据获取大对象数据,执行步骤b108;如果否,报错;
46.步骤b108,客户端根据获取的大对象数据进行身份验证操作。
47.在一种可能的实施方式中,客户端判断身份认证器支持大对象扩展具体为:客户端获取身份认证器的设备信息,当设备信息中的扩展字段的值为预定值时,则判断身份认证器支持大对象扩展。
48.在一种可能的实施方式中,步骤101中客户端判断身份认证器支持大对象扩展后还包括:客户端从设备信息中获取大对象数组的容量的最大值;
49.所述步骤104具体为:客户端按照预定格式根据所述密文数据生成大对象数据块,计算新大对象数组的容量,判断新大对象数组的容量是否大于大对象数组的容量的最大值,如果是,报错,如果否,将所述大对象数据块封装到大对象数组中生成新大对象数组,根据新大对象数组生成设置大对象指令。
50.在一种可能的实施方式中,步骤b106具体包括:
51.步骤m1,客户端从大对象数组中找到一个大对象数据块,作为当前大对象数据块;
52.步骤m2,客户端判断当前大对象数据块的格式是否与预定格式相同,如果是,执行步骤m3,如果否,执行步骤m4;
53.步骤m3,客户端对当前大对象数据块进行解析,得到密文数据,根据大对象密钥对密文数据进行解密,判断解密是否成功,如果是,执行步骤b107,如果否,执行步骤m4;
54.步骤m4,客户端判断是否可以从大对象数组中找到下一个未遍历的大对象数据块,如果是,则将下一个未遍历的大对象数据块作为当前大对象数据块,执行步骤m2,如果否,报错。
55.在一种可能的实施方式中,步骤101中组织大对象数据,使用大对象密钥对大对象数据进行加密后得到密文数据具体为:
56.客户端组织大对象数据,对大对象数据进行压缩,将压缩结果作为明文原始数据;
获取明文原始数据的长度,根据明文原始数据的长度获取关联数据;生成随机数;根据随机数、关联数据和大对象密钥对明文原始数据进行加密得到密文数据;
57.步骤b106中,对与预定格式相同的大对象数据块进行解析后得到解析结果,使用大对象密钥对解析结果进行解密后得到明文数据具体为:与预定格式相同的大对象数据块进行解析得到密文数据,随机数和明文原始数据的长度,根据明文原始数据的长度获取关联数据,根据随机数、关联数据和大对象密钥对密文数据进行解密得到明文数据;
58.b107中根据明文数据获取大对象数据具体为:对明文数据进行解压缩后得到解压缩结果,将解压缩结果作为大对象数据。
59.在一种可能的实施方式中,步骤101之前还包括:客户端获取身份认证器发送的表示设置有pin码验证的用户pin码标识;
60.步骤101中获取身份认证器生成的凭证标识和与凭证标识关联的大对象密钥具体包括:
61.步骤101-1,客户端向身份认证器发送pin码验证标识和pin码验证协议标识;
62.步骤101-2,身份认证器根据pin码验证协议标识和pin码验证标识计算pin码验证值,并根据自身存储的pin码值判断计算得到的pin验证码值是否正确,如果是,则身份认证器生成凭证标识和与凭证标识关联的大对象密钥,如果否,报错。
63.实施例二
64.本实施例提供了一种保存大对象数据的方法,包括注册过程和认证过程。
65.如图3所示,注册过程包括如下步骤:
66.步骤201,客户端向身份认证器发送获取设备信息指令;
67.在本实施例中,身份认证器具体为fido身份认证器。
68.步骤202,身份认证器向客户端返回获取设备信息指令的响应;
69.在本实施例中,获取设备信息指令的响应可以包括用户pin码标识。
70.用户pin码标识用于标识身份认证器是否设置有pin码,用户pin码标识的值可以为第一预设值或者第二预设值。
71.在本实施例中,第一预设值为true,第二预设值为false;
72.例如,当用户pin码标识的值为true时,表示身份认证器设置有pin码,当用户pin码标识的值为false时,表示身份认证器没有设置pin码。
73.获取设备信息指令的响应还可以包括用户在场验证标识,用于标识是否需要用户按键确认,用户在场验证标识的值可以为第一预设值或者第二预设值。
74.例如,当用户在场验证标识的值为true,表示需要用户按键确认;当用户在场验证标识的值为false,表示不需要用户按键确认;
75.获取设备信息指令的响应还可以包括用户生物验证标识,用于标识是否需要用户验证指纹,用户生物验证标识的值可以为true也可以为false。
76.例如,当用户生物验证标识的值为true,表示需要用户验证指纹,当用户验证标识的值为false,表示不需要用户验证指纹。
77.其中,在获取设备信息指令的响应中,用户在场验证标识的值为false,用户生物验证标识的值为true,
78.或者
79.用户在场验证标识的值为true,用户生物验证标识的值为false。
80.步骤203,客户端对获取设备信息指令的响应进行解析得到的解析结果,根据解析结果判断身份认证器是否支持大对象密钥扩展,如果是,执行步骤204,如果否,则执行常规的不带大对象密钥扩展项的fido注册流程;
81.具体的,在本步骤中,客户端对获取设备信息指令的响应进行解析,得到extensions(扩展)相关字段,客户端判断extensions相关字段里是否包含大对象密钥扩展项,如果是,执行步骤204,如果否,则执行常规的不带大对象密钥扩展项的fido注册流程。
82.如下为本步骤的示例,客户端获取设备信息指令的响应为:af0184665532465f5632684649444f5f325f30684649444f5f325f316c4649444f5f325f315f50524502856863726564426c6f626b6372656450726f746563746b686d61632d7365637265746c6c61726765426c6f624b65796c6d696e50696e4c656e6774680350ee041bce25e54cdb8f86897fd641846404ad626570f462726bf5627570f564706c6174f468616c776179735576f468637265644d676d74f569617574686e72436667f569636c69656e7450696ef46a6c61726765426c6f6273f56e70696e557641757468546f6b656ef56f7365744d696e50494e4c656e677468f5706d616b654372656455764e6f74527164f57563726564656e7469616c4d676d7450726576696577f5051905780682010207060818600982636e6663637573620a81a263616c672664747970656a7075626c69632d6b65790b1904000cf40d040f18201003;
83.客户端对设备信息指令的响应进行cbor解码得到数据:{1:["u2f_v2","fido_2_0","fido_2_1","fido_2_1_pre"],2:["credblob","credprotect","hmac-secret","largeblobkey","minpinlength"],3:h'ee041bce25e54cdb8f86897fd6418464',4:{"ep":false,"rk":true,"up":true,"plat":false,"alwaysuv":false,"credmgmt":true,"authnrcfg":true,"clientpin":false,"largeblobs":true,"pinuvauthtoken":true,"setminpinlength":true,"makecreduvnotrqd":true,"credentialmgmtpreview":true},5:1400,6:[1,2],7:6,8:96,9:["nfc","usb"],10:[{"alg":-7,"type":"public-key"}],11:1024,12:false,13:4,15:32,16:3};
[0084]
客户端判断解码数据中的字段2中有大对象密钥字段并且字段4中含有"largeblobs":true字段,则说明身份认证器支持大对象密钥扩展,执行步骤204。
[0085]
步骤204,客户端获取解析结果中的大对象数组的容量的最大值并保存,向身份认证器发送凭证注册指令;
[0086]
在本实施例中,根据上述客户端对设备信息指令的响应进行cbor解码得到数据示例中,字段11为大对象数组的容量的最大值,即1024。
[0087]
在本步骤中,凭证注册指令中包括如下参数:
[0088]
需要保存的密钥属性,且需要保存的密钥属性的值为true;
[0089]
大对象密钥标识,且大对象密钥标识的值为true,
[0090]
依赖方标识和用户信息。
[0091]
在本实施例中,当步骤202中的获取设备信息指令的响应中包括用户pin码标识,且值为第一预设值时,则本步骤的凭证注册指令中还可以包括如下参数:
[0092]
pin码验证标识,表示pin码的值;
[0093]
和pin码验证协议标识,表示pin码的加解密所用的算法。
[0094]
在本实施例中,凭证注册指令中还可以包括如下参数:
[0095]
用户在场验证标识,用于表示是否需要用户按键确认,
[0096]
例如,当用户在场验证标识的值为true,表示需要用户按键确认;当用户在场验证标识的值为false,表示不需要用户按键确认;
[0097]
用户生物验证标识用于表示是否需要用户验证指纹,
[0098]
例如,当用户生物验证标识的值为true,表示需要用户验证指纹,当用户验证标识的值为false,表示不需要用户验证指纹;
[0099]
步骤205,身份认证器生成凭证id和与凭证id相关联的大对象密钥,向客户端返回包括凭证id和大对象密钥的凭证注册指令的响应;
[0100]
在本步骤中,身份认证器根据依赖方标识和用户信息生成相应的凭证id,生成与凭证id相关联的大对象密钥。
[0101]
身份认证器根据依赖方标识和用户信息生成相应的凭证id,生成与凭证id相关联的大对象密钥具体为:身份认证器生成随机数,将随机数作为大对象密钥,并将大对象密钥与根据依赖方标识和用户信息生成相应的凭证id和依赖方标识进行绑定关联。
[0102]
在本实施例中,当客户端发送给身份认证器的凭证注册指令中包括pin码验证标识和pin码验证协议标识时,本步骤之前还包括,身份认证器根据pin码验证标识和pin码验证协议标识判断pin码验证标识的值否合法,如果是,执行步骤205,如果否,报错。
[0103]
身份认证器根据pin码验证标识和pin码验证协议标识判断pin码验证标识的值否合法具体为:身份认证器根据pin码验证协议标识所表示的算法对pin码验证标识所表示的值进行运算,得到pin码验证值,判断pin码验证值与自身存储的pin码值是否相同,如果是,则合法,执行步骤205,如果否,则不合法,报错。
[0104]
在本实施例中,当客户端发送给身份认证器的凭证注册指令中还包括用户在场验证标识和用户生物验证标识时,身份认证器根据用户在场验证标识和用户生物验证标识的值判断是否需要对用户是否在场的验证或者对用户进行生物特征验证,若需要则在验证通过后,执行步骤205。
[0105]
步骤206,客户端对凭证注册指令的响应进行解析获取凭证id和大对象密钥,客户端组织大对象数据并对大对象数据进行压缩,将压缩结果作为明文原始数据;获取明文原始数据的长度,根据明文原始数据的长度获取关联数据;生成随机数;根据随机数、关联数据和大对象密钥对明文原始数据进行加密得到密文数据;
[0106]
本步骤中,根据明文原始数据的长度获取关联数据具体为:将原始数据的长度的小端描述长度与预定的字符串进行拼接后的拼接结果作为关联数据;
[0107]
在本步骤中,生成随机数具体为:客户端调用系统的随机数生成函数,生成随机数,其中,随机数可以为预定长度的随机数。
[0108]
在本实施例中,系统的随机数生成函数可以为rand函数或者srand函数。
[0109]
在本步骤中,根据随机数、关联数据和密钥对明文原始数据进行加密得到密文数据具体为:客户端调用系统的加密函数aead_aes_256_gcm函数,参数为随机数、原始明文数据、关联数据和密钥,获取的调用结果为密文数据。
[0110]
步骤207,客户端向身份认证器发送读取大对象指令;
[0111]
步骤208,身份认证器向客户端返回读取大对象指令的响应,其中响应中包括大对
象数组;
[0112]
在本实施例中,大对象数组包括数组数据和验证数据,其中,验证数据为大对象数组的后16个字节,具体为数组数据的哈希值。
[0113]
在本实施例中,大对象数组的初始值是预置的,大对象数组的初始值为预置的空cbor数组(80)加上16个字节的预置的空cbor数组(80)的哈希值。
[0114]
步骤209,客户端对身份认证器返回的读取大对象指令的响应进行解析得到大对象数组,判断大对象数组是否合法,如果是,执行步骤210,如果否,报错;
[0115]
本步骤具体为:客户端对身份认证器返回的读取大对象指令的响应进行解析得到大对象数组,获取大对象据数组中的验证数据对大对象数组的合法性进行验证,如果合法,执行步骤210,如果不合法,报错。
[0116]
具体的,对大对象数组的合法性进行验证具体为:客户端对大对象数组中的数组数据进行哈希运算得到第一哈希值,判断第一哈希值是否与大对象数组中的验证数据是否相同,如果相同,则合法,如果不相同,则不合法。
[0117]
步骤210,客户端按照预置格式将密文数据、随机数和明文原始数据的长度进行封装组成大对象数据块;根据组成的大对象数据块对大对象数组进行修改后得到新的大对象数组;
[0118]
在本实施例中,预置格式为map格式,map格式的数据包括三个字段,第一字段为密文数据,第二字段为随机数,第三字段为明文原始数据的长度。
[0119]
本步骤中客户端按照预置格式将密文数据、随机数和明文原始数据的长度进行封装组成大对象数据块具体为:客户端按照map格式将密文数据、随机数和明文原始数据的长度进行封装组成大对象数据块。
[0120]
根据组成的大对象数据块对大对象数组进行修改后得到新的大对象数组具体为:将组成的大对象数据块与大对象数组的数组数据进行拼接生成新的大对象数组数据,对新的大对象数组数据进行哈希运算得到新的验证数据,将新的大对象数组数据与新的验证数据进行拼接生成新的大对象数组。
[0121]
步骤211,客户端判断新的大对象数组的容量是否大于获取的大对象数组的容量的最大值,如果否,执行步骤212,如果是,报错;
[0122]
步骤212,客户端根据新的大对象数组生成设置大对象指令,向身份认证器发送设置大对象指令;
[0123]
步骤213,身份认证器对接收到的设置大对象指令进行解析,得到新的大对象数组;
[0124]
步骤214,身份认证器判断新的大对象数组是否合法,如果是,执行步骤215,如果否,执行步骤216;
[0125]
本步骤在具体为:身份认证器对新的大对象数组中的数组数据进行哈希运算得到第二哈希值,判断第二哈希值是否与新的大对象数组中的验证数据相同,如果是,执行步骤215,如果否,执行步骤216;
[0126]
步骤215,身份认证器将新的大对象数组保存为大对象数组,向客户端返回设置大对象成功的响应;
[0127]
步骤216,身份认证器向客户端返回设置大对象失败的响应;
[0128]
如图4所示,认证过程包括如下步骤:
[0129]
步骤301,客户端向身份认证器发送获取设备信息指令;
[0130]
步骤302,身份认证器向客户端返回获取设备信息指令的响应;
[0131]
步骤303,客户端对获取设备信息指令的响应进行解析,判断身份认证器是否支持大对象扩展,如果是,执行步骤304,如果否,则执行常规的不带大对象密钥扩展项的fido认证流程;
[0132]
具体的,在本步骤中,客户端对获取设备信息指令的响应进行解析,得到extensions字段和大对象数组的容量的最大值,客户端判断extensions字段里是否包含大对象密钥扩展项,如果是,执行步骤304,如果否,则执行常规的不带大对象密钥扩展项的fido认证流程;
[0133]
步骤304,客户端向身份认证器发送包括凭证id的凭证验证指令;
[0134]
在本步骤中,凭证验证指令中包括凭证id和大对象密钥的标识,其中大对象密钥的标识的值为true;
[0135]
在本步骤中,凭证验证指令中还包括依赖方标识;
[0136]
在本实施例中,凭证验证指令中还可以包括如下参数:
[0137]
用户在场验证标识,用于表示是否需要用户按键确认,
[0138]
例如,当用户在场验证标识的值为true,表示需要用户按键确认;当用户在场验证标识的值为false,表示不需要用户按键确认;
[0139]
用户生物验证标识,用于表示是否需要用户验证指纹,
[0140]
例如,当用户生物验证标识的值为true,表示需要用户验证指纹,当用户验证标识的值为false,表示不需要用户验证指纹;
[0141]
在本实施例中,当步骤302中的获取设备信息指令中包括用户pin码标识且用户pin码标识的值为true时,则本步骤的凭证注册指令中还可以包括如下参数:
[0142]
用户在场验证标识,且用户在场验证标识的值为true;
[0143]
pin码验证标识,表示pin码的值;
[0144]
和pin码验证协议标识,表示pin码的加解密所用的算法。
[0145]
在本实施例中,凭证验证指令中还可以包括如下参数:
[0146]
用户在场验证标识且用户在场验证标识的值为false;
[0147]
用户生物验证标识且用户生物验证标识的值为true。
[0148]
步骤305,身份认证器对凭证验证指令进行解析得到凭证id,根据凭证id获取凭证,根据凭证执行认证操作获得操作结果,根据操作结果生成凭证验证指令响应,向客户端返回凭证验证指令响应;
[0149]
本步骤中根据凭证执行认证,具体为根据凭证执行常规的不带大对象密钥扩展项的fido认证流程进行认证操作;
[0150]
本步骤具体为:身份认证器对凭证验证指令进行解析得到凭证id和依赖方标识,根据凭证id获取凭证,根据凭证执行常规的不带大对象密钥扩展项的fido认证流程进行认证操作,获得操作结果,当操作结果为认证成功的操作结果时,身份认证器根据凭证id和依赖方标识获取自身存储的与凭证id和依赖方标识相关联的大对象密钥,向客户端返回包括认证成功的操作结果和大数据对象密钥的凭证验证指令响应;当操作结果为认证失败的操
作结果时,向客户端返回包括认证失败的操作结果的凭证验证指令响应;
[0151]
在本实施例中,当步骤304中的凭证验证指令中包括pin码验证标识和pin码验证协议标识时,本步骤之前还包括,身份认证器根据pin码验证标识和pin码验证协议标识判断pin码验证标识的值否合法,如果是,执行步骤305,如果否,报错。
[0152]
身份认证器根据pin码验证标识和pin码验证协议标识判断pin码验证标识的值否合法具体为:身份认证器根据pin码验证协议标识对应的算法对pin码验证标识的值进行运算,得到pin码值,判断pin码值与自身存储的pin码值是否相同,如果是,则合法,执行步骤305,如果否,则不合法,报错。
[0153]
在本实施例中,当客户端发送给身份认证器的凭证注册指令中还包括用户在场验证标识和用户生物验证标识时,身份认证器根据用户在场验证标识和用户生物验证标识的值判断是否需要对用户是否在场的验证或者对用户进行生物特征验证,在验证通过后,执行步骤305。
[0154]
步骤306,客户端接收凭证验证指令响应,对凭证验证指令响应中的操作结果进行判断,当操作结果为认证成功的操作结果,客户端获取凭证验证指令响应中的大对象密钥,执行步骤307,当操作结果为认证失败的操作结果,客户端报错,结束。
[0155]
步骤307,客户端向身份认证器发送读取大对象数据指令;
[0156]
步骤308,身份认证器向客户端返回读取大对象数据指令响应,其中读取大对象数据指令响应中包括大对象数组;
[0157]
步骤309,客户端对身份认证器返回的读取大对象数据指令的响应进行解析得到大对象数组,判断大对象数组是否合法,如果是,执行步骤310,如果否,报错;
[0158]
本步骤中判断大对象数组是否合法的过程与步骤210中的判断大对象数组是否合法的过程相同,不再赘述。
[0159]
步骤310,客户端对大对象数组中的大对象数据块进行遍历,找到与预定格式相同的大对象数据块,对找到的大对象数据块进行解析得到密文数据、随机数和明文原始数据的长度,根据明文原始数据的长度获取关联数据,根据随机数、关联数据和大对象密钥对密文数据进行解密得到明文数据;
[0160]
在本实施例中,本步骤具体为:
[0161]
步骤m1,客户端从大对象数组中找到一个大对象数据块,作为当前大对象数据块;
[0162]
步骤m2,客户端判断当前大对象数据块的格式是否与预置格式相同,如果是,执行步骤m3,如果否,执行步骤m4;
[0163]
本步骤具体为:客户端判断当前大对象数据块的格式是否为map格式,如果是,执行步骤m3,如果否,执行步骤m4;
[0164]
步骤m3,客户端对当前大对象数据块进行解析,得到密文数据,随机数和明文原始数据的长度,根据明文原始数据的长度获取关联数据,根据随机数、关联数据和大对象密钥对密文数据进行解密,判断解密是否成功,如果是,执行步骤311,如果否,执行步骤m4;
[0165]
步骤m4,客户端判断是否可以从大对象数组中找到下一个未遍历的大对象数据块,如果是,则将下一个未遍历的大对象数据块作为当前大对象数据块,执行步骤m2,如果否,报错。
[0166]
步骤311,客户端计算明文数据的长度,判断明文数据的长度是否与明文原始数据
的长度相同,如果是,执行步骤312,如果否,报错;
[0167]
步骤312,客户端将明文数据进行解压缩,将解压缩结果作为大对象数据。
[0168]
在本实施例中,步骤205还可以为:身份认证器生成证书请求和大对象密钥,向客户端返回包括证书请求和大对象密钥的凭证注册指令的响应;
[0169]
则在本实施例中,大对象数据具体为:与客户端相关联的电子商务认证中心(ca)颁布的证书;
[0170]
步骤312之后还包括,客户端根据读取的大对象数据(即ca颁布的证书)进行身份验证操作。
[0171]
在本实施例中,大对象数据还可以包括但不限于,与凭证关联的用户隐私数据、存储用户的身份信息、权限范围或者个性化定制信息,客户端可以根据大对象数据进行身份验证操作。
[0172]
可选的,本技术的实施例还提供了一种保存大对象数据的装置,此装置包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的一种保存大对象数据的方法。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本技术实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的保存大对象数据的方法。
[0173]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在加载和执行计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个基站、服务器或数据中心进行传输。所述计算机可读存储介质可以是本发明的装置能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0174]
尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0175]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献