DID系统的服务端和用户端的通信方法及装置与流程
未命名
07-13
阅读:128
评论:0
did系统的服务端和用户端的通信方法及装置
技术领域
1.本发明涉及去中心化身份领域,更具体地涉及一种did系统的服务端和用户端的通信方法及装置。
背景技术:
2.去中心化身份(decentralized identity,did)是数字身份的一种,由传统的中心化身份衍化和派生而来,在did系统中,每个实体(包括个人、组织、设备等等)均用有一个did标识,did标识是一个特定格式的字符串,用于代表实体的数字身份。每一个did标识均对应一个did文档。did标识可以作为用于定位did文档的统一资源标识(uri)。did文档是包括关于did标识和did的所有者的预设格式(例如,json-ld)的描述性文本。did文档可以包括各种属性,例如,上下文、did主题、公钥、认证、授权和委托、服务端点等等。
3.当一个实体要加入did系统时,需要向用于创建和管理did的服务端进行申请,然后由服务端生成实体的did标识和did文档,并将did文档上传至区块链,在此过程中,实体(此时可作为用户端)需要与服务端进行数据通信。若服务端向用户端传输的数据不可信,将无法保证did标识和did文档是由服务端生成,从而导致用户端数据的泄漏。
4.因此如何保证在服务端向用户端传输的数据可信是本领域技术人员亟待解决的技术问题。
技术实现要素:
5.本发明的目的之一在于提供一种did系统的服务端和用户端的通信方法,通过预置私钥对did服务响应数据进行签名,以使用户端通过预置公钥验证签名,从而保证did服务响应数据是从服务端发送的。
6.基于上述目的,本发明提供一种did系统的用户端和服务端的通信方法,所述方法应用于提供did服务的服务端,所述方法包括步骤:
7.接收用户端发送的did服务获取请求;
8.根据所述did服务获取请求生成待传输的did服务响应数据;
9.采用预置私钥对所述待传输的did服务响应数据进行签名;
10.将签名后的did服务响应数据发送至所述用户端,以使所述用户端采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。
11.进一步地,在一些实施方式中,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。
12.进一步地,在一些实施方式中,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。
13.进一步地,在一些实施方式中,在所述预置公钥需要更新时,所述方法还包括:
14.接收所述用户端发送的采用所述预置公钥加密后的对称密钥;
15.通过所述预置私钥对加密后的对称密钥进行解密;
16.生成第二公钥和第二私钥;
17.采用解密后的对称密钥对所述第二公钥进行加密;
18.将加密后的第二公钥发送至所述用户端,以使所述用户端通过对称密钥对加密后的第二公钥进行解密,并在接收到所述服务端采用所述第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。
19.本发明的另一目的在于提供一种did系统的服务端和用户端的通信方法,通过预置公钥验证服务端发送的采用预置私钥签名后的did服务响应数据,从而保证接收到的did服务响应数据是服务端发送的。
20.基于上述目的,本发明提供一种did系统的用户端和服务端的通信方法,所述方法应用于请求did服务的用户端,所述方法包括步骤:
21.向所述服务端发送did服务获取请求,以使所述服务端根据所述did服务获取请求生成待传输的did服务响应数据,并采用预置私钥对所述待传输的did服务响应数据进行签名,然后将签名后的did服务响应数据发送至所述用户端;
22.接收所述签名后的did服务响应数据;
23.采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。
24.进一步地,在一些实施方式中,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。
25.进一步地,在一些实施方式中,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。
26.进一步地,在一些实施方式中,在所述预置公钥需要更新时,所述方法还包括:
27.生成对称密钥;
28.通过所述预置公钥对所述对称密钥进行加密;
29.将加密后的对称密钥发送至所述服务端,以使所述服务端采用所述预置私钥对加密后的对称密钥进行解密,并生成第二公钥和第二私钥,然后通过所述对称密钥加密所述第二公钥,并将加密后的第二公钥发送至所述用户端;
30.接收加密后的第二公钥;
31.在接收到所述服务端发送的采用第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。
32.本发明的又一目的在于提供一种did系统的服务端和用户端的通信装置,通过预置私钥对did服务响应数据进行签名,以使用户端通过预置公钥验证签名,从而保证did服务响应数据是从服务端发送的。
33.基于上述目的,本发明提供一种did系统的用户端和服务端的通信装置,所述装置应用于提供did服务的服务端,所述装置包括:
34.第一接收模块,设置为接收用户端发送的did服务获取请求;
35.生成模块,设置为根据所述did服务获取请求生成待传输的did服务响应数据;
36.签名模块,设置为采用预置私钥对所述待传输的did服务响应数据进行签名;
37.第一发送模块,设置为将签名后的did服务响应数据发送至所述用户端,以使所述用户端采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。
38.进一步地,在一些实施方式中,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。
39.进一步地,在一些实施方式中,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。
40.进一步地,在一些实施方式中,还包括第一更新模块,设置为:
41.在预置公钥需要更新时,接收所述用户端发送的采用所述预置公钥加密后的对称密钥;
42.通过所述预置私钥对加密后的对称密钥进行解密;
43.生成第二公钥和第二私钥;
44.采用解密后的对称密钥对所述第二公钥进行加密;
45.将加密后的第二公钥发送至所述用户端,以使所述用户端通过对称密钥对加密后的第二公钥进行解密,并在接收到所述服务端采用所述第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。
46.本发明的又一目的在于提供一种did系统的服务端和用户端的通信装置,通过预置公钥验证服务端发送的采用预置私钥签名后的did服务响应数据,从而保证接收到的did服务响应数据是服务端发送的。
47.基于上述目的,本发明提供一种did系统的用户端和服务端的通信装置,所述装置应用于请求did服务的用户端,所述装置包括:
48.第二发送模块,设置为向所述服务端发送did服务获取请求,以使所述服务端根据所述did服务获取请求生成待传输的did服务响应数据,并采用预置私钥对所述待传输的did服务响应数据进行签名,然后将签名后的did服务响应数据发送至所述用户端;
49.第二接收模块,设置为接收所述签名后的did服务响应数据;
50.验证模块,设置为采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。
51.进一步地,在一些实施方式中,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。
52.进一步地,在一些实施方式中,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。
53.进一步地,在一些实施方式中,还包括第二更新模块,设置为:
54.在预置公钥需要更新时,生成对称密钥;
55.通过所述预置公钥对所述对称密钥进行加密;
56.将加密后的对称密钥发送至所述服务端,以使所述服务端采用所述预置私钥对加密后的对称密钥进行解密,并生成第二公钥和第二私钥,然后通过所述对称密钥加密所述
第二公钥,并将加密后的第二公钥发送至所述用户端;
57.接收加密后的第二公钥;
58.在接收到所述服务端发送的采用第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。
附图说明
59.图1为根据本发明示例性实施例的did系统的结构示意图;
60.图2为根据本发明一实施例的did系统的服务端和用户端的通信方法的流程图;
61.图3为根据本发明另一实施例的did系统的服务端和用户端的通信方法的流程图;
62.图4为根据本发明一实施例的did系统的服务端和用户端的通信装置的结构示意图;
63.图5为根据本发明另一实施例的did系统的服务端和用户端的通信装置的结构示意图。
具体实施方式
64.下面结合附图,给出本发明的较佳实施例,并予以详细描述。
65.在did系统中,每个实体(包括个人、组织、设备等等)均用有一个did标识,did标识是一个特定格式的字符串,用于代表实体的数字身份。每一个did标识均对应一个did文档。did标识可以作为用于定位did文档的统一资源标识(uri)。did标识包括方案(scheme)、did方法以及did方法特定字符串(did method specific string),其中,方案是固定的,用于表示该字符串是一个did标识字符串,did方法表示该did标识是通过哪一套方法来进行定义和操作的,did方法特定字符串用于表示在该did方法下的唯一标识字符串。每一个did标识均对应一个did文档。did标识可以作为用于定位did文档的统一资源标识(uri)。did文档是包括关于did标识和did的所有者的预设格式(例如,json-ld)的描述性文本。did文档可以包括各种属性,例如,上下文、did主题、公钥、认证、授权和委托、服务端点、创建、更新、证明、可扩展性、其他合适的属性或其任意组合。did文档可以定义或指向定义多个操作的资源,所述操作可以相对于did执行。
66.实体的did可允许该实体获得对其身份及其身份相关联的信息的完全控制。可验证声明(vc)可允许不同实体之间进行授权、背书和确认。在商业环境中,服务或提供商可以使用其客户的did和vc来识别并认证客户,并提供相应地服务或产品。
67.vc可以提供关于实体的质量、特征、关系和其他相关信息的可验证在线信息。vc可以包含预设格式(例如json-ld)的描述性文本,该文本描述有关did的一个或多个声明(例如did所有者的年龄、did所有者的教育背景)以及实体对声明的背书。vc可以包括各种属性,例如上下文、标识、类型、凭证主题、发布者、发布日期、证明、到期日、状态、表示、其他合适的属性或其任意组合。vc可以指定其声明(claim)的类型,该类型可以指示该声明的结构。这样可以促使vc颁布者和vc验证者自动进行处理。
68.did系统中的各实体可以以不同的角色参与并实现did服务。例如,一个实体(个人)期望使用由商业实体(例如网吧)提供的服务,该服务需要证明该个人已超过18岁,该个人可以请求由另一实体(提供公民年龄验证的政府机构)发布的vc,此时政府机构是vc颁发
者,个人是vc持有者,商业实体是vc验证者。商业实体可以验证该vc,以确保该个人符合年龄要求。在另一示例中,一个实体(用户)可以向另一个实体(第一企业)颁布vc,以允许其使用由又一个实体(第二企业)存储的数据,此时用户是vc颁发者,第一企业是vc持有者,第二企业为vc验证者。
69.如图1所示,在一个示例性的实施例中,did系统100包括服务器110和多个实体120,服务器110上运行有服务端111,用于创建和管理did,每个实体120上运行有用户端121,用于执行did服务。例如,当一个实体120要加入did系统时,该实体120上的用户端121会向服务端111发出请求,服务端111在接收到请求后,会生成did标识和did文档,did文档中包括公钥,私钥则存储在用户端121或服务端111;然后将did文档上传至区块链130,上链完成后,区块链130上的所有实体120均可以查到该did文档。又或者,当一个实体120(第一实体)需要另一个实体120(第二实体)为其颁发可验证声明(vc)时,第一实体上的用户端121会向服务端111发出vc请求,服务端111接收到vc请求后,会将该vc请求发送给第二实体上的用户端121,第二实体上的用户端121根据vc请求生成vc,并将该vc发送至服务端111,然后服务端111再将vc下发至第一实体上的用户端121。
70.在did系统中,为了实现did服务,服务端111和用户端121需要相互通信,例如在创建did的场景中,服务端111会将生成的did标识发送至用户端121;或者,在服务端111将did文档上传至区块链130后,会发送上传成功请求给用户端121(若上传失败,则会发送上传失败请求);又或者,在请求vc的应用场景中,服务端111会将颁发vc的用户端121生成的vc发送给请求vc的用户端121。在服务端111和用户端121通信的过程中,若服务端111向用户端121发送的数据被攻击,例如服务端111生成的did标识被攻击者替换或攻击者将上传成功消息替换为上传失败消息,那么会导致数据泄漏或无法实现did服务。因此,保证服务端111传输到用户端121的数据是可信的对did系统的正常运行十分重要。
71.为解决上述问题,本发明提供一种did系统的服务端和用户端的通信方法,服务端111通过预置私钥对did服务响应数据进行签名,用户端121通过预置公钥验证签名,以保证did服务响应数据是服务端111发送的。
72.如图2所示,本发明一实施例提供一种did系统的服务端和用户端的通信方法,所述方法应用于提供did服务的服务端111,且包括以下步骤:
73.s210:接收用户端121发送的did服务获取请求;
74.s220:根据did服务获取请求生成待传输的did服务响应数据;
75.s230:采用预置私钥对待传输的did服务响应数据进行签名;
76.s240:将签名后的did服务响应数据发送至所述用户端,以使用户端采用预置公钥验证did服务响应数据的签名,并在对签名验证通过后,基于did服务响应数据获取did服务。
77.在一些实施例中,did服务可以为创建did的服务,相应的,did服务获取请求为创建did请求,did服务响应数据为服务端111根据创建did请求生成的did标识或者服务端111在将did文档上传至区块链130后生成的上传成功消息。
78.在一些实施例中,本发明实施例的方法在创建did场景中应用的具体步骤如下:
79.服务端111接收用户端121发送的创建did请求;
80.服务端111根据请求生成did标识;
81.服务端111采用预置私钥对did标识进行签名,并将签名后的did标识发送至用户端121,以使用户端121采用预置公钥验证did标识的签名,并在验证通过后根据did标识生成的用户公钥和用户私钥,然后将用户公钥发送至服务端111;
82.服务端111接收用户公钥,并根据用户公钥和did标识生成did文档,然后将did文档上传至区块链130;
83.在上传成功后,服务端111会生成上传成功消息,并采用预置私钥对上传成功消息进行签名,然后将签名后的上传成功消息发送至用户端121,以使用户端121采用预置公钥验证上传成功消息的签名,验证通过后,用户端121可通过用户私钥参与did系统的其他did服务。
84.在一些实施例中,did服务可以为创建vc的服务,相应的,did服务获取请求为创建vc请求,did服务响应数据为颁发vc的用户端121生成的vc。由于vc是由颁发者(以下称为第二用户端)生成,并由持有者(以下称为第一用户端)保存,因此在请求vc的应用场景下,服务端111需要向两个用户端进行通信。本发明实施例的方法在创建vc的应用场景下使用的步骤如下:
85.服务端111接收第一用户端发送的创建vc请求;
86.服务端111采用预置私钥对创建vc请求进行签名,并将签名后的创建vc请求发送至第二用户端,以使第二用户端采用预置公钥验证创建vc请求的签名,验证通过后,根据创建vc请求生成vc,并将生成的vc发送至服务端111;
87.服务端111接收vc,并采用预置私钥对vc进行签名,然后将签名后的vc发送至第一用户端,以使第一用户端采用预置公钥验证vc的签名,验证通过后,第一用户端保存vc,以通过vc参与did系统的其他did服务。
88.可以理解的是,只要服务端111需要向用户端121传输数据,就可以使用本发明实施例的方法,因此,本发明的方法并不仅限于上述两个场景,而是可以应用在任何服务端111和用户端121通信的场景。
89.由于预置公钥和预置私钥是预先生成的,可能并不安全,因此需要对其进行更新。在一些实施例中,当预置公钥需要更新时(例如由于预置公钥失效需要更新或由于其他安全理由需要更新),方法还包括:
90.服务端111接收用户端121发送的采用所述预置公钥加密后的对称密钥;
91.服务端111通过预置私钥对加密后的对称密钥进行解密;
92.服务端111生成第二公钥和第二私钥;
93.服务端111采用解密后的对称密钥对第二公钥进行加密;
94.服务端111将加密后的第二公钥发送至用户端121,以使用户端121通过对称密钥对加密后的第二公钥进行解密,并在接收到服务端采用第二私钥签名的did服务响应数据时,采用第二公钥验证did服务响应数据的签名。
95.更新后,采用新的第二私钥和第二公钥进行加签和验签操作,从而保证服务端111传输到用户端121的数据可信。由于对称密钥是在用户端121生成,并通过预置公钥加密后发送给服务端111,因此可以保证对称密钥的安全性,而第二私钥和第二公钥是在服务端111生成,第二公钥通过对称密钥进行加密后传输至用户端121,可以保证第二公钥在传输过程中的安全性,即使攻击者获取了加密后的第二公钥,但是由于没有对称密钥,无法获得
其明文。更新后的第二公钥只有服务端111和用户端121拥有,因此可以保证服务端111向用户端121传输的数据是可信的。
96.如图3所示,本发明另一实施例提供一种did系统的用户端和服务端的通信方法,所述方法应用于用户端121,且包括以下步骤:
97.s310:向服务端111发送did服务获取请求,以使服务端111根据did服务获取请求生成待传输的did服务响应数据,并采用预置私钥对待传输的did服务响应数据进行签名,然后将签名后的did服务响应数据发送至用户端121;
98.s320:接收签名后的did服务响应数据;
99.s330:采用预置公钥验证did服务响应数据的签名,并在对签名验证通过后,基于did服务响应数据获取did服务。
100.当用户端121想要获取did服务时,会先向服务端111发送did服务获取请求,服务端111收到后,会根据该请求生成待传输的did服务响应数据,然后采用预置私钥对其进行签名,并将签名后的did服务响应数据发送至用户端121,用户端121采用预置公钥对签名进行验证,验证通过后,说明该did服务响应数据是服务端111发出的(即是可信的),用户端121可基于did服务响应数据获取did服务。
101.在一些实施例中,did服务可以为创建did的服务,相应的,did服务获取请求为创建did请求,did服务响应数据为服务端111根据创建did请求生成的did标识或者服务端111在将did文档上传至区块链130后生成的上传成功消息。
102.在一些实施例中,本发明实施例的方法在创建did场景中应用的具体步骤如下:
103.用户端121向服务端111发送创建did请求,以使服务端111根据创建did请求生成did标识,并采用预置私钥对did标识进行签名,然后将签名后的did标识发送至用户端121;
104.用户端121接收签名后的did标识;
105.用户端121采用预置公钥验证did标识的签名;
106.验证通过后,用户端121根据did标识生成用户公钥和用户私钥,并将用户公钥发送至服务端111,以使服务端111根据用户公钥和did标识生成did文档,并将did文档上传至区块链130,上传成功后,服务端111会生成上传成功消息,然后采用预置私钥对上传成功消息进行签名,并将签名后的上传成功消息发送至用户端121;
107.用户端121接收签名后的上传成功消息;
108.用户端121采用预置公钥对上传成功消息的签名进行验证,验证通过后,用户端121可通过用户私钥参与did系统的其他did服务。
109.在另外一些实施例中,did服务可以为创建vc的服务,相应的,did服务获取请求为创建vc请求,did服务响应数据为颁发vc的用户端121生成的vc。本发明实施例的方法在请求vc的应用场景下使用的步骤如下:
110.第一用户端向服务端111发送创建vc请求,以使服务端111采用预置私钥对创建vc请求进行签名,并将签名后的创建vc请求发送至第二用户端;
111.第二用户端采用预置公钥验证创建vc请求的签名,验证通过后,根据创建vc请求生成vc,并将生成的vc发送至服务端111,以使服务端111采用预置私钥对vc进行签名,然后将签名后的vc发送至第一用户端;
112.第一用户端采用预置公钥验证vc的签名,验证通过后,第一用户端保存vc,以通过
vc参与did系统的其他did服务。
113.在一些实施例中,当预置公钥需要更新时(例如由于预置公钥失效需要更新或由于其他安全理由需要更新),所述方法还包括:
114.用户端121生成对称密钥;
115.用户端121通过预置公钥对对称密钥进行加密;
116.用户端121将加密后的对称密钥发送至服务端111,以使服务端111采用预置私钥对加密后的对称密钥进行解密,并生成第二公钥和第二私钥,然后通过对称密钥加密第二公钥,并将加密后的第二公钥发送至用户端121;
117.用户端121接收加密后的第二公钥;
118.用户端121在接收到服务端111发送的采用第二私钥签名的did服务响应数据时,采用第二公钥验证did服务响应数据的签名。
119.更新后,采用新的第二私钥和第二公钥进行加签和验签操作,从而保证服务端111传输到用户端121的数据可信。
120.在一些实施例中,为进一步保证第二公钥的安全性,可将其存储在可信执行环境中,并在可信执行环境中采用第二公钥验证签名。
121.本发明实施例的did系统的用户端和服务端的通信方法,通过预置私钥对待传输的did服务响应数据进行签名,以使用户端121在接收到签名后的did服务响应数据后,采用预置公钥验证其签名,以保证did服务响应数据是服务端111发出的。
122.如图4所示,本发明一实施例提供一种did系统的用户端和服务端的通信装置,所述装置应用于服务端111,且包括第一接收模块11、生成模块12、签名模块13和第一发送模块14。
123.第一接收模块11,设置为接收用户端发送的did服务获取请求。
124.生成模块12,设置为根据did服务获取请求生成待传输的did服务响应数据。
125.签名模块13,设置为采用预置私钥对待传输的did服务响应数据进行签名。
126.第一发送模块14,设置为将签名后的did服务响应数据发送至用户端,以使用户端采用预置公钥验证did服务响应数据的签名,并在对签名验证通过后,基于did服务响应数据获取did服务。
127.在一些实施例中,did服务可以为创建did的服务,相应的,did服务获取请求为创建did请求,did服务响应数据为服务端111根据创建did请求生成的did标识或者服务端111在将did文档上传至区块链130后生成的上传成功消息。
128.在另外一些实施例中,did服务可以为创建vc的服务,相应的,did服务获取请求为创建vc请求,did服务响应数据为颁发vc的用户端121生成的vc。由于vc是由颁发者(以下称为第二用户端)生成,并由持有者(以下称为第一用户端)保存,因此在请求vc的应用场景下,服务端111需要向两个用户端进行通信。
129.在一些实施例中,装置还包括第一更新模块,其设置为:
130.在预置公钥需要更新时,接收用户端121发送的采用所述预置公钥加密后的对称密钥;
131.通过预置私钥对加密后的对称密钥进行解密;
132.生成第二公钥和第二私钥;
133.采用解密后的对称密钥对第二公钥进行加密;
134.将加密后的第二公钥发送至用户端121,以使用户端121通过对称密钥对加密后的第二公钥进行解密,并在接收到服务端采用第二私钥签名的did服务响应数据时,采用第二公钥验证did服务响应数据的签名。
135.更新后,采用新的第二私钥和第二公钥进行加签和验签操作,从而保证服务端111传输到用户端121的数据可信。
136.如图5所示,本发明另一实施例提供一种did系统的用户端和服务端的通信装置,所述装置应用于用户端121,且包括第二发送模块21、第二接收模块22和验证模块23。
137.第二发送模块21,设置为向服务端111发送did服务获取请求,以使服务端111根据did服务获取请求生成待传输的did服务响应数据,并采用预置私钥对待传输的did服务响应数据进行签名,然后将签名后的did服务响应数据发送至用户端。
138.第二接收模块22,设置为接收签名后的did服务响应数据。
139.验证模块23,设置为采用预置公钥验证did服务响应数据的签名,并在对签名验证通过后,基于did服务响应数据获取did服务。
140.在一些实施例中,did服务可以为创建did的服务,相应的,did服务获取请求为创建did请求,did服务响应数据为服务端111根据创建did请求生成的did标识或者服务端111在将did文档上传至区块链130后生成的上传成功消息。
141.在另外一些实施例中,did服务可以为创建vc的服务,相应的,did服务获取请求为创建vc请求,did服务响应数据为颁发vc的用户端121生成的vc。
142.在一些实施例中,装置还包括第二更新模块,其设置为:
143.在预置公钥需要更新时,生成对称密钥;
144.通过预置公钥对对称密钥进行加密;
145.将加密后的对称密钥发送至服务端111,以使服务端111采用预置私钥对加密后的对称密钥进行解密,并生成第二公钥和第二私钥,然后通过对称密钥加密第二公钥,并将加密后的第二公钥发送至用户端121;
146.接收加密后的第二公钥;
147.在接收到服务端111发送的采用第二私钥签名的did服务响应数据时,采用第二公钥验证did服务响应数据的签名。
148.更新后,采用新的第二私钥和第二公钥进行加签和验签操作,从而保证服务端111传输到用户端121的数据可信。
149.本发明实施例的did系统的用户端和服务端的通信装置,通过预置私钥对待传输的did服务响应数据进行签名,以使用户端121在接收到签名后的did服务响应数据后,采用预置公钥验证其签名,以保证did服务响应数据是服务端111发出的。
150.本发明的又一实施例提供一种可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行本发明上述实施例中的did系统的用户端和服务端的通信方法的步骤。
151.本发明又一实施例提供一种电子设备,其包括存储器和处理器,存储器中存储有可执行代码,当处理器执行可执行代码时,其执行本发明上述实施例中的did系统的用户端和服务端的通信方法的步骤。
152.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
153.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
154.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
155.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
156.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
157.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
158.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
159.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
160.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
161.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
162.本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
163.本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
164.本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
165.以上所述的,仅为本发明的较佳实施例,并非用以限定本发明的范围,本发明的上述实施例还可以做出各种变化。即凡是依据本发明申请的权利要求书及说明书内容所作的简单、等效变化与修饰,皆落入本发明专利的权利要求保护范围。本发明未详尽描述的均为常规技术内容。
技术特征:
1.一种did系统的用户端和服务端的通信方法,所述方法应用于提供did服务的服务端,所述方法包括步骤:接收用户端发送的did服务获取请求;根据所述did服务获取请求生成待传输的did服务响应数据;采用预置私钥对所述待传输的did服务响应数据进行签名;将签名后的did服务响应数据发送至所述用户端,以使所述用户端采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。2.根据权利要求1所述的did系统的用户端和服务端的通信方法,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。3.根据权利要求1所述的did系统的用户端和服务端的通信方法,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。4.根据权利要求1所述的did系统的用户端和服务端的通信方法,在所述预置公钥需要更新时,所述方法还包括:接收所述用户端发送的采用所述预置公钥加密后的对称密钥;通过所述预置私钥对加密后的对称密钥进行解密;生成第二公钥和第二私钥;采用解密后的对称密钥对所述第二公钥进行加密;将加密后的第二公钥发送至所述用户端,以使所述用户端通过对称密钥对加密后的第二公钥进行解密,并在接收到所述服务端采用所述第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。5.一种did系统的用户端和服务端的通信方法,所述方法应用于请求did服务的用户端,所述方法包括步骤:向所述服务端发送did服务获取请求,以使所述服务端根据所述did服务获取请求生成待传输的did服务响应数据,并采用预置私钥对所述待传输的did服务响应数据进行签名,然后将签名后的did服务响应数据发送至所述用户端;接收所述签名后的did服务响应数据;采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。6.根据权利要求5所述的did系统的用户端和服务端的通信方法,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。7.根据权利要求5所述的did系统的用户端和服务端的通信方法,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。8.根据权利要求5所述的did系统的用户端和服务端的通信方法,在所述预置公钥需要更新时,所述方法还包括:
生成对称密钥;通过所述预置公钥对所述对称密钥进行加密;将加密后的对称密钥发送至所述服务端,以使所述服务端采用所述预置私钥对加密后的对称密钥进行解密,并生成第二公钥和第二私钥,然后通过所述对称密钥加密所述第二公钥,并将加密后的第二公钥发送至所述用户端;接收加密后的第二公钥;在接收到所述服务端发送的采用第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。9.一种did系统的用户端和服务端的通信装置,所述装置应用于提供did服务的服务端,所述装置包括:第一接收模块,设置为接收用户端发送的did服务获取请求;生成模块,设置为根据所述did服务获取请求生成待传输的did服务响应数据;签名模块,设置为采用预置私钥对所述待传输的did服务响应数据进行签名;第一发送模块,设置为将签名后的did服务响应数据发送至所述用户端,以使所述用户端采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验证通过后,基于所述did服务响应数据获取did服务。10.根据权利要求9所述的did系统的用户端和服务端的通信装置,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。11.根据权利要求9所述的did系统的用户端和服务端的通信装置,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。12.根据权利要求9所述的did系统的用户端和服务端的通信装置,还包括第一更新模块,设置为:在预置公钥需要更新时,接收所述用户端发送的采用所述预置公钥加密后的对称密钥;通过所述预置私钥对加密后的对称密钥进行解密;生成第二公钥和第二私钥;采用解密后的对称密钥对所述第二公钥进行加密;将加密后的第二公钥发送至所述用户端,以使所述用户端通过对称密钥对加密后的第二公钥进行解密,并在接收到所述服务端采用所述第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。13.一种did系统的用户端和服务端的通信装置,所述装置应用于请求did服务的用户端,所述装置包括:第二发送模块,设置为向所述服务端发送did服务获取请求,以使所述服务端根据所述did服务获取请求生成待传输的did服务响应数据,并采用预置私钥对所述待传输的did服务响应数据进行签名,然后将签名后的did服务响应数据发送至所述用户端;第二接收模块,设置为接收所述签名后的did服务响应数据;验证模块,设置为采用预置公钥验证所述did服务响应数据的签名,并在对所述签名验
证通过后,基于所述did服务响应数据获取did服务。14.根据权利要求13所述的did系统的用户端和服务端的通信装置,所述did服务获取请求为创建did请求,所述did服务响应数据包括所述服务端根据所述创建did请求生成的did标识以及所述服务端在将did文档上传至区块链后生成的上传成功消息。15.根据权利要求13所述的did系统的用户端和服务端的通信装置,所述did服务获取请求为请求vc的用户端发送的创建vc请求,所述did服务响应数据为颁发vc的用户端发送至所述服务端的vc。16.根据权利要求13所述的did系统的用户端和服务端的通信装置,还包括第二更新模块,设置为:在预置公钥需要更新时,生成对称密钥;通过所述预置公钥对所述对称密钥进行加密;将加密后的对称密钥发送至所述服务端,以使所述服务端采用所述预置私钥对加密后的对称密钥进行解密,并生成第二公钥和第二私钥,然后通过所述对称密钥加密所述第二公钥,并将加密后的第二公钥发送至所述用户端;接收加密后的第二公钥;在接收到所述服务端发送的采用第二私钥签名的did服务响应数据时,采用所述第二公钥验证所述did服务响应数据的签名。17.一种可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行如权利要求1-8所述的did系统的用户端和服务端的通信方法。18.本发明又一实施例提供一种电子设备,其包括存储器和处理器,存储器中存储有可执行代码,当处理器执行可执行代码时,其执行如权利要求1-8所述的did系统的用户端和服务端的通信方法。
技术总结
本发明涉及一种DID系统的用户端和服务端的通信方法及装置,方法应用于提供DID服务的服务端,方法包括:接收用户端发送的DID服务获取请求;根据DID服务获取请求生成待传输的DID服务响应数据;采用预置私钥对待传输的DID服务响应数据进行签名;将签名后的DID服务响应数据发送至用户端,以使用户端采用预置公钥验证DID服务响应数据的签名,并在对签名验证通过后,基于DID服务响应数据获取DID服务。本发明的DID系统的服务端和用户端的通信方法及装置,通过预置私钥对DID服务响应数据进行签名,以使用户端通过预置公钥验证签名,从而保证DID服务响应数据是从服务端发送的。DID服务响应数据是从服务端发送的。DID服务响应数据是从服务端发送的。
技术研发人员:徐登伟 陈远 辛知 孙善禄 张涛
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2023.03.10
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种基于电子信息技术的标签检测设备 下一篇:一种光学镀膜夹具的制作方法
