首页> 中国专利> 基于TrustZone的数据库文件口令加解密方法、装置及终端设备

基于TrustZone的数据库文件口令加解密方法、装置及终端设备

摘要

本申请公开一种基于TrustZone的数据库文件口令加解密方法、装置及终端设备。该方法包括:接收口令创建请求,口令创建请求中包括:数据库文件的第一元数据及类密钥标识;为数据库文件创建用于加密数据库文件的口令,并将第一元数据与口令合并为第二元数据;查找存储的类密钥标识对应的类密钥;通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及第二元数据;可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;可信应用程序根据解密后的类密钥,对第二元数据进行加密;以及可信应用程序通过客户接口,将加密后的第二元数据返回至普通执行环境中存储。

著录项

  • 公开/公告号CN106992851A

    专利类型发明专利

  • 公开/公告日2017-07-28

    原文格式PDF

  • 申请/专利权人 北京元心科技有限公司;

    申请/专利号CN201710214713.1

  • 发明设计人 孙国峰;

    申请日2017-04-01

  • 分类号H04L9/06(20060101);H04L9/08(20060101);H04L9/32(20060101);G06F21/60(20130101);G06F21/62(20130101);

  • 代理机构11438 北京律智知识产权代理有限公司;

  • 代理人姜怡;阚梓瑄

  • 地址 100176 北京市北京经济技术开发区科创十四街99号33幢D栋2222号

  • 入库时间 2023-06-19 02:56:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-10

    授权

    授权

  • 2017-08-22

    实质审查的生效 IPC(主分类):H04L9/06 申请日:20170401

    实质审查的生效

  • 2017-07-28

    公开

    公开

说明书

技术领域

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

背景技术

数据库文件是一种很常见的文件类型,很多应用程序或系统应用依赖于数据库文件的使用。尤其是关系数据库在很多应用程序中,用于保存大量的需要检索的数据,例如用户账号、联系人信息、邮件地址等。

目前适用于移动终端设备使用的常见数据库技术有SQLite、mSQL、eXtremeDB等。应用最为广泛的是SQLite,尤其在安卓与iOS操作系统中。SQLite原生支持加密接口,但是需要扩充其加密接口的实现,才能真正的支持加密操作。

开源项目SQLCipher是一个典型的基于SQLite实现的加密数据项目。该项目实现了SQLite的加密接口,从而支持了加密数据库操作。但目前该项目仅支持用户按照文件口令加密的方式进行数据库文件的加密。这就要求用户必须要“记住”这个口令,由于该口令是每数据库文件独立的,为了“记住”各数据库文件的口令,用户可能需要将其保存在一个介质中,如电子文档中,但是对于黑盒加密机制而言,安全的保存一个口令本身是很困难的。而如果对所有数据库文件使用同样的口令,则会降低应用程序的安全性。

因此,需要一种新的数据库文件加密方法,使得数据库文件的口令对用户是透明的,也即无需用户来“记住”该口令。

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

发明内容

本发明提供一种基于TrustZone的数据库文件口令加解密方法、装置及终端设备,能够提供一种数据库文件口令安全地创建及使用的方法,使口令对用户透明,保证口令的安全性。

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

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

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

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

根据本发明的一实施方式,上述方法还包括:通过客户接口,向可信应用程序发送各应用场景对应的类密钥;可信应用程序根据主密钥对各应用场景对应的类密钥进行加密;以及可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中存储。

根据本发明的一实施方式,客户接口采用强制访问控制权限管理机制。

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

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

根据本发明的一实施方式,上述方法还包括:将解密后的数据库文件发送给客户应用程序;其中,数据库文件根据解密后的元数据中的口令在可信执行环境中被解密。

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

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

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

根据本发明的一实施方式,上述装置还包括:类密钥发送模块,通过客户接口,向可信应用程序发送各应用场景对应的类密钥;类密钥加密模块,用于通过可信应用程序根据主密钥对各应用场景对应的类密钥进行加密;以及类密钥返回模块,用于通过可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中存储。

根据本发明的一实施方式,客户接口采用强制访问控制权限管理机制。

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

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

根据本发明的一实施方式,上述装置还包括:数据库文件发送模块,用于将解密后的数据库文件发送给客户应用程序;其中,数据库文件根据解密后的元数据中的口令在可信执行环境中被解密。

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

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

