基于TrustZone的文件加解密方法、装置及终端设备与流程

文档序号:11677958阅读:288来源:国知局
基于TrustZone的文件加解密方法、装置及终端设备与流程

本发明涉及移动终端设备安全技术领域,具体而言,涉及一种基于trustzone的文件加解密方法、装置及终端设备。



背景技术:

目前,常见的文件加密方案有如下几种:

(1)基于文件系统的加密方案,如ecryptofs;

(2)基于块设备的加密方案,如dm-crypto;

(3)基于文件的加密方案,如各种私有加密方式。

上述的各种文件加密方案采用的均为基于本地密钥体系进行加密的方式,因此充分安全的密钥链是保证文件加密安全性的基础,密钥的保护需要系统提供可靠的信任根以构建牢固的保护链。常见的安全硬件通常提供某种硬件唯一标识,或不可擦写的固化的根密钥作为系统唯一的信任根。系统内的所有其他密钥直接或间接地根据信任根派生或进行加密保护。

在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明提供一种基于trustzone的文件加解密方法、装置及终端设备,能够提高文件加密的安全性。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一方面,提供一种基于trustzone的文件加密方法,包括:接收文件的元数据加密请求,元数据加密请求包括:文件的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥;查找存储的类密钥标识对应的类密钥;通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及元数据;可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;可信应用程序根据解密后的类密钥,对元数据进行加密;以及可信应用程序通过客户接口,将加密后的元数据返回至普通执行环境中存储。

根据本发明的一实施方式,类密钥标识与应用场景相对应;应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。

根据本发明的一实施方式,上述方法还包括:根据文件密钥,在可信执行环境中对文件进行加密;接收加密后的元数据;以及将加密后的元数据与加密后的文件合并为一个文件进行存储。

根据本发明的一实施方式,根据文件密钥,在可信执行环境中对文件进行加密包括:将文件划分为多个数据块;以及对多个数据块独立地进行加密。

根据本发明的一实施方式,数据块的大小等于操作系统内核内存页的大小乘以2的n次幂,其中n为大于或等于2的正整数。

根据本发明的另一个方面,提供一种适用于如上述任意一种加密方法的基于trustzone的文件解密方法,包括:接收文件的元数据解密请求,元数据解密请求包括:文件的待解密的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥;查找存储的类密钥标识对应的类密钥;通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求,数据解密请求包括:类密钥及待解密的元数据;可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;可信应用程序根据解密后的类密钥,对元数据进行解密;以及可信应用程序通过客户接口,将解密后的元数据返回至普通执行环境中。

根据本发明的一实施方式,上述方法还包括:接收普通执行环境中的客户应用程序发送的对文件的操作请求;以及根据操作请求,发送文件的元数据解密请求。

根据本发明的一实施方式,上述方法还包括:根据解密后的元数据中的文件密钥,在可信执行环境中对文件进行解密;以及

将解密后的文件返回给客户应用程序。

根据本发明的一实施方式,根据解密后的元数据中的文件密钥,在可信执行环境中对文件进行解密包括:对根据文件划分出的多个加密数据块独立地进行解密。

根据本发明的再一个方面,提供一种基于trustzone的文件加密装置,包括:加密请求接收模块,用于接收文件的元数据加密请求,元数据加密请求包括:文件的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥;第一类密钥获取模块,用于查找存储的类密钥标识对应的类密钥;加密请求模块,用于通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及元数据;第一类密钥解密模块,用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;加密执行模块,用于通过可信应用程序根据解密后的类密钥,对元数据进行加密;以及加密数据返回模块,用于通过可信应用程序通过客户接口,将加密后的元数据返回至普通执行环境中存储。

根据本发明的一实施方式,类密钥标识与应用场景相对应;应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。

根据本发明的一实施方式,上述装置还包括:文件加密模块,用于根据文件密钥,在可信执行环境中对文件进行加密;元数据接收模块,用于接收加密后的元数据;以及合并存储模块,用于将加密后的元数据与加密后的文件合并为一个文件进行存储。

根据本发明的一实施方式,文件加密模块包括:数据块划分子模块,用于将文件划分为多个数据块;以及数据库加密子模块,用于对多个数据块独立地进行加密。

根据本发明的一实施方式,数据块的大小等于操作系统内核内存页的大小乘以2的n次幂,其中n为大于或等于2的正整数。

