数据处理的方法和装置转让专利

申请号 : CN201410361410.9

文献号 : CN105450406B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 华志超夏虞斌陈海波

申请人 : 华为技术有限公司

摘要 :

本发明实施例提供一种数据处理的方法和装置,该方法包括:获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识;在可信运行域内,获取与该第一标识对应的第一数据,该第一数据为该目标应用向目标服务器请求服务所必需的数据;在该可信运行域内,根据该第一数据和该第一网络数据包生成第二网络数据包;在该可信运行域内,利用预先与该目标服务器协商的第一会话密钥对该第二网络数据包进行加密,获取加密的第二网络数据包;向该目标服务器发送该加密的第二网络数据包。本发明实施例的数据处理的方法和装置,能够有效避免数据被攻击者窃取,从而能够提高数据的安全性。

权利要求 :

1.一种数据处理的方法,其特征在于,包括:

获取运行于不可信运行域内的目标应用发送的第一网络数据包,所述第一网络数据包包括第一标识;

在可信运行域内,获取与所述第一标识对应的第一数据,所述第一数据为所述目标应用向目标服务器请求服务所必需的数据;

在所述可信运行域内,根据所述第一数据和所述第一网络数据包生成第二网络数据包;

在所述可信运行域内,利用预先与所述目标服务器协商的第一会话密钥对所述第二网络数据包进行加密,获取加密的第二网络数据包;

向所述目标服务器发送所述加密的第二网络数据包。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述目标服务器发送的利用所述第一会话密钥加密的第三网络数据包;

在所述可信运行域内,利用所述第一会话密钥解密所述加密的第三网络数据包,当确定被解密的第三网络数据包包括所述第一数据时,根据所述第一数据对应的所述第一标识以及所述第三网络数据包,生成第四网络数据包,所述第四网络数据包不包括所述第一数据;

将所述第四网络数据包发送给运行于所述不可信运行域内的所述目标应用。

3.根据权利要求1或2所述的方法,其特征在于,所述获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,所述方法还包括:在所述可信运行域内,建立与所述目标服务器之间安全套接层SSL连接,并确定所述第一会话密钥,其中,所述第一会话密钥为在利用预先存储于所述可信运行域内的第一根证书对所述目标服务器的第一证书验证通过后生成的会话密钥,所述第一证书用来证明所述目标服务器的身份。

4.根据权利要求3所述的方法,其特征在于,在获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,所述方法还包括:在所述可信运行域内,根据第二根证书生成第二证书,所述第二证书与所述第一证书具有相同通用名,所述第二根证书预先存储于所述可信运行域和所述不可信运行域内;

根据所述第二证书与所述第二根证书,在所述可信运行域和所述不可信运行域之间建立SSL连接,并确定第二会话密钥,所述第二会话密钥为所述可信运行域和所述不可信运行域之间的会话密钥;

所述在可信运行域内,获取运行于不可信运行域内的目标应用发送的第一网络数据包,包括:获取利用所述第二会话密钥加密的所述第一网络数据包;

在所述可信运行域内,利用所述第二会话密钥,解密所述加密的第一网络数据包。

5.根据权利要求4所述的方法,其特征在于,所述根据所述第二证书与所述第二根证书,在所述可信运行域和所述不可信运行域之间建立SSL连接,并确定第二会话密钥,包括:获取在所述可信运运行域内生成的所述第二证书;

在所述不可信运行域内,根据所述第二根证书验证所述第二证书,当验证通过后,生成所述第二会话密钥,并利用所述第二证书的公钥对所述第二会话密钥加密;

在所述可信运行域内,利用所述第二证书的私钥解密所述加密的第二会话密钥,获得第二会话密钥。

6.根据权利要求5所述的方法,其特征在于,所述向所述目标服务器发送所述加密的第二网络数据包,包括:通过共享内存,将所述加密的第二网络数据包转移到所述不可信运行域内;

在所述不可信运行域内,向所述目标服务器发送所述加密的第二网络数据包。

7.一种数据处理的装置,其特征在于,包括:

第一获取模块,用于获取运行于不可信运行域内的目标应用发送的第一网络数据包,所述第一网络数据包包括第一标识;

第二获取模块,用于在可信运行域内,获取与所述第一获取模块获取的所述第一网络数据包中的所述第一标识对应的第一数据,所述第一数据为所述目标应用向目标服务器请求服务所必需的数据;

第一生成模块,用于在所述可信运行域内,根据所述第二获取模块获取的所述第一数据和所述第一网络数据包生成第二网络数据包;

加密模块,用于在所述可信运行域内,利用预先与所述目标服务器协商的第一会话密钥对所述第一生成模块生成的所述第二网络数据包进行加密,获取加密的第二网络数据包;

第一发送模块,用于向所述目标服务器发送所述加密模块获取的所述加密的第二网络数据包。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:接收模块,用于接收所述目标服务器发送的利用所述第一会话密钥加密的第三网络数据包;

处理模块,用于在所述可信运行域内,利用所述第一会话密钥解密所述接收模块接收的所述加密的第三网络数据包,当确定被解密的第三网络数据包包括所述第一数据时,根据所述第一数据对应的所述第一标识以及所述第三网络数据包,生成第四网络数据包,所述第四网络数据包不包括所述第一数据;

第二发送模块,用于将所述处理模块生成的所述第四网络数据包发送给运行于所述不可信运行域内的所述目标应用。

9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:第一建立模块,用于在第一获取模块获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在所述可信运行域内,建立与所述目标服务器之间安全套接层SSL连接,并确定所述第一会话密钥,其中,所述第一会话密钥为在利用预先存储于所述可信运行域内的第一根证书对所述目标服务器的第一证书验证通过后生成的会话密钥,所述第一证书用来证明所述目标服务器的身份。

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:第二生成模块,用于在第一获取模块获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在所述可信运行域内,根据第二根证书生成第二证书,所述第二证书与所述第一证书具有相同通用名,所述第二根证书预先存储于所述可信运行域和所述不可信运行域内;

第二建立模块,用于根据所述第二生成模块生成的所述第二证书与所述第二根证书,在所述可信运行域和所述不可信运行域之间建立SSL连接,并确定第二会话密钥,所述第二会话密钥为所述可信运行域和所述不可信运行域之间的会话密钥;

所述第一获取模块包括:

第一获取单元,用于获取利用所述第二会话密钥加密的所述第一网络数据包;

解密单元,用于在所述可信运行域内,利用所述第二会话密钥,解密所述第一获取单元获取的所述加密的所述第一网络数据包。

11.根据权利要求10所述的装置,其特征在于,所述第二建立模块包括:第二获取单元,用于获取在所述可信运运行域内生成的所述第二证书;

处理单元,用于在所述不可信运行域内,根据所述第二根证书验证所述第二获取单元获取的所述第二证书,当验证通过后,生成所述第二会话密钥,并利用所述第二证书的公钥对所述第二会话密钥加密;

解密单元,用于在所述可信运行域内,利用所述第二证书的私钥解密所述处理单元加密的第二会话密钥,获得所述第二会话密钥。

12.根据权利要求11所述的装置,其特征在于,所述第一发送模块包括:转移单元,用于通过共享内存,将所述加密的第二网络数据包转移到所述不可信运行域内;

发送单元,用于在所述不可信运行域内,向所述目标服务器发送所述加密的第二网络数据包。

说明书 :

数据处理的方法和装置

技术领域

[0001] 本发明实施例涉及通信领域,并且更具体地,涉及一种数据处理的方法和装置。

背景技术

[0002] 随着信息化技术的发展,个人信息安全已经成为人们关心的重要问题。用户可以通过各种智能终端(例如笔记本电脑、智能手机和平板电脑等)进行个人数据操作,例如对电子邮件、手机银行、社交网络等应用程序进行操作,为了使用方便,用户通常会将登陆密码等隐私数据保存在智能终端中。
[0003] 然而,当前智能终端对这些隐私数据的保护也存在一些隐患,例如直接将隐私数据以明文形式保存在手机中,这就很容易造成该隐私数据的泄露。现有技术虽然对用户隐私数据进行加密,但为了版本兼容性和用户迁移的便捷性,将加密隐私数据的秘钥编码在程序中,很容易被攻击者获得,使得用户隐私数据存在很大的风险。
[0004] 因此在当前智能终端中,数据的安全性亟待增强。