根据本发明实施方式的基于基于TrustZone的数据库文件口令加密方法,通过依靠普通执行环境中的服务为数据库文件创建口令,在可信执行环境中对口令进行加密,并在普通执行环境中存储口令的密文,保证了口令创建和使用的安全性;并且使得用户不需要记录数据库文件的口令,即口令对用户是透明的;此外,由于TrustZone的可信执行环境一般是与终端设备具有一一对应的绑定关系的,而数据库文件口令操作依赖的普通执行环境中的服务绑定了TrustZone的可信执行环境,因此数据库文件的口令不能在另一台终端设备上使用,从而阻止了数据库文件的任意拷贝、移动和备份。

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

附图说明

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

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

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

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

图4是根据一示例性实施方式示出的一种基于TrustZone的数据库文件口令解密方法的流程图。

图5是根据一示例性实施方式示出的一种基于TrustZone的数据库文件口令加密装置的框图。

图6是根据一示例性实施方式示出的一种基于TrustZone的数据库文件口令解密装置的框图。

具体实施方式

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

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

TrustZone技术是ARM平台上的一种可信执行环境(Trusted ExecutionEnvironment,TEE)标准,其通过硬件的访问隔离和安全内核软件的配合,提供了在可信执行环境中安全的执行部分代码的能力。基于TrustZone硬件隔离技术所构建的可信执行环境将涉及敏感数据的应用程序分成客户应用程序(Client APP)和可信应用程序(TrustedAPP,TA),客户应用程序在普通执行环境(Rich Execution Environment,REE)中被执行以用于处理大部分非敏感业务,普通执行环境即移动终端设备的普通操作系统(RichOperation System,Rich OS),而可信应用程序在可信执行环境中被执行以处理敏感业务。普通执行环境与可信执行环境相互隔离,运行在普通执行环境中的客户应用程序通过客户接口(TrustZone Client API)接入(access)运行在可信执行环境中的可信应用程序,或通过该客户接口与可信应用程序交换数据。

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

在步骤S102中,接收口令创建请求。

例如,由图1中的加解密存储服务接收由数据库加密实现服务发送的口令创建请求。数据库加密实现服务通过向加解密存储服务发送该口令创建请求,请求加解密存储服务为图1中所述的数据库中的数据库文件创建用于加密的口令。

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

该口令创建请求例如为通过进程间通信(Inter-Process Communication,IPC)发送的口令创建调用,如Dbus、Biner进程间通信机制等。

该口令创建请求中以参数形式携带数据库文件的第一元数据及类密钥标识(ID)。

在步骤S104中,为数据库文件创建用于加密该数据库文件的口令,并将该第一元数据与该口令合并为第二元数据。

例如,当加解密存储服务接收到数据库加密实现服务发送的口令创建请求后,将第一元数据与口令合并,生成第二元数据。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

可信应用程序例如可以采用AES(Advanced Encryption Standard,高级加密标准)或DES(Data Encryption Standard,数据加密标准)等对称加密算法,根据解密后的类密钥对待加密数据进行加密,本发明不以此为限。可用的加密模式包括:CBC(Cipher BlockChaining,块状密码链),OFB(Output Feedback,输出反馈),CFB(Cipher Feedback,加密反馈)。

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

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

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

在一些实施例中,图2所示的方法10还包括:

在步骤S116中,接收加密后的第二元数据。

例如由数据库加密时限服务通过加解密存储服务接收加密后的第二元数据。

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

其中,数据库文件的加密是根据上述的口令在可信执行环境中进行的。

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

或者,图3是根据一示例示出的另一种终端设备中普通执行环境与可信执行的架构示意图。如图3所示,数据库加密实现服务还可以通过可信执行环境中的第二可信应用程序对数据库文件进行加密。数据库加密实现服务将待加密的数据库文件与口令的明文发送给可信执行环境中的第二可信应用程序,由第二可信应用程序为数据库文件进行加密。在具体实施时,数据库加密实现服务可以通过TrustZone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现数据库加密实现服务与第二可信应用程序之间的调用,即数据库加密实现服务与第二可信应用程序之间的通信服务。而图3中的第一可信应用程序用于实现上述对第二元数据的加密操作。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。

根据本发明实施方式的基于基于TrustZone的数据库文件口令加密方法,通过依靠普通执行环境中的服务为数据库文件创建口令,在可信执行环境中对口令进行加密,并在普通执行环境中存储口令的密文,保证了口令创建和使用的安全性;并且使得用户不需要记录数据库文件的口令,即口令对用户是透明的;此外,由于TrustZone的可信执行环境一般是与终端设备具有一一对应的绑定关系的,而数据库文件口令操作依赖的普通执行环境中的服务绑定了TrustZone的可信执行环境,因此数据库文件的口令不能在另一台终端设备上使用,从而阻止了数据库文件的任意拷贝、移动和备份。

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