根据本发明的再一个方面,提供一种适用于如上述任意一项的加密装置的基于trustzone的文件解密装置,包括:解密请求接收模块,用于接收文件的元数据解密请求,元数据解密请求包括:文件的待解密的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥;第二类密钥获取模块,用于查找存储的类密钥标识对应的类密钥;解密请求模块,用于通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求,数据解密请求包括:类密钥及待解密的元数据;第二类密钥解密模块,用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;解密执行模块,用于通过可信应用程序根据解密后的类密钥,对元数据进行解密;以及解密数据返回模块,用于通过可信应用程序通过客户接口,将解密后的元数据返回至普通执行环境中。

根据本发明的一实施方式,上述装置还包括:操作请求接收模块,用于接收普通执行环境中的客户应用程序发送的对文件的操作请求;以及解密请求发送模块,用于根据操作请求,发送文件的元数据解密请求。

根据本发明的一实施方式,上述装置还包括:文件解密模块,用于根据解密后的元数据中的文件密钥,在可信执行环境中对文件进行解密;以及解密文件返回模块,用于将解密后的文件返回给客户应用程序。

根据本发明的一实施方式,文件解密模块包括:数据块解密子模块,用于对根据文件划分出的多个加密数据块独立地进行解密。

根据本发明的再一个方面,提供一种终端设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中处理器配置为经由执行可执行指令来执行如上述任意一项的方法。

根据本发明的再一个方面,提供一种终端设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中处理器配置为经由执行可执行指令来执行如上述任意一项的方法。

根据本发明实施方式的基于trustzone的文件加密方法,通过在可信执行环境中对包含有文件密钥的元数据进行加密,并在普通执行环境中存储文件密钥的密文,保证了用于加密文件的文件密钥的安全存储与使用。

另外,根据一些实施例,本发明实施方式的基于trustzone的文件加密方法,通过在可信执行环境中对文件密钥进行加密,进一步增强了文件加密的安全性。此外,通过在可信执行环境中以单个文件为逻辑加密单位进行加密操作,进一步增强了文件的安全性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。

图1是根据一示例示出的终端设备中普通执行环境与可信执行的架构示意图。

图2是根据一示例性实施方式示出的一种基于trustzone的文件加密方法的流程图。

图3是根据一示例性实施方式示出的另一种基于trustzone的文件加密方法的流程图。

图4是根据一示例示出的另一种终端设备中普通执行环境与可信执行的架构示意图。

图5是根据一示例性实施方式示出的一种基于trustzone的文件解密方法的流程图。

图6是根据一示例性实施方式示出的另一种基于trustzone的文件解密方法的流程图。

图7是根据一示例性实施方式示出的一种基于trustzone的文件加密装置的框图。

图8是根据一示例性实施方式示出的一种基于trustzone的文件解密装置的框图。

图9是根据一示例示出的再一种终端设备中普通执行环境与可信执行的架构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。

trustzone技术是arm平台上的一种可信执行环境(trustedexecutionenvironment,tee)标准,其通过硬件的访问隔离和安全内核软件的配合,提供了在可信执行环境中安全的执行部分代码的能力。基于trustzone硬件隔离技术所构建的可信执行环境将涉及敏感数据的应用程序分成客户应用程序(clientapp)和可信应用程序(trustedapp,ta),客户应用程序在普通执行环境(richexecutionenvironment,ree)中被执行以用于处理大部分非敏感业务,普通执行环境即移动终端设备的普通操作系统(richoperationsystem,richos),而可信应用程序在可信执行环境中被执行以处理敏感业务。普通执行环境与可信执行环境相互隔离,运行在普通执行环境中的客户应用程序通过客户接口(trustzoneclientapi)接入(access)运行在可信执行环境中的可信应用程序,或通过该客户接口与可信应用程序交换数据。

图1是根据一示例示出的终端设备中普通执行环境与可信执行的架构示意图。图2是根据一示例性实施方式示出的一种基于trustzone的文件加密方法的流程图。结合图1及图2,图2所示的方法10包括:

在步骤s102中,接收文件的元数据加密请求。

该元数据加密请求包括:文件的元数据及类密钥标识(id)。该元数据中包括:用于加密文件的文件密钥。

例如,由图1中的加解密存储服务接收由文件加密实现服务发送的文件密钥加密请求。文件加密实现服务向加解密存储服务发送该文件密钥加密请求,请求加解密存储服务为包含有用于加密图1中的数据文件的文件密钥的元数据进行加密。

加解密存储服务及文件加密实现服务均可实现为由至少一个函数构成的代码集合,各函数包括:函数名称,函数调用信息和函数实现中的部分或全部。当有多个函数时,一个函数实现还可以包括调用所定义的其他函数等。

