CN117938548B - 密钥数据同步方法、装置和设备 - Google Patents

密钥数据同步方法、装置和设备 Download PDF

Info

Publication number
CN117938548B
CN117938548B CN202410329794.XA CN202410329794A CN117938548B CN 117938548 B CN117938548 B CN 117938548B CN 202410329794 A CN202410329794 A CN 202410329794A CN 117938548 B CN117938548 B CN 117938548B
Authority
CN
China
Prior art keywords
data
server
key
synchronized
data synchronization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410329794.XA
Other languages
English (en)
Other versions
CN117938548A (zh
Inventor
周志强
袁丽婕
黎福晓
焦四辈
王宗岳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Open Security Research Inc
Original Assignee
Open Security Research Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Open Security Research Inc filed Critical Open Security Research Inc
Priority to CN202410329794.XA priority Critical patent/CN117938548B/zh
Publication of CN117938548A publication Critical patent/CN117938548A/zh
Application granted granted Critical
Publication of CN117938548B publication Critical patent/CN117938548B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请提供一种密钥数据同步方法、装置和设备。该方法包括:响应于检测到第一服务器和第二服务器之间的数据不同步,向第一服务器发送身份验证指令,身份验证指令用于指示第一服务器向第二服务器发送零知识证明值,零知识证明值用于验证第一服务器的身份;若接收到来自第二服务器的验证成功响应消息,向第一服务器发送数据同步指令;其中,待同步数据包括密钥数据,密钥数据用于对第一服务器或第二服务器的业务数据进行加密或解密;待同步数据为通过传输加密密钥进行加密后的数据,传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥。本申请的方法,可以提高数据同步的效率。

Description

密钥数据同步方法、装置和设备
技术领域
本申请涉及数据处理技术领域,尤其涉及一种密钥数据同步方法、装置和设备。
背景技术
数据同步是指将多个不同位置或系统中的数据进行实时或定期的更新和匹配,以保持多个不同位置或系统中的数据的一致性。而在数据同步过程中,各参与方的身份合法性直接影响着数据同步是否成功,因此,验证各参与方的身份合法性显得尤为重要。
相关技术中,通常是通过公钥基础设施(Public Key Infrastructure,简称:PKI)颁发和管理数字证书,将数字证书绑定到加密密钥对中,以用于验证参与方的身份。但这种方式对参与方的身份进行验证的效率低,从而导致数据同步的效率低。
因此,亟需一种可以提高数据同步的效率的方案。
发明内容
本申请提供一种密钥数据同步方法、装置和设备,可以提高数据同步的效率。
第一方面,本申请提供一种密钥数据同步方法,包括:响应于检测到第一服务器和第二服务器之间的数据不同步,向第一服务器发送身份验证指令,身份验证指令用于指示第一服务器向第二服务器发送零知识证明值,零知识证明值用于验证第一服务器的身份;若接收到来自第二服务器的验证成功响应消息,向第一服务器发送数据同步指令,数据同步指令用于指示第一服务器执行对待同步数据的数据同步操作;其中,待同步数据包括密钥数据,密钥数据用于对第一服务器或第二服务器的业务数据进行加密或解密;待同步数据为通过传输加密密钥进行加密后的数据,传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥。
在一种实施例中,第一服务器用于通过以下方式生成零知识证明值:根据数据同步服务中的零知识证明口令和预先设置的第一盐值,采用伪随机函数算法,按照第一预设迭代次数,生成零知识证明密钥对;第一盐值包括第一字符串和第一时间戳,第一字符串用于表示零知识证明,第一时间戳用于表示零知识证明口令的生成时间;根据第一服务器生成的随机数、第一服务器的特征数据和零知识证明密钥对中的私钥,得到零知识证明值。
在一种实施例中,第一服务器用于通过以下方式实现根据第一服务器生成的随机数、第一服务器的特征数据和零知识证明密钥对中的私钥,得到零知识证明值:确定特征数据和私钥之间的第一点乘值;确定随机数和第一点乘值之间的第一和值;确定预设值和随机数之间的第二点乘值;将第一和值和第二点乘值,确定为零知识证明值。
在一种实施例中,第二服务器用于通过以下方式验证第一服务器的身份:确定特征数据和零知识证明密钥对中的公钥之间的第三点乘值;确定第二点乘值和第三点乘值之间的第二和值;确定第一和值与预设值之间的第四点乘值;若第二和值与第四点乘值相等,生成验证成功响应消息;若第二和值与第四点乘值不相等,生成验证失败响应消息。
在一种实施例中,传输加密密钥是通过以下方式得到的:根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成传输加密密钥,第二盐值包括第二字符串和第二时间戳,第二字符串用于表示数据同步,第二时间戳用于表示数据同步口令的生成时间。
在一种实施例中,数据同步服务是通过以下方式创建并启动的:调用软件开发工具包SDK创建数据同步服务;调用服务初始化接口,对数据同步服务进行初始化操作;调用数据同步服务启动接口,启动初始化后的数据同步服务;初始化操作包括以下至少一项:设置数据同步口令;设置零知识证明口令;设置第一服务器和/或第二服务器的特征数据,特征数据包括以下至少一项:序列号、物理地址和数据同步口令的哈希值;设置第一服务器和第二服务器之间的主备模式;设置第一服务器的网络协议地址、第二服务器的网络协议地址、第一服务器的对外服务端口和第二服务器的对外服务端口。
在一种实施例中,第一服务器与第二服务器之间的数据不同步,包括:第一服务器的待同步日志文件中存在变更数据;数据同步指令用于指示第一服务器执行以下数据同步操作:调用数据同步服务中封装的目标接口,在待同步日志文件中获取变更数据,目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作;将变更数据,确定为待同步数据;生成携带待同步数据的数据同步请求;向第二服务器发送数据同步请求,以请求第二服务器对待同步数据进行同步处理。
在一种实施例中,数据同步请求用于指示第二服务器通过以下方式对待同步数据进行同步处理:采用与传输加密密钥对应的传输解密密钥,对待同步数据进行解密处理,得到解密数据;若采用用于验证解密数据的数据完整性的验证密钥,对解密数据的数据完整性验证成功,则调用目标接口,对解密数据进行同步处理,验证密钥是通过数据同步口令和预先设置的第二盐值生成的。
在一种实施例中,第一服务器与第二服务器之间的数据不同步,包括:第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致;数据同步指令用于指示第一服务器执行以下数据同步操作:向第二服务器发送数据拉取请求,以请求从第二数据库中拉取待同步数据,待同步数据为第二数据库中与第一数据库中的数据不一致的数据;获取来自第二服务器的待同步数据;采用与传输加密密钥对应的传输解密密钥,对待同步数据进行解密处理,得到解密数据;若采用用于验证解密数据的数据完整性的验证密钥,对解密数据的数据完整性验证成功,则调用数据同步服务中封装的目标接口,对解密数据进行同步处理,验证密钥是通过数据同步口令和预先设置的第二盐值生成的,目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作。
在一种实施例中,第一服务器用于通过以下方式向第二服务器发送数据拉取请求:确定第一服务器和第二服务器之间的主备模式;若主备模式为第一服务器为主节点,第二服务器为备节点,则在主从切换后,向第二服务器发送数据拉取请求;若主备模式为第一服务器和第二服务器均为主节点,则在预设时长后重新检测第一数据库和第二数据库中的数据是否一致,若第一数据库和第二数据库中的数据仍不一致,则向第二服务器发送数据拉取请求。
第二方面,本申请提供一种密钥数据同步装置,包括:第一同步模块,用于响应于检测到第一服务器和第二服务器之间的数据不同步,向第一服务器发送身份验证指令,身份验证指令用于指示第一服务器向第二服务器发送零知识证明值,零知识证明值用于验证第一服务器的身份;第二同步模块,用于若接收到来自第二服务器的验证成功响应消息,向第一服务器发送数据同步指令,数据同步指令用于指示第一服务器执行对待同步数据的数据同步操作;其中,待同步数据包括密钥数据,密钥数据用于对第一服务器或第二服务器的业务数据进行加密或解密;待同步数据为通过传输加密密钥进行加密后的数据,传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥。
第三方面,本申请提供一种电子设备,包括:处理器,以及与处理器连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现如第一方面的密钥数据同步方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被执行时用于实现如第一方面的密钥数据同步方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,计算机程序被执行时用于实现如第一方面的密钥数据同步方法。
本申请提供的密钥数据同步方法、装置和设备,在第一服务器和第二服务器之间的数据不同步时,第一服务器通过生成零知识证明值,并向第二服务器发送零知识证明值,可以实现第二服务器根据零知识证明值,对第一服务器进行身份验证,若第二服务器对第一服务器的身份验证成功,则第一服务器可以执行对待同步数据的数据同步操作。由于通过PKI进行身份验证需要证书授权(Certificate Authority,简称:CA),验证过程较为繁琐,而本申请仅需要第一服务器的零知识证明值,即可实现身份验证,因此,可以提高身份验证的效率,也就可以提高对密钥数据进行数据同步的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的密钥数据同步方法的一种应用场景示意图;
图2为本申请实施例提供的密钥数据同步方法的一种流程示意图;
图3为本申请实施例提供的一主多备模式下的数据同步示意图;
图4为本申请实施例提供的多主代理模式下的数据同步示意图;
图5为本申请实施例提供的密钥数据同步装置的一种结构示意图;
图6为本申请实施例提供的电子设备的一种结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先对本申请所涉及的名词进行解释。
零知识证明:一种让一方向另一方证明自己知道某个问题的答案,但不透露具体细节的技术。
Schnorr协议:RFC 8235。
接下来介绍本申请的技术构思。
数据同步是指将多个不同位置或系统中的数据进行实时或定期的更新和匹配,以保持多个不同位置或系统中的数据的一致性。而在数据同步过程中,各参与方的身份合法性直接影响着数据同步是否成功,因此,验证各参与方的身份合法性显得尤为重要。相关技术中,通常是通过PKI颁发和管理数字证书,将数字证书绑定到加密密钥对中,以用于验证参与方的身份。但通过PKI进行身份验证的过程中,需要CA证书证明某个参与方的身份及其公钥的合法性,通过证明该参与方与公钥二者之间的匹配关系,确定该参与方的身份是否合法。因此,这种方式对参与方的身份进行验证的效率低,从而导致数据同步的效率低。
本申请提供一种密钥数据同步方法,在第一服务器和第二服务器之间的数据不同步时,第一服务器通过生成零知识证明值,并向第二服务器发送零知识证明值,可以实现第二服务器根据零知识证明值,对第一服务器进行身份验证。由于通过PKI进行身份验证需要CA证书,验证过程较为繁琐,而本申请仅需要第一服务器的零知识证明值,即可实现身份验证,因此,可以提高身份验证的效率,也就可以提高对密钥数据进行数据同步的效率。此外,在对包含密钥数据的待同步数据进行数据同步的过程中,可以根据数据同步服务中的数据同步口令,派生得到用于对待同步数据进行加密的传输加密密钥,由于数据同步口令可以周期性自动更改,因此,传输加密密钥也可以周期性自动更改,从而可以提高密钥数据同步的安全性。
接下来介绍本申请的应用场景。
图1为本申请实施例提供的密钥数据同步方法的一种应用场景示意图。如图1所示,第三方的管理系统可以检测第一服务器和第二服务器之间的数据是否同步,若不同步,则向第一服务器发送身份验证指令。第一服务器在接收到身份验证指令之后,生成零知识证明值,并向第二服务器发送零知识证明值。第二服务器接收到零知识证明值之后,按照零知识证明值对第一服务器的身份进行验证,若验证通过,则向管理系统发送验证成功响应消息。管理系统接收到验证成功响应消息,向第一服务器发送数据同步指令。第一服务器接收到数据同步指令之后,对包含密钥数据的待同步数据执行数据同步操作。
接下来结合上述应用场景,以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请提供一种密钥数据同步方法。图2为本申请实施例提供的密钥数据同步方法的一种流程示意图。如图2所示,该密钥数据同步方法包括如下步骤:
S201:响应于检测到第一服务器和第二服务器之间的数据不同步,向第一服务器发送身份验证指令,身份验证指令用于指示第一服务器向第二服务器发送零知识证明值,零知识证明值用于验证第一服务器的身份。
在该步骤中,第三方的管理系统可以检测第一服务器和第二服务器之间的数据是否同步,若检测到第一服务器和第二服务器之间的数据不同步,则可以向第一服务器发送身份验证指令,实现第一服务器进行身份验证,以便于后续可以进行数据同步操作。
具体地,第一服务器在接收到第三方的管理系统发送的身份验证指令,可以生成零知识证明值,该零知识证明值可以证明第一服务器的身份。由于数据同步操作在第一服务器和第二服务器之间进行,因此,第一服务器可以将零知识证明值发送给第二服务器,以便于第二服务器验证第一服务器的身份。
可选地,可以是第一服务器检测到第一服务器和第二服务器之间的数据不同步时,向第三方的管理系统发送数据不同步的提醒消息;或者,第二服务器检测到第一服务器和第二服务器之间的数据不同步时,向第三方的管理系统发送数据不同步的提醒消息。第三方的管理系统接收到来自第一服务器或第二服务器的提醒消息,确定第一服务器和第二服务器之间的数据不同步。
S202:若接收到来自第二服务器的验证成功响应消息,向第一服务器发送数据同步指令,数据同步指令用于指示第一服务器执行对待同步数据的数据同步操作。
在该步骤中,待同步数据包括密钥数据,密钥数据用于对第一服务器或第二服务器的业务数据进行加密或解密;待同步数据为通过传输加密密钥进行加密后的数据,传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥。
具体地,第二服务器接收到第一服务器发送的零知识证明值之后,按照零知识证明值,对第一服务器的身份进行验证,若验证成功,则第一服务器可以向第三方的管理系统发送验证成功响应消息,以告知第三方的管理系统,第一服务器的身份合法。第三方的管理系统确定第一服务器的身份合法,则向第一服务器发送数据同步指令,第一服务器接收到数据同步指令,就可以对待同步数据执行数据同步操作。
可选地,由于待同步数据包括密钥数据,而密钥数据不可泄露,为了保证待同步数据在同步过程中的安全性,可以根据数据同步服务中的数据同步口令,派生得到传输加密密钥,然后采用该传输加密密钥对待同步数据进行加密,这样,待同步数据在同步过程中为加密状态,也就不会泄露密钥数据。
可选地,待同步数据中还可以包括第一服务器或第二服务器的业务数据。密钥数据和业务数据可以存储在服务器的数据库中。
本申请的密钥数据同步方法,在第一服务器和第二服务器之间的数据不同步时,第一服务器通过生成零知识证明值,并向第二服务器发送零知识证明值,可以实现第二服务器根据零知识证明值,对第一服务器进行身份验证,若第二服务器对第一服务器的身份验证成功,则第一服务器可以执行对待同步数据的数据同步操作。由于通过PKI进行身份验证需要CA证书,验证过程较为繁琐,而本申请仅需要第一服务器的零知识证明值,即可实现身份验证,因此,可以提高身份验证的效率,也就可以提高对密钥数据进行数据同步的效率。
在一种实施例中,第一服务器用于通过以下方式生成零知识证明值:根据数据同步服务中的零知识证明口令和预先设置的第一盐值,采用伪随机函数算法,按照第一预设迭代次数,生成零知识证明密钥对;第一盐值包括第一字符串和第一时间戳,第一字符串用于表示零知识证明,第一时间戳用于表示零知识证明口令的生成时间;根据第一服务器生成的随机数、第一服务器的特征数据和零知识证明密钥对中的私钥,得到零知识证明值。
在该实施例中,只有第一服务器的身份合法性验证成功,第一服务器才可以启动数据同步服务,从而实现数据同步。若第一服务器的身份合法性验证失败,则第一服务器无法启动数据同步服务,也就无法进行数据同步,从而可以避免由于第一服务器的身份不合法导致的数据同步错误,可以提高第一服务器与第二服务器之间的数据同步的准确性和成功率。
在上述实施例中,由于服务器的特征数据为关键知识,因此,可以通过零知识证明来避免暴露服务器的特征数据等关键知识。因此,利用零知识证明,可以实现在不暴露第一服务器的特征数据的情况下,完成对第一服务器的身份合法性进行验证。具体地,第一服务器可以利用数据同步服务中的零知识证明口令和预先设置的第一盐值,采用伪随机函数(Pseudo-Random Function,简称:PRF)算法,按照第一预设迭代次数,生成用于验证第一服务器的身份合法性的零知识证明密钥对ZKSM2,并采用第一服务器生成的随机数、第一服务器的特征数据和该ZKSM2中的私钥,生成零知识证明值。
可选地,由于第一盐值包括用于表示零知识证明的第一字符串,以及用于表示零知识证明口令的生成时间的第一时间戳。若零知识证明口令周期性更改,则零知识证明值也随之周期性更改,因此,可以保证生成的零知识证明值的安全性。
在一种实施例中,第一服务器用于通过以下方式实现根据第一服务器生成的随机数、第一服务器的特征数据和零知识证明密钥对中的私钥,得到零知识证明值:确定特征数据和私钥之间的第一点乘值;确定随机数和第一点乘值之间的第一和值;确定预设值和随机数之间的第二点乘值;将第一和值和第二点乘值,确定为零知识证明值。
在该实施例中,可以采用以下公式得到第一服务器的零知识证明值:
Z =random [+] feature[] K (1)
R=random[]G (2)
其中,Z和R均用于表示第一服务器的零知识证明值;random用于表示第一服务器生成的随机数;feature用于表示第一服务器的特征数据;K用于表示ZKSM2的私钥;G用于表示椭圆曲线上的一个固定点,也即预设值。
可选地,通过零知识证明值,可以验证第一服务器的身份合法性,从而可以避免由于第一服务器的身份不合法导致的数据同步错误,可以提高第一服务器与第二服务器之间的数据同步的准确性和成功率。
在一种实施例中,第二服务器用于通过以下方式验证第一服务器的身份:确定特征数据和零知识证明密钥对中的公钥之间的第三点乘值;确定第二点乘值和第三点乘值之间的第二和值;确定第一和值与预设值之间的第四点乘值;若第二和值与第四点乘值相等,生成验证成功响应消息;若第二和值与第四点乘值不相等,生成验证失败响应消息。
在该实施例中,第一服务器生成零知识证明值之后,向第二服务器发送零知识证明值,第二服务器根据接收到的零知识证明值,可以采用以下公式验证第一服务器的身份合法性:
Z[]G = (R + feature[/>]PK) (3)
其中,PK用于表示ZKSM2的公钥。
在上述实施例中,若第二服务器根据Z和R,验证Z[ ]G 等于 (R + feature[/>]PK),则认为第一服务器的身份合法。因此,可以生成验证成功响应消息,以告知第三方的管理系统第一服务器的身份合法。若第二服务器根据Z和R,验证Z[/>]G 不等于 (R +feature[/>]PK) ,则认为第一服务器的身份不合法。因此,可以生成验证失败响应消息,以告知第三方的管理系统第一服务器的身份不合法。
可选地,通过验证第一服务器的身份合法性,可以避免由于第一服务器的身份不合法导致的数据同步错误,可以提高第一服务器与第二服务器之间的数据同步的准确性和成功率。
可选地,第二服务器对第一服务器的身份合法性进行证明校验之后,可以将证明记录存储至证明记录库中,防止零知识证明口令泄漏导致的重放攻击。第二服务器一旦检测到非法的服务器节点,则表示零知识证明口令已经泄漏,需要终止同步服务。可选地,可以定期对证明记录库进行清理。
在一种实施例中,特征数据的个数为多个,随机数的个数为多个。
在该实施例中,特征数据feature在不可知的情况下不可伪造,因此,可以多设置几个feature来伪造零知识证明值,以保证更好的安全性。以下是伪造零知识证明值的计算过程:
R'=ZG-feature/>PK (4)
Z'= (R' + feature PK) / G (5)
其中,R'和Z'均用于表示第一服务器的伪造的零知识证明值。
在上述实施例中,因为随机数random是随机的,无法对random进行知识抽取,因此,第一服务器可以多生成几个随机数random,以保证第二服务器对第一服务器的身份合法性进行验证的准确性。
Z1 = random1 + feature K (6)
Z2 = random2 + feature K (7)
Z1-Z2=random1-random2 (8)
在一种实施例中,数据同步服务是通过以下方式创建并启动的:调用SDK创建数据同步服务;调用服务初始化接口,对数据同步服务进行初始化操作;调用数据同步服务启动接口,启动初始化后的数据同步服务;初始化操作包括以下至少一项:设置数据同步口令;设置零知识证明口令;设置第一服务器和/或第二服务器的特征数据,特征数据包括以下至少一项:序列号、物理地址和数据同步口令的哈希值;设置第一服务器和第二服务器之间的主备模式;设置第一服务器的网络协议地址、第二服务器的网络协议地址、第一服务器的对外服务端口和第二服务器的对外服务端口。
在该实施例中,数据同步服务可以是预先创建好的。可以调用数据同步服务的SDK来创建数据同步服务,并在数据同步服务创建完成之后,调用服务初始化接口,对数据同步服务进行初始化操作。
可选地,服务初始化接口可以为:
datasync_init(zkpasswd,passwd,mode,serverList,queryByPrimaryKeyList,insertByPrimaryKeyList,featureList)
也即,对数据同步服务进行初始化操作,可以包括:
设置零知识证明口令zkpasswd。
设置数据同步口令passwd。
设置第一服务器和第二服务器之间的主备模式mode。
设置第一服务器的网络协议地址、第二服务器的网络协议地址、第一服务器的对外服务端口和第二服务器的对外服务端口。也即,设置服务器清单serverList(包括第一服务器的网络协议地址、第二服务器的网络协议地址),设置对外服务端口清单,例如,可以包括新增数据接口清单(例如,insertByPrimaryKeyList)和查询接口清单(例如,queryByPrimaryKeyList),还可以包括删除数据接口清单、修改数据接口清单等。
设置第一服务器和/或第二服务器的特征数据featureList。
在上述实施例中,对数据同步服务进行初始化操作之后,可以通过调用数据同步服务启动接口datasync_start_service(),启动初始化后的数据同步服务,以检测第一服务器和第二服务器之间的数据是否同步,从而在第一服务器和第二服务器之间的数据不同步时,可以及时对待同步数据进行数据同步。
在一种实施例中,传输加密密钥是通过以下方式得到的:根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成传输加密密钥,第二盐值包括第二字符串和第二时间戳,第二字符串用于表示数据同步,第二时间戳用于表示数据同步口令的生成时间。
在该实施例中,为了保证待同步数据在同步过程中的安全性,可以根据数据同步服务中的数据同步口令,派生得到传输加密密钥,然后采用该传输加密密钥对待同步数据进行加密,这样,待同步数据在同步过程中为加密状态,也就不会泄露密钥数据。
具体地,可以根据数据同步口令和预先设置的第二盐值,采用PRF算法,按照第二预设迭代次数,生成传输加密密钥。由于第二盐值包括用于表示数据同步的第二字符串,以及用于表示数据同步口令的生成时间的第二时间戳。若数据同步口令周期性更改,则传输加密密钥也随之周期性更改,因此,可以保证生成的传输加密密钥的安全性。
可选地,在根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成传输加密密钥的同时,还可以生成用于验证数据完整性的验证密钥,该验证秘钥也可以根据数据同步口令的更改周期,随之周期性更改,以保证生成的验证密钥的安全性。
在一种实施例中,第一服务器与第二服务器之间的数据不同步,包括:第一服务器的待同步日志文件中存在变更数据;或,第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致。
在该实施例中,可以实时监听第一服务器的待同步日志文件,一旦监听到第一服务器的待同步日志文件中存在变更数据,则表示第一服务器中的数据与第二服务器之间的数据不同步;或者,若检测到第一服务器的第一数据库中的数据与第二服务器的第二数据库中的数据不一致,则表示第一服务器中的数据与第二服务器之间的数据不同步。
在一种实施例中,若第一服务器的待同步日志文件中发生数据变更,则数据同步指令用于指示第一服务器执行以下数据同步操作:调用数据同步服务中封装的目标接口,在待同步日志文件中获取变更数据,目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作;将变更数据,确定为待同步数据;生成携带待同步数据的数据同步请求;向第二服务器发送数据同步请求,以请求第二服务器对待同步数据进行同步处理。
在该实施例中,第一服务器对应的业务系统可以调用数据同步服务,生成变更数据,并将变更数据存储至第一服务器的待同步日志文件中。若第一服务器检测到第一服务器的待同步日志文件中发生数据变更,则可以调用数据同步服务中封装的目标接口,在待同步日志文件中获取变更数据,并将该变更数据,作为待同步数据,生成携带待同步数据的数据同步请求,以及向第二服务器发送数据同步请求,以请求第二服务器对待同步数据进行同步处理。可选地,待同步日志文件可以存储在第一服务器的数据库中。
具体地,服务器中可以包括多种类型的数据库,由于每种类型的数据库的具体读写方式可能存在差异,因此,可以在服务器的数据同步服务中预先封装统一的目标接口,通过该目标接口,可以实现对服务器中包括的任意类型的数据库进行数据读写操作。由于数据同步请求中携带待同步数据,因此,第二服务器在接收到数据同步请求之后,就可以对待同步数据进行存储,以完成待同步数据的数据同步处理。
可选地,由于目标接口可以实现对服务器中包括的任意类型的数据库进行数据读写操作,因此,无论待同步数据是哪种类型的数据库中的数据,都可以实现对待同步数据执行数据同步操作,从而解决数据库本身不携带同步机制导致的无法实现数据同步的问题。
可选地,第一服务器可以采用restfull数据协议基于http传输待同步数据。
可选地,第一服务器和第二服务器之间的数据同步操作的触发方式,可以包括实时触发和人工触发,实时触发可以包括:周期性同步、检测到第一服务器中的数据与第二服务器之间的数据不同步等。
在一种实施例中,第一服务器生成携带待同步数据的数据同步请求,包括:第一服务器根据数据同步口令,生成针对待同步数据的传输加密密钥;第一服务器根据传输加密密钥,对待同步数据进行加密处理,得到加密数据;第一服务器生成携带加密数据的数据同步请求。
在该实施例中,为了提高待同步数据在同步过程中的传输安全性,第一服务器可以根据数据同步服务中的数据同步口令,生成针对待同步数据的传输加密密钥,然后采用该传输加密密钥,对待同步数据进行加密,这样向第二服务器发送的就是加密数据,只有第二服务器可以解密,也就提高了待同步数据的传输安全性。
可选地,第一服务器对应的业务系统可以调用数据同步服务中封装的生成变更数据接口datasync_construct_data(content),生成变更数据,其中,content可以为数据同步请求的请求报文原文。
在一种实施例中,数据同步请求用于指示第二服务器通过以下方式对待同步数据进行同步处理:采用与传输加密密钥对应的传输解密密钥,对待同步数据进行解密处理,得到解密数据;若采用用于验证解密数据的数据完整性的验证密钥,对解密数据的数据完整性验证成功,则调用目标接口,对解密数据进行同步处理,验证密钥是通过数据同步口令和预先设置的第二盐值生成的。
在该实施例中,第二服务器在接收到数据同步请求之后,可以调用目标接口,执行针对待同步数据的同步操作,也即,根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成与传输加密密钥对应的传输解密密钥,以及用于验证数据完整性的验证密钥;根据传输解密密钥,对待同步数据进行解密处理,得到解密数据;若根据验证密钥对解密数据的数据完整性验证成功,则认为解密数据完整,从而调用目标接口,对解密数据进行存储,实现对待同步数据的数据同步处理。
可选地,由于目标接口可以用于对服务器中的任意类型的数据库进行数据读写操作,因此,针对第二服务器中任一类型的数据库,均可以通过调用目标接口,实现对待同步数据的数据同步操作,从而解决数据库本身不携带同步机制导致的无法实现数据同步的问题。
在一种实施例中,第一服务器与第二服务器之间的数据不同步,包括:第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致;数据同步指令用于指示第一服务器执行以下数据同步操作:向第二服务器发送数据拉取请求,以请求从第二数据库中拉取待同步数据,待同步数据为第二数据库中与第一数据库中的数据不一致的数据;获取来自第二服务器的待同步数据;采用与传输加密密钥对应的传输解密密钥,对待同步数据进行解密处理,得到解密数据;若采用用于验证解密数据的数据完整性的验证密钥,对解密数据的数据完整性验证成功,则调用数据同步服务中封装的目标接口,对解密数据进行同步处理,验证密钥是通过数据同步口令和预先设置的第二盐值生成的,目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作。
在该实施例中,若第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致,则第一服务器可以向第二服务器发送数据拉取请求,该数据拉取请求用于请求拉取第二数据库中的待同步数据。第二服务器接收到数据拉取请求之后,调用目标接口,从第二数据库中确定待同步数据,并向第一服务器发送待同步数据。
在上述实施例中,为了保证待同步数据在传输过程中的安全性,第二服务器可以根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成针对待同步数据的传输加密密钥,并采用该传输加密密钥,对待同步数据进行加密处理,以及向第一服务器发送加密后的待同步数据。第一服务器接收到待同步数据之后,可以根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成与传输加密密钥对应的传输解密密钥,以及用于验证数据完整性的验证密钥,并采用该传输解密密钥,对待同步数据进行解密处理,得到解密数据,以及采用验证密钥对解密数据的数据完整性进行验证,若验证成功,则认为解密数据完整,从而可以调用目标接口,将解密数据进行存储,实现对待同步数据的数据同步处理。
在一种可选的实施方式中,第一服务器和第二服务器在第一次进行数据同步时,同步全量数据,后续可以在检测到第一服务器与第二服务器之间数据不同步时,将待同步数据进行同步。
在一种可选的实施方式中,第一服务器或第二服务器存储待同步数据,完成对待同步数据进行同步之后,可以将同步完成的待同步数据写入到已同步的数据变更日志文件中,并将待同步数据中对应位置的state参数置为已同步状态对应的参数值。
在一种可选的实施方式中,待同步日志文件和已同步的数据变更日志文件,均可以按照预设时长进行分割保存,例如,按照30天进行分割保存,可以对30天内的待同步日志文件和已同步的数据变更日志文件进行查看,对保存时长超过30天的待同步日志文件和已同步的数据变更日志文件,可以进行清除。
在一种可选的实施方式中,除了通过在服务器的数据同步服务中封装目标接口,实现对服务器内的任意类型的数据库进行数据同步,还可以根据服务器内的数据库的类型,差异化定制该服务器的数据同步服务,实现对服务器内的任意类型的数据库进行数据同步。
在一种实施例中,第一服务器用于通过以下方式向第二服务器发送数据拉取请求:确定第一服务器和第二服务器之间的主备模式;若主备模式为第一服务器为主节点,第二服务器为备节点,则在主从切换后,向第二服务器发送数据拉取请求;若主备模式为第一服务器和第二服务器均为主节点,则在预设时长后重新检测第一数据库和第二数据库中的数据是否一致,若第一数据库和第二数据库中的数据仍不一致,则向第二服务器发送数据拉取请求。
在该实施例中,数据同步服务中初始化有第一服务器和第二服务器之间的主备模式。若该主备模式为一主多备模式,也即第一服务器为主节点,第二服务器(可以是多个服务器)为备节点,由于第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致,因此,可以认为当前的主节点出现异常,为了保证可以正常进行数据同步,可以选择一个第二服务器作为主节点,进行主从切换,此时,第一服务器变为备节点,第二服务器变为主节点,因此,第一服务器可以向第二服务器发送数据拉取请求,以请求从第二数据库中拉取待同步数据,并存储待同步数据,以实现对待同步数据的数据同步。
一主多备模式下的数据同步可以如图3所示,图3为本申请实施例提供的一主多备模式下的数据同步示意图。备节点可以通过同步管理工作站A(可以为浏览器)对备节点的数据同步服务进行初始化操作,以及对数据同步服务进行启停;主节点可以通过同步管理工作站B(可以为浏览器)对主节点的数据同步服务进行初始化操作,以及对数据同步服务进行启停。主节点可以在检测到实时触发或人工触发数据同步时,向备节点A和/或备节点B主动推送待同步数据,也可以在接收到备节点A和/或备节点B的用于主动拉取待同步数据的数据拉取请求后,向备节点A和/或备节点B发送待同步数据。
在上述实施例中,若主备模式为多主代理模式,也即,对于第一服务器来说,第一服务器为主节点,第二服务器为备节点,对于第二服务器来说,第二服务器为主节点,第一服务器为备节点,使用代理proxy调用各主节点。则该主备模式下,若第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致,则第一服务器可以在预设时长(例如,1-3秒(s))后重新检测第一数据库和第二数据库中的数据是否一致,若第一数据库和第二数据库中的数据仍不一致,则第一服务器可以向第二服务器发送数据拉取请求,以请求从第二数据库中拉取待同步数据,并存储待同步数据,以实现对待同步数据的数据同步。
多主代理模式下的数据同步可以如图4所示,图4为本申请实施例提供的多主代理模式下的数据同步示意图。各主节点可以通过同步管理工作站(可以为浏览器)对主节点的数据同步服务进行初始化操作,以及对数据同步服务进行启停,以及管理业务系统触发的数据变更。代理可以在检测到实时触发数据同步时,调用各主节点之间主动推送待同步数据,或主动拉取待同步数据。在图4中表示为,主节点A可以向主节点B主动推送待同步数据或主动拉取待同步数据,也可以向主节点C主动推送待同步数据或主动拉取待同步数据;主节点B可以向主节点C主动推送待同步数据或主动拉取待同步数据,也可以向主节点A主动推送待同步数据或主动拉取待同步数据;主节点C可以向主节点A主动推送待同步数据或主动拉取待同步数据,也可以向主节点B主动推送待同步数据或主动拉取待同步数据。
可选地,主动推送待同步数据可以通过主动同步推送接口datasync_push_data(content)实现,主动拉取待同步数据可以通过主动同步拉取接口datasync_pull_data(content)实现。
在一种实施例中,还包括:响应于检测到待同步数据同步失败,调用数据同步服务停止接口,停止数据同步服务。
在该实施例中,为了降低数据同步服务的计算量,降低计算资源浪费,检测到待同步数据同步失败,或检测到人工触发的停止指令,可以调用数据同步服务停止接口,停止数据同步服务的运行。
在一种实施例中,还包括:根据同步状态的标识信息、待同步数据的时间戳、零知识证明值、待同步数据所在服务器的物理地址,确定待同步数据的数据格式。
在该实施例中,通过统一待同步数据的数据格式,可以提高对待同步数据进行的数据同步的成功率。待同步数据的数据格式可以为:
state:timestamp:mac:zkcipher:cipher
其中,state用于标识待同步数据的同步状态,例如,state为0,标识待同步数据为待同步状态,state为1,标识待同步数据为已同步状态。
Timestamp为8字节时间戳。
Zkcipher为64字节基于Schnorr协议的实现的零知识证明值,可以采用密钥加密。
Cipher为引发数据变更的请求报文原文的密文,也即待同步数据,可以采用密钥加密。
mac为物理地址,可以对时间戳和引发数据变更的请求报文原文使用密钥计算cbcmac,mac的缓存时长可以为预设时长,相同mac的Cipher会被丢弃。
本申请还提供一种密钥数据同步装置。图5为本申请实施例提供的密钥数据同步装置的一种结构示意图。如图5所示,该密钥数据同步装置500包括:
第一同步模块501,用于响应于检测到第一服务器和第二服务器之间的数据不同步,向第一服务器发送身份验证指令,身份验证指令用于指示第一服务器向第二服务器发送零知识证明值,零知识证明值用于验证第一服务器的身份;
第二同步模块502,用于若接收到来自第二服务器的验证成功响应消息,向第一服务器发送数据同步指令,数据同步指令用于指示第一服务器执行对待同步数据的数据同步操作;
其中,待同步数据包括密钥数据,密钥数据用于对第一服务器或第二服务器的业务数据进行加密或解密;待同步数据为通过传输加密密钥进行加密后的数据,传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥。
可选地,第一服务器用于通过以下方式生成零知识证明值:根据数据同步服务中的零知识证明口令和预先设置的第一盐值,采用伪随机函数算法,按照第一预设迭代次数,生成零知识证明密钥对,第一盐值包括第一字符串和第一时间戳,第一字符串用于表示零知识证明,第一时间戳用于表示零知识证明口令的生成时间;根据第一服务器生成的随机数、第一服务器的特征数据和零知识证明密钥对中的私钥,得到零知识证明值。
可选地,第一服务器用于通过以下方式实现根据第一服务器生成的随机数、第一服务器的特征数据和零知识证明密钥对中的私钥,得到零知识证明值:确定特征数据和私钥之间的第一点乘值;确定随机数和第一点乘值之间的第一和值;确定预设值和随机数之间的第二点乘值;将第一和值和第二点乘值,确定为零知识证明值。
可选地,第二服务器用于通过以下方式验证第一服务器的身份:确定特征数据和零知识证明密钥对中的公钥之间的第三点乘值;确定第二点乘值和第三点乘值之间的第二和值;确定第一和值与预设值之间的第四点乘值;若第二和值与第四点乘值相等,生成验证成功响应消息;若第二和值与第四点乘值不相等,生成验证失败响应消息。
可选地,传输加密密钥是通过以下方式得到的:根据数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成传输加密密钥,第二盐值包括第二字符串和第二时间戳,第二字符串用于表示数据同步,第二时间戳用于表示数据同步口令的生成时间。
可选地,数据同步服务是通过以下方式创建并启动的:调用软件开发工具包SDK创建数据同步服务;调用服务初始化接口,对数据同步服务进行初始化操作;调用数据同步服务启动接口,启动初始化后的数据同步服务;初始化操作包括以下至少一项:设置数据同步口令;设置零知识证明口令;设置第一服务器和/或第二服务器的特征数据,特征数据包括以下至少一项:序列号、物理地址和数据同步口令的哈希值;设置第一服务器和第二服务器之间的主备模式;设置第一服务器的网络协议地址、第二服务器的网络协议地址、第一服务器的对外服务端口和第二服务器的对外服务端口。
可选地,第一服务器与第二服务器之间的数据不同步,包括:第一服务器的待同步日志文件中存在变更数据;数据同步指令用于指示第一服务器执行以下数据同步操作:调用数据同步服务中封装的目标接口,在待同步日志文件中获取变更数据,目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作;将变更数据,确定为待同步数据;生成携带待同步数据的数据同步请求;向第二服务器发送数据同步请求,以请求第二服务器对待同步数据进行同步处理。
可选地,数据同步请求用于指示第二服务器通过以下方式对待同步数据进行同步处理:采用与传输加密密钥对应的传输解密密钥,对待同步数据进行解密处理,得到解密数据;若采用用于验证解密数据的数据完整性的验证密钥,对解密数据的数据完整性验证成功,则调用目标接口,对解密数据进行同步处理,验证密钥是通过数据同步口令和预先设置的第二盐值生成的。
可选地,第一服务器与第二服务器之间的数据不同步,包括:第一服务器的第一数据库中的数据和第二服务器的第二数据库中的数据不一致;数据同步指令用于指示第一服务器执行以下数据同步操作:向第二服务器发送数据拉取请求,以请求从第二数据库中拉取待同步数据,待同步数据为第二数据库中与第一数据库中的数据不一致的数据;获取来自第二服务器的待同步数据;采用与传输加密密钥对应的传输解密密钥,对待同步数据进行解密处理,得到解密数据;若采用用于验证解密数据的数据完整性的验证密钥,对解密数据的数据完整性验证成功,则调用数据同步服务中封装的目标接口,对解密数据进行同步处理,验证密钥是通过数据同步口令和预先设置的第二盐值生成的,目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作。
可选地,第一服务器用于通过以下方式向第二服务器发送数据拉取请求:确定第一服务器和第二服务器之间的主备模式;若主备模式为第一服务器为主节点,第二服务器为备节点,则在主从切换后,向第二服务器发送数据拉取请求;若主备模式为第一服务器和第二服务器均为主节点,则在预设时长后重新检测第一数据库和第二数据库中的数据是否一致,若第一数据库和第二数据库中的数据仍不一致,则向第二服务器发送数据拉取请求。
本实施例提供的密钥数据同步装置,用于执行前述方法实施例中的密钥数据同步方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请还提供一种电子设备。图6为本申请实施例提供的电子设备的一种结构示意图。示例性地,该电子设备可以被提供为一计算机,例如上文的第一服务器、第二服务器或第三方的管理系统。参照图6,电子设备600包括处理组件601,其进一步包括一个或多个处理器,以及由存储器602所代表的存储器资源,用于存储可由处理组件601执行的计算机执行指令,例如应用程序。存储器602中存储的应用程序可以包括一个或一个以上的每一个对应于一组计算机执行指令的模块。此外,处理组件601被配置为执行计算机执行指令,以执行上述任一方法实施例。
电子设备600还可以包括一个电源组件603被配置为执行电子设备600的电源管理,一个有线或无线网络接口604被配置为将电子设备600连接到网络,和一个输入输出接口605,该输入输出接口605也可以称为I/O接口605。电子设备600可以操作基于存储在存储器602的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,计算机执行指令在被执行时用于实现方法实施例中提供的密钥数据同步方法的技术方案。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被执行时用于实现方法实施例中提供的密钥数据同步方法的技术方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (13)