图4是根据一示例性实施方式示出的一种基于TrustZone的数据库文件口令解密方法的流程图。该解密方法可适用于上述的数据库文件口令存储方法10。结合图1及图3,图4所示的方法20包括:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

此外,在一些实施例中,该方法20还可以包括:

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

例如,如图1中所示,当客户应用程序需要对数据库文件进行入读写或增删操作时,向数据库加密实现服务发送该操作请求。

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

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

例如,如图1中所示的数据库加密实现服务接收到该操作请求后,向加解密存储服务发送该元数据解密请求,以对该包含了口令的元数据进行解密。

此外,该方法20还可以进一步包括:

在步骤S218中,将解密后的数据库文件发送给客户应用程序。

其中,数据库文件是根据解密后的元数据中的口令在可信执行环境中被解密。

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

或者,如图3所示,数据库加密实现服务还可以通过可信执行环境中的第二可信应用程序对数据库文件进行解密。数据库加密实现服务将待加密的数据库文件与口令的明文发送给可信执行环境中的第二可信应用程序,由第二可信应用程序为数据库文件进行解密。在具体实施时,数据库加密实现服务可以通过TrustZone客户接口,并利用内核空间中普通执行环境与可信执行环境中的通信机制,实现数据库加密实现服务与第二可信应用程序之间的调用,即数据库加密实现服务与第二可信应用程序之间的通信服务。而图3中的第一可信应用程序用于实现上述对第二元数据的解密操作。需要说明的是内核空间中普通执行环境与可信执行环境中的通信机制为本领域技术人员所知悉,在此不再赘述。

数据库加密实现服务将解密后的数据库文件发送给请求对该数据文件操作的客户应用程序。

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

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

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

图5是根据一示例性实施方式示出的一种基于TrustZone的数据库文件口令加密装置的框图。如图5所示,该装置30包括:请求接收模块302、口令创建模块304、类密钥获取模块306、加密请求模块308、类密钥解密模块310、加密执行模块312、数据返回模块314。

其中,请求接收模块302用于接收口令创建请求,口令创建请求中包括:数据库文件的第一元数据及类密钥标识。

口令创建模块304用于为数据库文件创建用于加密数据库文件的口令,并将第一元数据与口令合并为第二元数据。

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

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

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

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

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

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

在一些实施例中,装置30还包括:元数据接收模块316及合并存储模块318。其中,元数据接收模块316用于接收加密后的第二元数据。合并存储模块318用于将加密后的第二元数据与加密后的数据库文件合并为一个文件进行存储;其中,数据库文件根据口令在可信执行环境中被加密。

在一些实施例中,装置30还包括:类密钥发送模块320、类密钥加密模块322及类密钥返回模块324。其中,类密钥发送模块320用于通过客户接口,向可信应用程序发送各应用场景对应的类密钥。类密钥加密模块322用于通过可信应用程序根据主密钥对各应用场景对应的类密钥进行加密。类密钥返回模块324用于通过可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中存储。

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

根据本发明实施方式的基于基于TrustZone的数据库文件口令加密装置,通过依靠普通执行环境中的服务为数据库文件创建口令,在可信执行环境中对口令进行加密,并在普通执行环境中存储口令的密文,保证了口令创建和使用的安全性;并且使得用户不需要记录数据库文件的口令,即口令对用户是透明的;此外,由于TrustZone的可信执行环境一般是与终端设备具有一一对应的绑定关系的,而数据库文件口令操作依赖的普通执行环境中的服务绑定了TrustZone的可信执行环境,因此数据库文件的口令不能在另一台终端设备上使用,从而阻止了数据库文件的任意拷贝、移动和备份。

图6是根据一示例性实施方式示出的一种基于TrustZone的数据库文件口令解密装置的框图。该解密装置适用于上述加密装置30。如图6所示,该解密装置40包括:口令请求接收模块402、类密钥获取模块404、解密请求模块406、类密钥解密模块408、解密执行模块410、数据返回模块412。

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

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

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

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

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

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

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

在一些实施例中,该装置40还包括:数据库文件发送模块418,用于将解密后的数据库文件发送给客户应用程序;其中,数据库文件根据解密后的元数据中的口令在可信执行环境中被解密。

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

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号