该文件密钥加密请求例如通过进程间通信(inter-processcommunication,ipc)发送,如dbus、biner进程间通信机制等。

该文件密钥加密请求中以参数形式携带上述的元数据及类密钥标识。

在步骤s104中,查找存储的类密钥标识对应的类密钥。

例如,由加解密存储服务查找存储的类密钥标识对应的类密钥。在加解密存储服务中,存储有各类密钥标识所对应的类密钥,其中各类密钥为在可信执行环境中使用主密钥加密后的密文。

在一些实施例中,类密钥标识与调用该数据库文件的应用程序的应用场景相对应。应用场景例如包括:

1)终端设备启动成功后可以访问:该场景通常用于常驻系统服务对加密的需求;

2)终端设备启动成功后且合法登录后可以访问:该场景通常用于系统服务和系统应用的加密需求;

3)终端设备启动成功且合法登录且用户界面解除锁定后可以访问:该场景通常用于普通客户应用程序的加密需求;或者,

4)终端设备启动成功且合法登录且用户界面锁定时仅可以写入:该场景通常用于常驻应用程序的加密需求,如短信、邮件、即时通信(im)等,需要在用户界面被锁定的情况下向系统安全的写入数据。

由于应用程序在不同应用场景下的安全策略是不同的,应用场景每次择一的选择上述的一种应用场景以确定相应的类密钥,差异化的应用场景可以提高应用数据的安全性。举例来说,如果一个加密项的策略被设置为终端设备启动成功且合法登录且用户界面解除锁定后可以访问,则其他时刻的访问请求会被拒绝,并且对应的类密钥也会被从内存中清除出去,从而进一步提升了加密的安全性。

密钥是黑盒加密算法的主要攻击点,因此需要保证密钥在存储及使用时的安全性。存储的安全性主要是指攻击者不能够对其进行读写访问,使用的安全性主要是指密钥在内存中遭受动态攻击的可能。在本方法中,为了增强密钥的安全性,将存储于普通执行环境中的类密钥以密文形式存储。

在一些实施例中,加解密存储服务在初始化过程中,还需要通过客户接口,向可信应用程序确认该主密钥是否可用。

在一些实施例中,在步骤s104之前该方法10还可以进一步包括如下步骤:

在步骤1中,加解密存储服务通过客户接口,向可信应用程序发送各应用场景对应的类密钥。

在步骤2中,可信应用程序根据trustzone上下文中的主密钥对各应用场景的类密钥进行加密。

在步骤3中,可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中的加解密存储服务中存储。

在步骤s106中,通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据加密请求。

该数据加密请求包括:类密钥及元数据。

例如,由加解密存储服务向可信执行环境中的可信应用程序发送数据加密请求,该数据加密请求包括:在步骤s102中查找到的类密钥及元数据。

如图1中所示,在具体实施时,加解密存储服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现加密存储服务与专属服务于密钥加解密的可信应用程序之间的调用,即加密存储服务与可信应用程序之间的通信服务。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。

在一些实施例中,客户接口采用强制访问控制(mac)权限管理机制,如采用selinux访问控制机制。

selinux是一套基于标签(label)的安全系统。在selinux策略中,通过标签的设定来实现主体对客体的控制。其中主体可以为终端设备中运行的每个进程,客体则为系统中的所有资源,包括:文件系统、目录、文件、文件启动指示符、端口、消息接口和网络接口等。每个进程都拥有自己的标签,而每个客体对象也都拥有自己的标签。通过编写的selinux策略,来控制进程标签可以对客体对象标签进行访问,如文件访问、读写及socket操作等。例如,通过策略配置,允许标签为a的进程对标签为b的客户接口的调用,从而保证加密存储服务的接口不被任意滥用。

在步骤s108中,可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密。

主密钥为每个终端设备所独立拥有的,在可执行环境初始化过程中,该主密钥被加载到trustzone的映像文件中,即加载到trustzone的可信执行环境的上下文中。由于该主密钥被预埋到可信执行环境中,不会在普通执行环境中出现,因此在普通执行环境中由于无法获取该主密钥而无法解密类密钥,从而增强了通过类密钥加密的应用数据的安全性。

在步骤s110中,可信应用程序根据解密后的类密钥,对元数据进行加密。