1.一种密钥数据同步方法,其特征在于,包括:
响应于检测到第一服务器和第二服务器之间的数据不同步,向所述第一服务器发送身份验证指令,所述身份验证指令用于指示所述第一服务器向所述第二服务器发送零知识证明值,所述零知识证明值用于验证所述第一服务器的身份;
若接收到来自所述第二服务器的验证成功响应消息,向所述第一服务器发送数据同步指令,所述数据同步指令用于指示所述第一服务器执行对待同步数据的数据同步操作;
其中,所述待同步数据包括密钥数据,所述密钥数据用于对所述第一服务器或所述第二服务器的业务数据进行加密或解密;所述待同步数据为通过传输加密密钥进行加密后的数据,所述传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥;
所述第一服务器用于通过以下方式生成所述零知识证明值:
根据所述数据同步服务中的零知识证明口令和预先设置的第一盐值,采用伪随机函数算法,按照第一预设迭代次数,生成零知识证明密钥对,所述第一盐值包括第一字符串和第一时间戳,所述第一字符串用于表示零知识证明,所述第一时间戳用于表示所述零知识证明口令的生成时间;
根据所述第一服务器生成的随机数、所述第一服务器的特征数据和所述零知识证明密钥对中的私钥,得到所述零知识证明值。
2.根据权利要求1所述的密钥数据同步方法,其特征在于,所述第一服务器用于通过以下方式实现根据所述第一服务器生成的随机数、所述第一服务器的特征数据和所述零知识证明密钥对中的私钥,得到所述零知识证明值:
确定所述特征数据和所述私钥之间的第一点乘值;
确定所述随机数和所述第一点乘值之间的第一和值;
确定预设值和所述随机数之间的第二点乘值;
将所述第一和值和所述第二点乘值,确定为所述零知识证明值。
3.根据权利要求2所述的密钥数据同步方法,其特征在于,所述第二服务器用于通过以下方式验证所述第一服务器的身份:
确定所述特征数据和所述零知识证明密钥对中的公钥之间的第三点乘值;
确定所述第二点乘值和所述第三点乘值之间的第二和值;
确定所述第一和值与所述预设值之间的第四点乘值;
若所述第二和值与所述第四点乘值相等,生成所述验证成功响应消息;
若所述第二和值与所述第四点乘值不相等,生成验证失败响应消息。
4.根据权利要求1至3中任一项所述的密钥数据同步方法,其特征在于,所述传输加密密钥是通过以下方式得到的:
根据所述数据同步口令和预先设置的第二盐值,采用伪随机函数算法,按照第二预设迭代次数,生成所述传输加密密钥,所述第二盐值包括第二字符串和第二时间戳,所述第二字符串用于表示数据同步,所述第二时间戳用于表示所述数据同步口令的生成时间。
5.根据权利要求1至3中任一项所述的密钥数据同步方法,其特征在于,所述数据同步服务是通过以下方式创建并启动的:
调用软件开发工具包SDK创建所述数据同步服务;
调用服务初始化接口,对所述数据同步服务进行初始化操作;
调用数据同步服务启动接口,启动初始化后的所述数据同步服务;
所述初始化操作包括以下至少一项:
设置数据同步口令;
设置零知识证明口令;
设置所述第一服务器和/或所述第二服务器的特征数据,所述特征数据包括以下至少一项:序列号、物理地址和所述数据同步口令的哈希值;
设置所述第一服务器和所述第二服务器之间的主备模式;
设置所述第一服务器的网络协议地址、所述第二服务器的网络协议地址、所述第一服务器的对外服务端口和所述第二服务器的对外服务端口。
6.根据权利要求1至3中任一项所述的密钥数据同步方法,其特征在于,第一服务器与第二服务器之间的数据不同步,包括:所述第一服务器的待同步日志文件中存在变更数据;所述数据同步指令用于指示所述第一服务器执行以下数据同步操作:
调用所述数据同步服务中封装的目标接口,在所述待同步日志文件中获取所述变更数据,所述目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作;
将所述变更数据,确定为所述待同步数据;
生成携带所述待同步数据的数据同步请求;
向所述第二服务器发送所述数据同步请求,以请求所述第二服务器对所述待同步数据进行同步处理。
7.根据权利要求6所述的密钥数据同步方法,其特征在于,所述数据同步请求用于指示所述第二服务器通过以下方式对所述待同步数据进行同步处理:
采用与所述传输加密密钥对应的传输解密密钥,对所述待同步数据进行解密处理,得到解密数据;
若采用用于验证所述解密数据的数据完整性的验证密钥,对所述解密数据的数据完整性验证成功,则调用所述目标接口,对所述解密数据进行同步处理,所述验证密钥是通过所述数据同步口令和预先设置的第二盐值生成的。
8.根据权利要求1至3中任一项所述的密钥数据同步方法,其特征在于,第一服务器与第二服务器之间的数据不同步,包括:所述第一服务器的第一数据库中的数据和所述第二服务器的第二数据库中的数据不一致;所述数据同步指令用于指示所述第一服务器执行以下数据同步操作:
向所述第二服务器发送数据拉取请求,以请求从所述第二数据库中拉取所述待同步数据,所述待同步数据为所述第二数据库中与所述第一数据库中的数据不一致的数据;
获取来自所述第二服务器的所述待同步数据;
采用与所述传输加密密钥对应的传输解密密钥,对所述待同步数据进行解密处理,得到解密数据;
若采用用于验证所述解密数据的数据完整性的验证密钥,对所述解密数据的数据完整性验证成功,则调用所述数据同步服务中封装的目标接口,对所述解密数据进行同步处理,所述验证密钥是通过所述数据同步口令和预先设置的第二盐值生成的,所述目标接口用于实现对服务器中的任意类型的数据库进行数据读写操作。
9.根据权利要求8所述的密钥数据同步方法,其特征在于,所述第一服务器用于通过以下方式向所述第二服务器发送数据拉取请求:
确定所述第一服务器和所述第二服务器之间的主备模式;
若所述主备模式为所述第一服务器为主节点,所述第二服务器为备节点,则在主从切换后,向所述第二服务器发送所述数据拉取请求;
若所述主备模式为所述第一服务器和所述第二服务器均为主节点,则在预设时长后重新检测所述第一数据库和所述第二数据库中的数据是否一致,若所述第一数据库和所述第二数据库中的数据仍不一致,则向所述第二服务器发送所述数据拉取请求。
10.一种密钥数据同步装置,其特征在于,包括:
第一同步模块,用于响应于检测到第一服务器和第二服务器之间的数据不同步,向所述第一服务器发送身份验证指令,所述身份验证指令用于指示所述第一服务器向所述第二服务器发送零知识证明值,所述零知识证明值用于验证所述第一服务器的身份;
第二同步模块,用于若接收到来自所述第二服务器的验证成功响应消息,向所述第一服务器发送数据同步指令,所述数据同步指令用于指示所述第一服务器执行对待同步数据的数据同步操作;
其中,所述待同步数据包括密钥数据,所述密钥数据用于对所述第一服务器或所述第二服务器的业务数据进行加密或解密;所述待同步数据为通过传输加密密钥进行加密后的数据,所述传输加密密钥为通过预先创建的数据同步服务中的数据同步口令派生得到的密钥;
所述第一服务器用于通过以下方式生成所述零知识证明值:
根据所述数据同步服务中的零知识证明口令和预先设置的第一盐值,采用伪随机函数算法,按照第一预设迭代次数,生成零知识证明密钥对,所述第一盐值包括第一字符串和第一时间戳,所述第一字符串用于表示零知识证明,所述第一时间戳用于表示所述零知识证明口令的生成时间;
根据所述第一服务器生成的随机数、所述第一服务器的特征数据和所述零知识证明密钥对中的私钥,得到所述零知识证明值。
11.一种电子设备,包括:处理器,以及与所述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至9中任一项所述的密钥数据同步方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被执行时用于实现如权利要求1至9中任一项所述的密钥数据同步方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任一项所述的密钥数据同步方法。
CN202410329794.XA 2024-03-22 2024-03-22 密钥数据同步方法、装置和设备 Active CN117938548B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410329794.XA CN117938548B (zh) 2024-03-22 2024-03-22 密钥数据同步方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410329794.XA CN117938548B (zh) 2024-03-22 2024-03-22 密钥数据同步方法、装置和设备