发明内容

[0005] 本发明实施例提供一种数据处理的方法和装置,能够有效避免数据被攻击者窃取,从而能够提高数据的安全性。
[0006] 第一方面,提供了一种数据处理的方法,该方法包括:
[0007] 获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识;
[0008] 在可信运行域内,获取与该第一标识对应的第一数据,该第一数据为该目标应用向目标服务器请求服务所必需的数据;
[0009] 在该可信运行域内,根据该第一数据和该第一网络数据包生成第二网络数据包;
[0010] 在该可信运行域内,利用预先与该目标服务器协商的第一会话密钥对该第二网络数据包进行加密,获取加密的第二网络数据包;
[0011] 向该目标服务器发送该加密的第二网络数据包。
[0012] 结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:
[0013] 接收该目标服务器发送的利用该第一会话密钥加密的第三网络数据包;
[0014] 在该可信运行域内,利用该第一会话密钥解密该加密的第三网络数据包,当确定被解密的第三网络数据包包括该第一数据时,根据该第一数据对应的该第一标识以及该第三网络数据包,生成第四网络数据包,该第四网络数据包不包括该第一数据;
[0015] 将该第四网络数据包发送给运行于该不可信运行域内的该目标应用。
[0016] 结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,该方法还包括:
[0017] 在该可信运行域内,建立与该目标服务器之间安全套接层SSL连接,并确定该第一会话密钥,其中,该第一会话密钥为在利用预先存储于该可信运行域内的第一根证书对该目标服务器的第一证书验证通过后生成的会话密钥,该第一证书用来证明该目标服务器的身份。
[0018] 结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,该方法还包括:
[0019] 在该可信运行域内,根据第二根证书生成第二证书,该第二证书与该第一证书具有相同通用名,该第二根证书预先存储于该可信运行域和该不可信运行域内;
[0020] 根据该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,该第二会话密钥为该可信运行域和该不可信运行域之间的会话密钥;
[0021] 该在可信运行域内,获取运行于不可信运行域内的目标应用发送的第一网络数据包,包括:
[0022] 获取利用该第二会话密钥加密的该第一网络数据包;
[0023] 在该可信运行域内,利用该第二会话密钥,解密该加密的第一网络数据包。
[0024] 结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,根据该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,包括:
[0025] 获取在该可信运运行域内生成的该第二证书;
[0026] 在该不可信运行域内,根据该第二根证书验证该第二证书,当验证通过后,生成该第二会话密钥,并利用该第二证书的公钥对该第二会话密钥加密;
[0027] 在该可信运行域内,利用该第二证书的私钥解密该加密的第二会话密钥,获得第二会话密钥。
[0028] 结合第一方面和第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,向该目标服务器发送该加密的第二网络数据包,包括:
[0029] 通过共享内存,将该加密的第二网络数据包转移到该不可信运行域内;
[0030] 在该不可信运行域内,向该目标服务器发送该加密的第二网络数据包。
[0031] 第二方面,提供了一种数据处理的装置,该装置包括:
[0032] 第一获取模块,用于获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识;
[0033] 第二获取模块,用于在可信运行域内,获取与该第一获取模块获取的该第一网络数据包中的该第一标识对应的第一数据,该第一数据为该目标应用向目标服务器请求服务所必需的数据;
[0034] 第一生成模块,用于在该可信运行域内,根据该第二获取模块获取的该第一数据和该第一网络数据包生成第二网络数据包;
[0035] 加密模块,用于在该可信运行域内,利用预先与该目标服务器协商的第一会话密钥对该第一生成模块生成的该第二网络数据包进行加密,获取加密的第二网络数据包;
[0036] 第一发送模块,用于向该目标服务器发送该加密模块获取的该加密的第二网络数据包。
[0037] 结合第二方面,在第二方面的第一种可能的实现方式中,该装置还包括:
[0038] 接收模块,用于接收该目标服务器发送的利用该第一会话密钥加密的第三网络数据包;
[0039] 处理模块,用于在该可信运行域内,利用该第一会话密钥解密该接收模块接收的该加密的第三网络数据包,当确定被解密的第三网络数据包包括该第一数据时,根据该第一数据对应的该第一标识以及该第三网络数据包,生成第四网络数据包,该第四网络数据包不包括该第一数据;
[0040] 第二发送模块,用于将该处理模块生成的该第四网络数据包发送给运行于该不可信运行域内的该目标应用。
[0041] 结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该装置还包括:
[0042] 第一建立模块,用于在第一获取模块获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在该可信运行域内,建立与该目标服务器之间安全套接层SSL连接,并确定该第一会话密钥,其中,该第一会话密钥为在利用预先存储于该可信运行域内的第一根证书对该目标服务器的第一证书验证通过后生成的会话密钥,该第一证书用来证明该目标服务器的身份。
[0043] 结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该装置还包括:
[0044] 第二生成模块,用于在第一获取模块获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在该可信运行域内,根据第二根证书生成第二证书,该第二证书与该第一证书具有相同通用名,该第二根证书预先存储于该可信运行域和该不可信运行域内;
[0045] 第二建立模块,用于根据该第二生成模块生成的该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,该第二会话密钥为该可信运行域和该不可信运行域之间的会话密钥;
[0046] 该第一获取模块包括:
[0047] 第一获取单元,用于获取利用该第二会话密钥加密的该第一网络数据包;
[0048] 解密单元,用于在该可信运行域内,利用该第二会话密钥,解密该第一获取单元获取的该加密的该第一网络数据包。
[0049] 结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该第二建立模块包括:
[0050] 第二获取单元,用于获取在该可信运运行域内生成的该第二证书;
[0051] 处理单元,用于在该不可信运行域内,根据该第二根证书验证该第二获取单元获取的该第二证书,当验证通过后,生成该第二会话密钥,并利用该第二证书的公钥对该第二会话密钥加密;
[0052] 解密单元,用于在该可信运行域内,利用该第二证书的私钥解密该处理单元加密的第二会话密钥,获得该第二会话密钥。
[0053] 结合第二方面和第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,该第一发送模块包括:
[0054] 转移单元,用于通过共享内存,将该加密的第二网络数据包转移到该不可信运行域内;
[0055] 发送单元,用于在该不可信运行域内,向该目标服务器发送该加密的第二网络数据包。
[0056] 基于以上技术方案,本发明实施例的数据处理的方法和装置,通过将数据存储在可信运行域内,并在数据的使用过程中也有效避免了数据的明文形式出现在不可信运行域内,能够有效避免数据被攻击者窃取,从而能够提高数据的安全性。

附图说明

[0057] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0058] 图1示出了本发明实施例的数据处理的方法的应用场景的示意图。
[0059] 图2示出了本发明实施例的数据处理的方法的示意性流程图。
[0060] 图3示出了本发明实施例的数据处理的方法的另一示意性流程图。
[0061] 图4示出了本发明实施例的数据处理的方法的再一示意性流程图。
[0062] 图5示出了本发明实施例的数据处理的装置的示意性框图。
[0063] 图6示出了本发明另一实施例提供的数据处理的装置的示意性框图。

具体实施方式