可信应用程序例如可以采用aes(advancedencryptionstandard,高级加密标准)或des(dataencryptionstandard,数据加密标准)等对称加密算法,根据解密后的类密钥对元数据进行加密,本发明不以此为限。可用的加密模式包括:cbc(cipherblockchaining,块状密码链),ofb(outputfeedback,输出反馈),cfb(cipherfeedback,加密反馈)。

如图1所示,可信应用程序可以通过调用可信执行环境中通用的硬件加密引擎,实施上述数据加密操作。

在步骤s112中,可信应用程序通过客户接口,将加密后的元数据返回至普通执行环境中存储。

可信应用程序完成加密后,通过客户接口,向普通执行环境中返回加密后的元数据。

根据本发明实施方式的基于trustzone的文件加密方法,通过在可信执行环境中对包含有文件密钥的元数据进行加密,并在普通执行环境中存储文件密钥的密文,保证了用于加密文件的文件密钥的安全存储与使用。

应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。

图3是根据一示例性实施方式示出的另一种基于trustzone的文件加密方法的流程图。图3所示的方法20包括:

在步骤s202中,根据文件密钥,在可信执行环境中对文件进行加密。

例如,可以如图1所示,文件加密实现服务通过可信执行环境中的可信应用程序实现对文件的加密。

文件加密实现服务对数据文件的访问接口设计为与通用的高级文件访问接口(区别于linux或windows系统的底层文件接口)尽量接近,除指定文件口令或加密类的参数外,基本上加密的细节对用户透明。

文件加密实现服务将待加密的文件发送给可信应用程序,由可信应用程序对文件进行加密。在具体实施时,文件加密实现服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现文件加密实现服务与可信应用程序之间的调用,即文件加密实现服务与可信应用程序之间的通信服务。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。

可信应用程序对该文件的加密,是以单个文件为逻辑加密单位进行整体加密,而非任意类型的对一般性通用数据块、数据流的加密,也非常见的基于文件系统或块设备的文件加密。

可信应用程序例如可以采用aes(advancedencryptionstandard,高级加密标准)或des(dataencryptionstandard,数据加密标准)等对称加密算法,根据文件密钥对文件进行加密,本发明不以此为限。

如图1所示,可信应用程序可以通过调用可信执行环境中通用的硬件加密引擎,实施上述数据加密操作。

在一些实施例中,为了在系统性能和安全性之间取得平衡,可信应用程序可以将文件划分为多个数据块,并对多个数据块独立地进行加密。各数据块之间并无关联性,因此可信应用程序可以实现对多个数据块的并行加密操作。数据块的大小可以根据需要进行调整,例如可以移动终端设备操作系统内核内存页的大小乘以2的n次幂,其中n为大于或等于2的正整数。举例来说,对于32位操作系统,内存页大小为4kb,则数据块大小可以为16kb、64kb、256kb等;对于64位操作系统,内存页大小为64kb,则数据块大小可以为128kb、256kb、1024kb等。数据块大小取决于平台资源、配置和加密算法的选择。一般来讲,分块越大,则串行访问速度越快,例如复制文件操作;分块越小,随机访问性能越好,例如随机读取与写入操作。

图4是根据一示例示出的另一种终端设备中普通执行环境与可信执行的架构示意图。在一些实施例中,如图4所示,文件加密实现服务还可以通过可信执行环境中的第二可信应用程序对文件进行加密。文件加密实现服务将待加密的文件与文件密钥的明文发送给第二可信应用程序,由第二可信应用程序为文件进行加密。在具体实施时,文件加密实现服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现文件加密实现服务与第二可信应用程序之间的调用,即文件加密实现服务与第二可信应用程序之间的通信服务。而图4中的第一可信应用程序用于实现方法10中对元数据的加密操作。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。此外,为了在系统性能和安全性之间取得平衡,第二可信应用程序可以将文件划分为多个数据块,并对多个数据块独立地进行加密。具体的数据块划分说明同上述,在此不再赘述。

图9是根据一示例示出的再一种终端设备中普通执行环境与可信执行的架构示意图。在一些实施例中,如图9所示,加密实现服务通过可信执行环境中的通用的硬件加密引擎对文件进行加密。文件加密实现服务将待加密的文件与文件密钥的明文发送给可信执行环境中的硬件加密引擎,由硬件加密引擎为文件进行加密。在具体实施时,文件加密实现服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现文件加密实现服务与硬件加密引擎之间的调用,即文件加密实现服务与硬件加密引擎之间的通信服务。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。此外,为了在系统性能和安全性之间取得平衡,文件加密实现服务可以将文件划分为多个数据块,并请求硬件加密引擎对多个数据块独立地进行加密。具体的数据块划分说明同上述,在此不再赘述。