Publications (2)

Publication Number Publication Date
CN117938548A CN117938548A (zh) 2024-04-26
CN117938548B true CN117938548B (zh) 2024-06-14

Family

ID=90764995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410329794.XA Active CN117938548B (zh) 2024-03-22 2024-03-22 密钥数据同步方法、装置和设备

Country Status (1)

Country Link
CN (1) CN117938548B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693324A (zh) * 2012-01-09 2012-09-26 西安电子科技大学 一种分布式数据库同步系统、同步方法和节点管理方法
CN116975901A (zh) * 2023-02-21 2023-10-31 腾讯科技(深圳)有限公司 基于区块链的身份验证方法、装置、设备、介质及产品

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110581768B (zh) * 2019-10-11 2022-08-02 上海应用技术大学 一种基于区块链零知识证明的注册登录系统及应用
CN112527901A (zh) * 2020-12-10 2021-03-19 杭州比智科技有限公司 数据存储系统、方法、计算设备及计算机存储介质
CN113486372A (zh) * 2021-07-05 2021-10-08 优车库网络科技发展(深圳)有限公司 数据备份方法、数据备份装置及服务器
CN114785812B (zh) * 2022-06-22 2022-10-21 浙商银行股份有限公司 一种基于零知识证明的区块链区块同步方法及装置
CN116781959A (zh) * 2023-07-21 2023-09-19 中国联合网络通信集团有限公司 内容同步方法、设备及存储介质
CN117728963B (zh) * 2024-02-18 2024-04-16 深圳市纽创信安科技开发有限公司 零知识证明方法、安全多方计算系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693324A (zh) * 2012-01-09 2012-09-26 西安电子科技大学 一种分布式数据库同步系统、同步方法和节点管理方法
CN116975901A (zh) * 2023-02-21 2023-10-31 腾讯科技(深圳)有限公司 基于区块链的身份验证方法、装置、设备、介质及产品