[0064] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065] 应理解,本发明的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication,简称为“GSM”)系统、码分多址(Code Division Multiple Access,简称为“CDMA”)系统、宽带码分多址(Wideband Code Division Multiple Access,简称为“WCDMA”)系统、通用分组无线业务(General Packet Radio Service,简称为“GPRS”)系统、长期演进(Long Term Evolution,简称为“LTE”)系统、频分双工(Frequency Division Duplex,简称为“FDD”)系统、时分双工(Time Division Duplex,简称为“TDD”)系统、通用移动通信系统(Universal Mobile Telecommunication System,简称为“UMTS”)等。
[0066] 还应理解,在本发明实施例中,终端也可称之为用户设备(User Equipment,简称为“UE”)、移动台(Mobile Station,简称为“MS”)或移动终端(Mobile Terminal)等,该终端可以经无线接入网(Radio Access Network,简称为“RAN”)与一个或多个核心网进行通信,例如,终端可以是移动电话(或称为“蜂窝”电话、手机)或具有移动终端的计算机等,例如,终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。为了便于表述,本发明实施例会以终端为手机为例进行说明,但是本发明实施例并不限于此。
[0067] 为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素;
[0068] 1)不可信运行域和可信运行域:
[0069] 不可信运行域和可信运行域可以理解为可以在同一个处理器上运行的两个运行环境。其中,不可信运行域还可称之为“正常世界”,例如运行应用的环境等,对应地,可信运行域可称之为“安全世界”。不可信运行域内的信息或数据可能会受到攻击者的窃取或破坏,即不可信运行域内的信息和数据的安全性不高;相较于不可信运行域,可信运行域可以有效地保证信息和数据的安全性,可信运行域中的信息或数据将无法被攻击者获取或者篡改,因为任何不可信运行域中的应用/系统程序均无法随意访问/修改可信运行域中的数据和信息,此外,终端的硬件以及软件一同保证了可信运行域的安全。具体地,对于基于ARM(Advanced RISC Machine,高级精简指令集机器)处理器的终端,可以采用ARM提供的TrustZone安全扩展技术进行设计不可信运行域和可信运行域。
[0070] 2)安全套接层(Secure Sockets Layer,简称为“SSL”)通信:
[0071] SSL为一种通用的通信加密协议,可以安全有效的保证客户端与服务器之间的通信安全。基于SSL的通信分为两步:第一步通过使用非对称加密方式来加密通信,建立客户端与服务器之间的SSL连接。具体步骤为:首先客户端向服务器发起连接请求;服务器会向客户端发送一张证明自己身份的证书,该证书中包含服务器的一些信息和一个非对称加密的公钥;当客户端验证通过服务器身份后,会生成一个对称加密的会话秘钥,然后使用服务器证书中的公钥对该会话密钥加密后发送给服务器。由于使用非对称加密该会话密钥,因此只有服务器的私钥(私钥仅被服务器持有)才能解密利用公钥加密的会话秘钥。至此,客户端完成对服务身份的验证,并且安全地与服务器协商出了一个会话秘钥。第二步,通信阶段,后续客户端与服务器之间的所有通信都将使用该会话秘钥进行加密。
[0072] 3)证书和根证书:
[0073] 上述可知,在建立SSL连接过程中,服务器往往会提供证明自己身份的证书供客户端验证,即证书是用来证明服务器身份的文件,一般来说,证书中至少包括下列三种信息:
[0074] (1)公钥
[0075] 证书中会有一个公钥,只有证书的拥有者才会拥有这个公钥对应的私钥。在非对称加密中,只有对应的私钥才能解密被公钥加密的内容,反之亦然(只有对应的公钥才能解密被私钥加密的内容)。即使用证书中公钥加密后的信息将只有证书的拥有者才能解密。因此,证书中的公钥可以确保与客户端进行连接的一定是证书的拥有者(非证书拥有者没有公钥对应的私钥,也就无法解密客户端使用证书公钥加密后的信息,无法与客户端通信)。
[0076] (2)通用名
[0077] 证书中会有一个通用名,例如域名为www.google.com的服务器,其证书通用名为www.google.com,证书的通用名可以告知客户端证书拥有者的身份,客户端可以比较证书的通用名是否与想要连接的服务器域名一致。
[0078] (3)签名信息
[0079] 证书中还会有一个证书颁发机构的签名信息,客户端通过该签名信息验证证书的真伪,因为该签名信息是经过证书颁发机构利用对应的根证书的私钥加密后的信息,而该对应的根证书事先会安装在客户端内,客户端只会相信一个被可信根证书签名的证书。为了便于理解,下面介绍一下根证书:
[0080] 根证书是一个事先被客户端所信任的证书(例如Microsoft Root Authority),根证书被事先安装在客户端中(根证书中同样会有一个公钥)。当可信的证书颁发机构为一个网站的证书签名时,它会使用自己根证书的私钥对签名信息加密,这使得只有这个机构的根证书中的公钥才能解密签名信息,并且这根证书中的公钥一定可以解密签名信息。所以当客户端验证一张证书的真伪时,可以使用事先保存的多张根证书中的公钥依次对证书中的签名信息进行解密,一旦存在一张根证书的公钥可以解密证书中的签名信息,那么就认为该证书是通过一个可信的证书颁发机构颁发的,即说明该证书可信。
[0081] 上述可知,在基于SSL协议的通信过程中,证书和根证书是两个重要的要素,它们是保证通信安全的基础和关键。
[0082] 当前,手机端的一些应用(例如支付宝)在运行时,需要将与用户隐私密切相关的数据(例如用户账号、密码或身份证号码等,下面简称为用户隐私数据)发送给应用服务器进行登录或者支付等操作,现有技术中,通常将用户隐私数据保存在应用中(相当于保存在不可信运行域内),然后将用户隐私数据与其他信息一同发送给应用服务器(例如支付宝服务器)进行操作。当前,为了保证手机与服务器之间的通信安全,手机与服务器之间会使用SSL协议对通信进行加密,例如,根据SSL协议,服务器会向手机发送一张证书,同时在手机的不可信运行域预先存储有一些根证书,手机将使用这些根证书验证服务器提供的证书;验证通过后,手机中的应用会与服务器协商出一个加密密钥,在后续通信中使用该密钥进行加密。
[0083] 但是这样的架构存在一些问题,首先,由于用户隐私数据被保存在手机的不可信运行域中,这就给攻击者提供了窃取用户隐私数据的机会;其次,手机使用存在不可信运行域中的根证书来验证服务器提供的证书,这样使得攻击者可以通过在手机的不可信运行域安装恶意的根证书来攻击用户的手机,因为安装了恶意根证书的手机将无法分辨出伪造的应用服务器,相应地会向伪造的应用服务器发送用户隐私数据,这样极大地降低了用户隐私数据的安全性。
[0084] 为了解决上述问题,本发明提出如图1所示的架构,首先终端(具体地,例如手机)包括可信运行域和不可信运行域,其中,与当前技术不同,运行在不可信运行域中的应用模块(例如支付宝等应用)将不再保存用户隐私数据(例如支付宝支付密码),而是保存一个与用户隐私数据具有对应关系的标识来代替用户隐私数据;该对应关系和用户隐私数据存储在可信运行域内(例如图所示的,隐私数据存储在可信运行域内的安全模块)。运行于不可信运行域内的应用模块发出包含标识的网络数据包,可信运行域内的安全模块将截获该网络数据包,并根据网络数据包中的标识确定对应的用户隐私数据,将网络数据包的标识替换为用户隐私数据,然后将包含用户隐私数据的网络数据包发送给应用服务器。这样能够有效提高用户隐私数据的安全性,因为当攻击者攻击了不可信运行域,即使窃取了标识,也无法获取到用户隐私数据。同时,与现有技术不同,用于验证应用服务器身份的根证书不再存储在不可信运行域,而是存储在可信运行域(例如图1所示的SSL模块3中的根证书1),这样即使攻击者在不可信运行域安装了恶意的根证书,可信运行域中的SSL模块3也可以识别出伪造的应用服务器,因为可信运行域中的数据将无法被攻击者获取或者篡改。
[0085] 为了便于理解,下面结合图1简单介绍本发明实施例的一个应用场景中的各个模块,如图1所示,终端包括不可信运行域和可信运行域,且用户隐私数据存储在可信运行域内。具体地,在不可信运行域内包括应用模块、SSL模块1、代理模块1和网络驱动,在可信运行域内包括安全模块、SSL模块2、SSL模块3和代理模块2,下面简单介绍各个模块及其连接关系。
[0086] 首先介绍在不可信运行域内的各个模块:
[0087] 应用模块:
[0088] 具体地,例如运行在不可信运行域中的应用,例如支付宝、126邮箱、QQ等,这些应用在向应用服务器请求相关服务时,需要使用一些与用户隐私相关的数据(例如用户支付密码、身份证号码等)。与现有技术不同,在本发明中,运行于不可信运行域内的应用不再保存需要使用的用户隐私数据,而是保存与用户隐私数据具有对应关系的标识(如图1所示),且该对应关系是事先保存在可信运行域内的,此外,该标识与用户隐私数据在内容上没有关联关系,因此当攻击者攻击了不可信运行域,即使窃取了标识,也无法获取到用户隐私数据。
[0089] SSL模块1:
[0090] 不可信运行域中的SSL模块1为应用模块提供SSL服务,它将使用储存在不可信运行域中的根证书(如图1所示的根证书2)来验证应用服务器的身份,同时保证SSL会话的安全性,具体地,SSL模块1验证与其进行SSL会话的是否是应用(例如支付宝)指定的网络服务器(例如支付宝服务器)。下文会进行详细地描述。
[0091] 代理模块1:
[0092] 不可信运行域中的代理模块1负责转发网络数据包。对于从应用模块发给应用服务器的网络数据包,该代理模块1会将其转发给可信运行域进行处理;对于从应用服务器发给不可信运行域中的网络数据包,该代理模块1同样会将其转发给可信运行域进行处理;对于从可信运行域发给应用服务器的网络数据包,该代理模块1将其转发给网络驱动,以便于网络驱动将该网络数据包发送给应用服务器。
[0093] 网络驱动:
[0094] 负责向应用服务器发送网络数据包或接收应用服务器发送的网络数据包,该网络驱动具体地,例如手机中网卡的驱动。
[0095] 上面介绍了不可信运行域内的各个模块,下面介绍可信运行域内的各个模块:
[0096] 安全模块,用户隐私数据将被保存在该模块中,任何处于不可信运行域中的恶意程序/系统都不能窃取存储在安全模块中的用户隐私数据。更具体地,在该模块中,所有用户隐私数据都以“用户隐私数据+标识”类似这样的对应关系的模式储存。
[0097] SSL模块3:
[0098] 如图1所示,可信运行域中的SSL模块3用于与网络服务器建立SSL连接(如图1所示的SSL连接1),同时使用储存在可信运行域中的根证书1来验证网络服务器身份,并保证通信的安全性(图1所示的协商确定的会话密钥1)。
[0099] SSL模块2:
[0100] 该SSL模块2负责帮助可信运行域内的安全模块代替应用服务器与不可信运行域中的应用模块进行SSL连接(如图1所示的SSL连接2)。
[0101] 不可信运行域中的应用模块会使用同样位于不可信运行域中的SSL模块1验证与其进行SSL会话的是否是应用(例如支付宝)指定的网络服务器(例如支付宝服务器)。由于在本发明中,是在可信运行域内与应用服务器建立SSL连接,换句话说是建立安全模块与应用服务器之间的SSL连接,因此,需要让安全模块来代替应用模块指定的应用服务器与应用模块建立SSL连接,因此在可信运行域中,需要针对不同的服务器,制作证书,具体地,是为安全模块制作证书,使得其可以代替应用服务器与应用模块进行SSL连接。下文会进行详细描述。
[0102] 代理模块2:
[0103] 可信运行域中的代理模块2也是负责网络数据包的转发。它会将不可信运行域中的代理模块1转发来的数据包发送给安全模块(经过SSL模块2或SSL模块3加解密),同时将安全模块发送给应用服务器的网络数据包发给不可信运行域中的代理模块1处理。
[0104] 应理解,图1所示的网络驱动在不可信运行域内,即终端是在不可信运行域内与应用服务器进行直接通信,例如,网络数据包经过在可信运行域处理后,还需转移到不可信运行域内,再发送给应用服务器,所以代理模块2需要将安全模块发送给应用服务器的网络数据包发给不可信运行域中的代理模块1处理。可选地,如果网络驱动是可信地,安全地,可以将网络驱动设置在可信运行域内,换句话说,终端可以在不可信运行域内与应用服务器进行直接通信,对应地,对于安全模块发送给应用服务器的网络数据包,代理模块2无需转发给不可信运行域中的代理模块1处理,而是可以之间发送给可信运行域内的网络驱动以发送给应用服务器。
[0105] 共享内存:
[0106] 如图1所示,为了支持可信运行域与不可信运行域之间的通信,在这两个运行域之间有一个共享内存。在不可信运行域将想要发送给可信运行域的数据包存放在共享内存,在可信运行域内从该共享内存获取该数据包(反之亦然),即,通过该共享内存实现了可信运行域与不可信运行域之间的通信。
[0107] 应理解,上述提到的代理模块1和代理模块2网络数据包的转发,即通过共享内存实现了可信运行域与不可信运行域之间的通信。
[0108] 还应理解,在实际操作中,还可以采用其他手段来实现可信运行域和不可信运行域之间的通信,本发明实施例对比不作限定。
[0109] 综上所述,与传统架构不同,在本发明中,不可信运行域中的应用模块将仅仅储存用户隐私数据的标识,因此攻击者仅能窃取用户隐私数据的标识而无法窃取隐私数据本身。同时,由于标识与隐私数据本身并不存在内容上的关联,所以攻击者并不能通过窃取的标识反向推出用户的隐私数据。并且在可信运行域内,只会将发往可信应用服务器的网络数据包中的标识替换为用户隐私数据。如果发现一个网络数据包的目标服务器不是可信服务器,将不会对该网络数据包做任何操作,这也就防止了攻击者通过恶意的不可信的服务器窃取用户隐私数据。
[0110] 应理解,图1所示的架构或者场景是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。例如,与用户隐私数据具有对应关系的标识并非一定要存储在应用模块中,只要存储在不可信运行域内均可;同理,用户隐私数据非必要一定存储在图1所示的安全模块,只要存储在可信运行域内均可。此外,本领域技术人员根据所给出的图1的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0111] 图2示出了本发明实施例的数据处理的方法100的示意性流程图,该方法100例如可以由终端来执行,且该终端包括不可信运行域和可信运行域,例如图1中所示的终端,该如图2所示,该方法包括:
[0112] S110,获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识;
[0113] S120,在可信运行域内,获取与该第一标识对应的第一数据,该第一数据为该目标应用向目标服务器请求服务所必需的数据;
[0114] S130,在该可信运行域内,根据该第一数据和该第一网络数据包生成第二网络数据包;
[0115] S140,在该可信运行域内,利用预先与该目标服务器协商的第一会话密钥对该第二网络数据包进行加密,获取加密的第二网络数据包;
[0116] S150,向该目标服务器发送该加密的第二网络数据包。
[0117] 运行于不可信运行域内的目标应用生成包括第一标识的第一网络数据包,该第一网络数据包可以理解是向目标服务器请求服务的请求数据包;在可信运行域内,获取该第一网络数据包,并获取第一网络数据包中的第一标识所对应的第一数据,该第一数据为目标应用向目标服务器请求服务时所必需的数据,例如,图1中所示的用户隐私数据,具体地,该第一标识与请求服务所需的第一数据具有对应关系,且该对应关系事先存储于可信运行域内,则在可信运行域内,可以根据获取的第一标识与实现存储的对应关系,获取到该第一数据;在可信运行域内,根据获取的该第一数据和第一网络数据包,确定包括该第一数据的第二网络数据包,可选地,可以通过将第一网络数据包中的第一标识替换为该第一数据来确定该第二网络数据包;在可信运行域内,根据与目标服务器协商确定的第一会话密钥(例如图1中所示的会话密钥1)对第二网络数据包进行加密,应理解,该第一会话密钥存储于可信运行域内,在不可信运行域内无法获取该第一会话密钥,因此,运行于不可信运行域内的系统或者程序无法获取该第一会话密钥,即也无法获取到第一数据的明文形式;向该目标服务器发送加密的包括第一数据的第二网络数据包,以便于该目标服务器根据该第二网络数据包,响应目标应用的请求。
[0118] 因此,本发明实施例的数据处理的方法,通过将数据存储在可信运行域内,并在数据的使用过程中有效避免了数据的明文形式出现在不可信运行域内,能够有效避免数据被攻击者窃取,从而能够提高数据的安全性。
[0119] 应理解,本发明实施例中的第一数据为目标应用向目标服务器请求服务所必须的数据,例如支付宝应用向支付宝服务器请求相关服务时,必须向服务求提供用户名和登陆密码或者支付密码等,第一数据具体地可以为该用户名和登陆密码或支付密码,如果被攻击者窃取了这些数据,极有可能会危及用户的个人财产或私有资源,应理解,在本发明中,也会将第一数据称之为用户隐私数据。
[0120] 还应理解,该第一网络数据包除了包括第一标识,还可以包括其他请求信息,例如目标服务器的域名等信息,本发明实施例对此不作限定。
[0121] 在S110中,获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识,具体地,可以通过共享内存的方式,获取该第一网络数据包。
[0122] 可选地,在本发明实施例中,获取运行于不可信运行域内的目标应用发送的第一网络数据包,包括:
[0123] 通过共享内存,获取该第一网络数据包。
[0124] 具体地,在不可信运行域内,将目标应用发送的该第一网络数据包存储到共享内存;然后从不可信运行域切换到可信运行域内;在可信运行域内,从该共享内存获取该第一网络数据包,然后在该可信运行域内对该第一网络数据包进行后续的处理。更具体地,如图1所示,在不可信运行域内,通过代理模块1将应用模块生成的包括第一标识的第一网络数据包存储到共享内存内;在可信运行域内,通过代理模块2从共享内存提取到该第一网络数据包,然后将其发送给可信运行域内的其他模块作后续的处理。
[0125] 在S120中,在可信运行域内,获取与该第一标识对应的第一数据。具体地,该第一标识与请求服务所必需的第一数据具有对应关系,且该对应关系预先存储于可信运行域内,则,在可信运行域内,可以根据该对应关系与该第一标识,确定该第一标识所确定的第一数据。
[0126] 应理解,该第一标识与第一数据具有对应关系,但是第一标识可以与第一数据在内容上没有关联关系,即当攻击者攻击了不可信运行域,即使窃取了第一标识,也无法推导或者获取到对应的第一数据,这样能够提高第一数据的安全性。该第一标识可以预先存储于不可信运行域内,具体地,可以存储于目标应用内,例如图1所示的存储在应用模块内。
[0127] 还应理解,第一标识与第一数据之间的对应关系可以任意存储模式存储在可信运行域内,例如可以采用“第一标识+第一数据”的模式存储,也可以采用基于第一标识与第一数据建立的索引的模式存储,本发明实施例对此不作限定,只要能够根据第一标识,在可信运行域内获取到对应的第一数据即可。
[0128] 在S130中,根据第一数据和第一网络数据包生成第二网络数据包,应理解,该第二网络数据包中包括该第一数据。
[0129] 可选地,在本发明实施例中,S130,在该可信运行域内,根据该第一数据和该第一网络数据包生成第二网络数据包,包括:
[0130] 通过将第一网络数据包中的第一标识替换为该第一数据,以确定该第二网络数据包。
[0131] 应理解,在本发明实施例中,也可以根据第一数据和第一网络数据包,重新生成第二网络数据包,本发明实施例对此不作限定,只要该第二网络数据包包括该第一数据,且能够向目标应用所指定的目标服务器请求服务即可。
[0132] 在S140中,利用预先与该目标服务器协商的第一会话密钥对该第二网络数据包进行加密,应理解,该第一会话密钥为在可信运行域内与目标服务器进行通信的密钥,对于可信运行域内的加解密模块与目标服务器,在通信之前,已经约定好该第一会话密钥了,下文将结合图3进行详细描述。
[0133] 还应理解,该第一会话密钥可以预先存储于可信运行域内,也可以在可信运行域内,随时从服务器那里获得,本发明实施例对此不作限定,只要保证不可信运行域内的系统或程序无法获取该第一会话密钥即可。
[0134] 在S150中,向该目标服务器发送该加密的第二网络数据包,具体地,可以直接在可信运行域,向该目标服务器发送该加密后的第二网络数据包;也可以切换到不可信运行域内,向该目标服务器发送该加密的第二网络数据包。应理解,当用于向目标服务器发送数据的网络驱动是可信的,安全的,即该网络驱动运行于可信运行域内时,可以在可信运行域内向目标服务器发送加密的第二网络数据包;当该网络驱动是不可信的,即是运行于不可信运行域时,即在不可信运行域内向目标服务器发送加密后的第二网络数据包。
[0135] 可选地,在本发明实施例中,S150向该目标服务器发送该加密的第二网络数据包,包括:
[0136] 通过共享内存,将该加密的第二网络数据包转移到该不可信运行域内;
[0137] 在该不可信运行域内,向该目标服务器发送该加密的第二网络数据包。
[0138] 因此,在本发明实施例的数据处理的方法中,通过将第一数据存储在可信运行域,能够提高数据的安全性,并且,在向目标服务器发送包含有第一数据的网络数据包时,是将第一数据利用第一会话密钥加密后再发送,进一步提高了第一数据的安全性。
[0139] 在S140中,利用预先与该目标服务器协商的第一会话密钥对该第二网络数据包进行加密,应理解,该第一会话密钥为在可信运行域内与目标服务器进行通信的密钥,具体地,可以通过与目标服务器建立SSL连接来确定该第一会话密钥。
[0140] 可选地,作为一个实施例,在S110获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,该方法还包括:
[0141] 在该可信运行域内,建立与该目标服务器之间安全套接层SSL连接,并确定该第一会话密钥,其中,该第一会话密钥为在利用预先存储于该可信运行域内的第一根证书对该目标服务器的第一证书验证通过后生成的会话密钥,该第一证书用来证明该目标服务器的身份。
[0142] 具体地,如图3所示,在S201中,通过运行于不可信运行域内的目标应用生成用于请求与目标服务器建立SSL连接的请求数据包;在S202中,向目标服务器发送该请求数据包;在S303中,目标服务器根据请求数据包,向终端发送能够证明自己身份的证书1(对应于第一证书),具体地,该证书1包括公钥,该服务器的域名作为该证书1的通用名,该证书1的签名信息利用根证书1(对应于第一根证书)的私钥进行加密,且该根证书1事先存放在终端的可信运行域内(具体地,如图1中所示的SSL模块3中的根证书1);在S204中,在可信运行域内,利用预先存储的根证书1验证服务器发送的证书1,具体地,当确定根证书1的公钥可以解密证书1中的签名信息时,说明该证书1是可信的证书,即该目标服务器可信的,其次当确定证书1的通用名与目标应用想要请求服务的服务器的域名一致时,可以确定该目标服务器就是运行于不可信运行域内的目标应用指定的服务器;在S205中,当验证目标服务器身份通过后,生成会话密钥1(对应于第一会话密钥),并利用证书1中包括的公钥对会话密钥1进行加密;在S206中,向服务器发送加密后的会话密钥1;在S207中,目标服务器利用证书1中包括的公钥所对应的私钥加密该会话密钥1;至此,就实现了终端与目标服务器之间的SSL连接1(也对应于图1中所示的SSL连接1)。
[0143] 应理解,在本发明实施例中,是在可信运行域内建立与目标服务器的SSL连接,同时生成用于通信加密的会话密钥1,即终端只有运行在可信运行域内时才获知与目标服务器协商的该会话密钥1,换句话说,不可信运行域内的程序和系统无法获取该会话密钥1。因此,在S140中,当在可信运行域内,利用第一会话密钥对包括第一数据的第二网络数据包进行加密后,该加密的第二网络数据包只有在可信运行域内以及目标服务器内才可以被解密,这样的话,攻击者是无法窃取到用户隐私数据的,因为,首先,攻击者不可能窃取到可信运行域内的任何数据的,即不可能窃取到存储于可信运行域内的用户隐私数据;其次,攻击者也无法通过伪造服务器来窃取用户隐私数据,因为,用于验证服务器身份的根证书1是事先存储于可信运行域内的,则攻击者无法篡改此根证书1,因此,只有可信的服务器才可以通过可信运行域内的安全认证,如果是攻击者伪造的服务器,安全认证可定通不过,即与该伪造的服务器的SSL连接失败,也就不会与该伪造的服务器协商会话密钥1,因此,攻击者也无法通过伪造根证书或者伪造服务器来窃取用户隐私数据的明文。
[0144] 因此,在本发明实施例中,用户隐私数据(第一数据)的明文形式不会出现在不可行运行域内,也能够有效防攻击者窃取用户隐私数据的明文,从而能够提高数据的安全性。
[0145] 应理解,在S202中,向目标服务器发送请求数据包,具体地,可以首先通过共享内存将在不可信运行域内生成的请求数据包转移到可信运行域内;其次,在可信运行域内,根据该请求数据包获取目标应用想要请求服务的服务器的域名,以便于后续在S204中,根据服务器域名来验证证书1的通用名;最后,将该请求数据包发送给目标服务器,可选地,可以在可信运行域或者可信运行域内向目标服务器发送该请求数据包,本发明实施例对此不作限,例如当用于向服务器发送数据或者接收服务器的数据的网络驱动是可信的,安全的,即该网络驱动运行于可信运行域内时,在S202中,是在可信运行域内向目标服务器发送请求数据包的;当该网络驱动是不可信的,即是运行于不可信运行域时,在S202中,是在不可信运行域内向目标服务器发送请求数据包。应理解,图3中涉及到与服务器传输数据的操作,如S202、S203、S206要不都在可信运行域内执行,要不都在不可信运行域内执行,具体实施依网络驱动所处的运行域而定。
[0146] 特别地,在现有技术中,网络驱动是运行于不可信运行域内的,如图1中所示的。因此,在本发明实施例中,如果该网络驱动也运行于在不可信运行域内,即是在不可信运行域内与目标服务器进行通信传输,具体地,在不可信运行域内向目标服务器发送请求数据包、接收目标服务器发送的证书1、向目标服务器发送加密的会话密钥1或向目标服务器发送加密后的第二网络数据包等操作,本发明实施例提供的技术方案在提高数据的安全性的基础上,相对于现有的架构并没有增加过多的修改,可以降低代码修改成本。
[0147] 因此,本发明实施例的数据处理的方法,通过将数据存储在可信运行域内,并在数据的使用过程中也防止了数据的明文形式出现在不可信运行域内,能够有效避免数据被攻击者窃取,从而能够提高数据的安全性。
[0148] 上文结合图1提到过,运行于不可信运行域中的目标应用同样也会验证与其进行通信的是否是目标应用指定的服务器。在本发明实施例中,目标应用生成的包括第一标识的第一网络数据包不是直接发送给服务器,而是在可信运行域内被获取后再作作一定的处理后(例如将第一标识替换为第一数据)再发送给目标服务器,也即在本发明中,与不可信运行域内的目标应用直接通信的是可信运行域(例如图1所示的安全模块),因此,需要在可信运行域内制作一张证书,以实现建立与不可信运行域之间的SSL连接。以图1所示的架构为例,可以理解为可信运行域内的安全模块代替应用模块指定的目标服务器与应用模块建立SSL连接。
[0149] 可选地,作为一个实施例,在S110获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,该方法还包括:
[0150] 在该可信运行域内,根据第二根证书生成第二证书,该第二证书与该第一证书具有相同通用名,该第二根证书预先存储于该可信运行域和该不可信运行域内;
[0151] 根据该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,该第二会话密钥为该可信运行域和该不可信运行域之间的会话密钥;
[0152] 在可信运行域内,获取运行于不可信运行域内的目标应用发送的第一网络数据包,包括:
[0153] 获取利用该第二会话密钥加密的该第一网络数据包;
[0154] 在该可信运行域内,利用该第二会话密钥,解密该加密的第一网络数据包。
[0155] 可选地,在本发明实施例中,根据该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,包括:
[0156] 获取在该可信运运行域内生成的该第二证书;
[0157] 在该不可信运行域内,根据该第二根证书验证该第二证书,当验证通过后,生成该第二会话密钥,并利用该第二证书的公钥对该第二会话密钥加密;
[0158] 在该可信运行域内,利用该第二证书的私钥解密该加密的第二会话密钥,获得第二会话密钥。
[0159] 具体地,如图3所示,在S208中,在可信运运行域内,当验证目标服务器的身份通过后,利用预先存储于不可信运行域内的根证书2(例如图1所示的不可信运行域内的SSL模块1中的根证书2)(对应于第二根证书)制作证书2(对应于第二证书),即用根证书2的私钥加密证书2的签名信息,此外,该证书2的通用名与目标服务器的证书1(见S203)的通用名相同,该证书2也包括一个公钥,可信运行域内会存储该公钥对应的私钥;在S209中,通过共享内存的方式,将证书2转移到不可信运行域内;在S210中,在不可信运行域内,利用根证书2验证证书2,具体地,利用根证书2的公钥解密证书2的签名信息,验证证书2的通用名是否为目标应用指定的服务器的域名;在S211中,在验证通过后,在不可信运行域内生成会话密钥
2(对应于图1中所示的SSL模块1中的会话密钥1)(对应于本发明实施例中的第二会话密钥),并利用证书2的公钥对该会话密钥2进行加密;在S212中,通过共享内存的方式,将加密后的会话密钥2转移到可信运行域内;在S213中,在可信运行域内,利用证书2中包括的公钥所对应的私钥解密该会话密钥2。至此建立了不可信运行域和可信运行域之间的SSL连接2(对应于图1中所示的SSL连接2)。这样的话,不可信运行域和可行运行内都公知了用于通信加密的会话密钥2,如图1中所示,在SSL模块1和SSL模块2中都存储有会话密钥2。
[0160] 应理解,在S210中,在不可信运行域内利用根证书2验证证书2,对于不可信运行域内的目标应用来说,证书2是属于其目标服务器(证书2通用名与目标服务器提供的证书1通用名一致)的,并且对于目标应用来说,证书2是由可信证书颁发机构颁发的证书(证书2由根证书2签名,而根证书2事先被安装在不可信运行域中,因此对于目标应用而言,根证书2是属于可信证书颁发机构的根证书),因此在S210中,根证书2验证通过了证书2,以图1所示为例,也可以理解为,应用模块验证通过了安全模块的身份。
[0161] 还应理解,在本发明实施例中,可以通过共享内存的方式,实现在可信运行域与不可信运行域之间的通信,具体地,如图3中所示的S209和S212,也可以采用其他方式,实现在可信运行域与不可信运行域之间的通信,本发明实施例对此不作限定。
[0162] 还应理解,图3中所示的证书1、根证书1、证书2和根证书2分别对应于本发明实例中的第一证书、第一根证书、第二证书和第二根证书。
[0163] 因此,在本发明实施例的数据处理的方法中,在可信运行域内建立与目标服务器之间的SSL连接,并生成与目标服务器之间的通信密钥(第一会话密钥),利用该通信密钥对第一数据加密后,在发送给目标服务器,能够防止该第一数据的明文出现在不可信运行域内,可以有效防止攻击者窃取该第一数据,从而能够有效保证第一数据在传输时的安全性,从而可以进一步提高数据的安全性。
[0164] 在接收目标服务器发送的网络数据包时,也可以在可信运行域内对接收到的网络数据包作相关处理后,在发送给运行于不可信运行域内的目标应用。
[0165] 可选地,作为一个实施例,在图2所示的方法100还包括:
[0166] 接收该目标服务器发送的利用该第一会话密钥加密的第三网络数据包;
[0167] 在该可信运行域内,利用该第一会话密钥解密该加密的第三网络数据包,当确定被解密的第三网络数据包包括该第一数据时,根据该第一数据对应的该第一标识以及该第三网络数据包,生成第四网络数据包,该第四网络数据包不包括该第一数据;
[0168] 将该第四网络数据包发送给运行于该不可信运行域内的该目标应用。
[0169] 可选地,在本发明实施例中,该第三网络数据包为该目标服务器用于响应该第二网络数据包的响应数据包。
[0170] 具体地,如图4所示,在S301中,通过目标应用生成包括标识1(对应于第一标识)的数据包1(对应于第一网络数据包);在S302中,通过共享内存将数据包1转移到可信运行域内;在S303中,在可信运行域内,根据对应关系和数据包1中的标识1确定对应的用户隐私数据;在S304中,生成包括用户隐私数据的数据包2(对应于第二网络数据包);在S305中,向目标服务器发送利用会话密钥1(对应于第一会话密钥)加密后的数据包2;在S306中,目标服务器利用会话密钥2解密该数据包2;在S307中,目标服务器根据数据包2确定响应包,即数据包3(对应于第三网络数据包);在S308中,目标服务器向终端发送利用会话密钥加密后的数据包3;在S309中,在可信运行域内,利用会话密钥1解密数据包3,并根据数据包3确定不包括用户隐私数据的数据包4(对应于第四网络数据包);在S310中,通过共享内存的方式将利用会话密钥2(对应于第二会话密钥)加密后的数据包4;在S311中,在不可信运行域内,利用会话密钥2解密该数据包4,以便于目标应用使用数据包4中的数据,来实现相应的应用操作。例如wechat应用接收到wechat应用服务器的响应后,可以实现用户的登录操作;再例如,支付宝应用接收到支付宝应用服务器的响应后,可以实现用户的支付操作或者登录操作等。
[0171] 应理解,S309中,在可信运行域内,根据数据包3确定不包括用户隐私数据的数据包4,具体地,当确定数据包3内不包括用户隐私数据,可以直接将数据包3确定为数据包4,换句话说,可以直接将数据包3转移到不可信运行域内;当确定数据包3中包括用户隐私数据时,可以通过将数据包3中的用户隐私数据替换为第一标识来确定数据包4。
[0172] 可选地,在本发明实施例中,当确定该第三网络数据包中不包括该第一数据时,将该第三网络数据包确定为该第四网络数据包。
[0173] 因此,在本发明是实施例的数据处理的方法中,通过将数据存储在终端的可信运行域内,并且在数据的使用过程中也杜绝了数据的明文形式暴露于终端的不可信运行域内,从而能够有效避免数据被攻击者窃取,从而能够有效保护数据在终端中的安全性。
[0174] 此外,在本发明是实施例的数据处理的方法中,与现有技术将用户隐私数据存储于应用中(即不可信运行域内)相比,将用户隐私数据存储于终端的可信运行域,而将用户隐私数据的标识存储于不可信运行域内,在提高用户隐私数据的安全性的同时,并没有增加终端很大的性能开销。此外,由于用于验证服务器的根证书存储于可信运行域,从而防止了有效验证服务器的身份,有效防止了恶意服务器对终端的攻击。
[0175] 为了更容易理解本发明实施例的数据处理的方法,下面结合图1所示的架构,以手机银行和信用卡支付为例,简单阐述本发明实施例的具体实施。
[0176] 一、以手机银行为例,即图1中所示的终端为手机,不可信运行域内的应用模块具体为手机银行,应用服务器为手机银行服务器。
[0177] 1)建立手机银行与安全模块,安全模块与手机银行服务器之间的SSL连接,其中,可信SSL模块3来验证手机银行服务器的身份;
[0178] 2)例如在用户执行手机银行服务器的登录操作时,手机银行会读取储存的用户隐私数据的(包括账号以及密码)第一标识,将其与其他信息生成用于向手机银行服务器请求登录服务的第一网络数据包,并经过SSL模块1利用会话密钥1对第一网络数据包加密;
[0179] 3)安全模块收到经由代理模块1、共享内存、代理模块2转发而来、以及经过SSL模块2解密获取到的第一网络数据包,替换其中的第一标识为用户隐私数据(包括账号以及密码),生成第二网络数据包,经过SSL模块3利用会话密钥2对该第二网络数据包进行加密,然后通过代理模块2、共享内存、代理模块1和网络驱动向手机银行服务器发送加密后的第二网络数据包。
[0180] 4)手机银行服务器处理第二网络数据包的请求,确定用于响应请求的第三网络数据包,并将利用会话密钥1加密后的第三网络数据包发送给手机;
[0181] 5)在可信运行域内,经过SSL模块3解密第三网络数据包;
[0182] 6)在可信运行域内,经过安全模块、SSL模块2、代理模块1、共享内存、代理模块2将不包括用户隐私数据的第四网络数据包发送给手机银行。
[0183] 在手机银行的使用过程中,用户隐私数据明文(包括账号以及密码)从未暴露给不可信运行域,也就能有效的保证用户手机银行密码以及账号的安全。并且使用保存在可信运行域中的安全根证书验证手机银行服务器的真伪,因此可以识别出恶意伪造的手机银行服务器,从而进一步提高了用户隐私数据的安全性。
[0184] 二、以信用卡支付为例,即图1中所示的终端可以为手机,不可信运行域内的应用模块具体为信用卡应用模块,应用服务器为信用卡应用服务器。
[0185] 当信用卡应用模块发送用户隐私数据(信用卡号)的第一标识给信用卡应用服务器进行支付等操作时,在可信运行域内,会将第一标识替换为用户隐私数据(信用卡号),再将用户隐私数据发送给信用卡应用服务器,这样便可以保护用户的信用卡号的安全以防止其被恶意程序窃取。具体描述与手机银行的例子类似,为了简洁,这里不再赘述。
[0186] 因此,本发明实施例的数据处理的方法,通过将用户隐私数据存储在可信运行域内,并在用户隐私数据的使用过程中也有效避免了用户隐私数据的明文形式出现在不可信运行域内,能够有效避免用户隐私数据被攻击者窃取,从而能够提高用户隐私数据的安全性。
[0187] 本发明实施例的数据处理的方法可以抵御的用户隐私数据的攻击方式包括但不限于:
[0188] 1)利用应用漏洞,获取储存在应用中的用户隐私数据。
[0189] 2)利用系统漏洞,获取应用加密的用户隐私数据。出于性能考虑,应用往往只会对用户隐私数据做一些简单加密后存储,很容易被破解。
[0190] 3)利用恶意的不可信的加密/解密模块(例如不可信运行域内的加密模块,例如图1中的SSL模块1),从而获得应用发送/接收的所有数据明文,获得用户隐私数据。
[0191] 在本发明实施例中,由于用户隐私数据的明文不会出现在不可信运行域中,因此上面提到的直接针对用户隐私数据的攻击均不能获取用户隐私数据。用户隐私数据仅仅会经过可信的加密模块(例如可信运行域内的加密模块,例如图1中的SSL模块3)加密后出现在不可信区域内,而基于当前技术,通过暴力破解经过可信加密协议(例如SSL协议)加密后的信息代价非常大,无需考虑这种攻击方式。
[0192] 本发明实施例的数据处理的方法还可以抵御攻击者在终端安装恶意根证书来实现对终端的攻击:
[0193] 1)攻击者在手机中安装恶意的根证书,这样便可以使用该根证书将恶意服务器伪装成目标应用的目标服务器,从而获得用户发出的所有数据明文。
[0194] 在本发明实施例中,使用存储在可信运行域中的根证书验证服务器身份,而攻击者无法在可信运行域中安装任何恶意根证书,因此无法使用安装恶意根证书来攻击终端中的用户隐私数据。
[0195] 2)攻击者可以在安装恶意根证书的同时,攻击不可信代理使其不使用可信运行域的任何功能。
[0196] 如果绕开可信运行域,攻击者将可以窃取应用发出的所有信息,但是由于应用发出的所有数据都仅仅是标识,而且该标识与与其对应的用户隐私数据在内容上毫无关联性,因此攻击者无法获得任何用户的用户隐私数据。
[0197] 因此,在本发明是实施例的数据处理的方法中,通过将用户隐私数据存储在终端的可信运行域内,并且在用户隐私数据的使用过程中也杜绝了用户隐私数据的明文形式暴露于终端的不可信运行域内,从而能够有效避免用户隐私数据被攻击者窃取,从而能够有效保护用户隐私数据在终端中的安全性。
[0198] 应理解,本发明是实施例的数据处理的方法还可应用于类似于订单金额这样随时需要修改且非常重要的数据的保护场景中。例如,可以通过在可信运行域中添加输入与显示模块,然后对订单金额相关的信息采取与用户隐私数据同样的或者类似的处理方式存入可信运行域中,更具体,存入可信运行域内的安全模块中,便可以有效防止订单信息被篡改。
[0199] 应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0200] 因此,本发明实施例的数据处理的方法,通过将用户隐私数据存储在可信运行域内,并在用户隐私数据的使用过程中也有效避免了用户隐私数据的明文形式出现在不可信运行域内,能够有效避免用户隐私数据被攻击者窃取,从而能够提高用户隐私数据的安全性。
[0201] 上文中结合图1至图4,详细描述了根据本发明实施例的数据处理的方法,下面将结合图5,详细描述根据本发明实施例的数据处理的装置。
[0202] 图5示出了根据本发明实施例的数据处理的装置400的示意性框图。如图5所示,该装置包括:
[0203] 第一获取模块410,用于获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识;
[0204] 第二获取模块420,用于在可信运行域内,获取与该第一获取模块获取的该第一网络数据包中的该第一标识对应的第一数据,该第一数据为该目标应用向目标服务器请求服务所必需的数据;
[0205] 第一生成模块430,用于在该可信运行域内,根据该第二获取模块获取的该第一数据和该第一网络数据包生成第二网络数据包;
[0206] 加密模块440,用于在该可信运行域内,利用预先与该目标服务器协商的第一会话密钥对该第一生成模块生成的该第二网络数据包进行加密,获取加密的第二网络数据包;
[0207] 第一发送模块450,用于向该目标服务器发送该加密模块获取的该加密的第二网络数据包。
[0208] 因此,根据本发明实施例的数据处理的装置,通过将数据存储在可信运行域内,并将数据的加密密钥也存储在可信运行域内,能够提高数据的安全性。
[0209] 可选地,作为一个实施例,该装置还包括:
[0210] 接收模块,用于接收该目标服务器发送的利用该第一会话密钥加密的第三网络数据包;
[0211] 处理模块,用于在该可信运行域内,利用该第一会话密钥解密该接收模块接收的该加密的第三网络数据包,当确定被解密的第三网络数据包包括该第一数据时,根据该第一数据对应的该第一标识以及该第三网络数据包,生成第四网络数据包,该第四网络数据包不包括该第一数据;
[0212] 第二发送模块,用于将该处理模块生成的该第四网络数据包发送给运行于该不可信运行域内的该目标应用。
[0213] 可选地,作为一个实施例,该装置还包括:
[0214] 第一建立模块,用于在第一获取模块获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在该可信运行域内,建立与该目标服务器之间安全套接层SSL连接,并确定该第一会话密钥,其中,该第一会话密钥为在利用预先存储于该可信运行域内的第一根证书对该目标服务器的第一证书验证通过后生成的会话密钥,该第一证书用来证明该目标服务器的身份。
[0215] 可选地,作为一个实施例,该装置包括:
[0216] 第二生成模块,用于在第一获取模块获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在该可信运行域内,根据第二根证书生成第二证书,该第二证书与该第一证书具有相同通用名,该第二根证书预先存储于该可信运行域和该不可信运行域内;
[0217] 第二建立模块,用于根据该第二生成模块生成的该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,该第二会话密钥为该可信运行域和该不可信运行域之间的会话密钥;
[0218] 该第一获取模块包括:
[0219] 第一获取单元,用于获取利用该第二会话密钥加密的该第一网络数据包;
[0220] 解密单元,用于在该可信运行域内,利用该第二会话密钥,解密该第一获取单元获取的该加密的该第一网络数据包。
[0221] 可选地,作为一个实施例,该第二建立模块包括:
[0222] 第二获取单元,用于获取在该可信运运行域内生成的该第二证书;
[0223] 处理单元,用于在该不可信运行域内,根据该第二根证书验证该第二获取单元获取的该第二证书,当验证通过后,生成该第二会话密钥,并利用该第二证书的公钥对该第二会话密钥加密;
[0224] 解密单元,用于在该可信运行域内,利用该第二证书的私钥解密该处理单元加密的第二会话密钥,获得该第二会话密钥。
[0225] 可选地,作为一个实施例,该第一发送模块包括:
[0226] 转移单元,用于通过共享内存,将该加密的第二网络数据包转移到该不可信运行域内;
[0227] 发送单元,用于在该不可信运行域内,向该目标服务器发送该加密的第二网络数据包。
[0228] 应理解,根据本发明实施例的数据处理的装置400,可对应于本发明实施例的数据处理的方法的终端,例如图1中所示的终端,并且装置400中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
[0229] 因此,根据本发明实施例的数据处理的装置,通过将数据存储在可信运行域内,并将数据的加密密钥也存储在可信运行域内,能够提高数据的安全性。
[0230] 如图6所示,本发明实施例还提供了一种网络设备500,该网络设备500包括处理器510、存储器520、总线系统530、接收器540和发送器550。其中,处理器510、存储器520、接收器540和发送器550通过总线系统530相连,该存储器520用于存储指令,该处理器510用于执行该存储器520存储的指令,以控制接收器540接收信号,并控制发送器550发送信号。其中,处理器510,用于获取运行于不可信运行域内的目标应用发送的第一网络数据包,该第一网络数据包包括第一标识;在可信运行域内,获取与该第一标识对应的第一数据,该第一数据为该目标应用向目标服务器请求服务所必需的数据;在该可信运行域内,根据该第二获取模块获取的该第一数据和该第一网络数据包生成第二网络数据包;在该可信运行域内,利用预先与该目标服务器协商的第一会话密钥对该第一生成模块生成的该第二网络数据包进行加密,获取加密的第二网络数据包;发送器550,用于向该目标服务器发送该加密模块获取的该加密的第二网络数据包。
[0231] 因此,根据本发明实施例的数据处理的装置,通过将数据存储在可信运行域内,并将数据的加密密钥也存储在可信运行域内,能够提高数据的安全性。
[0232] 可选地,作为一个实施例,接收器540,用于接收该目标服务器发送的利用该第一会话密钥加密的第三网络数据包;处理器510,用于在该可信运行域内,利用该第一会话密钥解密接收器540接收的该加密的第三网络数据包,当确定被解密的第三网络数据包包括该第一数据时,根据该第一数据对应的该第一标识以及该第三网络数据包,生成第四网络数据包,该第四网络数据包不包括该第一数据;发送器550,用于将该第四网络数据包发送给运行于该不可信运行域内的该目标应用。
[0233] 可选地,作为一个实施例,处理器510,用于在获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在该可信运行域内,建立与该目标服务器之间安全套接层SSL连接,并确定该第一会话密钥,其中,该第一会话密钥为在利用预先存储于该可信运行域内的第一根证书对该目标服务器的第一证书验证通过后生成的会话密钥,该第一证书用来证明该目标服务器的身份。
[0234] 可选地,作为一个实施例,处理器510,用于在获取运行于不可信运行域内的目标应用发送的第一网络数据包之前,在该可信运行域内,根据第二根证书生成第二证书,该第二证书与该第一证书具有相同通用名,该第二根证书预先存储于该可信运行域和该不可信运行域内;根据该第二生成模块生成的该第二证书与该第二根证书,在该可信运行域和该不可信运行域之间建立SSL连接,并确定第二会话密钥,该第二会话密钥为该可信运行域和该不可信运行域之间的会话密钥;获取利用该第二会话密钥加密的该第一网络数据包;在该可信运行域内,利用该第二会话密钥,解密该加密的该第一网络数据包。
[0235] 可选地,作为一个实施例,处理器510,用于获取在该可信运运行域内生成的该第二证书;在该不可信运行域内,根据该第二根证书验证该第二证书,当验证通过后,生成该第二会话密钥,并利用该第二证书的公钥对该第二会话密钥加密;在该可信运行域内,利用该第二证书的私钥解密该处理单元加密的第二会话密钥,获得该第二会话密钥。
[0236] 可选地,作为一个实施例,处理器510,用于通过共享内存,将该加密的第二网络数据包转移到该不可信运行域内;
[0237] 发送器550,用于在该不可信运行域内,向该目标服务器发送该加密的第二网络数据包。
[0238] 应理解,在本发明实施例中,该处理器510可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器510还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0239] 该存储器520可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器520的一部分还可以包括非易失性随机存取存储器。例如,存储器520还可以存储设备类型的信息。
[0240] 该总线系统530除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统530。
[0241] 在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器520,处理器510读取存储器520中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0242] 还应理解,根据本发明实施例的数据处理的装置500,可对应于本发明实施例的数据处理的装置400,也可以对应于根据本发明实施例的数据处理的终端,并且装置500中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
[0243] 因此,根据本发明实施例的数据处理的装置,通过将数据存储在可信运行域内,并将数据的加密密钥也存储在可信运行域内,能够提高数据的安全性。
[0244] 应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0245] 应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0246] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0247] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0248] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0249] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0250] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0251] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0252] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。