本发明涉及计算机技术领域,尤其涉及数据传输方法、网络设备及计算机存储介质。
背景技术:
随着计算机技术的发展,信息安全显得尤为重要。目前,计算机系统中为提供信息安全防护机制,使用大量的对称密钥、非对称密钥以及共享密钥等密钥信息,这些密钥信息均属于敏感数据,一旦泄露将严重影响存储信息的安全性。
为保护敏感数据的机密性,现有技术提出如图1所示的多层密钥机制的结构示意图。如图1,该密钥机制包括根密钥、主密钥以及工作密钥。其中,根密钥位于多层密钥机制的底端,主要用于为上层密钥(如主密钥)提供机密性保护,例如根密钥用来对主密钥进行加密存储。主密钥用于为上层工作密钥提供机密性保护,同时自身受根密钥的保护。例如,主密钥用来对工作密钥进行加密保存。工作密钥用于直接对敏感数据、业务数据以及用户数据等数据进行加密保存等,该工作密钥包括但不限于加密密钥以及共享密钥等。
然而针对数据的安全需求,在存储系统的各网络节点之间如何实现敏感数据的安全共享,是一个亟需研究和解决的问题。
技术实现要素:
本发明实施例公开了数据传输方法、相关设备及计算机存储介质,能够解决现有数据传输方案中存在的安全性和可靠性不高等问题。
第一方面,本发明实施例公开提供了一种数据传输方法,应用在包括第一网络节点和第二网络节点在内的存储系统中,所述方法包括:第二网络节点根据可信平台模块tpm生成第二密钥对,该第二密钥对包括第二网络节点的加密密钥和第二网络节点的解密密钥。该tpm用于实现数据的安全存储,第二网络节点的解密密钥用于解密密文数据。第一网络节点向第二网络节点发送第一请求,该第一请求用于请求获取第二网络节点的加密密钥。相应地,第二网络节点响应第一请求,向第一网络节点发送第二网络节点的加密密钥,该第二网络节点的加密密钥用于第一网络节点对待同步的第一明文数据进行加密。
结合第一方面,在第一方面的第一种可能的实施方式中,第二网络节点调用tpm的creatwrapkey函数生成第二密钥对。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,第一网络节点获得第二网络节点的加密密钥后,根据第二网络节点的加密密钥对待同步的第一明文数据加密获得第一密文数据。第一网络节点向第二网络节点发送第一密文数据。相应地,第二网络节点接收第一密文数据。第二网络节点根据第二网络节点的解密密钥对第一密文数据解密,获得第一明文数据。为验证同步数据的正确性,第二网络节点可根据第一网络节点的加密密钥对第一明文数据加密获得第二密文数据,将第二密文数据发送给第一网络节点。便于第一网络节点根据第二密文数据对应的第二明文数据和第一明文数据确定两网络节点之间是否完成第一明文数据的同步。
结合第一方面或第一方面的第一种或第二种可能的实施方式,在第一方面的第三种可能的实施方式中,第一网络节点的加密密钥和第二网络节点的加密密钥互不相同。第二网络节点的解密密钥和第一网络节点的解密密钥互不相同。
结合第一方面或第一方面的第一种至第三种中的任一种可能的实施方式,在第一方面的第四种可能的实施方式中,第二网络节点的解密密钥以第二密钥句柄的形式呈现。第二网络节点中存储有第二网络节点的解密密钥和第二密钥句柄之间的对应关系,第二网络节点根据该第二密钥句柄和该对应关系,可获得第二密钥句柄对应的第二网络节点的解密密钥。
结合第一方面或第一方面的第一种至第四种中的任一种可能的实施方式,在第一方面的第五种可能的实施方式中,第一网络节点的解密密钥可以第一密钥句柄的形式呈现。第一网络节点中存储有第一网络节点的解密密钥和第一密钥句柄之间的对应关系,第一网络节点根据该第一密钥句柄和该对应关系,可获得第一密钥句柄对应的第一网络节点的解密密钥。
第二方面,本发明实施例提供一种数据传输方法,应用于第一网络节点侧,该方法包括:第一网络节点根据tpm生成第一密钥对,该第一密钥对包括第一网络节点的加密密钥和第一网络节点的解密密钥。该tpm用于实现数据的安全存储。该第一网络节点的解密密钥用于解密密文数据。第二网络节点向第一网络节点发送第二请求,该第二请求用于请求获取第一网络节点的加密密钥。相应地,第一网络节点响应第二请求,向第二网络节点发送第一网络节点的加密密钥,该第一网络节点的加密密钥用于对第一网络节点向第二网络节点同步的第一明文数据加密。
结合第二方面,在第二方面的第一种可能的实施方式中,第一网络节点调用tpm的creatwrapkey函数,生成第一密钥对。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,第一网络节点向第二网络节点发送第一请求,该第一请求用于请求获取第二网络节点的加密密钥。该第二网络节点的加密密钥由第二网络节点的tpm生成的。第一网络节点接收第二网络节点发送的第二网络节点的加密密钥,第一网络节点根据第二网络节点的加密密钥对待同步的第一明文数据加密,获得第一密文数据。进而将第一密文数据发送给第二网络节点,以同步第一密文数据。
结合第二方面或第二方面的第一种或第二种可能的实施方式,在第二方面的第三种可能的实施方式中,第一网络节点接收第二网络节点发送的第二密文数据,该第二密文数据为第二网络节点根据第一网络节点的加密密钥对第一明文数据加密获得的。第一网络节点根据第一网络节点的解密密钥对第二密文数据解密,获得第二明文数据。进而,第一网络节点根据第一明文数据和第二明文数据,确定第一网络节点和第二网络节点之间是否完成第一明文数据的同步。具体的,当第一明文数据和第二明文数据相同,则第一网络节点可确定这两个网络节点之间完成了第一明文数据的同步。如果第一明文数据和第二明文数据不相同,则第一网络节点可确定这两个网络节点之间未完成第一明文数据的同步。
结合第二方面或第二方面的第一种至第三种中任一种可能的实施方式,在第二方面的第四种可能的实施方式中,第一网络节点的加密密钥和第二网络节点的加密密钥互不相同。第二网络节点的解密密钥和第一网络节点的解密密钥互不相同。关于本发明实施例中未示出或未描述的内容,具体可参见前述第一方面所述实施例中的相关阐述,这里不再赘述。
第三方面,本发明实施例提供了一种第一网络设备,所述网络设备包括用于执行如上第二方面或第二方面的任意可能的实施方式中所描述的方法的功能模块或单元。
第四方面,本发明实施例提供了一种第二网络设备,所述网络设备包括用于执行如上第一方面或第一方面的任意可能的实施方式中所描述的方法的功能模块或单元。
第五方面,本发明实施例提供了一种第一网络设备,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第二方面或第二方面的任意可能的实施方式中所描述的方法。
第六方面,本发明实施例提供了一种第二网络设备,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法。
第七方面,本发明实施例提供了一种存储系统,包括第一网络节点和第二网络节点,其中,第一网络节点用于执行如上第二方面或第二方面的任意可能的实施方式中所描述的方法;第二网络节点用于执行如上第一方面或第一方面的任意可能的实施方式中所描述的方法。关于本发明实施例中未示出或未描述的内容,可参见前述实施例中的相关阐述,这里不再赘述。
第八方面,提供了一种计算机非瞬态(non-transitory)存储介质,所述计算机非瞬态存储介质存储了用于数据传输的程序代码。所述程序代码包括用于执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法的指令。
第九方面,提供了一种计算机非瞬态(non-transitory)存储介质,所述计算机非瞬态存储介质存储了用于数据传输的程序代码。所述程序代码包括用于执行上述第二方面或第二方面的任意可能的实施方式中所描述的方法的指令。
第十方面,提供了一种芯片产品,以执行上述第一方面或第一方面的任意可能的实施方式中的方法。
第十一方面,提供了一种芯片产品,以执行上述第二方面或第二方面的任意可能的实施方式中的方法。
本发明在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术中提供的一种多层密钥机制的结构示意图。
图2是现有技术中提供的一种数据同步传输的示意图。
图3是本发明实施例提供的一种存储系统的网络框架示意图。
图4a是本发明实施例提供的一种数据传输方法的流程示意图。
图4b是本发明实施例提供的另一种数据传输方法的流程示意图。
图5是本发明实施例提供的另一种数据传输方法的流程示意图。
图6是本发明实施例提供的一种网络设备的结构示意图。
图7是本发明实施例提供的另一种网络设备的结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
申请人提出本申请的过程中发现:由上图1可知在存储系统中,根密钥为保证整个存储系统安全的信任根,根密钥的安全性决定了整个存储系统的安全级别。这里以敏感数据为根密钥为例,下面阐述如何在存储系统中的各网络节点之间实现敏感数据的安全共享。
现有的根密钥同步传输方案中,采用同一密钥对待同步的根密钥明文加密传输,以保证根密钥的安全性。具体的,如图2以存储系统中包括节点a和节点b为例。节点a和节点b中部署有同步模块,该同步模块用于同步密钥,例如由软件生成的高级加密标准(advancedencryptionstandard,aes)密钥。节点a获得待同步的根密钥明文后,可通过可信平台模块(trustedplatformmodule,tpm)加密保存至磁盘中。同时,节点a可将根密钥明文同步发送给节点b,具体的,节点a从同步模块中获取aes密钥,利用aes密钥对根密钥明文加密,并将加密获得的根密钥密文发送给节点b。相应地,节点b接收根密钥密文后,从节点b的同步模块中获得aes密钥,利用该aes密钥对根密钥密文进行解密,以获得根密钥明文,从而实现了节点a和节点b之间的根密钥明文的同步传输。
然而在实践中发现,敏感数据(例如本例中的根密钥明文)采用的加解密钥均为节点自身存储的密钥,且每个节点采用的加解密钥都相同。可见,这样地数据同步方案存在安全性较低、可靠性不高的问题。
为解决现有数据传输方案中存在的安全性和可靠性不高等问题,本发明提出一种数据传输方法、所述方法适用的网络框架以及相关设备。
首先,参见图3是本发明实施例提供的一种网络框架示意图。如图3所示的网络框架示意图100包括:n个网络节点,n个网络节点中的任意两个网络节点可通过网络相互通信。每个网络节点中部署有可信平台模块tpm102,该tpm102中具体包括tpm硬件(也称为tpm芯片)1021、tpm驱动1022和tpm应用接口1023。可选地,每个存储节点中还部署有存储单元104。n为系统自定义设置的正整数。其中,tpm芯片1021中可包括处理器、rsa密钥生成单元、rsa签名和加密单元、随机数产生器和内部存储器。其中,rsa密钥生成单元用于根据rsa算法生成密钥,该密钥包括但不限于非对称加密密钥、签名密钥和工作密钥等等。rsa签名和加密单元用于根据密钥对数据进行诸如签名、加密等操作,该数据具体可为系统自定义的数据,例如用户数据、业务数据以及隐私数据等等。随机数产生器用于产生随机数,根据系统需求随机数产生器产生的随机数可作为密钥(例如根密钥),也可用于数据补位、数据的校验等等,本发明并不做限定。
处理器具体可包括但不限于中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等,本发明实施例并不做限定。
内部存储器,用于存储tpm芯片中的数据和程序代码。处理器可调用内部存储器中的程序代码,执行该程序代码对应的指令。
tpm驱动1022,用于驱动tpm芯片。具体的,tpm驱动提供面向tpm芯片的操作接口,通过该操作接口直接操作tpm芯片完成相应地功能操作,例如数据加密操作、数据解密操作等等。
tpm应用接口1024,用于面向应用程序提供tpm芯片的通信接口。具体的,网络节点中安装的应用程序可将待传输数据发送给tpm应用接口1024。该tpm应用接口接收该待传输数据后,可对待传输数据加密,进而将加密后的密文数据返回给应用程序。
本发明中,tpm应用接口1024具体可用于实现数据的加密和解密操作,例如利用tpm生成的加密密钥对明文数据进行加密以获得密文数据。可选地,tpm应用接口1024还可利用tpm生成的解密密钥对密文数据进行解密以获得相应地明文数据。
在实际应用中,tpm应用接口1024可为集成加密功能和解密功能一体的通信接口,也可为加密功能和解密功能拆分的多个接口。例如,该tpm应用接口可包括加密接口和解密接口,该加密接口用于实现数据的加密操作。该解密接口用于实现数据的解密操作等,本发明并不做限定。
本发明中涉及的明文数据是指未加密的数据。密文数据和明文数据是相对的,密文数据具体是指采用某种加密算法对明文数据进行加密处理后获得的数据。本发明涉及的加密算法包括但不限于以下中的任一项或多项的组合:数据加密标准算法(dataencryptionstandard,des)、3des算法,是基于des算法对一块数据用三个不同的密钥进行三次加密、国际数据加密算法(internationaldataencryptionalgorithm,idea)、数字签名算法(digitalsignaturealgorithm,dsa)以及高级加密标准(advancedencryptionstandard,aes)等等。
当网络节点上电时,在可信平台模块tpm初始化过程中,系统会调用tpm驱动提供的操作接口,利用tpm_createwrapkey函数生成相应地密钥对,该密钥对中的密钥具体可包括但不限于对称密钥和非对称密钥。以非对称密钥为例,该密钥对中包括有公钥和私钥,其中公钥支持共享,是公开的密钥,存储系统中的其他网络节点均可获知该网络节点的公钥。私钥是网络节点自身保留不公开的密钥,存储系统中的其他节点均不可知。为保证私钥的安全性,通常网络节点可调用tpm模块的密钥加载接口tpm_loadkey2,将私钥加载到tpm模块中,获得对应的私钥句柄(wrapkeyhandle),并以私钥句柄的形式对外呈现或存储。即是,网络节点中存储有私钥和私钥句柄的对应关系。当网络节点需使用私钥时,需根据私钥句柄和该对应关系,获得该私钥句柄对应的私钥。
在实际应用中,由于私钥的保密性要求较高,通常私钥用作密文数据的解密密钥。相应地,相比于私钥而言,公钥的保密性要求低一些,因此可将公钥用作明文数据的加密密钥。例如,在网络节点中存储安全性要求较高的明文数据,例如用户的隐私数据、业务数据等等,网络节点可利用该网络节点自身的公钥对明文数据加密后保存对应的密文数据,以提升数据存储的安全性。相应地,在网络节点需使用该明文数据时,可利用网络节点自身的私钥对存储的密文数据解密,以获得相应地明文数据,进而处理该明文数据。
具体的,网络节点可先获取自身节点存储的私钥句柄,然后根据私钥句柄和私钥之间的对应关系获得该私钥句柄对应的私钥。接着再利用获得的私钥对密文数据解密以获得相应地明文数据。
存储单元104,用于存储网络节点中的数据,例如加密后的密文数据、解密后的明文数据等等。该存储单元可包括但不限于存储器、硬盘(或磁盘)、缓存或其他具备存储功能的功能模块或设备。
请参见图4a,是本发明实施例提供的一种数据传输方法的流程示意图。如图4a所示的数据传输方法应用于存储系统中,该存储系统中包括有n个网络节点,每个网络节点部署有可信平台模块tpm。本发明下文以n个网络节点中包括第一网络节点和第二网络节点为例进行相关内容的阐述。该方法具体可包括如下实施步骤:
步骤s301、第一网络节点根据第二网络节点的加密密钥对待同步的第一明文数据加密,获得第一密文数据,第二网络节点的加密密钥由tpm生成。
本发明中,第一明文数据为待同步数据,其具体可为系统自定义的未加密数据,该数据包括但不限于用户数据、业务数据以及敏感数据等。其中,敏感数据又称隐私数据,是指对用户(或企业)敏感、需要保护的数据,例如用户的银行卡账号、银行密码、微信账号以及解锁密码等等。该第二网络节点的加密密钥可为第一网络节点中预先存储的,也可为第一网络节点即时从第二网络节点中获取的,具体在本发明下文详述。
步骤s302、第一网络节点向第二网络节点发送第一密文数据。相应地,第二网络节点接收第一密文数据。
步骤s303、第二网络节点根据第二网络节点的解密密钥对第一密文数据解密,获得第一明文数据。
在存储系统的各网络节点中同步第一明文数据的过程中,当前网络节点需利用下一网络节点的加密密钥对明文数据加密,获得对应的密文数据。相应地,下一网络节点可直接利用自身节点的解密密钥对密文数据进行解密,以实现明文数据的同步传输。相比于现有技术利用同一密钥实现待同步数据的加解密,能提升数据传输的安全性和可靠性。例如,本发明实施例上述步骤s301-s303所示,第一网络节点可利用第二网络节点的加密密钥对待同步的第一明文数据加密,以获得第一密文数据。进一步地,第一网络节点向第二网络节点发送第一密文数据。相应地,第二网络节点接收第一密文数据后,可利用第二网络节点的解密密钥对第一密文数据解密,以获得相应地第一明文数据。
在可选实施例中,步骤s303之前第二网络节点需获取第二网络节点的解密密钥。具体的,为保证解密密钥的安全性,第二网络节点中存储有解密密钥和解密密钥句柄的对应关系,且以解密密钥句柄的形式对外呈现。即是,第二网络节点在需获取第二网络节点的解密密钥时,可先从第二网络节点中直接获得解密密钥句柄,然后根据解密密钥和解密密钥句柄的对应关系,获得该解密密钥句柄对应的解密密钥,即第二网络节点的解密密钥。进一步,第二网络节点再利用第二网络节点的解密密钥对第一密文数据解密,以获得第一明文数据。
在可选实施例中,在数据加解密过程中,网络节点具体可利用tpm应用接口(具体可为tpm加密接口或tpm解密接口)实现数据的加解密。例如,步骤s301中第一网络节点可调用tpm加密接口,利用第二网络节点的加密密钥对待同步的第一明文数据加密,以获得第一密文数据,进而发送给第二网络节点。相应地,步骤s303中第二网络节点可调用tpm解密接口,利用第二网络节点的解密密钥对第一密文数据解密,以获得第一密文数据。
步骤s304、第二网络节点根据第一网络节点的加密密钥对第一明文数据加密,获得第二密文数据,第一网络节点的加密密钥由tpm生成。该第一网络节点的加密密钥可为第二网络节点中预先存储的,也可为第二网络节点即时从第一网络节点中获取的,具体在本发明下文详述。
步骤s305、第二网络节点向第一网络节点发送第二密文数据。相应地,第一网络节点接收该第二密文数据。
步骤s306、第一网络节点根据第一网络节点的解密密钥对第二密文数据解密,获得第二明文数据。
步骤s307、第一网络节点根据第一明文数据和第二明文数据,确定第一网络节点和第二网络节点之间是否完成第一明文数据的同步。
可理解的,为验证第一网络节点向第二网络节点加密发送的第一明文数据是否和待同步的第一明文数据相同,第二网络节点在解密第一密文数据获得第一明文数据后,可向第一网络节点再次验证该解密的第一明文数据。具体的,第二网络节点在解密第一密文数据获得第一明文数据后,可再次利用第一网络节点的加密密钥对第一明文数据加密,获得第二密文数据。第二网络节点向第一网络节点发送第二密文数据。相应地,第一网络节点接收第二密文数据后,可利用第一网络节点的解密密钥对第二密文数据解密,获得第二明文数据。关于第一网络节点如何获得第一网络节点的解密密钥,具体可参考前述步骤s303的相关阐述,这里不再赘述。同样地,关于网络节点(具体可为第一网络节点或第二网络节点)如何实现数据的加解密,可对应参考前述步骤s301和s303中的相关阐述,这里不再赘述。
进一步地,第一网络节点可根据第一明文数据和第二明文数据是否相同,确定这两个网络节点之间是否完成待同步的第一明文数据的同步。具体的,当第一明文数据和第二明文数据相同时,第一网络节点可确定当前在第一网络节点和第二网络节点之间已完成第一明文数据的同步。当第一明文数据和第二明文数据不相同时,第一网络节点可确定未完成第一网络节点和第二网络节点之间针对第一明文数据的同步。关于网络节点未完成第一明文数据同步的原因有很多,本发明并不做限定,例如加密或解密过程中使用的密钥不正确、密文数据解密时发生错误等等。
在可选实施例中,步骤s301之前,还可包括如图4b所示方法流程的相关步骤。请参见图4b,是本发明实施例提供的另一种数据传输方法的流程示意图。该方法包括如下实施步骤:
步骤s401、第一网络节点根据tpm生成第一密钥对,所述第一密钥对包括第一网络节点的加密密钥和第一网络节点的解密密钥。
本发明中,第一密钥对具体可为第一网络节点利用其内部署的tpm产生的,具体的,第一网络节点可调用tpm中由tpm驱动提供的操作接口的creatwrapkey函数来生成第一密钥对,该第一密钥对包括第一网络节点的加密密钥和解密密钥。可选地,该第一密钥对也可为第一网络节点通过软件方式生成的。例如,第一网络节点可调用预置的密钥函数生成第一密钥对,该预置密钥函数为系统自定义设置的,例如aes函数等,本发明并不做限定。
在实际应用中,该第一密钥对具体可为对称密钥对,或者非对称密钥对。通常,该第一密钥对为非对称密钥对,其具体可包括加密公钥和解密私钥,即本发明实施例所述的加密密钥和解密密钥。
步骤s402、第二网络节点根据tpm生成第二密钥对,所述第二密钥对包括第二网络节点的加密密钥和第二网络节点的解密密钥。
本发明中,第二密钥对为第二网络节点由软件方式生成的,或者根据第二网络节点中部署的tpm生成的,具体可参见步骤s401中的相关阐述,这里不再赘述。该第一密钥对和第二密钥对可以相同,也可不相同,本发明并不限定。在实际应用中,为保证数据的安全性,通常各网络节点对应生成的密钥对互不相同,例如这里的第一密钥对和第二密钥对不相同。即是,第一网络节点的加密密钥和第二网络节点的加密密钥互不相同。和/或,第一网络节点的解密密钥和第二网络节点的解密密钥互不相同。
步骤s403、第一网络节点向第二网络节点发送第一请求,该第一请求用于请求获取第二网络节点的加密密钥。相应地,第二网络节点接收该第一请求。
步骤s404、第二网络节点响应所述第一请求,向第一网络节点发送第二网络节点的加密密钥。相应地,第一网络节点接收第二网络节点的加密密钥。
步骤s405、第二网络节点向第一网络节点发送第二请求,该第二请求用于请求获取第一网络节点的加密密钥。相应地,第一网络节点接收第二请求。
步骤s406、第一网络节点响应第二请求,向第二网络节点发送第一网络节点的加密密钥。相应地,第二网络节点接收第一网络节点的加密密钥。
在实际应用中,第一网络节点和第二网络节点之间可通过提前交互请求响应消息,以获知对端网络节点的加密密钥。例如,第一网络节点可向第二网络节点发送第一请求消息,用于请求获取第一网络节点的加密密钥。相应地,第二网络节点接收该第一请求消息,并向第一网络节点发送相应地第一响应消息,该第一响应消息中携带有第二网络节点的加密密钥。可选地,第一网络节点获得该第二网络节点的加密密钥后,可将第二网络节点的加密密钥存储在自身节点中,便于后续第一网络节点直接从本地获取使用。
同样地,第二网络节点可向第一网络节点发送第二请求消息,用于请求获取第二网络节点的加密密钥。相应地,第一网络节点接收并响应第二请求消息,向第二网络节点发送第二响应消息,该第二响应消息中携带有第一网络节点的加密密钥。可选地,第二网络节点获得该第一网络节点的加密密钥后,可将第一网络节点的加密密钥存储在自身节点中,便于后续第二网络节点直接从本地获取使用。
可选地,本发明上述步骤s403-s404为第一网络节点获取第二网络节点的加密密钥的步骤,其具体可为第一网络节点预先实施获得的,也可为本发明上文在第一网络节点需使用第二网络节点的加密密钥(步骤s301)之前实施获得,本发明实施例不做限定。同样地,本发明上述步骤s405-s406步骤为第二网络节点获取第一网络节点的加密密钥的步骤,其可为第二网络节点预先实施获得的,也可为本发明上文在第二网络节点需使用第一网络节点的加密密钥(步骤s304)之前实施获得,本发明实施例并不做限定。其中,本发明实施例中上述步骤s403-s404和步骤s405-s406的实施顺序不做限定,例如步骤s403-s404可放在步骤s405-s406后面执行,本发明并不做限定。
需要说明的是,本发明实施例中,存储系统中包括的网络节点的数量并不做限定。本发明上文仅以两个网络节点为例,示例性阐述任意两个网络节点间实现第一明文数据的同步实施例。相应地,在存储系统中包括的网络节点的数量n大于2时,在n个网络节点间实现第一明文数据的同步时,当前网络节点同样需利用下一网络节点的加密密钥对明文数据加密获得密文数据。便于下一网络节点直接利用自身节点的解密密钥对密文数据进行解密,以完成明文数据的同步传输。依次类推,在最后一个网络节点(网络节点n)解密获得明文数据后,为验证明文数据同步的正确性,网络节点n还可利用第一网络节点的加密密钥对解密的明文数据加密,将加密后获得的密文数据发送给第一网络节点。第一网络节点利用自身节点的解密密钥对接收的密文数据解密,获得相应地明文数据,进一步确定解密获得的明文数据和待同步的明文数据是否相同,如果相同,则确定n个网络节点间完成了明文数据的同步。
示例性地,下面以n=3为例阐述数据同步的相关实施例。请参见图5,是本发明实施例提供的另一种数据传输方法的流程示意图。如图5所示的数据传输方法应用于存储系统中,该存储系统包括3个网络节点,分别为第一网络节点、第二网络节点以及第三网络节点。每个网络节点均部署有用于产生密钥对的tpm。该方法可包括如下实施步骤:
步骤s501、存储系统中的每个网络节点根据tpm生成对应的密钥对,该密钥对中包括该网络节点的加密密钥和该网络节点的解密密钥。
本发明实施例中,存储系统中的每个网络节点均可根据网络节点自身部署的tpm生成对应的密钥对。具体的,第一网络节点可根据tpm生成第一密钥对,该第一密钥对中包括第一网络节点的加密密钥和第一网络节点的解密密钥。同样地,第二网络节点可根据tpm生成第二密钥对,第二密钥对包括第二网络节点的加密密钥和第二网络节点的解密密钥。第三网络节点根据tpm生成第三密钥对,该第三密钥对包括第三网络节点的加密密钥和第三网络节点的解密密钥。
可选地,本发明实施例中涉及的三个密钥对中的任意两个密钥对可以相同,也可不相同。在实际应用中,通常第一密钥对、第二密钥对以及第三密钥对互不相同,具体可参考前述图4b所述实施例中的相关阐述,这里不再赘述。
步骤s502、第一网络节点向第二网络节点发送第一请求,该第一请求用于请求获取第二网络节点的加密密钥。相应地,第二网络节点接收第一请求。
步骤s503、第二网络节点响应第一请求,向第一网络节点发送第二网络节点的加密密钥。
步骤s504、第二网络节点向第三网络节点发送第二请求,该第二请求用于请求获取第三网络节点的加密密钥。相应地,第三网络节点接收第二请求。
步骤s505、第三网络节点响应第二请求,向第二网络节点发送第三网络节点的加密密钥。
步骤s506、第三网络节点向第一网络节点发送第三请求,该第三请求用于请求获取第一网络节点的加密密钥。相应地,第一网络节点接收第三请求。
步骤s507、第一网络节点响应第三请求,向第三网络节点发送第一网络节点的加密密钥。
具体的,上述步骤s502-s503为第一网络节点获取第二网络节点的加密密钥的实施步骤。步骤s504-s505为第二网络节点获取第三网络节点的加密密钥的实施步骤。步骤s506-s507为第三网络节点获取第一网络节点的加密密钥的实施步骤。关于上述步骤s502-s507具体可参见前述步骤s403-s406的相关阐述,这里不再赘述。
步骤s508、第一网络节点根据第二网络节点的加密密钥对待同步的第一明文数据加密,获得第一密文数据。
具体的,第一网络节点可利用tpm加密接口根据第二网络节点的加密密钥对待同步的第一明文数据加密,以获得第一密文数据。
步骤s509、第一网络节点向第二网络节点发送第一密文数据。相应地,第二网络节点接收第一密文数据。
步骤s510、第二网络节点根据第二网络节点的解密密钥对第一密文数据解密,获得第一明文数据。第二网络节点根据第三网络节点的加密密钥对第一明文数据加密,获得第二密文数据。
具体的,第二网络节点可利用tpm解密接口根据第二网络节点的解密密钥对第一密文数据解密,以获得第一明文数据。进一步地,利用tpm加密接口根据第三网络节点的加密密钥对第一明文数据加密,以获得第二密文数据。在实际应用中,tpm加密接口和tpm解密接口可为集成有加密和解密功能的接口,也可为功能拆分的两个接口等,具体可参见前述图3实施例的相关阐述,这里不再赘述。
步骤s511、第二网络节点向第三网络节点发送第二密文数据。相应地,第三网络节点接收第二密文数据。
步骤s512、第三网络节点根据第三网络节点的解密密钥对第二密文数据解密,获得第二明文数据。
本发明中,步骤s508-s512为三个网络节点(具体为第一网络节点、第二网络节点以及第三网络节点)之间同步第一明文数据的过程。关于网络节点如何实现数据的加解密具体可参见前述图4b所述实施例中的相关阐述,这里不再赘述。
步骤s513、第三网络节点根据第一网络节点的加密密钥对第二明文数据加密,获得第三密文数据。
步骤s514、第三网络节点向第一网络节点发送第三密文数据。相应地,第一网络节点接收第三密文数据。
步骤s515、第一网络节点根据第一网络节点的解密密钥对第三密文数据解密,获得第三明文数据。第一网络节点根据第一明文数据和第三明文数据,确定三个网络节点之间是否完成第一明文数据的同步。
为保证网络节点间数据同步的安全性和可靠性,还需验证网络节点间同步的明文数据是否一致。具体的,如本发明实施步骤s513-s515所述,第三网络节点解析获得第二明文数据后,可利用第一网络节点的加密密钥对第二明文数据加密,获得第三密文数据,并发送给第一网络节点。相应地,第一网络节点根据第一网络节点的解密密钥对接收的第三密文数据解密,获得第三明文数据。接着,第一网络节点判断第一明文数据和第三明文数据是否相同,如果相同,则可确定第一网络节点、第二网络节点以及第三网络节点这三个网络节点之间完成了针对第一明文数据的同步。反之,如果不相同,则可确定这三个网络节点并未完成第一明文数据的同步。关于本发明实施例中未描述的内容,可对应参见前述图4b所述实施例中的相关阐述,这里不再赘述。
通过实施本发明实施例,能够解决现有数据同步方案中存在的安全性和可靠性较低等问题,从而能够提升数据传输的安全性和可靠性。
结合上文图1-图5所述实施例中的相关描述,下面介绍本发明适用的网络设备。请参见图6是本发明实施例提供的一种网络设备的结构示意图。该网络设备600包括通信模块602和处理模块604。
在一种可能的实施例中,该网络设备600为第一网络设备。其中,处理模块604可用于对第一网络设备600的动作进行控制和管理。例如,处理模块604用于执行图4a中的步骤s302、s306以及s307,图4b中的步骤s401,图5中的步骤s508和s515,和/或用于执行文本所描述的技术的其他内容。通信模块602用于与其他模块或设备进行通信,例如,通信模块602用于执行图4a中的步骤s302,图4b中步骤s403以及s406,图5中步骤s502和s509,和/或用于执行文本所描述的技术的其他内容。
在另一种可能的实施例中,该网络设备600为第二网络设备。其中,处理模块604可用于对第一网络设备600的动作进行控制和管理。例如,处理模块604用于执行上述方法实施例中以除第一网络节点外的任一网络节点为执行主体的相关步骤,例如以第二网络节点为执行主体,具体可执行如图4a中步骤s303以及步骤s304,图4b中步骤s402,图5中步骤s510,和/或用于执行文本所描述的技术的其他内容。通信模块602用于与其他模块或设备进行通信,例如,通信模块602用于执行上述方法实施例中以除第一网络节点外的任一网络节点与其他网络节点相互的相关步骤,例如可执行图4a中步骤s305,图4b中的步骤s404,图5中步骤s503、s504、和s511,和/或用于执行文本所描述的技术的其他内容。
可选地,该网络设备600还可包括存储模块606。该存储模块606用于存储网络设备600的程序代码和数据,例如存储用于数据传输的程序代码。处理模块604用于调用该存储模块606中的程序代码以实现如上方法实施例中以任一网络节点(如第一网络节点或第二网络节点)为执行主体的实施步骤,和/或用于执行文本所描述的技术的其他内容步骤。
其中,处理模块604可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块602可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如通信模块与处理模块之间的接口、负载均衡装置与用户设备之间的接口等。存储模块606可以是存储器,或者其他用于提供存储功能的服务或模块。
当处理模块604为处理器,通信模块602为通信接口,存储模块606为存储器时,本发明实施例所涉及网络设备可以为图7所示的网络设备。
请参见图7所示,网络设备700包括一个或多个处理器701、通信接口702和存储器703,处理器701、通信接口702和存储器703可通过总线或者其它方式连接,本发明实施例以通过总线704连接为例。其中:
处理器701可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessingunit,cpu)。处理器701可用于运行相关的程序代码中以下任一项或多项功能模块的程序:通信模块、处理模块以及存储模块等。也就是说,处理器701执行程序代码可以实现通信模块以及处理模块等功能模块中的任一项或多项的功能。其中,关于所述通信模块以及处理模块具体可参见前述实施例中的相关阐述。
通信接口702可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块/设备进行通信。例如,本发明实施例中通信接口702具体可用于接收其他网络节点发送的密文数据,或向其他网络节点发送密文数据等。
存储器703可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器703还可以包括上述种类的存储器的组合。存储器703可用于存储一组程序代码,以便于处理器701调用存储器703中存储的程序代码以实现本发明实施例中涉及的通信模块和/或处理模块的功能。
需要说明的,图6或图7仅仅是本申请实施例的一种可能的实现方式,实际应用中,网络设备还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述任一方法实施例中的相关阐述,这里不再赘述。
本发明实施例还提供一种计算机非瞬态存储介质,所述计算机非瞬态存储介质中存储有指令,当其在处理器上运行时,图4a、图4b以及图5中任一方法实施例中所描述的方法流程得以实现。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图4a、图4b以及图5中任一方法实施例中所描述的方法流程得以实现。
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于网络设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。