在步骤s204中,接收加密后的元数据。

例如,由图1中的文件加密实现服务接收经方法10加密后的元数据。

在步骤s206中,将加密后的元数据与加密后的文件合并为一个文件进行存储。

加密后的元数据与加密文件合一,从而使得加密文件可以自由的复制、移动。

根据本发明实施方式的基于trustzone的文件加密方法,通过在可信执行环境中对文件密钥进行加密,进一步增强了文件加密的安全性。此外,通过在可信执行环境中以单个文件为逻辑加密单位进行加密操作,进一步增强了文件的安全性。

图5是根据一示例性实施方式示出的一种基于trustzone的文件解密方法的流程图。该解密方法可适用于上述的文件加密方法10及20。结合图1,图5所示的方法30包括:

在步骤s302中,接收文件的元数据解密请求。

例如,由图1所示的加解密存储服务接收由文件加密实现服务发送的元数据解密请求。

该元数据解密请求例如为通过进程间通信发送的口令创建调用,如dbus、biner进程间通信机制等。

该元数据解密请求例如以参数形式携带文件的待解密的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥。

在步骤s304中,查找存储的所述类密钥标识对应的类密钥。

例如,由加解密存储服务查找存储的类密钥标识对应的类密钥。在加解密存储服务中,存储有各类密钥标识所对应的类密钥,其中各类密钥为在可信执行环境中使用主密钥加密后的密文。

在一些实施例中,类密钥标识与调用该数据库文件的应用程序的应用场景相对应。应用场景的类别同上,在此不再赘述。

密钥是黑盒加密算法的主要攻击点,因此需要保证密钥在存储及使用时的安全性。存储的安全性主要是指攻击者不能够对其进行读写访问,使用的安全性主要是指密钥在内存中遭受动态攻击的可能。在本方法中,为了增强密钥的安全性,将存储于普通执行环境中的类密钥以密文形式存储。

在步骤s306中,通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求。

例如,由加解密存储服务向可信执行环境中的可信应用程序发送数据加密请求,该数据加密请求包括:在步骤s304中查找到的类密钥及待解密的元数据。

如图1中所示,在具体实施时,加解密存储服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现加密存储服务与专属服务于加解密的可信应用程序之间的调用,即加密存储服务与专属服务于加解密的可信应用程序之间的通信服务。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。

在步骤s308中,可信应用程序根据预先存储于所述可信执行环境中的主密钥,对类密钥进行解密。

主密钥为每个终端设备所独立拥有的,在可执行环境初始化过程中,该主密钥被加载到trustzone的映像文件中,即加载到trustzone的可信执行环境的上下文中。由于该主密钥被预埋到可信执行环境中,不会在普通执行环境中出现,因此在普通执行环境中由于无法获取该主密钥而无法解密类密钥,从而增强了通过类密钥加密的应用数据的安全性。

在步骤s310中,可信应用程序根据解密后的类密钥,对待解密的元数据进行解密。

对应上述加密过程中所使用的加密算法,对待解密数据进行解密操作。

在步骤s312中,可信应用程序通过客户接口,将解密后的元数据返回至加解密存储服务中。

可信应用程序完成解密后,通过客户接口,向普通执行环境中返回解密后的元数据。

图6是根据一示例性实施方式示出的另一种基于trustzone的文件解密方法的流程图。如图6所示,方法40包括:

在步骤s402中,接收普通执行环境中的客户应用程序发送的对文件的操作请求。

例如,如图1中所示,当客户应用程序需要打开该文件时,向文件加密实现服务发送该操作请求。

需要说明的而是,在具体实施时,文件加密实现服务可以实现在每个应用程序,即每个调用该服务的内部。也可以为独立的服务,各应用程序通过如进程间通信等机制实现对该服务的调用。

在步骤s404中,根据该操作请求,发送文件的元数据解密请求。

从而执行方法30中对元数据的解密操作。

在一些实施例中,方法40还包括:

在步骤s406中,根据解密后的元数据中的文件密钥,在可信执行环境中对文件进行解密。

例如,可以如图1所示,文件加密实现服务通过可信执行环境中的可信应用程序实现对文件的解密。

文件加密实现服务将待解密的文件发送给可信应用程序,由可信应用程序对文件进行解密。在具体实施时,文件加密实现服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现文件加密实现服务与可信应用程序之间的调用,即文件加密实现服务与可信应用程序之间的通信服务。