Also Published As

Publication number Publication date
CN117938548A (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
Bera et al. Designing blockchain-based access control protocol in IoT-enabled smart-grid system
TWI620087B (zh) 驗證伺服器、驗證方法及其電腦程式產品
US9853964B2 (en) System and method for authenticating the legitimacy of a request for a resource by a user
JP2926700B2 (ja) 通信および計算の安全を保障する方法
WO2020258837A1 (zh) 解锁方法、实现解锁的设备及计算机可读介质
CN106941404B (zh) 密钥保护方法及装置
CN112702318A (zh) 一种通讯加密方法、解密方法、客户端及服务端
JP2010514000A (ja) 電子装置にプログラム状態データをセキュアに記憶するための方法
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
Chang et al. A practical secure and efficient enterprise digital rights management mechanism suitable for mobile environment
CN114726536A (zh) 一种时间戳生成方法、装置、电子设备及存储介质
CN113242235A (zh) 一种对铁路信号安全通信协议rssp-i加密认证的系统及其方法
Miculan et al. Automated Symbolic Verification of Telegram's MTProto 2.0
Vangala et al. Blockchain-Based Robust Data Security Scheme in IoT-Enabled Smart Home.
CN117938548B (zh) 密钥数据同步方法、装置和设备
CN115549910B (zh) 一种数据传输方法、设备以及存储介质
CN116527261A (zh) 密钥恢复方法、电子设备、存储介质
Miculan et al. Automated verification of Telegram’s MTProto 2.0 in the symbolic model
CN115459929B (zh) 安全验证方法、装置、电子设备、系统、介质和产品
CN114338091B (zh) 数据传输方法、装置、电子设备及存储介质
CN115834149A (zh) 一种基于国密算法的数控系统安全防护方法及装置
CN115766119A (zh) 通信方法、装置、通信系统及存储介质
US8312277B2 (en) Method and system for secure communication between computers
CN115348054A (zh) 基于ipfs的区块链数据代理重加密模型
Bojanova et al. Cryptography classes in bugs framework (BF): Encryption bugs (ENC), verification bugs (VRF), and key management bugs (KMN)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant