CN112671530A - 一种数据处理方法、装置和用于数据处理的装置 - Google Patents
一种数据处理方法、装置和用于数据处理的装置 Download PDFInfo
- Publication number
- CN112671530A CN112671530A CN201911151577.1A CN201911151577A CN112671530A CN 112671530 A CN112671530 A CN 112671530A CN 201911151577 A CN201911151577 A CN 201911151577A CN 112671530 A CN112671530 A CN 112671530A
- Authority
- CN
- China
- Prior art keywords
- key
- security module
- master key
- handle
- key handle
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置。其中的方法包括:根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;获取所述第一安全模块返回的所述第一主密钥句柄;根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。本发明实施例可以提高密钥数据的安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和用于数据处理的装置。
背景技术
密码设备是具有某种密码功能或能完成某种密码工作任务的设备或模块的统称。例如密码模块、加密卡、USB Key(USB接口的硬件设备)、服务器密码机等。
通常,密码设备生成的密钥数据会直接发送给密钥使用方,导致密钥数据会暴露在内存中,存在安全隐患。
发明内容
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置,可以提高密钥数据的安全性。
为了解决上述问题,本发明实施例公开了一种数据处理方法,应用于第一方设备,所述方法包括:
根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
获取所述第一安全模块返回的所述第一主密钥句柄;
根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
另一方面,本发明实施例公开了一种数据处理装置,应用于第一方设备,所述装置包括:
第一调用模块,用于根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
第一获取模块,用于获取所述第一安全模块返回的所述第一主密钥句柄;
第二调用模块,用于根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
第二获取模块,用于获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
传输加密模块,用于在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
再一方面,本发明实施例公开了一种用于数据处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
获取所述第一安全模块返回的所述第一主密钥句柄;
根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
本发明实施例包括以下优点:
在本发明实施例中,第一方设备根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,并且获取所述第一安全模块返回的所述第一主密钥句柄;第一方设备根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄,并且获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;第一方设备在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
第一方设备可以调用第一安全模块,通过第一安全模块执行密钥计算,生成密钥数据,如主密钥和工作密钥。第一安全模块生成并保存密钥数据,可以仅向第一方设备返回密钥句柄而不返回密钥数据。由此可以避免在计算机内存中计算密钥所带来的安全风险,有效防止黑客程序窃取甚至篡改密钥数据,可以提高密钥数据的安全性,进而可以保证第一方设备和第二方设备通信过程中数据传输的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理装置实施例的结构框图;
图3是本发明的一种用于数据处理的装置800的框图;及
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,所述方法应用于第一方设备,具体可以包括如下步骤:
步骤101、根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
步骤102、获取所述第一安全模块返回的所述第一主密钥句柄;
步骤103、根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
步骤104、获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
步骤105、在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
本发明实施例提供的数据处理方法可应用于基于多方安全计算协议的运算场景。其中,所述多方安全计算协议可以利用参与协同计算的四个计算节点执行基于密文的计算。一个多方安全计算任务,一般会分配四个计算节点协作完成,这四个计算节点分别称为S1、S2、Sa、Sb,其中S1和S2可以为实体服务器,Sa和Sb可以为S1和S2上的虚拟服务器。
本发明实施例提供的数据处理方法可运行于第一方设备,所述第一方设备可以为通信双方中的发起方或者响应方。如果第一方设备为发起方(如客户端),则第二方设备为响应方(如服务端);或者,如果第一方设备为响应方,则第二方设备为发起方。所述第一方设备或者所述第二方设备具体可以为多方安全计算环境中的数据服务子***(数据源***)、计算网络子***(计算节点组成的计算网络)或者调度及管理子***等。
为便于描述,本发明实施例中均以第一方设备执行所述数据处理方法的过程为例进行说明,第二方设备执行所述数据处理方法的过程类似,相互参照即可。
在本发明实施例中,在第一方设备与第二方设备完成证书验证之后,第一方设备不是在计算机内存中执行密钥计算,而是调用第一安全模块,通过第一安全模块执行密钥计算,生成密钥数据。
所述第一安全模块可以为改造后的密码设备,所述密码设备可以包括加密卡、USBKey、服务器密码机等。在第一方设备调用第一安全模块之后,第一安全模块可以计算生成密钥数据,并且将密钥数据保存在第一安全模块中,仅向第一方设备返回密钥句柄而不返回密钥数据。所述密钥句柄用于指向所述第一安全模块中存储的密钥数据,例如,所述密钥句柄可以为第一安全模块中密钥数据的索引或者存储地址等。由于黑客程序可以容易窃取计算机内存中的密钥数据,而难以窃取密码设备中的密钥数据,即使黑客程序获取到第一安全模块返回的密钥句柄,也难以通过密钥句柄获取第一安全模块内存储的密钥数据。因此,通过本发明实施例,可以提高密钥数据的安全性。
在多方安全计算的环境中,通信双方通常使用的密钥包括:预主密钥、主密钥和工作密钥。第一方设备可以调用第一安全模块,通过第一安全模块计算生成预主密钥、主密钥和工作密钥中的至少一种。
具体地,第一方设备可以根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄。
在本发明实施例中,第一方设备和第一安全模块之间可以传递密钥句柄而不传递密钥数据。例如,在利用预主密钥生成主密钥的过程中,第一方设备可以根据第一预主密钥句柄,调用第一安全模块。其中,第一预主密钥句柄用于指向第一安全模块中的预主密钥。第一安全模块根据预主密钥句柄获取存储的预主密钥,进而可以根据预主密钥生成主密钥及所述主密钥对应的第一主密钥句柄,并且将第一主密钥句柄返回给第一方设备。其中,第一主密钥句柄用于指向第一安全模块中的主密钥。
第一方设备可以获取第一安全模块返回的第一主密钥句柄,并且根据所述第一主密钥句柄,调用所述第一安全模块。第一安全模块可以根据第一主密钥句柄获取存储的主密钥,进而可以根据主密钥生成工作密钥及所述工作密钥对应的工作密钥句柄。其中,工作密钥句柄用于指向第一安全模块中的工作密钥。
在本发明的一种可选实施例中,所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,具体可以包括:
根据所述第一预主密钥句柄,调用所述第一安全模块的第一接口,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄。
在本发明实施例中,所述第一安全模块可以包括第一接口和第二接口。第一方设备调用第一安全模块的第一接口,可以通过第一安全模块生成主密钥及所述主密钥对应的第一主密钥句柄。第一方设备调用第一安全模块的第二接口,可以通过第一安全模块生成工作密钥及所述工作密钥对应的工作密钥句柄。
所述根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄,包括:
根据所述第一主密钥句柄,调用所述第一安全模块的第二接口,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄。
在本发明实施例中,预主密钥、主密钥、以及工作密钥均由第一安全模块计算生成,并且都保存在第一安全模块中,可以有效防止密钥数据泄露,保证密钥数据的安全性。
在生成工作密钥后,为了进一步保证待传输数据的安全性,第一安全模块可以仅向第一方设备返回工作密钥句柄而不返回工作密钥。这样,在第一方设备需要利用工作密钥对待传输数据进行加密时,可以调用第一安全模块,向第一安全模块传入工作密钥句柄和待传输数据。第一安全模块根据工作密钥句柄获取存储的工作密钥,利用工作密钥对待传输数据进行加密,得到加密后的数据,再将加密后的数据返回第一安全模块。在此过程中,不仅工作密钥不会被泄露,而且待传输数据的加密过程在第一模块中执行,可以进一步保证待传输数据的安全性。
然而,在通信过程中,如果每一次都将待传输数据输入第一安全模块进行加密,不仅造成第一安全模块的计算压力较大,对第一安全模块的计算能力提出较高的要求,而且由于第一安全模块的计算过程需要花费一定的时间,因此可能会影响通信的实时性。
为了解决上述问题,本发明实施例可以提供如下两种可选方案:
方案一、第一安全模块向第一方设备返回工作密钥句柄,第一方设备获取所述第一安全模块返回的工作密钥句柄;第一方设备在与第二方设备进行数据传输的过程中,根据所述工作密钥句柄,调用第一安全模块对待传输数据进行加密。在方案一中,工作密钥存储在第一安全模块中,可以保证工作密钥的安全性。
方案二、第一安全模块向第一方设备返回工作密钥,第一方设备获取所述第一安全模块返回的工作密钥;第一方设备在与第二方设备进行数据传输的过程中,根据所述工作密钥对待传输数据进行加密。在方案二中,工作密钥可以存储在第一方设备中,可以提高第一方设备对待传输数据进行加密计算的效率,进而可以提高通信的实时性。
在实际应用中,本领域技术人员可以根据实际情况,灵活选择上述两种方案中的任意一种。例如,在对保密要求较高而对实时性要求不太高的场景下,可以将预主密钥、主密钥、以及工作密钥都保存在第一安全模块中,仅向第一方设备返回第一预主密钥句柄、第一主密钥句柄和工作密钥句柄。在对实时性要求较高的场景下,可以将预主密钥和主密钥保存在第一安全模块中,仅向第一方设备返回第一预主密钥句柄和第一主密钥句柄,而工作密钥在可以返回给第一方设备,保存在第一方设备中,以提高通信的实时性。
在本发明实施例中,可以提供两种获取第一预主密钥句柄的方式。
第一种方式:第一方设备通过调用第一安全模块生成预主密钥,并且获取第一安全模块返回的第一预主密钥句柄。第一方设备采用第二方设备的公钥对预主密钥进行加密,通过安全连接发送给第二方设备,第二方设备在其第二安全模块中利用私钥解密得到预主密钥,获取第二安全模块返回的第二预主密钥句柄。其中,第一预主密钥句柄用于指向所述第一安全模块中存储的预主密钥,第二预主密钥句柄用于指向所述第二安全模块中存储的预主密钥。
第二种方式:第一方设备与第二方设备基于共享参数协商所得到所述第一预主密钥句柄。
下面首先说明通过第一种方式协商预主密钥的具体过程。
在本发明的一种可选实施例中,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还可以包括:
步骤S11、调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄;
步骤S12、获取所述第一安全模块返回的所述第一预主密钥句柄。
第一安全模块还可以包括第三接口,第一方设备调用第一安全模块的第三接口,可以通过第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄,所述第一预主密钥句柄用于指向所述第一安全模块中的预主密钥。
在本发明的一种可选实施例中,所述调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄之后,所述方法还可以包括:
步骤S21、获取所述第一安全模块返回的所述预主密钥;
步骤S22、利用所述第二方设备的加密公钥对所述预主密钥进行加密,得到加密后的预主密钥;
步骤S23、将所述加密后的预主密钥发送至所述第二方设备,以使所述第二方设备将所述加密后的预主密钥输入第二安全模块进行解密并保存,以及获取所述第二安全模块返回的第二预主密钥句柄,所述第二预主密钥句柄对应于所述第二安全模块中的预主密钥。
可选地,第一方设备在获取第一安全模块返回的第一预主密钥句柄之后,还可以获取第一安全模块返回的预主密钥,并且利用所述第二方设备的加密公钥对所述预主密钥进行加密,得到加密后的预主密钥。通过安全通信连接,将所述加密后的预主密钥发送至所述第二方设备。
第二方设备接收到加密后的预主密钥之后,可以将加密后的预主密钥输入第二安全模块进行解密并保存。具体地,第二安全模块可以利用第二方设备的加密私钥对加密后的预主密钥进行解密,得到预主密钥,第二安全模块保存解密得到的预主密钥,并且向第二方设备返回第二预主密钥句柄,所述第二预主密钥句柄对应于所述第二安全模块中的预主密钥。也即所述第二预主密钥句柄用于指向所述第二安全模块中存储的预主密钥,所述第二预主密钥句柄可以为所述第二安全模块中的预主密钥的索引或者存储地址。
由此,通过第一种方式,第一方设备和第二方设备完成预主密钥的协商过程。
需要说明的是,在第一种方式中,第一方设备可以获取第一安全模块返回的预主密钥,导致预主密钥传出第一安全模块,导致预主密钥存在可能被泄露的风险。
因此,为了保证预主密钥的安全性,本发明实施例还可以采用第二种方式完成预主密钥的协商过程。在本发明的一种可选实施例中,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还可以包括:
基于共享参数,与所述第二方设备协商获得所述第一预主密钥句柄;其中,所述共享参数包括:双方临时公私钥对、双方身份标识、密钥数据长度。
具体地,第一方设备和第二方设备可以经过协商获取双方共有的共享参数,第一方设备和第二方设备分别调用各自的安全模块,根据所述共享参数以及指定的密码算法,分别计算生成预主密钥。
其中,所述第一方设备和所述第二方设备经过协商获取双方共有的共享参数的步骤,具体可以包括:
步骤S31、所述第一方设备调用所述第一安全模块,以获取所述第一安全模块生成的密钥参数;
步骤S32、通过安全通信连接,将所述密钥参数发送至所述第二方设备,以使所述第一方设备和所述第二方设备分别根据各自持有的密钥参数,组成双方共有的共享参数。
在本发明的一种应用示例中,第一方设备调用第一安全模块,生成第一方设备的密钥参数,具体可以包括第一方设备的临时公私钥、身份标识、以及密钥数据长度等参数。第二方设备调用第二安全模块,生成第二方设备的密钥参数,具体可以包括第二方设备的临时公私钥、身份标识、以及密钥数据长度等参数。第一方设备和第二方设备通过安全通信连接,将各自的密钥参数发送至对方,以使所述第一方设备和所述第二方设备分别根据各自持有的密钥参数,组成双方共有的共享参数。所述共享参数具体可以包括:双方临时公私钥对、双方身份标识、密钥数据长度等参数。
第一方设备根据协商得到的所述共享参数,调用第一安全模块,第一安全模块根据所述共享参数以及指定的密码算法,计算生成预主密钥,并且向第一方设备返回该预主密钥对应的第一预主密钥句柄。第二方设备根据所述共享参数,调用第二安全模块,第二安全模块根据所述共享参数以及指定的密码算法,计算生成预主密钥,并且向第二方设备返回该预主密钥对应的第二预主密钥句柄。由此,第一方设备和第二方设备完成预主密钥的协商过程,且此过程中预主密钥始终保存在第一安全模块和第二安全模块中,可以进一步保证预主密钥的安全性。
在本发明的一种可选实施例中,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还可以包括:
步骤S41、获取所述第一安全模块生成的随机数;
步骤S42、通过安全通信连接,将所述随机数发送至所述第二方设备,以使所述第一方设备和所述第二方设备分别根据各自持有的随机数,组成双方共有的共享随机数。
在本发明的一种应用示例中,假设第一方设备为client(客户端),第二方设备为server(服务端)。第一方设备可以调用第一安全模块,通过第一安全模块生成随机数,如client_random。同样地,第二方设备可以调用第二安全模块,通过第二安全模块生成随机数,如server_random。通过安全通信连接,第一方设备和第二方设备可以交换各自产生的随机数,以使所述第一方设备和所述第二方设备分别根据各自持有的随机数,组成双方共有的共享随机数。例如,可以根据client_random和server_random组成共享随机数。
所述共享随机数可以跟预主密钥一起,共同生成主密钥。可选地,所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,具体可以包括:
根据所述第一预主密钥句柄和所述共享随机数,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄和所述共享随机数生成主密钥及所述主密钥对应的第一主密钥句柄。
具体地,第一方设备可以根据所述第一预主密钥句柄和所述共享随机数,调用第一安全模块的第一接口,第一安全模块利用所述第一预主密钥句柄和所述共享随机数生成并保存主密钥,以及将主密钥对应的第一主密钥句柄返回给第一方设备。
在本发明的一种可选实施例中,所述根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密,具体可以包括:
根据所述工作密钥句柄,调用所述第一安全模块的第四接口,以使所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,并对所述待传输数据计算校验值进行完整性校验;或者
根据所述工作密钥,对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
本发明实施例可以提供两种加密方案,一种方案是第一安全模块在计算生成工作密钥之后,向第一方设备返回工作密钥句柄。第一方设备在对待传输数据进行加密时,根据所述工作密钥句柄,调用所述第一安全模块的第四接口,以使所述第一安全模块通过所述工作密钥句柄,获取存储的工作密钥,利用所述工作密钥对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
另一种方案是第一安全模块在计算生成工作密钥之后,向第一方设备返回工作密钥。第一方设备根据所述工作密钥,对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
在本发明的一种可选实施例中,所述工作密钥具体可以包括:加密密钥和校验密钥;所述工作密钥句柄具体可以包括:对应于所述第一安全模块中加密密钥的加密密钥句柄,以及对应于所述第一安全模块中校验密钥的校验密钥句柄。
其中,所述加密密钥用于对数据进行加密,得到加密数据。所述校验密钥用于对数据进行完整性校验。所述加密密钥句柄对应于所述第一安全模块中的加密密钥,也即所述加密密钥句柄用于指向所述第一安全模块中存储的加密密钥。所述校验密钥句柄对应于所述第一安全模块中的校验密钥,也即所述校验密钥句柄用于指向所述第一安全模块中存储的校验密钥。
可以理解,所述工作密钥除了可以包括上述加密密钥和校验密钥,还可以包括TLS(Transport Layer Security,安全传输层协议)所需的其他密钥,本发明实施例对所述工作密钥的具体类型不加以限制。
在本发明的一种可选实施例中,所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,具体可以包括:
步骤S51、所述第一安全模块根据所述加密密钥句柄,获取所述第一安全模块中的加密密钥,以及根据所述校验密钥句柄,获取所述第一安全模块中的校验密钥;
步骤S52、利用所述加密密钥对所述待传输数据进行加密,得到加密后的待传输数据,以及利用所述校验密钥对所述加密后的待传输数据计算消息散列值,得到加密后的待传输数据对应的消息散列值。
第一方设备可以调用第一安全模块的第四接口,向第一安全模块输入待传输数据和工作密钥句柄,所述工作密钥句柄可以包括加密密钥句柄和校验密钥句柄。第一安全模块根据加密密钥句柄,获取第一安全模块中保存的加密密钥,以及根据校验密钥句柄,获取第一安全模块中保存的校验密钥。第一方设备利用加密密钥对待传输数据进行加密,得到加密后的待传输数据,以确保数据的安全性;以及利用校验密钥对加密后的待传输数据计算消息散列值,得到加密后的待传输数据对应的消息散列值,以确保数据的完整性。
在本发明的一种可选实施例中,所述获取所述第一安全模块返回的工作密钥或者所述工作密钥对应的工作密钥句柄之后,所述方法还可以包括:
步骤S61、利用所述第一主密钥句柄计算握手结束消息的散列值,得到散列后的握手结束消息;
步骤S62、向所述第二方设备发送所述散列后的握手结束消息。
在第一方设备和第二方设备的通信过程中,握手结束过程用于验证密钥交换是否成功。本发明实施例还可以对握手接收消息进行加密以及校验,以保证握手接收消息的安全性和完整性。
具体地,假设第一方设备为握手结束消息的发起方,则第一方设备可以根据握手结束消息调用第一安全模块,第一安全模块利用第一主密钥句柄对握手结束消息计算散列值,得到散列后的握手结束消息,并且向握手结束消息的响应方(如第二方设备)发送所述散列后的握手结束消息。其中,所述散列值具体可以为握手结束消息的MAC值,用于校验握手结束消息的完整性。
进一步地,第一方设备还可以根据握手结束消息以及工作密钥句柄,调用第一安全模块,第一安全模块利用工作密钥句柄中的加密密钥句柄对握手结束消息进行加密,以及利用工作密钥句柄中的校验密钥句柄对加密后的握手结束消息进行签名。第二方设备接收到第一方设备的握手结束消息后调用第二安全模块完成握手结束消息的校验,握手过程结束。
在本发明的一种可选实施例中,所述方法还可以包括:
所述第一方设备和第二方设备在通信结束后,分别通过各自的安全模块销毁本次通信过程中产生的预主密钥、主密钥和工作密钥。
具体地,在第一方设备和第二方设备的本次通信结束后,第一方设备可以向第一安全模块发送密钥销毁指令,第一安全模块接收到密钥销毁指令之后,执行密钥销毁操作,以销毁本次通信过程中所产生的预主密钥、主密钥和工作密钥。例如,删除第一安全模块中存储的本次通信过程中所产生的预主密钥、主密钥和工作密钥。同样地,第二方设备可以向第二安全模块发送密钥销毁指令,第二安全模块接收到密钥销毁指令之后,执行密钥销毁操作,以销毁本次通信过程中所产生的预主密钥、主密钥和工作密钥。例如,删除第二安全模块中存储的本次通信过程中所产生的预主密钥、主密钥和工作密钥。由此,可以避免第一安全模块和第二安全模块中存储大量无用的密钥数据,造成资源浪费的问题。
综上,在本发明实施例中,第一方设备根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,并且获取所述第一安全模块返回的所述第一主密钥句柄;第一方设备根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄,并且获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;第一方设备在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
通过本发明实施例,第一方设备不是在计算机内存中执行密钥计算,而是调用第一安全模块,通过第一安全模块执行密钥计算,生成密钥数据,如主密钥和工作密钥,并且将密钥数据保存在第一安全模块中,可以仅向第一方设备返回密钥句柄而不返回密钥数据。由此可以避免在计算机内存中计算密钥所带来的安全风险,有效防止黑客程序窃取甚至篡改密钥数据,可以提高密钥数据的安全性,进而可以保证第一方设备和第二方设备通信过程中数据传输的安全性。
为了更清楚地描述本发明实施例提供的数据处理方法,下面通过具体示例详细说明所述数据处理方法的步骤,在该示例中,第一方设备为发起方(client),第二方设备为响应方(server),具体可以包括如下步骤:
第一步:握手开始过程,发起方(client)和响应方(server)双方交换hello消息,双方各自通过其安全模块产生随机数并完成交换过程。
具体地,发起方可以通过第一安全模块产生随机数client_random,响应方可以通过第二安全模块产生随机数server_random。
通过安全通信连接,发起方和响应方交换各自产生的随机数,以使发起方和响应方分别根据各自持有的随机数,组成双方共有的共享随机数。
第二步:身份验证过程,发起方和响应方基于数字证书的验证方式完成双向认证的过程。
第三步:密钥交换过程,协商产生预主密钥。
其中,协商产生预主密钥的过程可以采用前述两种方式中的任意一种。
以第二种方式为例,发起方调用第一安全模块生成密钥参数,通过安全通信连接,将所述密钥参数发送至所述响应方,以使所述发起方和所述响应方分别根据各自持有的密钥参数,组成双方共有的共享参数。发起方根据所述共享参数,调用第一安全模块,第一安全模块根据该共享参数和指定的密码算法,生成预主密钥及所述预主密钥对应的第一预主密钥句柄,发起方获取第一安全模块返回的第一预主密钥句柄。
同样地,响应方根据所述共享参数,调用第二安全模块,第二安全模块根据该共享参数和指定的密码算法,生成预主密钥及所述预主密钥对应的第二预主密钥句柄,响应方获取第二安全模块返回的第二预主密钥句柄。
第四步:密钥产生过程,发起方和响应方调用各自的安全模块,生成主密钥以及工作密钥。
具体地,发起方根据第一预主密钥句柄和第一步协商得到的共享随机数,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄和所述共享随机数,生成主密钥及该主密钥对应的第一主密钥句柄;发起方获取所述第一安全模块返回的所述第一主密钥句柄,并且根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及该工作密钥对应的第一工作密钥句柄;发起方获取所述第一安全模块返回的工作密钥或者第一工作密钥句柄,所述第一工作密钥句柄包括:第一加密密钥句柄和第一校验密钥句柄。
同样地,响应方根据第二预主密钥句柄和第一步协商得到的共享随机数,调用第二安全模块,以使所述第二安全模块利用所述第二预主密钥句柄和所述共享随机数,生成主密钥及该主密钥对应的第二主密钥句柄;响应方获取所述第二安全模块返回的第二主密钥句柄,并且根据所述第二主密钥句柄,调用所述第二安全模块,以使所述第二安全模块利用所述第二主密钥句柄生成工作密钥及该工作密钥对应的第二工作密钥句柄;响应方获取所述第二安全模块返回的工作密钥或者第二工作密钥句柄,所述第二工作密钥句柄包括:第二加密密钥句柄和第二校验密钥句柄。
第五步:握手结束过程,验证密钥交换过程是否成功。
握手结束过程用于验证密钥交换过程是否成功,具体地,握手结束消息中发起方(如第一方设备)调用第一安全模块,第一安全模块利用第一主密钥句柄对握手结束消息计算散列值,得到散列后的握手结束消息,并且向响应方(如第二方设备)发送所述散列后的握手结束消息。其中,所述散列值具体可以为握手结束消息的MAC值,用于校验握手结束消息的完整性。
进一步地,发起方还可以调用第一安全模块,第一安全模块利用工作密钥的第一加密密钥句柄对握手结束消息进行加密,以及利用工作密钥的第一校验密钥句柄对加密后的握手结束消息进行签名。响应方接收到发起方的握手结束消息后调用第二安全模块完成校验,握手过程结束。
第六步:数据安全通信过程,发起方和响应方调用各自的安全模块对数据进行加密以及签名,从而进行数据安全传输。
具体地,响应方调用第二安全模块,所述第二安全模块根据第二加密密钥句柄,获取所述第二安全模块中的加密密钥,以及根据所述第二校验密钥句柄,获取所述第二安全模块中的校验密钥;利用所述加密密钥对所述待传输数据进行加密,得到加密后的待传输数据,以及利用所述校验密钥对所述加密后的待传输数据计算消息散列值,得到加密后的待传输数据对应的消息散列值,以对待传输数据进行签名。响应方将加密以及签名后的待传输数据,通过安全通信连接,发送至发起方。
发起方接收到响应方发送的数据之后,发起方调用第一安全模块,所述第一安全模块根据第一加密密钥句柄,获取所述第一安全模块中的加密密钥,以及根据所述第一校验密钥句柄,获取所述第一安全模块中的校验密钥;利用所述校验密钥,对接收到的数据进行完整性校验,以及利用加密密钥对接收到的数据进行解密,得到解密后的数据。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种数据处理装置实施例的结构框图,应用于第一设备,所述装置具体可以包括:
第一调用模块201,用于根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
第一获取模块202,用于获取所述第一安全模块返回的所述第一主密钥句柄;
第二调用模块203,用于根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
第二获取模块204,用于获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
传输加密模块205,用于在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
可选地,所述第一调用模块201,具体用于根据所述第一预主密钥句柄,调用所述第一安全模块的第一接口,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
所述第二调用模块203,具体用于根据所述第一主密钥句柄,调用所述第一安全模块的第二接口,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄。
可选地,所述装置还可以包括:
第三调用模块,用于调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄;
第三获取模块,用于获取所述第一安全模块返回的所述第一预主密钥句柄。
可选地,所述装置还可以包括:
预主密钥协商模块,用于基于共享参数,与所述第二方设备协商获得所述第一预主密钥句柄;其中,所述共享参数包括:双方临时公私钥对、双方身份标识、密钥数据长度。
可选地,所述装置还可以包括:
第四获取模块,用于获取所述第一安全模块返回的所述预主密钥;
第一加密模块,用于利用所述第二方设备的加密公钥对所述预主密钥进行加密,得到加密后的预主密钥;
第一发送模块,用于将所述加密后的预主密钥发送至所述第二方设备,以使所述第二方设备将所述加密后的预主密钥输入第二安全模块进行解密并保存,以及获取所述第二安全模块返回的第二预主密钥句柄,所述第二预主密钥句柄对应于所述第二安全模块中的预主密钥。
可选地,所述装置还可以包括:
第五获取模块,用于获取所述第一安全模块生成的随机数;
第二发送模块,用于通过安全通信连接,将所述随机数发送至所述第二方设备,以使所述第一方设备和所述第二方设备分别根据各自持有的随机数,组成双方共有的共享随机数;
所述第一调用模块,具体用于根据所述第一预主密钥句柄和所述共享随机数,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄和所述共享随机数生成主密钥及所述主密钥对应的第一主密钥句柄。
可选地,所述传输加密模块205,具体可以包括:
第二加密模块,用于根据所述工作密钥句柄,调用所述第一安全模块的第四接口,以使所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,并对所述待传输数据计算校验值进行完整性校验;或者
第三加密模块,用于根据所述工作密钥,对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
可选地,所述工作密钥包括:加密密钥和校验密钥;所述工作密钥句柄包括:对应于所述第一安全模块中加密密钥的加密密钥句柄,以及对应于所述第一安全模块中校验密钥的校验密钥句柄。
可选地,所述第二加密模块,具体可以包括:
密钥获取子模块,用于所述第一安全模块根据所述加密密钥句柄,获取所述第一安全模块中的加密密钥,以及根据所述校验密钥句柄,获取所述第一安全模块中的校验密钥;
数据加密子模块,用于利用所述加密密钥对所述待传输数据进行加密,得到加密后的待传输数据,以及利用所述校验密钥对所述加密后的待传输数据计算消息散列值,得到加密后的待传输数据对应的消息散列值。
可选地,所述装置还可以包括:
消息散列模块,用于利用所述第一主密钥句柄计算握手结束消息的散列值,得到散列后的握手结束消息;
第三发送模块,用于向所述第二方设备发送所述散列后的握手结束消息。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;获取所述第一安全模块返回的所述第一主密钥句柄;根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
图3是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理***,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图4是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作***1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据处理方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据处理方法,所述方法包括:根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;获取所述第一安全模块返回的所述第一主密钥句柄;根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
本发明实施例公开了A1、一种数据处理方法,应用于第一方设备,包括:
根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
获取所述第一安全模块返回的所述第一主密钥句柄;
根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
A2、根据A1所述的方法,所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,包括:
根据所述第一预主密钥句柄,调用所述第一安全模块的第一接口,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
所述根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄,包括:
根据所述第一主密钥句柄,调用所述第一安全模块的第二接口,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄。
A3、根据A1所述的方法,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还包括:调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄;
获取所述第一安全模块返回的所述第一预主密钥句柄。
A4、根据A1所述的方法,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还包括:
基于共享参数,与所述第二方设备协商获得所述第一预主密钥句柄;其中,所述共享参数包括:双方临时公私钥对、双方身份标识、密钥数据长度。
A5、根据A3所述的方法,所述调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄之后,所述方法还包括:
获取所述第一安全模块返回的所述预主密钥;
利用所述第二方设备的加密公钥对所述预主密钥进行加密,得到加密后的预主密钥;
将所述加密后的预主密钥发送至所述第二方设备,以使所述第二方设备将所述加密后的预主密钥输入第二安全模块进行解密并保存,以及获取所述第二安全模块返回的第二预主密钥句柄,所述第二预主密钥句柄对应于所述第二安全模块中的预主密钥。
A6、根据A1所述的方法,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还包括:
获取所述第一安全模块生成的随机数;
通过安全通信连接,将所述随机数发送至所述第二方设备,以使所述第一方设备和所述第二方设备分别根据各自持有的随机数,组成双方共有的共享随机数;
所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,包括:
根据所述第一预主密钥句柄和所述共享随机数,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄和所述共享随机数生成主密钥及所述主密钥对应的第一主密钥句柄。
A7、根据A1所述的方法,所述根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密,包括:
根据所述工作密钥句柄,调用所述第一安全模块的第四接口,以使所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,并对所述待传输数据计算校验值进行完整性校验;或者
根据所述工作密钥,对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
A8、根据A7所述的方法,所述工作密钥包括:加密密钥和校验密钥;所述工作密钥句柄包括:对应于所述第一安全模块中加密密钥的加密密钥句柄,以及对应于所述第一安全模块中校验密钥的校验密钥句柄。
A9、根据A8所述的方法,所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,包括:
所述第一安全模块根据所述加密密钥句柄,获取所述第一安全模块中的加密密钥,以及根据所述校验密钥句柄,获取所述第一安全模块中的校验密钥;
利用所述加密密钥对所述待传输数据进行加密,得到加密后的待传输数据,以及利用所述校验密钥对所述加密后的待传输数据计算消息散列值,得到加密后的待传输数据对应的消息散列值。
A10、根据A1所述的方法,所述获取所述第一安全模块返回的工作密钥或者所述工作密钥对应的工作密钥句柄之后,所述方法还包括:
利用所述第一主密钥句柄计算握手结束消息的散列值,得到散列后的握手结束消息;
向所述第二方设备发送所述散列后的握手结束消息。
本发明实施例公开了B11、一种数据处理装置,应用于第一方设备,包括:
第一调用模块,用于根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
第一获取模块,用于获取所述第一安全模块返回的所述第一主密钥句柄;
第二调用模块,用于根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
第二获取模块,用于获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
传输加密模块,用于在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
B12、根据B11所述的装置,所述第一调用模块,具体用于根据所述第一预主密钥句柄,调用所述第一安全模块的第一接口,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
所述第二调用模块,具体用于根据所述第一主密钥句柄,调用所述第一安全模块的第二接口,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄。
本发明实施例公开了C21、一种用于数据处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
获取所述第一安全模块返回的所述第一主密钥句柄;
根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
C22、根据C21所述的装置,所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,包括:
根据所述第一预主密钥句柄,调用所述第一安全模块的第一接口,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
所述根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄,包括:
根据所述第一主密钥句柄,调用所述第一安全模块的第二接口,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄。
C23、根据C21所述的装置,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄;
获取所述第一安全模块返回的所述第一预主密钥句柄。
C24、根据C21所述的装置,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
基于共享参数,与所述第二方设备协商获得所述第一预主密钥句柄;其中,所述共享参数包括:双方临时公私钥对、双方身份标识、密钥数据长度。
C25、根据C23所述的装置,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取所述第一安全模块返回的所述预主密钥;
利用所述第二方设备的加密公钥对所述预主密钥进行加密,得到加密后的预主密钥;
将所述加密后的预主密钥发送至所述第二方设备,以使所述第二方设备将所述加密后的预主密钥输入第二安全模块进行解密并保存,以及获取所述第二安全模块返回的第二预主密钥句柄,所述第二预主密钥句柄对应于所述第二安全模块中的预主密钥。
C26、根据C23所述的装置,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取所述第一安全模块生成的随机数;
通过安全通信连接,将所述随机数发送至所述第二方设备,以使所述第一方设备和所述第二方设备分别根据各自持有的随机数,组成双方共有的共享随机数;
所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,包括:
根据所述第一预主密钥句柄和所述共享随机数,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄和所述共享随机数生成主密钥及所述主密钥对应的第一主密钥句柄。
C27、根据C21所述的装置,所述根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密,包括:
根据所述工作密钥句柄,调用所述第一安全模块的第四接口,以使所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,并对所述待传输数据计算校验值进行完整性校验;或者
根据所述工作密钥,对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
C28、根据C27所述的装置,所述工作密钥包括:加密密钥和校验密钥;所述工作密钥句柄包括:对应于所述第一安全模块中加密密钥的加密密钥句柄,以及对应于所述第一安全模块中校验密钥的校验密钥句柄。
C29、根据C28所述的装置,所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,包括:
所述第一安全模块根据所述加密密钥句柄,获取所述第一安全模块中的加密密钥,以及根据所述校验密钥句柄,获取所述第一安全模块中的校验密钥;
利用所述加密密钥对所述待传输数据进行加密,得到加密后的待传输数据,以及利用所述校验密钥对所述加密后的待传输数据计算消息散列值,得到加密后的待传输数据对应的消息散列值。
C30、根据C21所述的装置,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
利用所述第一主密钥句柄计算握手结束消息的散列值,得到散列后的握手结束消息;
向所述第二方设备发送所述散列后的握手结束消息。
本发明实施例公开了D31、一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如A1至A10中一个或多个所述的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于第一方设备,所述方法包括:
根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
获取所述第一安全模块返回的所述第一主密钥句柄;
根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
2.根据权利要求1所述的方法,其特征在于,所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,包括:
根据所述第一预主密钥句柄,调用所述第一安全模块的第一接口,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
所述根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄,包括:
根据所述第一主密钥句柄,调用所述第一安全模块的第二接口,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄。
3.根据权利要求1所述的方法,其特征在于,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还包括:调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄;
获取所述第一安全模块返回的所述第一预主密钥句柄。
4.根据权利要求1所述的方法,其特征在于,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还包括:
基于共享参数,与所述第二方设备协商获得所述第一预主密钥句柄;其中,所述共享参数包括:双方临时公私钥对、双方身份标识、密钥数据长度。
5.根据权利要求3所述的方法,其特征在于,所述调用所述第一安全模块的第三接口,以使所述第一安全模块生成预主密钥及所述预主密钥对应的第一预主密钥句柄之后,所述方法还包括:
获取所述第一安全模块返回的所述预主密钥;
利用所述第二方设备的加密公钥对所述预主密钥进行加密,得到加密后的预主密钥;
将所述加密后的预主密钥发送至所述第二方设备,以使所述第二方设备将所述加密后的预主密钥输入第二安全模块进行解密并保存,以及获取所述第二安全模块返回的第二预主密钥句柄,所述第二预主密钥句柄对应于所述第二安全模块中的预主密钥。
6.根据权利要求1所述的方法,其特征在于,所述根据第一预主密钥句柄,调用第一安全模块之前,所述方法还包括:
获取所述第一安全模块生成的随机数;
通过安全通信连接,将所述随机数发送至所述第二方设备,以使所述第一方设备和所述第二方设备分别根据各自持有的随机数,组成双方共有的共享随机数;
所述根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄,包括:
根据所述第一预主密钥句柄和所述共享随机数,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄和所述共享随机数生成主密钥及所述主密钥对应的第一主密钥句柄。
7.根据权利要求1所述的方法,其特征在于,所述根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密,包括:
根据所述工作密钥句柄,调用所述第一安全模块的第四接口,以使所述第一安全模块利用所述工作密钥句柄,对所述待传输数据进行加密,并对所述待传输数据计算校验值进行完整性校验;或者
根据所述工作密钥,对所述待传输数据进行加密,并利用所述工作密钥对所述待传输数据计算校验值进行完整性校验。
8.一种数据处理装置,其特征在于,应用于第一方设备,所述装置包括:
第一调用模块,用于根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
第一获取模块,用于获取所述第一安全模块返回的所述第一主密钥句柄;
第二调用模块,用于根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
第二获取模块,用于获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
传输加密模块,用于在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
9.一种用于数据处理的装置,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据第一预主密钥句柄,调用第一安全模块,以使所述第一安全模块利用所述第一预主密钥句柄生成主密钥及所述主密钥对应的第一主密钥句柄;
获取所述第一安全模块返回的所述第一主密钥句柄;
根据所述第一主密钥句柄,调用所述第一安全模块,以使所述第一安全模块利用所述第一主密钥句柄生成工作密钥及所述工作密钥对应的工作密钥句柄;
获取所述第一安全模块返回的所述工作密钥或者所述工作密钥句柄;
在与第二方设备进行数据传输的过程中,根据所述工作密钥或者所述工作密钥句柄对待传输数据进行加密。
10.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151577.1A CN112671530B (zh) | 2019-11-21 | 2019-11-21 | 一种数据处理方法、装置和用于数据处理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151577.1A CN112671530B (zh) | 2019-11-21 | 2019-11-21 | 一种数据处理方法、装置和用于数据处理的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671530A true CN112671530A (zh) | 2021-04-16 |
CN112671530B CN112671530B (zh) | 2023-04-07 |
Family
ID=75400483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911151577.1A Active CN112671530B (zh) | 2019-11-21 | 2019-11-21 | 一种数据处理方法、装置和用于数据处理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671530B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500068A (zh) * | 2022-02-10 | 2022-05-13 | 广州云羲网络科技有限公司 | 一种基于安全隔离网闸的信息数据交换*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100254537A1 (en) * | 2009-04-06 | 2010-10-07 | Broadcom Corporation | Scalable and Secure Key Management For Cryptographic Data Processing |
US8886964B1 (en) * | 2014-04-24 | 2014-11-11 | Flexera Software Llc | Protecting remote asset against data exploits utilizing an embedded key generator |
CN105245505A (zh) * | 2015-09-14 | 2016-01-13 | 深圳市优友互联有限公司 | 数据发送方法及装置、数据接收方法及装置、收发*** |
CN105553661A (zh) * | 2014-10-29 | 2016-05-04 | 航天信息股份有限公司 | 密钥管理方法和装置 |
US9735962B1 (en) * | 2015-09-30 | 2017-08-15 | EMC IP Holding Company LLC | Three layer key wrapping for securing encryption keys in a data storage system |
-
2019
- 2019-11-21 CN CN201911151577.1A patent/CN112671530B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100254537A1 (en) * | 2009-04-06 | 2010-10-07 | Broadcom Corporation | Scalable and Secure Key Management For Cryptographic Data Processing |
US8886964B1 (en) * | 2014-04-24 | 2014-11-11 | Flexera Software Llc | Protecting remote asset against data exploits utilizing an embedded key generator |
CN105553661A (zh) * | 2014-10-29 | 2016-05-04 | 航天信息股份有限公司 | 密钥管理方法和装置 |
CN105245505A (zh) * | 2015-09-14 | 2016-01-13 | 深圳市优友互联有限公司 | 数据发送方法及装置、数据接收方法及装置、收发*** |
US9735962B1 (en) * | 2015-09-30 | 2017-08-15 | EMC IP Holding Company LLC | Three layer key wrapping for securing encryption keys in a data storage system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500068A (zh) * | 2022-02-10 | 2022-05-13 | 广州云羲网络科技有限公司 | 一种基于安全隔离网闸的信息数据交换*** |
CN114500068B (zh) * | 2022-02-10 | 2024-01-09 | 广州云羲网络科技有限公司 | 一种基于安全隔离网闸的信息数据交换*** |
Also Published As
Publication number | Publication date |
---|---|
CN112671530B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114756886B (zh) | 一种匿踪查询方法、装置和用于匿踪查询的装置 | |
EP3001640B1 (en) | Secure information exchange methods and wearable device | |
CN109146470B (zh) | 生成付款码的方法及装置 | |
CN113242224B (zh) | 授权方法及装置、电子设备和存储介质 | |
CN109981576B (zh) | 密钥迁移方法和装置 | |
CN109246110B (zh) | 数据共享方法、装置及计算机可读存储介质 | |
CN114301594B (zh) | 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 | |
CN113343212A (zh) | 设备注册方法及装置、电子设备和存储介质 | |
CN112398648A (zh) | 一种密钥管理方法、装置和用于密钥管理的装置 | |
CN114884645B (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN113254956A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113868505A (zh) | 数据处理方法、装置、电子设备、服务器及存储介质 | |
CN115967491A (zh) | 一种隐私求交方法、***和可读存储介质 | |
CN114221764A (zh) | 基于区块链的公钥更新方法、装置和设备 | |
CN112671530B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN107302519B (zh) | 一种终端设备的身份认证方法、装置和终端设备、服务器 | |
CN115333813A (zh) | 一种数据加密传输方法、装置、电子设备及存储介质 | |
CN114448631A (zh) | 一种多方安全计算方法、***和用于多方安全计算的装置 | |
CN113591120A (zh) | 信息发布方法及装置、电子设备和存储介质 | |
CN108924136B (zh) | 授权认证方法、装置及存储介质 | |
CN112187771B (zh) | 一种认证方法、装置和用于认证的装置 | |
CN112711744A (zh) | 一种计算任务的处理方法、装置和用于计算任务的处理装置 | |
CN104954344A (zh) | 一种基于http协议的数据交互方法及装置 | |
CN114765595B (zh) | 聊天消息的显示方法、发送方法、装置、电子设备及介质 |
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 |