如图1所示,可信应用程序可以通过调用可信执行环境中通用的硬件加密引擎,实施上述数据解密操作。

在一些实施例中,当待解密的文件由多个加密数据块构成时,第一可信应用程序根据文件密钥,对多个加密数据块独立地进行解密。

在一些实施例中,如图4所示,文件加密实现服务还可以通过可信执行环境中的第二可信应用程序对文件进行解密。文件加密实现服务将待解密的文件与文件密钥的明文发送给第二可信应用程序,由第二可信应用程序为文件进行加密。在具体实施时,文件加密实现服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现文件加密实现服务与第二可信应用程序之间的调用,即文件加密实现服务与第二可信应用程序之间的通信服务。

在一些实施例中,如图9所示,加密实现服务通过可信执行环境中的通用的硬件加密引擎对文件进行解密。文件加密实现服务将待解密的文件与文件密钥的明文发送给可信执行环境中的硬件加密引擎,由硬件加密引擎为文件进行加密。在具体实施时,文件加密实现服务可以通过trustzone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现文件加密实现服务与硬件加密引擎之间的调用,即文件加密实现服务与硬件加密引擎之间的通信服务。

在步骤s408中,将解密后的文件返回给客户应用程序。

本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

图7是根据一示例性实施方式示出的一种基于trustzone的文件加密装置的框图。如图7所示,装置50包括:加密请求接收模块502、第一类密钥获取模块504、加密请求模块506、第一类密钥解密模块508、加密执行模块510及加密数据返回模块512。

其中,加密请求接收模块502用于接收文件的元数据加密请求,元数据加密请求包括:文件的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥。

第一类密钥获取模块504用于查找存储的类密钥标识对应的类密钥。

在一些实施例中,类密钥标识与应用场景相对应;应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。

加密请求模块506用于通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及元数据。

第一类密钥解密模块508用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密。

加密执行模块510用于通过可信应用程序根据解密后的类密钥,对元数据进行加密。

加密数据返回模块512用于通过可信应用程序通过客户接口,将加密后的元数据返回至普通执行环境中存储。

在一些实施例中,装置50还包括:文件加密模块514、元数据接收模块516及合并存储模块518。其中,文件加密模块514用于根据文件密钥,在可信执行环境中对文件进行加密。元数据接收模块516用于接收加密后的元数据。合并存储模块518用于将加密后的元数据与加密后的文件合并为一个文件进行存储。

在一些实施例中,文件加密模块514包括:数据块划分子模块5142及数据库加密子模块5144。其中,数据块划分子模块5142用于将文件划分为多个数据块。数据库加密子模块5144用于对多个数据块独立地进行加密。

根据本发明实施方式的基于trustzone的文件加密方法,通过在可信执行环境中对包含有文件密钥的元数据进行加密,并在普通执行环境中存储文件密钥的密文,保证了用于加密文件的文件密钥的安全存储与使用。

图8是根据一示例性实施方式示出的一种基于trustzone的文件解密装置的框图。该解密装置适用于上述加密装置50。如图8所示,该解密装置60包括:解密请求接收模块602、第二类密钥获取模块604、解密请求模块606、第二类密钥解密模块608、解密执行模块610及解密数据返回模块612。

其中,解密请求接收模块602用于接收文件的元数据解密请求,元数据解密请求包括:文件的待解密的元数据及类密钥标识,元数据包括:用于加密文件的文件密钥。

第二类密钥获取模块604用于查找存储的类密钥标识对应的类密钥。

解密请求模块606用于通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求,数据解密请求包括:类密钥及待解密的元数据。

第二类密钥解密模块608用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密。

解密执行模块610用于通过可信应用程序根据解密后的类密钥,对元数据进行解密。

解密数据返回模块612用于通过可信应用程序通过客户接口,将解密后的元数据返回至普通执行环境中。

在一些实施例中,装置60还包括:操作请求接收模块614及解密请求发送模块616。其中,操作请求接收模块614用于接收普通执行环境中的客户应用程序发送的对文件的操作请求。解密请求发送模块616用于根据操作请求,发送文件的元数据解密请求。

在一些实施例中,装置60还包括:文件解密模块618及解密文件返回模块620。文件解密模块618用于根据解密后的元数据中的文件密钥,在可信执行环境中对文件进行解密。解密文件返回模块620用于将解密后的文件返回给客户应用程序。

在一些实施例中,文件解密模块618包括:数据块解密子模块6182,用于对根据文件划分出的多个加密数据块独立地进行解密。

需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施方式的方法。

以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1