CN113422753A - 数据处理方法、装置、电子设备及计算机存储介质 - Google Patents
数据处理方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN113422753A CN113422753A CN202110179214.XA CN202110179214A CN113422753A CN 113422753 A CN113422753 A CN 113422753A CN 202110179214 A CN202110179214 A CN 202110179214A CN 113422753 A CN113422753 A CN 113422753A
- Authority
- CN
- China
- Prior art keywords
- instruction
- key
- data
- key exchange
- exchange
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机存储介质,其中,所述数据处理方法包括:通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令,所述指令基于I KE协议,且所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。通过本申请实施例,提高了密钥交换和数据传输的安全性。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据处理方法、装置、电子设备及计算机存储介质。
背景技术
随着大数据的飞速发展,信息安全越来越重要,国家对信息安全领域也越来越重视,陆续推出了相关规范。其中,IPSEC协议即为其中一种。
IPSEC协议通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族,其包括AH(Authentication Header,验证头)协议、ESP(Encapsulating SecurityPayload,封装安全载荷)协议和IKE(Internet Key Exchange,密钥交换)协议。其中,AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供了可靠性保证;IKE协议主要是对密钥交换进行管理。
由于IPSEC协议复杂度高且灵活性强,目前市面上的产品基本都是软件来实现IPSEC协议,其中的密钥交换协议即IKE协议也是如此。由此导致密钥交换涉及的关键数据和密钥都在软件层面计算生成且至少在一段时间内是以明文方式存在,安全性不够高,攻破密钥代价小。比如在软件被劫持的情况下,关键数据和密钥很容易被盗取。
发明内容
有鉴于此,本申请实施例提供一种数据处理方案,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种数据处理方法,包括:通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令,所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
根据本申请实施例的第二方面,提供了一种数据处理装置,包括:接收模块,用于通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令,所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;保存模块,用于根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的数据处理方法对应的操作。
根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据处理方法。
根据本申请实施例提供的数据处理方案,将其中必要的密钥交换敏感数据存储在预设硬件中。这些密钥交换敏感数据根据软件应用通过软件调用接口发送来的用于进行密钥交换的指令生成。由此,一方面,因相关数据及指令在硬件中产生和维护,大大提高了密钥交换和数据传输的安全性;另一方面,在使用时,软件需要通过软件调用接口来调用,使得软件无法获取到这些数据和指令,进一步提高了密钥交换和数据传输的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例一的一种数据处理方法的步骤流程图;
图2为根据本申请实施例二的一种数据处理方法的步骤流程图;
图3为根据本申请实施例三的一种数据处理装置的结构框图;
图4为根据本申请实施例四的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
实施例一
参照图1,示出了根据本申请实施例一的一种数据处理方法的步骤流程图。
本实施例的数据处理方法包括以下步骤:
步骤S102:通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令。
其中,所述指令中携带有用于生成密钥交换敏感数据的参数,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据。
在一种可行方式中,所述用于进行密钥交换的指令基于IKE协议。IKE协议也称密钥交换协议,其定义了协商、建立、修改、删除安全联盟的过程和报文格式。其中,安全联盟(Security Association,SA)是两个通信实体经协商建立起来的一种协定,它描述了实体如何利用安全服务来进行安全的通信。安全联盟包括了执行各种网络安全服务所需要的所有信息,例如IP层服务(如头认证和载荷封装)、传输层和应用层服务或者协商通信的自我保护。
密钥交换敏感数据是指从用户的角度考虑,需要被保护的数据。在IKE协议中,密钥交换敏感数据涉及的关键数据和密钥至少包括如下:(1)Ni&Nr;(2)Ski&Skr;(3)SKEYID&SKEYID_d&SKEYID_a&SKEYID_e;(4)K;(5)KEYMAT。其中,Ni表示密钥交换发起方的nonce载荷;Nr表示密钥交换响应方的nonce载荷;Ski&Skr,以及,SKEYID&SKEYID_d&SKEYID_a&SKEYID_e为密钥交换过程中使用的密钥;K表示密钥扩展后的值,密钥中的SKEYID_e取自K(当PRF命令的输出长度小于SKEYID_e需要的长度时,需要做密钥扩展得到K,然后从K中获取SKEYID_e);KEYMAT表示会话密钥素材。
但需要说明的是,在实际应用中,以遵循密钥相关的敏感数据被存储至预设硬件中为原则,本领域技术人员可以根据实际需求设置需要后续存储至预设硬件中的密钥交换敏感数据即可。
所述软件调用接口用于接收来自于软件应用的软件调用,以调用所述预设硬件中的密钥交换敏感数据,以实现密钥交换。软件调用接口是预设硬件对外提供相应的软件调用接口,以供在需要进行密钥交换时供软件调用,通过软件和硬件结合实现密钥交换过程。
此外,需要说明的是,本申请实施例中,所述软件应用可以为任意适当的需要基于IKE协议进行数据处理的应用,本申请实施例对此不作限制。并且,本领域技术人员也可根据本申请实施例的原理,将本申请实施例的方案适用于其它与IKE协议类似的协议中,其均在本申请实施例的保护范围内。
步骤S104:根据所述用于生成密钥交换敏感数据的参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
本申请实施例中,意将密钥交换敏感数据及与其有关的生成和维护均交由预设硬件实现,以提升密钥交换安全性。而对应的用于进行密钥交换的指令则由软件应用发出。其中,所述用于进行密钥交换的指令包括但不限于:常规指令和复合指令,其中,常规指令如用于加密数据的指令、用于解密数据的指令、用于转加密的指令等;复合指令如用于生成对称密钥并使用公钥加密导出的指令、用于私钥解密并将解密结果保存在硬件内部或加密导出的指令等等。密钥交换敏感数据存储在预设硬件中,而软件应用无法获得,避免了软件层面出现异常时密钥交换敏感数据的泄密。
其中,预设硬件可以为任意适当的硬件,包括但不限于PCI或者其它类型的板卡等等。在一种可行方式中,所述预设硬件也可以为可插拔的硬件,例如可以为可插拔式的板卡或者类似U盾的硬件等。例如,在需要生成密钥或加解密数据时,可以通过交互方式提醒用户插入可插拔的硬件,通过该可插拔的硬件实现密钥交换或数据加解密等。采用可插拔式硬件的方式,可根据需要将该硬件安装于相应的设备中,实现随时随地随需的密钥交换或加解密数据,极大地提升了本申请实施例方案使用的灵活性,并且,也不必每台设备均配置相应的预设硬件,降低了方案实现成本。
根据本实施例的数据处理方案,将其中必要的密钥交换敏感数据存储在预设硬件中。这些密钥交换敏感数据根据软件应用通过软件调用接口发送来的用于进行密钥交换的指令生成。由此,一方面,因相关数据及指令在硬件中产生和维护,大大提高了密钥交换和数据传输的安全性;另一方面,在使用时,软件需要通过软件调用接口来调用,使得软件无法获取到这些数据和指令,进一步提高了密钥交换和数据传输的安全性。
本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。
实施例二
参照图2,示出了根据本申请实施例二的一种数据处理方法的步骤流程图。
本实施例中,以将所述数据处理方法应用于IKE协议为示例进行说明。本实施例的数据处理方法包括以下步骤:
步骤S202:确定IKE协议中的密钥交换敏感数据。
其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据,这些密钥交换敏感数据将在后续被存储在预设硬件中,以保证其安全性。
示例性地,本申请实施例中以密钥交换敏感数据包括以下为例:(1)Ni&Nr;(2)Ski&Skr;(3)SKEYID&SKEYID_d&SKEYID_a&SKEYID_e;(4)K;(5)KEYMAT。
步骤S204:根据所述密钥交换敏感数据,生成对应的、供软件应用使用的用于进行密钥交换的指令。软件应用通过这些指令指示预设硬件生成相应的密钥交换敏感数据。本申请实施例中,生成的用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令;用于解密数据的指令;用于转加密的指令;用于生成对称密钥并使用公钥加密导出的指令;用于私钥解密并将解密结果保存在硬件内部或加密导出的指令;用于生成随机数的指令;用于进行数据拼接的指令;用于生成哈希值的指令;用于进行数据摘要运算的指令;用于生成及验证签名的指令;用于进行密钥扩展的指令。
可选地,用于进行密钥交换的指令包括多个(两个及两个以上),各个所述指令之间相互独立。通过这种方式,预设硬件内部只实现独立的密钥交换敏感数据的生成,而不保存协议上下文的关联,协议上下文由软件应用维护。此外,关键数据和密钥可保持在预设硬件内部,也可加密导出到外部。由此,可以有效减小预设硬件的实现复杂度。
在一种可行方式中,用于进行密钥交换的指令的最小指令集如下,可分为常规指令集和复合指令集。
其中:
(一)常规指令集:
(1)SKE_Encrypt指令:即用于加密数据的指令,可加密数据,输入数据明文,输出数据密文(支持使用内部密钥或外部导入密钥);
(2)SKE_Decrypt指令:即用于解密数据的指令,可解密数据,输入数据密文,输出数据明文(支持使用内部密钥或外部导入密钥);
(3)ExchangeDigitEnvelopeBase指令:即用于转加密的指令,可转加密,使用另一个密钥转加密数据。
(二)复合指令集:
(1)KeyGenerateEncryptedByPubkey指令:即生成对称密钥并使用公钥加密导出的指令,用于在预设硬件内部生成对称密钥(密钥长度可指定)并用外部指定的公钥加密导出;
(2)KeyDecryptedByPrivkey指令:即用于私钥解密并将解密结果保存在预设硬件内部或加密导出的指令,用于使用私钥解密并将私钥解密结果保存在预设硬件内部或者加密保存到外部;
(3)RandomGenrate指令:即用于生成随机数据的指令,用于生成随机数,支持明文导出、加密导出、明文保存在预设硬件内部;
(4)DataKeySplitJoint指令:即用于进行数据拼接的指令,可进行数据和Key拼接(如,数据1+key1+数据2+key2+数据3),可指定key的拼接长度(即拼接时只拼接一部分长度的key),拼接结果支持加密导出、明文保存在预设硬件内部;
(5)HashGenerate指令:即用于生成哈希值的指令,可支持输入数据是明文或密文,支持输出是明文或密文;
(6)MacGenerate(PRF)指令:即用于进行数据摘要运算的指令,可使用密钥对消息进行数据摘要运算,支持输入数据是明文或密文;
(7)GenerateSignature&VerifySignature指令:即用于生成及验证签名的指令,可支持签名的输入支持密文输入,验签的输出支持加密输出;实际实现中,用于生成签名的指令和用于验证签名的指令可分别设置;
(8)KeyExpand指令:即用于进行密钥扩展的指令,可进行密钥扩展,根据IPSECVPN技术规范实现密钥扩展指令,保证密钥在预设硬件内部生成,输入来自预设硬件内部或者外部密文,输出支持加密导出或明文保存在预设硬件内部。
通过上述指令集中的指令,可以保证密钥交换过程中使用的关键数据、密钥等可在预设硬件中产生和维护,大大提高了密钥交换和数据传输的安全性。
需要说明的是,本申请实施例不对上述指令的具体实现方式进行限制,本领域技术人员可参考现有IPSEC协议中的相关内容,采用任意适当方式实现。
还需要说明的是,上述密钥交换敏感数据及用于进行密钥交换的指令在一次确定或生成后,可长期使用,无需每次进行密钥交换均进行确定或生成。
步骤S206:通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令。
如前所述,所述指令基于IKE协议,且所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据。
其中,所述软件调用接口用于接收软件调用以调用所述预设硬件中的指令进行密钥交换。可行地,所述软件调用接口可实现为COMMAND命令调用接口的形式。
步骤S208:根据所述指令中携带的参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
所述参数与具体的用于进行密钥交换的指令相关,不同指令可能对应不同的参数,但这些指令对应的参数中至少包括所述指令的标识参数,以指示该指令需要生成何种密钥交换敏感数据和/或如何生成密钥交换敏感数据。
将密钥交换过程使用的相关数据(即密钥交换敏感数据)设置在预设硬件中产生和维护,软件不可拿到这些关键数据和密钥及指令的明文,因此,软件通过下发COMMAND调用命令来调用硬件资源来完成与关键数据以及密钥相关的计算。通过硬件设计辅助软件实现完整的密钥交换协议,提升密钥交换的安全性。
通过上述步骤S202-S208,实现了预设硬件内部及对外调用接口的设置,在后续进行密钥交换时可由软件应用直接进行预设硬件中相关数据的调用,结合实现密钥交换。上述步骤S202-S208的一次设置可在后期长期使用,而无需每次调用均进行设置。
以下,基于上述预设硬件的设置,以密钥交换过程第一阶段为示例进行示例性说明。
步骤S210:接收密钥交换发起方通过所述软件应用发送的消息。
其中,所述消息中携带有通过所述软件调用接口向所述预设硬件发送的所述用于进行密钥交换的指令。可选地,在某些情况下,所述指令中还携带有待交换的数据。其中,所述密钥交换发起方与密钥交换响应方对应,本申请实施例中,密钥交换发起方和密钥交换响应方符合IPSEC中的定义。并且,密钥交换发起方可通过软件应用发起密钥交换请求,而密钥交换响应方则可通过预设硬件对该请求进行处理和响应。
密钥交换协议包括第一阶段和第二阶段,基于此,本申请实施例中密钥交换发起方发送的消息可以是第一阶段消息,也可以是第二阶段消息。
在第一阶段交换中,通信双方建立了一个ISAKMP SA,该SA是协商双方为保护它们之间的通信而使用的共享策略和密钥,用这个SA来保护IPSEC SA的协商过程。一个ISAKMP可以用于建立多个IPSEC SA。第一阶段交换使用主模式,实现通信双方的身份认证和密钥协商,得到工作密钥,该工作密钥用于保护第二阶段的协商过程。
在第二阶段交换中,通信双方使用第一阶段ISAKMP SA协商建立IPSEC SA,IPSECSA是为保护它们之间的数据通信而使用的共享策略和密钥。第二阶段交换使用快速模式,实现通信双方IPSEC SA的协商,确定通信双方的IPSEC安全策略及会话密钥。
基于此,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行数据交换的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令、用于生成对称密钥并使用公钥加密导出的指令、用于生成随机数的指令、用于生成及验证签名的指令、用于进行数据拼接的指令。
当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥派生的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于私钥解密并将解密结果保存在硬件内部或加密导出的指令、用于生成及验证签名的指令、用于进行转加密的指令、用于生成哈希值的指令、用于进行数据拼接的指令、用于进行数据摘要运算的指令。
当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥扩展的消息时,所述用于进行密钥交换的指令包括用于进行密钥扩展的指令。
当所述消息为用于密钥交换发起方和密钥交换响应方之间对已进行的数据交换进行认证的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于生成哈希值的指令、用于进行数据摘要运算的指令。
以下,对用于进行密钥交换的指令进行示例性说明。
当所述用于进行密钥交换的指令为用于加密数据的指令时,所述指令中还携带有以下信息:算法模式、待加密明文的指针、加密后的密文数据指针、明文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。一种该指令的示例SKE_Encrypt(CMD_ID:TBD)指令的具体示例如下表1所示:
表1
当用于进行密钥交换的指令为用于解密数据的指令时,所述指令中还携带有以下信息:算法模式、数据密文的指针、解密后的明文数据指针、密文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。一种该指令的示例SKE_Decrypt(CMD_ID:TBD)指令的具体示例如下表2所示:
表2
当用于进行密钥交换的指令为用于生成对称密钥并使用公钥加密导出的指令时,所述指令中还携带有以下信息:非对称加密模式、加密key的KEK的ID、新生成key的长度、公钥地址、key输出指针。一种该指令的示例KeyGenerateEncryptedByPubkey(CMD_ID:TBD)指令的具体示例如下表3所示:
表3
需要说明的是:此指令可以实现如下指令,并获得KEK加密的Ski:
Asymmetric_Encrypt(Ski,pub_r)
相较于直接传入公钥加密输出已有的key存在安全风险,不可实现这样的指令相比,上述表3的示例方式更为安全可靠。
当用于进行密钥交换的指令为用于解密并将解密结果保存在硬件内部或加密导出的指令时,所述指令中还携带有以下信息:非对称解密模式、加密key的KEK的ID、keyID、数据长度、私钥的地址、数据地址、私钥解密后用KEK加密输出。一种该指令的示例KeyDecryptedByPrivkey(CMD_ID:TBD)指令的具体示例如下表4所示:
表4
需要说明的是,此指令可以实现如下指令的解密,然后获得KEK加密的Skr:
Asymmetric_Encrypt(Skr,pub_i)
与普通的指令一般只会输出明文相比,此指令可把解密得到的结果转加密后输出。
当用于进行密钥交换的指令为用于生成随机数的指令时,所述指令中还携带有以下信息:外部key的加密模式、随机数生成模式、加密key的KEK的ID、随机数长度、外部key的地址、结果输出。一种该指令的示例RandomGenrate(CMD_ID:TBD)指令的具体示例如下表5所示:
表5
需要说明的是,此指令可以实现如下指令的加密,并获得KEK加密的Ni:
Symmetric_Encrypt(Ni,Ski)
与普通的指令不允许使用此处的ski来加密输出已有的敏感信息,存在安全风险,只能是敏感数据生成的同时就指定用ski加密相比,此种方式可以避免安全风险。
当所述用于进行密钥交换的指令为用于进行转加密的指令时,所述指令中还携带有以下信息:外部key的加密模式、加密key的KEK的ID、随机数长度、外部key的地址、密文数据输入、KEK加密的数据输出。一种该指令的示例ExchangeDigitEnvelopeBase(CMD_ID:TBD)指令的具体示例如下表6所示:
表6
需要说明的是,此指令可以实现如下指令的解密,然后获得KEK加密的Nr:
Symmetric_Encrypt(Nr,Skr)
因Skr属于普通的key,一般是不能用于解密key的,因此需要KEK转加密后才能将Nr当key使用。
当所述用于进行密钥交换的指令为用于进行数据拼接的指令时,所述指令中还携带有以下信息:加密key的KEK的ID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Key1中需要拼接的长度、Key2中需要拼接的长度、数据和Key的拼接输入、KEK加密的数据输出。一种该指令的示例DataKeySplitJoint(CMD_ID:TBD)指令的具体示例如下表7所示:
表7
需要说明的是,拼接后可以得到IKE/ISAKMP交换过程中需要的所有数据,如计算IV=HASH(Ski_b|Skr_b)明文,HASH(Ni|Nr)密文,Ni|Nr明文或密文,Ski|Ni|IDi|CERT_enc_i等。
当所述用于进行密钥交换的指令为用于生成哈希值的指令时,所述指令中还携带有以下信息:哈希算法模式、消息指针、输出杂凑值指针、消息长度。一种该指令的示例HashGenerate(CMD_ID:TBD)指令的具体示例如下表8所示:
表8
当所述用于进行密钥交换的指令为用于生成签名的指令时,所述指令中还携带有以下信息:E值模式、E值指针、KeyID、KEKID、prikey的指针、签名值指针。一种该指令的示例GenerateSignature(CMD_ID:TBD)指令的具体示例如下表9所示:
表9
当所述用于进行密钥交换的指令为用于验证签名的指令时,所述指令中还携带有以下信息:E值模式、签名及消息指针、KeyID、KEKID、pubkey Key的指针。一种该指令的示例VerifySignature(CMD_ID:TBD)指令的具体示例如下表10所示:
表10
当所述用于进行密钥交换的指令为用于进行数据摘要运算的指令时,所述指令中还携带有以下信息:运算模式、加密key的KEK的ID、KeyID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Data3的长度、HMAC的Key输入、数据和key的拼接输入、KEK加密的数据输出。一种该指令的示例MacGenerate(CMD_ID:TBD)指令的具体示例如下表11所示:
表11
需要说明的是,此指令可以替换掉原来IKE协议中的MacGenerate指令,支持输入数据可拼接,支持输出可加密。
当所述用于进行密钥交换的指令为用于进行密钥扩展的指令时,所述指令中还携带有以下信息:HMAC模式信息、操作指示、加密key的KEK的ID、数据长度、新生成Key的数量、HMAC的Key输入、KeyNum个key长度拼接输入、KEK加密的数据输出。一种该指令的示例KeyExpand(CMD_ID:TBD)指令的具体示例如下表12所示:
表12
需要说明的是,此指令可用于IKEv1&IKEv2&ISAKMP的密钥扩展,其中:
(一)IKEv1的密钥扩展方式
(1)SKEYID_e扩展,包括:
A)计算未扩展的SKEYID_e(从0开始1字节数的拼接)
SKEYID_d=prf(SKEYID,g^xy|CKY-I|CKY-R|0)
SKEYID_a=prf(SKEYID,SKEYID_d|g^xy|CKY-I|CKY-R|1)
SKEYID_e=prf(SKEYID,SKEYID_a|g^xy|CKY-I|CKY-R|2)
B)SKEYID_e再扩展(SKEYID_e专用模式):
因SKEYID_e和其他的不太一样,K1计算用的0不会拼接到以后的计算,因此需要再扩展。
Ka=K1|K2|K3
and
K1=prf(SKEYID_e,0)
K2=prf(SKEYID_e,K1)
K3=prf(SKEYID_e,K2)
(2)KEYMAT扩展(无1字节数的拼接)
If PFS is not needed,and KE payloads are not exchanged,the new keyingmaterial is defined as
KEYMAT=prf(SKEYID_d,protocol|SPI|Ni_b|Nr_b).
If PFS is desired and KE payloads were exchanged,the new keyingmaterial is defined as
KEYMAT=prf(SKEYID_d,g(gm)^xy|protocol|SPI|Ni_b|Nr_b)
KEYMAT=K1|K2|K3|...
where
K1=prf(SKEYID_d,[g(qm)^xy|]protocol|SPI|Ni_b|Nr-b)
K2=prf(SKEYID_d,K1|[g(qm)^xy|]protocol|SPI|Ni_b|Nr_b)
K3=prf(SKEYID_d,K2|[g(qm)^xy|]protocol|SPI|Ni_b|Nr_b)
etc.
(二)ISAKMP(和IKEv1基本一致)
(1)SKEYID_e扩展:
A)计算未扩展的SKEYID_e(从0开始1字节数的拼接)
SKEYID_d=PRF(SKEYID,CKY-I|CKY-R|0)
SKEYID_a=PRF(SKEYID,SKEYID_d|CKY-I|CKY-R|1)
SKEYID_e=PRF(SKEYID,SKEYID_a|CKY-I|CKY-R|2).
B)SKEYID_e扩展(SKEYID_e专用模式)
K=K1|K2|K3…
K1=PRF(SKEYID_e,0)
K2=PRF(SKEYID_e,K1)
K3=PRF(SKEYID_e,K2)
(2)KEYMAT扩展(无1字节数的拼接)
KEYMAT=K1|K2|K3|…
其中:
K1=PRF(SKEYID_d,protocol|SPI|Ni_b|Nr_b)
K2=PRF(SKEYID_d,K1|protocol|SPI|Ni_b|Nr_b)
K3=PRF(SKEYID_d,K2|protocol|SPI|Ni_b|Nr_b)
通过上述设置,可有效实现软件通过COMMAND指令对预设硬件中的数据的指示和调用。
步骤S212:执行所述用于进行密钥交换的指令所指示的操作。
通过指令中的标识信息即可确定需要预设硬件中进行的操作和保存的数据,例如,上述CMD_ID。在该指令确定后,即可执行该指令所指示的操作。当该指令中还携带有待交换的数据时,所述执行所述指令所指示的操作可以实现为:针对所述待交换的数据,执行所述用于进行密钥交换的指令所指示的操作。
步骤S214:根据所述操作的操作结果,通过所述软件调用接口进行所述密钥交换发起方和密钥交换响应方之间的密钥交换。
密钥交换发起方和密钥交换响应方之间,通过软件调用接口传递消息、命令、数据等,从而实现两者之间有效的密钥交换,以使用密钥交换得到的密钥来完成后续的数据加密传输。
以下,以密钥交换第一阶段的主模式为示例,对上述过程进行示例性说明。
第一阶段的主模式下的交换过程主要由6个消息组成,其中:
消息1:发起方向响应方发送一个封装有建议载荷的安全联盟载荷,而建议载荷中又封装有变换载荷。
消息2:响应方发送一个安全联盟载荷,该载荷表明它所接受的发起方发送的SA提议。
消息3和4:发起方和响应方交换数据,交换的数据内容包括nonce、身份标识(ID)、可选的证书等载荷。
消息5和6:发起方和响应方认证前面的交换过程。
(一)针对第一阶段的交换数据
在上述消息3和4中,发起方交换的数据如下:
XCHi=Asymmetric_Encrypt(Ski,pub_r)|Symmetric_Encrypt(Ni,Ski)|Symmetric_Encrypt(IDi,Ski)[|Symmetric_Encrypt(CERT,Ski)]
SIGi_b=Asymmetric_Sign(Hash(Ski_b|Ni_b|IDi_b[|CERT_b]>,priv-i)
响应方交换的数据如下:
XCHr=Asymmetric_Encrypt(Skr,pub_i)|Symmetric_Encrypt(Nr,Skr)|Symmetric_Encrypt(IDr,Skr)
SIGr_b=Asymmetric_Sign(Hash(Skr_b|Nr_b|IDr_b),priv_r)
基于本申请实施例提供的软件硬件结合实现密钥交换的方案,以XCHi为例,软件调用预设硬件并拼接得到XCHi和XCHr的过程如下:
(1)软件应用通过软件调用接口向预设硬件发送KeyGenerateEncryptedByPubkey指令,形如Command::KeyGenerateEncryptedByPubkey,得到上述的Asymmetric_Encrypt(Ski,pub_r),并获得KEK(密钥加密密钥)加密的Ski的密文。
(2)软件应用通过软件调用接口向预设硬件发送RandomGenrate指令,形如Command::RandomGenrate,得到上述的Symmetric_Encrypt(Ni,Ski),此过程需要使用前一步获得的KEK加密的Ski的密文。
(3)软件应用通过软件调用接口向预设硬件发送SKE_Encrypt指令,形如Command::SKE_Encrypt,得到上述的Symmetric_Encrypt(IDi,Ski)。
(4)CERT_sig_i和CERT_enc_i是公开的证书,直接保存在软件可获取到的地方,无需通过预设硬件产生,软件应用完成各个数据拼接得到上述的XCHi。
得到XCHr的过程与上述得到XCHi的过程类似,本领域技术人员可参照上述过程实现,在此不再赘述。
此外,以SIGi_b的获得过程为示例,软件应用通过软件调用接口向预设硬件发送指令并拼接得到SIGi_b和SIGr_b的过程如下:
(1)软件应用通过软件调用接口向预设硬件发送DataKeySplitJoint指令,形如Command::DataKeySplitJoint,得到上述的Ski_b|Ni_b|IDi_b|CERT_enc_i_b的密文。
(2)软件应用通过软件调用接口向预设硬件发送GenerateSignature指令,形如Command::GenerateSignature,得到上述的Asymmetric_Sign(Ski_b|Ni_b|IDi_b|CERT_enc_i_b,priv_i)。
得到SIGr_b的过程与上述得到SIGi_b的过程类似,本领域技术人员可参照上述过程实现,在此不再赘述。
(二)针对第一阶段的密钥派生
消息3和4交互完成后,参与通信的双方生成基本密钥参数SKEYID,以生成后续密钥SKEYID_d、SKEYID_a、SKEYID_e,计算方法分别如下:
SKEYID=PRF(Hash(Ni_b|Nr_b),CKY-I|CKY-R)
SKEYID_d=PRF(SKEYID,CKY-I|CKY-R|0)
SKEYID_a=PRF(SKEYID,SKEYID_d|CKY-I|CKY-R|1)
SKEYID_e=PRF(SKEYID,SKEYID_a|CKY-I|CKY-R|2)
基于本申请实施例提供的软件硬件结合实现密钥交换的方案,以发起方i为例,对发起方i和接收方r密钥派生进行说明。
(1)软件应用调用交换数据时对应操作的反向操作获得接收方r的Skr_b、Nr_b、IDr_b等信息(此处的反向指的是加密的反向对应解密,签名的反向是对应验签等,需要使用到Command::KeyDecryptedByPrivkey和Command::ExchangeDigitEnvelopeBase)。Skr_b为数据普通key,不能用于解密关键数据和密钥,因此获取Nr_b时需要通过Command::ExchangeDigitEnvelopeBase来得到KEK加密的Nr_b,然后才能使用Nr_b。
(2)软件应用通过软件调用接口向预设硬件发送Command::HashGenerate,得到上述的HASH(Ni_b|Nr_b)。
(3)软件应用通过软件调用接口向预设硬件发送Command::DataKeySplitJoint,得到上述的SKEYID_d|CKY-I|CKY-R|1和SKEYID_d|CKY-I|CKY-R|2。
(4)软件应用通过软件调用接口向预设硬件发送Command::MacGenerate(PRF)和Command::HashGenerate,得到上述的SKEYID、SKEYID_d、SKEYID_a、SKEYID_e。
接收方r密钥派生的过程与上述发起方i密钥派生的过程类似,本领域技术人员可参照上述过程实现,在此不再赘述。
(三)针对第一阶段的密钥扩展
第一阶段的密钥扩展得到K的方法如下:
K=K1|K2|K3...
K1=PRF(SKEYID_e,0)
K2=PRF(SKEYID_e,K1)
K3=PRF(SKEYID_e,K2)
…
基于本申请实施例提供的软件硬件结合实现密钥交换的方案,通过软件应用通过软件调用接口向预设硬件发送Command::KeyExpand,可以得到上述的K1、K2、K3、K…
(四)针对第一阶段的IV和HASH_I&HASH_R
初始化向量IV是消息3中的Ski和消息4中的Skr串连起来经过HASH运算得到的,即:
IV=Hash(Ski_b|Skr_b)
其中的Hash算法由消息1和消息2确定。
为了认证交换,发起方产生HASH_I,响应方产生HASH_R,计算公式如下:
HASH_I=PRF(SKEYID,CKY-I|CKY-R|SAi_b|IDi_b)
HASH_R=PRF(SKEYID,CKY-R|CKY-I|SAi_b|IDr_b)
基于本申请实施例提供的软件硬件结合实现密钥交换的方案,
针对IV生成:可以通过软件应用通过软件调用接口向预设硬件发送Command::HashGenerate,得到上述的HASH(SKi_b|Skr_b);
针对HASH_I&HASH_R生成,以HASH_I为例:可以通过软件应用通过软件调用接口向预设硬件发送Command::MacGenerate(PRF)得到上述的HASH_I,其中CKY-I|CKY-R|SAi_b|IDi_b是明文,无需密码硬件模块参与,可以由软件独立完成拼接。
HASH-R生成与上述HASH_I生成类似,本领域技术人员可参照上述HASH_I的生成实现HASH_R的生成,在此不再赘述。
此外,第二阶段的快速模式、ISAKMP信息交换都可以用本实施例中相应的Command指令实现,本领域技术人员可根据前述第一阶段中的相关描述,参照实现,在此亦不再赘述。
此外,需要说明的是,前述多个实施例的数据处理方案中,所述预设硬件可以设置在本地,也可设置在云端。当采用设置在云端的方式时,所述密钥交换和/或通过密钥进行的加密服务可以通过云端进行部署,以云端服务的方式提供服务与计费。在此情况下,用户可以自主选择和掌握所述预设硬件。并且,用户也可根据实际需求如根据待执行的任务的重要程度,自主决定任务涉及的哪些产品或服务使用该云端服务,云端服务的服务商也可以根据用户的重要等级决定是否向该用户提供此类服务。使用此类服务,可以通过云端与用户的交互方式实现密钥交换及数据加解密等处理。
根据本实施例适用于IKE协议的数据处理方案,将其中必要的密钥交换敏感数据存储在预设硬件中。这些密钥交换敏感数据根据软件应用通过软件调用接口发送来的用于进行密钥交换的指令生成。由此,一方面,因相关数据及指令在硬件中产生和维护,大大提高了密钥交换和数据传输的安全性;另一方面,在使用时,软件需要通过软件调用接口来调用,使得软件无法获取到这些数据和指令,进一步提高了密钥交换和数据传输的安全性。
本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。
实施例三
参照图3,示出了根据本申请实施例三的一种数据处理装置的结构框图。
本实施例的数据处理装置包括:指令接收模块302,用于通过软件调用接口,接收来自于软件应用的用于进行密钥交换的,所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;保存模块304,用于根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
可选地,所述指令基于IKE协议。
可选地,所述用于进行密钥交换的指令包括多个,各个所述指令之间相互独立。
可选地,所述用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令;用于解密数据的指令;用于转加密的指令;用于生成对称密钥并使用公钥加密导出的指令;用于私钥解密并将解密结果保存在预设硬件内部或加密导出的指令;用于生成随机数的指令;用于进行数据拼接的指令;用于生成哈希值的指令;用于进行数据摘要运算的指令;用于生成及验证签名的指令;用于进行密钥扩展的指令。
可选地,本实施例的数据处理装置还包括:消息接收模块306,用于接收密钥交换发起方通过所述软件应用发送的消息,其中,所述消息中携带有通过所述软件调用接口向所述预设硬件发送的所述用于进行密钥交换的指令;执行模块308,用于执行所述用于进行密钥交换的指令所指示的操作;交换模块310,用于根据所述操作的操作结果,通过所述软件调用接口进行所述密钥交换发起方和密钥交换响应方之间的密钥交换。
可选地,所述用于进行密钥交换的指令中还携带有待交换的数据;所述执行模块308,用于针对所述待交换的数据,执行所述用于进行密钥交换的指令所指示的操作。
可选地,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行数据交换的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令、用于生成对称密钥并使用公钥加密导出的指令、用于生成随机数的指令、用于生成及验证签名的指令、用于进行数据拼接的指令。
可选地,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥派生的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于私钥解密并将解密结果保存在硬件内部或加密导出的指令、用于生成及验证签名的指令、用于进行转加密的指令、用于生成哈希值的指令、用于进行数据拼接的指令、用于进行数据摘要运算的指令。
可选地,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥扩展的消息时,所述用于进行密钥交换的指令包括用于进行密钥扩展的指令。
可选地,当所述消息为用于密钥交换发起方和密钥交换响应方之间对已进行的数据交换进行认证的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于生成哈希值的指令、用于进行数据摘要运算的指令。
可选地,当所述用于进行密钥交换的指令为用于加密数据的指令时,所述指令中还携带有以下信息:算法模式、待加密明文的指针、加密后的密文数据指针、明文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。
可选地,当所述用于进行密钥交换的指令为用于解密数据的指令时,所述指令中还携带有以下信息:算法模式、数据密文的指针、解密后的明文数据指针、密文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。
可选地,当所述用于进行密钥交换的指令为用于生成对称密钥并使用公钥加密导出的指令时,所述指令中还携带有以下信息:非对称加密模式、加密key的KEK的ID、新生成key的长度、公钥地址、key输出指针。
可选地,当所述用于进行密钥交换的指令为用于解密并将解密结果保存在硬件内部或加密导出的指令时,所述指令中还携带有以下信息:非对称解密模式、加密key的KEK的ID、keyID、数据长度、私钥的地址、数据地址、私钥解密后用KEK加密输出。
可选地,当所述用于进行密钥交换的指令为用于生成随机数的指令时,所述指令中还携带有以下信息:外部key的加密模式、随机数生成模式、加密key的KEK的ID、随机数长度、外部key的地址、结果输出。
可选地,当所述用于进行密钥交换的指令为用于进行转加密的指令时,所述指令中还携带有以下信息:外部key的加密模式、加密key的KEK的ID、随机数长度、外部key的地址、密文数据输入、KEK加密的数据输出。
可选地,当所述用于进行密钥交换的指令为用于进行数据拼接的指令时,所述指令中还携带有以下信息:加密key的KEK的ID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Key1中需要拼接的长度、Key2中需要拼接的长度、数据和Key的拼接输入、KEK加密的数据输出。
可选地,当所述用于进行密钥交换的指令为用于生成哈希值的指令时,所述指令中还携带有以下信息:哈希算法模式、消息指针、输出杂凑值指针、消息长度。
可选地,当所述用于进行密钥交换的指令为用于生成签名的指令时,所述指令中还携带有以下信息:E值模式、E值指针、KeyID、KEKID、prikey的指针、签名值指针。
可选地,当所述用于进行密钥交换的指令为用于验证签名的指令时,所述指令中还携带有以下信息:E值模式、签名及消息指针、KeyID、KEKID、pubkey Key的指针。
可选地,当所述用于进行密钥交换的指令为用于进行数据摘要运算的指令时,所述指令中还携带有以下信息:运算模式、加密key的KEK的ID、KeyID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Data3的长度、HMAC的Key输入、数据和key的拼接输入、KEK加密的数据输出。
可选地,当所述用于进行密钥交换的指令为用于进行密钥扩展的指令时,所述指令中还携带有以下信息:HMAC模式信息、操作指示、加密key的KEK的ID、数据长度、新生成Key的数量、HMAC的Key输入、KeyNum个key长度拼接输入、KEK加密的数据输出。
本实施例的数据处理装置用于实现前述多个方法实施例中相应的数据处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据处理装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
实施例四
参照图4,示出了根据本申请实施例四的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它电子设备或服务器进行通信。
处理器402,用于执行程序410,具体可以执行上述数据处理方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令,所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
在一种可选的实施方式中,所述指令基于IKE协议。
在一种可选的实施方式中,所述用于进行密钥交换的指令包括多个,各个所述指令之间相互独立。
在一种可选的实施方式中,所述用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令;用于解密数据的指令;用于转加密的指令;用于生成对称密钥并使用公钥加密导出的指令;用于私钥解密并将解密结果保存在预设硬件内部或加密导出的指令;用于生成随机数的指令;用于进行数据拼接的指令;用于生成哈希值的指令;用于进行数据摘要运算的指令;用于生成及验证签名的指令;用于进行密钥扩展的指令。
在一种可选的实施方式中,程序410还用于使得处理器402接收密钥交换发起方通过所述软件应用发送的消息,其中,所述消息中携带有通过所述软件调用接口向所述预设硬件发送的所述用于进行密钥交换的指令;确执行所述指令所指示的操作;根据所述操作的操作结果,通过所述软件调用接口进行所述密钥交换发起方和密钥交换响应方之间的密钥交换。
在一种可选的实施方式中,所述指令中还携带有待交换的数据;程序410还用于使得处理器402在执行所述指令所指示的操作时:针对所述待交换的数据,执行所述指令所指示的操作。
在一种可选的实施方式中,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行数据交换的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令、用于生成对称密钥并使用公钥加密导出的指令、用于生成随机数的指令、用于生成及验证签名的指令、用于进行数据拼接的指令。
在一种可选的实施方式中,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥派生的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于私钥解密并将解密结果保存在硬件内部或加密导出的指令、用于生成及验证签名的指令、用于进行转加密的指令、用于生成哈希值的指令、用于进行数据拼接的指令、用于进行数据摘要运算的指令。
在一种可选的实施方式中,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥扩展的消息时,所述用于进行密钥交换的指令包括用于进行密钥扩展的指令。
在一种可选的实施方式中,当所述消息为用于密钥交换发起方和密钥交换响应方之间对已进行的数据交换进行认证的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于生成哈希值的指令、用于进行数据摘要运算的指令。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于加密数据的指令时,所述指令中还携带有以下信息:算法模式、待加密明文的指针、加密后的密文数据指针、明文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于解密数据的指令时,所述指令中还携带有以下信息:算法模式、数据密文的指针、解密后的明文数据指针、密文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于生成对称密钥并使用公钥加密导出的指令时,所述指令中还携带有以下信息:非对称加密模式、加密key的KEK的ID、新生成key的长度、公钥地址、key输出指针。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于解密并将解密结果保存在硬件内部或加密导出的指令时,所述指令中还携带有以下信息:非对称解密模式、加密key的KEK的ID、keyID、数据长度、私钥的地址、数据地址、私钥解密后用KEK加密输出。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于生成随机数的指令时,所述指令中还携带有以下信息:外部key的加密模式、随机数生成模式、加密key的KEK的ID、随机数长度、外部key的地址、结果输出。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于进行转加密的指令时,所述指令中还携带有以下信息:外部key的加密模式、加密key的KEK的ID、随机数长度、外部key的地址、密文数据输入、KEK加密的数据输出。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于进行数据拼接的指令时,所述指令中还携带有以下信息:加密key的KEK的ID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Key1中需要拼接的长度、Key2中需要拼接的长度、数据和Key的拼接输入、KEK加密的数据输出。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于生成哈希值的指令时,所述指令中还携带有以下信息:哈希算法模式、消息指针、输出杂凑值指针、消息长度。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于生成签名的指令时,所述指令中还携带有以下信息:E值模式、E值指针、KeyID、KEKID、prikey的指针、签名值指针。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于验证签名的指令时,所述指令中还携带有以下信息:E值模式、签名及消息指针、KeyID、KEKID、pubkey Key的指针。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于进行数据摘要运算的指令时,所述指令中还携带有以下信息:运算模式、加密key的KEK的ID、KeyID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Data3的长度、HMAC的Key输入、数据和key的拼接输入、KEK加密的数据输出。
在一种可选的实施方式中,当所述用于进行密钥交换的指令为用于进行密钥扩展的指令时,所述指令中还携带有以下信息:HMAC模式信息、操作指示、加密key的KEK的ID、数据长度、新生成Key的数量、HMAC的Key输入、KeyNum个key长度拼接输入、KEK加密的数据输出。
程序410中各步骤的具体实现可以参见上述数据处理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例的电子设备,将其中必要的密钥交换敏感数据存储在预设硬件中。这些密钥交换敏感数据根据软件应用通过软件调用接口发送来的用于进行密钥交换的指令生成。由此,一方面,因相关数据及指令在硬件中产生和维护,大大提高了密钥交换和数据传输的安全性;另一方面,在使用时,软件需要通过软件调用接口来调用,使得软件无法获取到这些数据和指令,进一步提高了密钥交换和数据传输的安全性。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据处理方法。此外,当通用计算机访问用于实现在此示出的数据处理方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据处理方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (20)
1.一种数据处理方法,包括:
通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令,所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;
根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
2.根据权利要求1所述的方法,其中,所述用于进行密钥交换的指令包括多个,各个所述指令之间相互独立。
3.根据权利要求1所述的方法,其中,所述用于进行密钥交换的指令包括以下至少之一:
用于加密数据的指令;
用于解密数据的指令;
用于转加密的指令;
用于生成对称密钥并使用公钥加密导出的指令;
用于私钥解密并将解密结果保存在预设硬件内部或加密导出的指令;
用于生成随机数的指令;
用于进行数据拼接的指令;
用于生成哈希值的指令;
用于进行数据摘要运算的指令;
用于生成及验证签名的指令;
用于进行密钥扩展的指令。
4.根据权利要求3所述的方法,其中,所述方法还包括:
接收密钥交换发起方通过所述软件应用发送的消息,其中,所述消息中携带有通过所述软件调用接口向所述预设硬件发送的所述用于进行密钥交换的指令;
执行所述用于进行密钥交换的指令所指示的操作;
根据所述操作的操作结果,通过所述软件调用接口进行所述密钥交换发起方和密钥交换响应方之间的密钥交换。
5.根据权利要求4所述的方法,其中,所述指令中还携带有待交换的数据;
所述执行所述用于进行密钥交换的指令所指示的操作,包括:针对所述待交换的数据,执行所述用于进行密钥交换的指令所指示的操作。
6.根据权利要求5所述的方法,其中,
当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行数据交换的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于加密数据的指令、用于生成对称密钥并使用公钥加密导出的指令、用于生成随机数的指令、用于生成及验证签名的指令、用于进行数据拼接的指令;
或者,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥派生的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于私钥解密并将解密结果保存在硬件内部或加密导出的指令、用于生成及验证签名的指令、用于进行转加密的指令、用于生成哈希值的指令、用于进行数据拼接的指令、用于进行数据摘要运算的指令;
或者,当所述消息为用于进行密钥交换发起方和密钥交换响应方之间进行密钥扩展的消息时,所述用于进行密钥交换的指令包括用于进行密钥扩展的指令;
或者,当所述消息为用于密钥交换发起方和密钥交换响应方之间对已进行的数据交换进行认证的消息时,所述用于进行密钥交换的指令包括以下至少之一:用于生成哈希值的指令、用于进行数据摘要运算的指令。
7.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于加密数据的指令时,所述指令中还携带有以下信息:
算法模式、待加密明文的指针、加密后的密文数据指针、明文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。
8.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于解密数据的指令时,所述指令中还携带有以下信息:
算法模式、数据密文的指针、解密后的明文数据指针、密文的长度、keyID、KEKID、Key+IV的指针、和填充方式选择。
9.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于生成对称密钥并使用公钥加密导出的指令时,所述指令中还携带有以下信息:
非对称加密模式、加密key的KEK的ID、新生成key的长度、公钥地址、key输出指针。
10.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于解密并将解密结果保存在硬件内部或加密导出的指令时,所述指令中还携带有以下信息:
非对称解密模式、加密key的KEK的ID、keyID、数据长度、私钥的地址、数据地址、私钥解密后用KEK加密输出。
11.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于生成随机数的指令时,所述指令中还携带有以下信息:
外部key的加密模式、随机数生成模式、加密key的KEK的ID、随机数长度、外部key的地址、结果输出。
12.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于进行转加密的指令时,所述指令中还携带有以下信息:
外部key的加密模式、加密key的KEK的ID、随机数长度、外部key的地址、密文数据输入、KEK加密的数据输出。
13.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于进行数据拼接的指令时,所述指令中还携带有以下信息:
加密key的KEK的ID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Key1中需要拼接的长度、Key2中需要拼接的长度、数据和Key的拼接输入、KEK加密的数据输出。
14.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于生成哈希值的指令时,所述指令中还携带有以下信息:
哈希算法模式、消息指针、输出杂凑值指针、消息长度。
15.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于生成签名的指令时,所述指令中还携带有以下信息:
E值模式、E值指针、KeyID、KEKID、prikey的指针、签名值指针。
16.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于验证签名的指令时,所述指令中还携带有以下信息:
E值模式、签名及消息指针、KeyID、KEKID、pubkey Key的指针。
17.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于进行数据摘要运算的指令时,所述指令中还携带有以下信息:
运算模式、加密key的KEK的ID、KeyID、Key1的长度、Key2的长度、Data1的长度、Data2的长度、Data3的长度、HMAC的Key输入、数据和key的拼接输入、KEK加密的数据输出。
18.根据权利要求4所述的方法,其中,当所述用于进行密钥交换的指令为用于进行密钥扩展的指令时,所述指令中还携带有以下信息:
HMAC模式信息、操作指示、加密key的KEK的ID、数据长度、新生成Key的数量、HMAC的Key输入、KeyNum个key长度拼接输入、KEK加密的数据输出。
19.一种数据处理装置,包括:
指令接收模块,用于通过软件调用接口,接收来自于软件应用的用于进行密钥交换的指令,所述指令中携带有用于生成密钥交换敏感数据的参数,其中,所述密钥交换敏感数据包括密钥及与密钥相关的关键数据;
保存模块,用于根据所述参数,在预设硬件中生成对应的密钥交换敏感数据,并将生成的所述密钥交换敏感数据保存至预设硬件中。
20.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-18中任一项所述的数据处理方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110179214.XA CN113422753B (zh) | 2021-02-09 | 2021-02-09 | 数据处理方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110179214.XA CN113422753B (zh) | 2021-02-09 | 2021-02-09 | 数据处理方法、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422753A true CN113422753A (zh) | 2021-09-21 |
CN113422753B CN113422753B (zh) | 2023-06-13 |
Family
ID=77711807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110179214.XA Active CN113422753B (zh) | 2021-02-09 | 2021-02-09 | 数据处理方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422753B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598478A (zh) * | 2022-03-10 | 2022-06-07 | 北京明略昭辉科技有限公司 | 数据加密的方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151322A1 (en) * | 2001-06-05 | 2004-08-05 | Sampo Sovio | Method and arrangement for efficient information network key exchange |
WO2007121641A1 (fr) * | 2006-04-24 | 2007-11-01 | Beijing E-Henxen Authentication Technologies Co., Ltd. | Système d'authentification de la crédibilité d'une clé publique combinée utilisant une puce |
US20080022412A1 (en) * | 2006-06-28 | 2008-01-24 | David Carroll Challener | System and method for TPM key security based on use count |
US20110296186A1 (en) * | 2010-06-01 | 2011-12-01 | Visto Corporation | System and method for providing secured access to services |
US20130091352A1 (en) * | 2011-10-05 | 2013-04-11 | Cisco Technology, Inc. | Techniques to Classify Virtual Private Network Traffic Based on Identity |
US20160094521A1 (en) * | 2014-09-26 | 2016-03-31 | Verizon Patent And Licensing Inc. | Data encryption, transport, and storage service for carrier-grade networks |
WO2018130079A1 (zh) * | 2017-01-11 | 2018-07-19 | 京信通信系统(中国)有限公司 | 一种英特网协议安全IPSec协议加密方法和网络设备 |
-
2021
- 2021-02-09 CN CN202110179214.XA patent/CN113422753B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151322A1 (en) * | 2001-06-05 | 2004-08-05 | Sampo Sovio | Method and arrangement for efficient information network key exchange |
WO2007121641A1 (fr) * | 2006-04-24 | 2007-11-01 | Beijing E-Henxen Authentication Technologies Co., Ltd. | Système d'authentification de la crédibilité d'une clé publique combinée utilisant une puce |
US20080022412A1 (en) * | 2006-06-28 | 2008-01-24 | David Carroll Challener | System and method for TPM key security based on use count |
US20110296186A1 (en) * | 2010-06-01 | 2011-12-01 | Visto Corporation | System and method for providing secured access to services |
US20130091352A1 (en) * | 2011-10-05 | 2013-04-11 | Cisco Technology, Inc. | Techniques to Classify Virtual Private Network Traffic Based on Identity |
US20160094521A1 (en) * | 2014-09-26 | 2016-03-31 | Verizon Patent And Licensing Inc. | Data encryption, transport, and storage service for carrier-grade networks |
WO2018130079A1 (zh) * | 2017-01-11 | 2018-07-19 | 京信通信系统(中国)有限公司 | 一种英特网协议安全IPSec协议加密方法和网络设备 |
Non-Patent Citations (6)
Title |
---|
D. HARKINS,D. CARREL,CISCO SYSTEMS: ""The Internet Key Exchange (IKE)"", 《IEFT RFC2409》 * |
D. HARKINS,D. CARREL,CISCO SYSTEMS: ""The Internet Key Exchange (IKE)"", 《IEFT RFC2409》, 30 September 1998 (1998-09-30), pages 19 * |
任静思;王劲林;陈晓;叶晓舟;: "一种云存储环境下保障数据机密性的方法", 计算机工程与科学, no. 12 * |
宋贤睿;张淑娟;顾广宇;蔡翔;: "一种面向数据库的分类数据加密研究", 电子设计工程, no. 14 * |
张玲玲等: "利用安全协处理器加速实现IKEv2协议", 《计算机应用》 * |
张玲玲等: "利用安全协处理器加速实现IKEv2协议", 《计算机应用》, no. 12, 28 December 2005 (2005-12-28) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598478A (zh) * | 2022-03-10 | 2022-06-07 | 北京明略昭辉科技有限公司 | 数据加密的方法、装置、电子设备和存储介质 |
CN114598478B (zh) * | 2022-03-10 | 2024-04-19 | 北京明略昭辉科技有限公司 | 数据加密的方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113422753B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110380852B (zh) | 双向认证方法及通信系统 | |
EP2792100B1 (en) | Method and device for secure communications over a network using a hardware security engine | |
CN103118027B (zh) | 基于国密算法建立tls通道的方法 | |
JP5579872B2 (ja) | 安全な複数uim認証および鍵交換 | |
CN106788989B (zh) | 一种建立安全加密信道的方法及设备 | |
US11736304B2 (en) | Secure authentication of remote equipment | |
CN112913189B (zh) | 一种ota升级方法及装置 | |
EP1976322A1 (en) | An authentication method | |
CN108650227A (zh) | 基于数据报安全传输协议的握手方法及系统 | |
US11044082B2 (en) | Authenticating secure channel establishment messages based on shared-secret | |
CN113438071A (zh) | 安全通信的方法及设备 | |
EP2767029B1 (en) | Secure communication | |
US10630466B1 (en) | Apparatus and method for exchanging cryptographic information with reduced overhead and latency | |
CN110912686A (zh) | 一种安全通道的密钥的协商方法及系统 | |
US11818268B2 (en) | Hub-based token generation and endpoint selection for secure channel establishment | |
CN113422753B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN111901335A (zh) | 基于中台的区块链数据传输管理方法及系统 | |
CN114554485B (zh) | 异步会话密钥协商和应用方法、系统、电子设备及介质 | |
CN114765544A (zh) | 可信执行环境数据离线迁移方法及装置 | |
Yoon et al. | Security enhancement scheme for mobile device using H/W cryptographic module | |
CN106230595B (zh) | 一种可信平台控制模块的授权协议 | |
CN116827542B (zh) | 一种智能设备的数字证书管理方法及系统 | |
CN117479154B (zh) | 基于统一多域标识认证的办公终端数据处理方法与系统 | |
CN116017346A (zh) | 一种v2x通信方法及系统 | |
WO2022141157A1 (zh) | 一种 Profile 数据的安全传输方法和相应装置 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059898 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |