基于密钥派生函数的认证方法、系统、客户端及服务端与流程
未命名
08-12
阅读:116
评论:0
1.本发明涉及网络安全技术领域,尤其涉及一种基于密钥派生函数的认证方法、系统、客户端及服务端。
背景技术:
2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.如图1所示,传统的利用密码管理器进行用户身份认证技术的核心思想是通过密码+secret key并结合不同的盐分别派生出认证密钥和管理密钥,其中secret key是熵源,认证密钥用于和验证密钥进行双向认证,双向认证后生成会话密钥并建立加密通道(和tls/ssl通道一起构成了双层加密通道),然后使用管理密钥在双层加密通道上对密码集合进行管理操作。该技术框架相比传统互联网应用实现了非常好的隐私性,即用户完全掌握自己的数据(密码),并且除初始阶段外,实现了非常好的安全性,完全不依赖于tls/ssl证书链的安全性,但依然存在如下问题:
4.上面所说的通过认证密码和验证密钥进行双向认证的一个前提是在初始阶段(注册阶段)用户需要将验证密钥发送至服务端,这个初始化过程实际上还是需要依赖于tls/ssl证书链(并非双层加密),所以该框架实际整体上并不完全独立于tls/ssl证书链的安全性,因此,图1所示的用户身份认证方法依然存在安全性差的问题。
技术实现要素:
5.本发明实施例提供一种基于密钥派生函数的认证方法,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该方法应用于系统,该方法包括:
6.客户端接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;
7.服务端从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
8.本发明实施例提供一种基于密钥派生函数的认证方法,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该方法应用于客户端,该方法包括:
9.接收用户输入的待注册账号信息及主密码;
10.随机生成secret key和盐;
11.基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;
12.获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;所述服务端用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
13.本发明实施例提供一种基于密钥派生函数的认证方法,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该方法应用于服务端,该方法包括:
14.从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端;
15.在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证;所述客户端用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc。
16.本发明实施例提供一种基于密钥派生函数的认证系统,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该系统包括:
17.客户端,用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;
18.服务端,用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
19.本发明实施例提供一种基于密钥派生函数的认证客户端,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该客户端包括:
20.接收单元,用于接收用户输入的待注册账号信息及主密码;
21.随机生成单元,用于随机生成secret key和盐;
22.派生单元,用于基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;
23.认证单元,用于获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;所述服务端用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
24.本发明实施例提供一种基于密钥派生函数的认证服务端,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该服务端包括:
25.解密单元,用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端;
26.处理单元,用于在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证;所述客户端用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc。
27.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于密钥派生函数的认证方法。
28.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于密钥派生函数的认证方法。
29.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述基于密钥派生函数的认证方法。
30.本发明实施例中,基于密钥派生函数的认证方案,与现有技术中初始阶段实际上也是需要依赖于tls/ssl证书链,导致后续身份认证不安全的技术方案相比,通过:客户端接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;服务端从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证,实现了可以完全独立于tls/ssl证书链对用户身份进行认证,提高了身份认证的安全性。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
32.图1为现有身份认证示意图;
33.图2为本发明实施例中应用于系统的基于密钥派生函数的认证方法的流程示意图;
34.图3为本发明实施例中基于密钥派生函数的认证的框架示意图一;
35.图4为本发明实施例中基于密钥派生函数的认证的框架示意图二;
36.图5为本发明另一实施例中应用于系统的基于密钥派生函数的认证方法的流程示意图;
37.图6为本发明实施例中基于密钥派生函数的登录流程示意图;
38.图7为本发明实施例中隐私数据加密的流程示意图;
39.图8为本发明实施例中隐私数据解密的流程示意图;
40.图9为本发明实施例中隐私数据分享的流程示意图;
41.图10为本发明实施例中在线备份secret key和主密码的流程示意图;
42.图11为本发明实施例中在线恢复secret key和主密码的流程示意图;
43.图12为本发明实施例中离线备份secret key和主密码的流程示意图;
44.图13为本发明实施例中离线恢复secret key和主密码的流程示意图;
45.图14为本发明实施例中设备迁移时恢复secret key和主密码的流程示意图;
46.图15为本发明实施例中应用于客户端的基于密钥派生函数的认证方法的流程示意图;
47.图16为本发明实施例中应用于服务端的基于密钥派生函数的认证方法的流程示意图;
48.图17为本发明实施例中基于密钥派生函数的认证系统的结构示意图;
49.图18为本发明实施例中基于密钥派生函数的认证客户端的结构示意图;
50.图19为本发明实施例中基于密钥派生函数的认证服务端的结构示意图。
具体实施方式
51.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
52.本发明实施例技术方案中对数据的获取、存储、使用、处理等均符合法律法规的相关规定。
53.在介绍本发明实施例之前,首先对本发明实施例涉及的名词进行介绍。
54.kdf
‑‑‑
key derivation function密钥派生函数
55.mac
‑‑‑
message authentication code消息认证码
56.hmac
‑‑‑
hash-based message authentication code基于哈希的消息认证码
57.hkdf
‑‑‑
hmac-based key derivation function基于hmac的密钥派生函数
58.sha
‑‑‑
secure hash algorithm安全哈希算法
59.aes
‑‑‑
advanced encryption standard高级加密标准
60.ntur
‑‑‑
number theory research unit
61.pake
‑‑‑
password-authenticated key exchange基于密码认证的密钥交换
62.ss
‑‑‑
secret sharing秘密分享
63.kms
‑‑‑
key management service密钥管理服务
64.hsm
‑‑‑
hardware secure module硬件安全模块
65.vdr
‑‑‑
verifiable data registry可验证数据注册表
66.vc
‑‑‑
verifiable credential可验证凭证
67.ssi
‑‑‑
self-sovereign identity自主身份
68.tls
‑‑‑
transport layer security安全传输层协议
69.ssl
‑‑‑
secure socket layer安全套接字协议
70.ca
‑‑‑
certificate authority证书授权中心
71.tps
‑‑‑
transaction per second每秒处理的交易数
72.did
‑‑‑
decentralized identifier去中心化标识符
73.身份认证的概念:身份认证是系统审查用户身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限。身份认证通过标识和鉴别用户的身份,提供一种判别和确认用户身份的机制。
74.身份认证技术在信息安全中处于非常重要的地位,是其他安全机制的基础。只有实现了有效的身份认证,才能保证访问控制、安全审计、入侵防范等安全机制的有效实施。
75.在真实世界中,验证一个用户的身份主要通过以下三种方式:
76.所知道的。根据用户所知道的信息(what you know)来证明用户的身份。
77.所拥有的。根据用户所拥有的东西(what you have)来证明用户的身份。
78.本身的特征,直接根据用户独一无二的体态特征(who you are)来证明用户的身份,例如人的指纹、笔迹、dna、视网膜及身体的特殊标志等。
79.在基于区块链的应用中,用户的身份认证存在缺少通用性(依赖底层链)、用户不友好(用户需要自己管理不易记住的私钥、私钥丢失后不可找回)、不可监管(用户自主管理私钥时,必要情况也无法监管)、安全性差等缺点。
80.基于现有身份认证存在的技术问题,本发明实施例提出了一种基于密钥派生函数的认证方案,该方案要解决的问题是在不牺牲友好性、易用性和不提高使用门槛(如传统的互联网应用)的条件下,设计一套通用的、可监管的、高隐私性、高安全性的身份认证方案。
81.以下为各特性的基本定义:
82.1、高安全的:在该本发明实施例中特指该框架的安全性完全独立于tls/ssl证书链的安全性,即使参与方的tls/ssl证书私钥都被泄露,该框架依旧是安全的。
83.2、通用的:在该本发明实施例中特指该框架的性能、可用性、可扩展性、稳定性、适用场景等等并不受底层区块链系统的制约。
84.3、可监管的:即用户不可以抗拒监管。
85.4、高隐私的:用户数据对所有参与方均具有隐私性,即使是监管方也需要在满足
特定法律条件下(可灵活定义)才可以对用户数据进行审查、监管。
86.5、友好:用户密钥可恢复。
87.下面对该基于密钥派生函数的认证方案进行详细介绍。
88.图2为本发明实施例中应用于系统的基于密钥派生函数的认证方法的流程示意图,如图2所示,该方法包括如下步骤:
89.步骤100:客户端接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;
90.步骤200:服务端从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
91.本发明实施例提供的基于密钥派生函数的认证方法,工作时:客户端接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;服务端从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
92.与现有技术中初始阶段实际上也是需要依赖于tls/ssl证书链,导致后续身份认证不安全的技术方案相比,本发明实施例提供的基于密钥派生函数的认证方法可以完全独立于tls/ssl证书链对用户身份进行认证,提高了身份认证的安全性。下面对该基于密钥派生函数的认证方法进行详细介绍。
93.本发明实施例提供的基于密钥派生函数的认证方法在注册阶段,用户(客户端)除了验证由ca颁发的证书(tls/ssl证书)外,还需要验证诸如符合当地法律法规的可验证凭证vc,如网信办、工商局等机构作为vc颁发者给有资质企业颁发的vc,以确保用户(客户端)所连接的对象(如域名、ip地址等)不仅仅是由ca机构所认证过的对象,同时是由具有实际现实意义的管理、监管机构等所认证的对象,如上面所提到的网信办、工商局等,这就构成了两条独立的安全链路,一条是基于ca机构逐级颁发的证书所构建的tls/ssl协议,另一条是基于vc权威颁发机构所颁发的vc、以及vc中所标识的did及其did document中的通信密钥所构建的加密通道,这就意味着当tls/ssl协议安全链路出现问题时,如ca机构出现受贿、被欺诈、泄露等情况或服务端的tls/ssl私钥被泄露时(注:ca证书是逐级颁发的,即任何一个层级的ca出现问题时都会导致下游组织的安全性出现问题),并不会影响到注册、登
录的安全性,因为还有vc权威颁发机构-vc
–
did
–
did document
–
encryption key这条链路(注:该链路并不是为了替代基于ca证书的tls/ssl链路,而是补充)来保护全流程的安全性。下面进行详细介绍。
94.如图3所示,本发明实施例中可以包含以下参与方:
95.1.用户:包括用户本身及用户的监护人(用户相关人)。
96.2.服务端:给用户提供实际服务的服务方,主要是存储用户加密后的数据。
97.3.密钥管理服务运营方(可选):专门提供密钥管理服务的运营方(密钥管理服务运营方的角色可由服务端扮演)。
98.4.监管方。
99.5.可验证数据注册表:存储各个参与方的分布式数字身份did。
100.具体关系如图4所示。
101.本发明实施例提供的基于密钥派生函数的用户身份认证的详细实施过程如下(以用户管理私钥为例,管理数字证书、数字资产或其它用户数据的过程类似):
102.初始化阶段,服务端、监管方、密钥管理服务运营方分别在vdr中创建自身的did(以及对应的did document),并从相关权威机构(即vc的颁发者,如网信办)获取自身的vc。
103.1.用户注册阶段,客户端获取服务端的vc并验证vc的有效性,客户端根据vc中的服务端did去vdr中获取服务端的通信密钥,用户(客户端)输入、随机生成相关信息(包括手机号、密码、验证密钥、盐等)并使用服务端的通信密钥加密,客户端将加密后的信息发送至服务端,服务端解密相关信息并进行多因素认证,注册完成。详细信息见下文补充的“注册”的详细实施过程(无特别说明时,参与方之间的所有交互都是使用tls协议进行加密的)。
104.2.登录阶段(用户身份认证),用户输入密码,客户端派生出认证密钥并与服务端(通过步骤1中注册的验证密钥)进行双向认证,并生成会话密钥,(可选)并进行多因素认证,登录完成。详细信息见下文补充的“登录”的详细实施过程。
105.3.用户管理私钥阶段,假设用户需要管理私钥sk(或者其它的隐私数据),比如sk是用户在客户端随机生成的用于通信的ed25519私钥,或导入的虚拟货币的私钥等,客户端首先随机生成(或使用已有的)数据加密密钥(对应于图4中用于打开各保险库的钥匙,该密钥使用对称加密算法,用于加密sk或其它隐私数据),数据加密密钥本身则会由客户端使用非对称加密算法进行加密(对应于图4中保险库的钥匙被放置在密码箱中,密码箱的密码即为该非对称加密算法的私钥),而密码箱的密码(即非对称加密算法的私钥)会由客户端使用管理密钥进行加密(管理密钥是由用户输入的密码以及相应的secret key派生),客户端将加密后的sk、(可选的)数据加密密钥、(可选的)非对称加密算法私钥发送至服务端进行存储。详细信息见下文补充的“加密”的详细实施过程。
106.4.用户使用私钥阶段,和上述步骤3的原理相同,用户输入密码,客户端分别使用对应的解密算法解密出sk。详细信息见下文补充的“解密”的详细实施过程。
107.下面进行详细介绍。
108.如图5所示,本发明实施例中用户认证的初始阶段“注册”的详细实施过程如下:
109.初始化阶段,服务端、监管方、密钥管理服务运营方分别在vdr中创建自身的did(以及对应的did document),并从相关权威机构(即vc的颁发者,如网信办)获取自身的vc。
110.1.客户端获取并验证服务端、监管方、密钥管理服务运营方的vc。
111.2.客户端根据vc中各参与方did以及监护人did分别去vdr中获取各参与方的通信密钥。
112.3.用户填写手机号(或邮箱)并设置主密码,客户端随机生成secret key、盐并根据主密码、secret key和盐派生出认证密钥,再计算出验证密钥。待注册账号信息可以是手机号(或邮箱)。
113.4.用户使用步骤2中获取的服务端通信密钥加密手机号、盐、验证密钥并将加密后的内容发送至服务端。
114.5.服务端解密出用户手机号、盐、验证密钥等信息,并对客户端执行相应的传统多因素认证。
115.6.客户端使用(2,3)-ss算法将secret key和主密码分割成3部分(第一部分密钥份额、第二部分密钥份额、第三部分密钥份额,分别对应如图4中所示的秘密份额1、秘密份额2、秘密份额3)。
116.7.客户端将步骤6中生成的秘密份额分别使用步骤2中获取的通信密钥进行加密,并分别发送给监护人、监管方、密钥管理服务运营方(监护人通常也是服务端的一个用户,可以利用下文补充的“隐私数据分享”实施过程进行双层加密)。
117.通过上述可知,本发明实施例中客户端对服务端等其他各端的vc进行验证,进一步提高了认证的安全性。
118.通过应用上述完全不依赖于tls/ssl证书链的初始注册方法对用户身份进行认证后,如图6所示,本发明实施例中“登录”的详细实施过程如下:
119.1.用户输入主密码,客户端派生出认证密钥。
120.2.客户端与服务端进行双向认证并生成会话密钥(客户端使用认证密钥、服务端使用“注册”过程中在服务端注册的验证密钥)。
121.3.服务端进行其它可选的因素认证,如手机验证码、人脸识别等。
122.4.登录成功。
123.如图7所示,本发明实施例中隐私数据的加密的详细实施过程如下:(假设用户需要存储一个私钥sk):
124.1.客户端随机生成新的或使用已有的数据加密密钥对sk进行加密。
125.2.客户端随机生成新的或使用已有的非对称加密算法密钥对对步骤1中的数据加密密钥进行公钥加密。
126.3.客户端使用主密钥、secret key、盐等信息派生出管理密钥。
127.4.客户端使用步骤3中派生出的管理密钥对步骤2中非对称加密算法私钥进行加密。
128.5.客户端将加密后的sk、数据加密密钥、非对称加密算法私钥发送至服务端进行存储。
129.如果用户决定将sk放置在已创建的保险库中,则数据加密密钥和非对称加密算法私钥都不用新建;如果用户决定新建一个保险库来放置sk但是将新建的保险库钥匙放置在已有的密码箱中,则非对称加密算法私钥可以不用创建;如果用户决定新建一个保险库来放置sk并将新建的保险库钥匙放置在新的密码箱中,则加密后的sk、数据加密密钥、非对称加密算法私钥都需要发送至服务端。
130.以上“隐私数据加密”过程,可在较小的用户操作成本下,用密码学和算法的方式实现用户数据的隐私保护,对用户来说简单易用,对系统来说隐私保护效果好。
131.如图8所示,本发明实施例中隐私数据的解密的详细实施过程如下(假设用户需要解密私钥sk):
132.1.客户端获取加密后的sk、数据加密密钥、非对称加密算法私钥。
133.2.客户端使用主密钥、secret key、盐等信息派生出管理密钥。
134.3.客户端使用管理密钥解密出非对称加密算法私钥。
135.4.客户端使用非对称加密算法私钥解密出数据加密密钥。
136.5.客户端使用数据加密密钥解密出sk。
137.如图9所示,本发明实施例中“隐私数据分享”的详细实施过程如下:(假设用户a需要分享私钥sk给用户b):
138.1.用户a(第一用户)客户端通过上述“解密”实施过程解密出私钥sk。
139.2.用户a客户端随机生成数据加密密钥。
140.3.用户a客户端使用数据加密密钥对sk进行加密。
141.4.用户a客户端获取用户b(第二用户)的非对称加密公钥(类比于用户b的密码箱)。
142.5.用户a客户端使用用户b的非对称加密公钥加密步骤2中生成的数据加密密钥(类比于用户a将sk所属的保险库的钥匙放入用户b的密码箱中,当然“放入”并不是指打开用户b的密码箱再放入,因为用户a并不能知道用户b的密码箱中的内容,更像是通过用户b的密码箱开的一个小孔投递进去)。
143.6.用户a将步骤3和步骤5中生成的加密后的sk、数据加密密钥发送给用户b。
144.7.用户b可以通过上述“解密”实施过程(和步骤1中用户a的操作相同)解密出私钥sk。
145.通过上述可知,在一个实施例中,上述基于密钥派生函数的认证方法还可以包括:
146.客户端接收分享人输入的隐私数据;随机生成数据加密密钥对所述隐私数据进行加密;所述数据加密密钥被第二用户的非对称加密算法的公钥加密,所述隐私数据包括secret key和主密码;
147.服务端在被分享人的账户下存储加密后的隐私数据及数据加密密钥。
148.具体实施时,上述整个隐私数据分享的过程可以类比为用户a想要将在其保险库中存放的私钥sk(或其它隐私数据)分享给用户b,对应的操作流程为:用户a通过主密码、secret key、盐等派生出管理密钥(管理密钥可以解密出所有的密码箱密码),用户a通过管理密钥解密出密码箱密码并打开密码箱,从密码箱中取出保险库的钥匙并打开保险库,从保险库中取出sk(或其它隐私数据),为用户b新建一个保险库,将sk存放在新建的保险库中,并将保险库的钥匙投递进用户b的保险箱中,随后用户b就可以打开保险箱并取出保险库的钥匙,并取得sk。
149.以上隐私数据分享的过程,通过随机生成加密密钥的方式,保证在隐私数据传输和共享过程中的安全性,避免用户数据在传输过程中被盗用。另外,本发明实施例还可以利用隐私数据分享的过程,分别对三个部分的密钥份额进行双重加密,举个例子,以对服务端对应的第二部分密钥份额进行加密为例,客户端随机生成数据加密密钥对第二部分密钥份
额进行加密;所述数据加密密钥被第二用户(例如监护人)的非对称加密算法的公钥加密;服务端在监护人的账户下存储加密后的隐私数据及数据加密密钥。对其他端对应的密钥份额进行双重加密可以参见对服务端对应的第二部分密钥份额进行加密的过程。
150.本发明实施例涉及两种“密码及密钥备份”及对应的恢复方法,一种是:在线备份、恢复secret key和主密码;另一种是:离线备份、恢复secret key和主密码,下面对该两种备份及对应的恢复方法进行详细介绍。
151.首先,介绍在线备份及恢复secret key和主密码的过程。
152.如图10所示,本发明实施例中在线“密码及密钥备份”的详细实施过程如下:
153.初始化阶段,服务端、监管方、密钥管理服务运营方分别在vdr中创建自身的did(以及对应的did document),并从相关权威机构(即vc的颁发者,如网信办)获取自身的vc。
154.1.客户端获取并验证服务端、监管方、密钥管理服务运营方的vc。
155.2.客户端根据vc中各参与方did以及监护人did分别去vdr中获取各参与方的通信密钥。
156.3.客户端使用(2,3)-ss算法将secret key和主密码分割成3部分。
157.4.客户端将步骤3中生成的秘密份额分别使用步骤2中获取的通信密钥进行加密,并分别发送给监护人、监管方、密钥管理服务运营方(监护人通常也是服务端的一个用户,可以利用上述“隐私数据分享”实施过程进行双层加密)。
158.通过上述可知,在一个实施例中,上述基于密钥派生函数的认证方法还可以包括按照如下方法在线备份secret key和主密码:
159.客户端获取并验证监管端及密钥管理服务运营端的可验证凭证vc,根据vc中监管端的did从可验证数据注册表中获取监管端的通信密钥,根据vc中密钥管理服务运营端的did从可验证数据注册表中获取密钥管理服务运营端的通信密钥;将secret key和主密码分割成三个部分的密钥份额;使用监管端的通信密钥对第一部分密钥份额进行加密,使用服务端的通信密钥对第二部分密钥份额进行加密,使用密钥管理服务运营端的通信密钥对第三部分密钥份额进行加密;将加密后的第一部分密钥份额发送至监管端,将加密后的第二部分密钥份额发送至服务端,将加密后的第三部分密钥份额发送至密钥管理服务运营端;所述监管端及密钥管理服务运营端在可验证数据注册表中分别预先创建有自身的分布式数字身份标识did,并分别根据did从证书颁发机构获取自身的vc;
160.监管端解密出第一部分密钥份额,使用kms对第一部分密钥份额进行加密存储;
161.服务端在用户相关人的账户下存储加密后的第二部分密钥份额;
162.密钥管理服务运营端解密出第三部分密钥份额,使用kms对第三部分密钥份额进行加密存储。
163.具体实施例时,密码及密钥备份通常发生在“注册”阶段,所以上述流程通常是“注册”实施流程的一部分。
164.本发明实施例设计了密码和密钥的备份,便于用户在忘记密钥的时候进行密钥恢复。
165.具体实施时,在不引入过多复杂性的条件下,使得(t,n)-秘密分享在实际应用中可以安全地将超过t份秘密份额在网络通道上进行传输,并因此使得用户可以不用管理任何秘密份额,在不牺牲安全性的前提下,使得用户密钥可恢复,提供友好性和易用性。
166.另外,本发明实施例中加入监管方的参与,实现可监管,即用户不可以抗拒监管。
167.如图11所示,本发明实施例中在线“密码及密钥恢复”的详细实施过程如下:
168.1.用户使用除密码验证之外的因素认证半登录至服务端和密钥管理服务运营方,如手机验证码+人脸识别。
169.2.客户端随机生成临时非对称加密密钥对。
170.3.客户端获取存储在密钥管理服务运营方的秘密份额(将步骤2中生成的非对称加密密钥对中的公钥发送至密钥管理服务运营方,密钥管理服务运营方加密秘密份额并返回)。
171.4.客户端获取存储在监护人的秘密份额(用户请求监护人帮助密码及密钥恢复,用户通过客户端将步骤2中生成的非对称加密密钥对中的公钥发送至监护人,监护人对用户身份及公钥进行确认,监护人加密秘密份额并返回)。
172.5.客户端恢复密码及密钥。
173.通过上述可知,在一个实施例中,上述基于密钥派生函数的用户身份认证方法还可以包括按照如下方法在线恢复secret key和主密码:
174.用户的客户端生成临时非对称加密密钥对;在用户登录客户端的情况下,将临时非对称公钥发送至密钥管理服务运营端;
175.密钥管理服务运营端使用kms解密出第三部分密钥份额,利用临时非对称公钥对第三部分密钥份额进行加密,并返回非对称加密后的第三部分密钥份额至用户的客户端;
176.用户的客户端利用临时非对称私钥对非对称加密后的第三部分密钥份额进行解密,得到第三部分密钥份额;发起用户相关人进行社交恢复请求,上传临时非对称公钥至服务端;
177.服务端同步用户相关人进行社交恢复的请求及临时非对称公钥至用户相关人的客户端;
178.用户相关人(例如监护人)的客户端在对所述请求及临时非对称公钥进行确认后,使用临时非对称公钥对第二部分密钥份额进行加密后发送至服务端;
179.服务端同步加密后的第二部分密钥份额至用户的客户端;
180.用户的客户端非对称解密出第二部分密钥份额;根据解密出第二部分密钥份额和第三部分密钥份额恢复出secret key和主密码。
181.通过上述可知,本发明实施例中在线备份及恢复secret key和主密码的过程也是完全独立于tls/ssl证书链的,安全性高。
182.其次,介绍离线备份及恢复secret key和主密码的过程。
183.如图12所示,密码及密钥的备份(二):除了上述在线备份外,用户也可以进行离线备份,备份的方法为导出一张二维码进行离线保存,即“密码及密钥的备份(二)”。即在一个实施例中,上述基于密钥派生函数的认证方法还可以包括:按照如下方法离线备份secret key和主密码:客户端导出secret key和主密码,离线保存secret key和主密码所对应的图形码。
184.如图13所示,密码及密钥的恢复(二):除上述在线恢复密码及密钥,用户也可以进行配合“密码及密钥的备份(二)”进行离线恢复,即使用客户端扫码离线保存的二维码。即在一个实施例中,上述基于密钥派生函数的认证方法还可以包括:按照如下方法离线恢复
secret key和主密码:客户端扫码离线保存的secret key和主密码所对应的图形码,恢复出secret key和主密码。
185.如图14所示,在一个实施例中,上述基于密钥派生函数的认证方法还可以包括:设备迁移方案:“密码及密钥的恢复”是指用户丢失了密码或密钥后的恢复过程,如用户手机丢失或完全损坏、用户忘记了密码,而“设备迁移”是指从已登录的旧设备迁移到新设备的迁移过程,前者需要用户离线保存一张二维码,后者只需要使用新设备扫码旧设备上的二维码;前者适用于用户忘记了密码或不小心将secret key删除了,后者适用于旧设备处于登录状态(即旧设备上有密码和secret key),通常适用于用户记得密码或旧设备上缓存有密码,并且secret key没有丢失。
186.综上,本发明实施例提供的基于密钥派生函数的认证方法具备如下优点:
187.1.本发明实施例中客户端(用户)对各参与方(服务方和监管方)的身份验证除传统的ca证书验证之外,额外增加了对可验证凭证的验证,提高整体框架的安全性。
188.2.本发明实施例中各参与方之间的交互除tls/ssl加密外,额外使用分布式数字身份体系中的通信密钥进行双层加密,提高各模块之间的通道安全性。
189.3.本发明实施例利用第2点,在不引入过多复杂性的条件下,使得(t,n)-秘密分享在实际应用中可以安全地将超过t份秘密份额在网络通道上进行传输,并因此使得用户可以不用管理任何秘密份额,在不牺牲安全性的前提下,使得用户密钥可恢复,提供友好性和易用性。
190.4.本发明实施例利用第2点,解决了密码管理器框架中初始阶段对tls/ssl协议安全性的依赖,真正实现全流程独立于tls/ssl的安全性。
191.综上,本发明实施例提供的基于密钥派生函数的认证方法(框架)在保证了与传统互联网应用的通用性、易用性和友好性相当的同时,增加了对用户数据资产隐私性的保护(和隐私性最好的密码管理器相当),并且进一步提高了安全性(不管是相比传统互联网应用还是密码管理器)和引入了可监管性(相比密码管理器和区块链钱包)。
192.本发明实施例中还提供了一种应用于客户端的基于密钥派生函数的认证方法,如下面的实施例所述。由于该方法解决问题的原理与应用于系统的基于密钥派生函数的认证方法相似,因此该方法的实施可以参见应用于系统的基于密钥派生函数的认证方法的实施,重复之处不再赘述。
193.本发明实施例提供一种基于密钥派生函数的认证方法,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该方法应用于客户端,如图15所示,该方法包括:
194.步骤101:接收用户输入的待注册账号信息及主密码;
195.步骤102:随机生成secret key和盐;
196.步骤103:基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;
197.步骤104:获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;所述服务端用于从加密后的内容中解
密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
198.本发明实施例中还提供了一种应用于服务端的基于密钥派生函数的认证方法,如下面的实施例所述。由于该方法解决问题的原理与应用于系统的基于密钥派生函数的认证方法相似,因此该方法的实施可以参见应用于系统的基于密钥派生函数的认证方法的实施,重复之处不再赘述。
199.本发明实施例提供一种基于密钥派生函数的认证方法,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,该方法应用于服务端,如图16所示,该方法包括:
200.步骤201:从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端;
201.步骤202:在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证;所述客户端用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc。
202.本发明实施例中还提供了一种基于密钥派生函数的认证系统,如下面的实施例所述。由于该系统解决问题的原理与应用于系统的基于密钥派生函数的认证方法相似,因此该系统的实施可以参见应用于系统的基于密钥派生函数的认证方法的实施,重复之处不再赘述。
203.本发明实施例提供一种基于密钥派生函数的认证系统,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,如图17所示,该系统包括:
204.客户端01,用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;
205.服务端02,用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
206.在一个实施例中,所述客户端还用于接收分享人输入的隐私数据;随机生成数据加密密钥对所述隐私数据进行加密;所述数据加密密钥被第二用户的非对称加密算法的公钥加密,所述隐私数据包括secret key和主密码;
207.所述服务端还用于在被分享人的账户下存储加密后的隐私数据及数据加密密钥。
208.本发明实施例中还提供了一种基于密钥派生函数的认证客户端,如下面的实施例所述。由于该客户端解决问题的原理与应用于系统的基于密钥派生函数的认证方法相似,因此该客户端的实施可以参见应用于系统的基于密钥派生函数的认证方法的实施,重复之处不再赘述。
209.本发明实施例提供一种基于密钥派生函数的认证客户端,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,如图18所示,该客户端包括:
210.接收单元011,用于接收用户输入的待注册账号信息及主密码;
211.随机生成单元012,用于随机生成secret key和盐;
212.派生单元013,用于基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;
213.认证单元014,用于获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;所述服务端用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。
214.本发明实施例中还提供了一种基于密钥派生函数的认证服务端,如下面的实施例所述。由于该服务端解决问题的原理与应用于系统的基于密钥派生函数的认证方法相似,因此该服务端的实施可以参见应用于系统的基于密钥派生函数的认证方法的实施,重复之处不再赘述。
215.本发明实施例提供一种基于密钥派生函数的认证服务端,用以完全独立于tls/ssl证书链对用户身份进行认证,提高身份认证的安全性,如图19所示,该服务端包括:
216.解密单元021,用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端;
217.处理单元022,用于在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证;所述客户端用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc。
218.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于密钥派生函数的认证方法。
219.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于密钥派生函数的认证方法。
220.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述基于密钥派生函数的认证方法。
221.本发明实施例中,基于密钥派生函数的认证方案,与现有技术中初始阶段实际上也是需要依赖于tls/ssl证书链,导致后续身份认证不安全的技术方案相比,通过:客户端接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;服务端从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证,实现了可以完全独立于tls/ssl证书链对用户身份进行认证,提高了身份认证的安全性。
222.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
223.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
224.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
225.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
226.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于密钥派生函数的认证方法,其特征在于,该方法应用于系统,该方法包括:客户端接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;服务端从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。2.如权利要求1所述的方法,其特征在于,还包括按照如下方法在线备份secretkey和主密码:客户端获取并验证监管端及密钥管理服务运营端的可验证凭证vc,根据vc中监管端的did从可验证数据注册表中获取监管端的通信密钥,根据vc中密钥管理服务运营端的did从可验证数据注册表中获取密钥管理服务运营端的通信密钥;将secret key和主密码分割成三个部分的密钥份额;使用监管端的通信密钥对第一部分密钥份额进行加密,使用服务端的通信密钥对第二部分密钥份额进行加密,使用密钥管理服务运营端的通信密钥对第三部分密钥份额进行加密;将加密后的第一部分密钥份额发送至监管端,将加密后的第二部分密钥份额发送至服务端,将加密后的第三部分密钥份额发送至密钥管理服务运营端;所述监管端及密钥管理服务运营端在可验证数据注册表中分别预先创建有自身的分布式数字身份标识did,并分别根据did从证书颁发机构获取自身的vc;监管端解密出第一部分密钥份额,使用kms对第一部分密钥份额进行加密存储;服务端在用户相关人的账户下存储加密后的第二部分密钥份额;密钥管理服务运营端解密出第三部分密钥份额,使用kms对第三部分密钥份额进行加密存储。3.如权利要求2所述的方法,其特征在于,还包括按照如下方法在线恢复secret key和主密码:用户的客户端生成临时非对称加密密钥对;在用户登录客户端的情况下,将临时非对称公钥发送至密钥管理服务运营端;密钥管理服务运营端使用kms解密出第三部分密钥份额,利用临时非对称公钥对第三部分密钥份额进行加密,并返回非对称加密后的第三部分密钥份额至用户的客户端;用户的客户端利用临时非对称私钥对非对称加密后的第三部分密钥份额进行解密,得到第三部分密钥份额;发起用户相关人进行社交恢复请求,上传临时非对称公钥至服务端;服务端同步用户相关人进行社交恢复的请求及临时非对称公钥至用户相关人的客户端;用户相关人的客户端在对所述请求及临时非对称公钥进行确认后,使用临时非对称公钥对第二部分密钥份额进行加密后发送至服务端;服务端同步加密后的第二部分密钥份额至用户的客户端;用户的客户端非对称解密出第二部分密钥份额;根据解密出第二部分密钥份额和第三
部分密钥份额恢复出secret key和主密码。4.如权利要求1所述的方法,其特征在于,还包括:按照如下方法离线备份secret key和主密码:客户端导出secret key和主密码,离线保存secret key和主密码所对应的图形码。5.如权利要求4所述的方法,其特征在于,还包括:按照如下方法离线恢复secret key和主密码:客户端扫码离线保存的secret key和主密码所对应的图形码,恢复出secret key和主密码。6.如权利要求1所述的方法,其特征在于,还包括:客户端接收分享人输入的隐私数据;随机生成数据加密密钥对所述隐私数据进行加密;所述数据加密密钥被第二用户的非对称加密算法的公钥加密,所述隐私数据包括secret key和主密码;服务端在被分享人的账户下存储加密后的隐私数据及数据加密密钥。7.一种基于密钥派生函数的认证方法,其特征在于,该方法应用于客户端,该方法包括:接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;所述服务端用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。8.一种基于密钥派生函数的认证方法,其特征在于,该方法应用于服务端,该方法包括:从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端;在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证;所述客户端用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc。9.一种基于密钥派生函数的认证系统,其特征在于,包括:客户端,用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基
于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;服务端,用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。10.如权利要求9所述的系统,其特征在于,所述客户端还用于接收分享人输入的隐私数据;随机生成数据加密密钥对所述隐私数据进行加密;所述数据加密密钥被第二用户的非对称加密算法的公钥加密,所述隐私数据包括secret key和主密码;所述服务端还用于在被分享人的账户下存储加密后的隐私数据及数据加密密钥。11.一种基于密钥派生函数的认证客户端,其特征在于,包括:接收单元,用于接收用户输入的待注册账号信息及主密码;随机生成单元,用于随机生成secret key和盐;派生单元,用于基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;认证单元,用于获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc;所述服务端用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证。12.一种基于密钥派生函数的认证服务端,其特征在于,包括:解密单元,用于从加密后的内容中解密出待注册账号信息、验证密钥及盐,并发送验证请求至待注册账号信息对应的客户端;处理单元,用于在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;所述验证密钥和盐用于用户身份认证时客户端与服务端之间的双向认证;所述客户端用于接收用户输入的待注册账号信息及主密码;随机生成secret key和盐;基于密钥派生函数根据secret key、盐及主密码派生出认证密钥,使用认证密钥计算出相应的验证密钥;获取并验证服务端的可验证凭证vc,根据vc中服务端的did从可验证数据注册表中获取服务端的通信密钥来加密待注册账号信息、验证密钥及盐,并将加密后的内容发送至服务端;所述服务端在可验证数据注册表中预先创建有自身的分布式数字身份标识did,并根据did从证书颁发机构获取自身的vc。13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一所述方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一所述方法。15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一所述方法。
技术总结
本发明公开了一种基于密钥派生函数的认证方法、系统、客户端及服务端,其中该方法包括:客户端基于密钥派生函数根据Secret Key、盐及主密码派生出认证密钥,并计算出相应的验证密钥;获取并验证服务端的VC,根据VC中服务端的DID从可验证数据注册表中获取服务端的通信密钥来加密账号信息、验证密钥及盐,并将加密后的内容发送至服务端;服务端解密出待注册账号信息、验证密钥及盐,并发送验证请求至客户端,在验证成功后,存储验证密钥和盐,返回注册成功的账号信息至客户端;验证密钥和盐用于用户身份认证时客户与服务端之间的双向认证。本发明可以完全独立于TLS/SSL证书链对用户身份进行认证,提高了身份认证的安全性。提高了身份认证的安全性。提高了身份认证的安全性。
技术研发人员:陈乐旋 李慧玲 马晨光 张发振 曾西平
受保护的技术使用者:北京泰尔英福科技有限公司
技术研发日:2023.05.24
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
