CN106980793A - 基于TrustZone的通用口令存储及读取方法、装置及终端设备 - Google Patents

基于TrustZone的通用口令存储及读取方法、装置及终端设备 Download PDF

Info

Publication number
CN106980793A
CN106980793A CN201710214359.2A CN201710214359A CN106980793A CN 106980793 A CN106980793 A CN 106980793A CN 201710214359 A CN201710214359 A CN 201710214359A CN 106980793 A CN106980793 A CN 106980793A
Authority
CN
China
Prior art keywords
key
password
encryption
decryption
data
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
Application number
CN201710214359.2A
Other languages
English (en)
Other versions
CN106980793B (zh
Inventor
孙国峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yuanxin Information Technology Group Co ltd
Original Assignee
Yuanxin Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yuanxin Technology filed Critical Yuanxin Technology
Priority to CN201710214359.2A priority Critical patent/CN106980793B/zh
Publication of CN106980793A publication Critical patent/CN106980793A/zh
Application granted granted Critical
Publication of CN106980793B publication Critical patent/CN106980793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开一种基于TrustZone的通用口令存储及读取方法、装置及终端设备。该通用口令存储方法包括:客户应用程序获取通用口令;客户应用程序向加解密存储服务发送口令存储请求,口令存储请求包括:应用场景及通用口令;加解密存储服务查找存储的应用场景对应的类密钥;通过客户接口,加解密存储服务向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及待加密数据,待加密数据包括通用口令;可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;可信应用程序根据解密后的类密钥,对待加密数据进行加密;以及可信应用程序通过客户接口,将加密后的待加密数据返回至加解密存储服务中存储。

Description

基于TrustZone的通用口令存储及读取方法、装置及终端设备
技术领域
本发明涉及移动终端设备安全技术领域,具体而言,涉及一种基于TrustZone的通用口令存储及读取方法、装置及终端设备。
背景技术
随着移动终端设备(如智能手机、平板电脑等)的普及,催生了各种用于移动终端设备的应用程序。很多应用程序都要求用户使用密码保护其安全性。随着移动终端设备中应用程序数量的飞速增长,移动终端用户需要掌握的密码的数量也快速的增长。由于这些密码都是各自独立的,因此非常容易出现用户不能够安全的保护这些密码的情况。比如为了不忘记密码,在纸质材料上做笔记,或者在电子版文件中明文记录密码等。
对单个记录密码的文件进行加密也是一种方法,但是这种方法依赖于文件加密的安全性,脱离安全体系无法衡量一个单独的加密文件的安全性。目前已经出现了一些应用程序可以提供一种记录多个密码的服务。应用程序通常使用单一的口令生成密钥,对其保存的所有密码进行保护。或者,使用应用程序生成的密钥对要保护的密钥进行加密保存。这种服务基本上与对密码文件进行加密相近,一旦其口令或密钥被破解则所有密码都会泄露出去。这种应用程序的用户必须记住自己的口令。口令必须足够坚固,也就是长度、复杂度必须足够,并且密码一定要定期更换,且不能记录在任何物理介质上。这就导致了口令很容易被忘记或记错。用户忘记口令会导致所有保存的密码都不能读取,给用户带来更大的麻烦。
因此,需要一种新的应用于移动终端设备的通用口令存储及读取方法。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明提供一种基于TrustZone的通用口令存储及写入方法、装置及终端设备,具有高度的安全性及可扩展性。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提供一种基于TrustZone的通用口令存储方法,包括:普通执行环境中的客户应用程序获取通用口令;客户应用程序向构建于普通执行环境中的加解密存储服务发送口令存储请求,口令存储请求包括:应用场景及通用口令;加解密存储服务查找存储的应用场景对应的类密钥;通过普通执行环境与可信执行环境之间的客户接口,加解密存储服务向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及待加密数据,待加密数据包括通用口令;可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;可信应用程序根据解密后的类密钥,对待加密数据进行加密;以及可信应用程序通过客户接口,将加密后的待加密数据返回至加解密存储服务中存储。
根据本发明的一实施方式,应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。
根据本发明的一实施方式,通用口令包括:关键字及密码,关键字和密码以第一键-值对形式表示,关键字为第一键-值对中的键名,密码为第一键-值对中的键值;且待加密数据为第一键-值对中的键值。
根据本发明的一实施方式,上述方法还包括:加解密存储服务将返回的加密后的待加密数据存储为第二键-值对;其中,第二键-值对中的键名为第一键-值对中的键名,第二键-值对中的键值为加密后的待加密数据。
根据本发明的一实施方式,上述方法还包括:通过客户接口,向可信应用程序发送各应用场景对应的类密钥;可信应用程序根据主密钥对各应用场景对应的类密钥进行加密;以及可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中存储。
根据本发明的一实施方式,客户接口采用强制访问控制权限管理机制。
根据本发明的另一个方面,提供一种适用于如上述任意一项的通用口令存储方法的通用口令读取方法,包括:普通执行环境中的客户应用程序接收用户的通用口令读取指令;客户应用程序根据通用口令读取指令,向构建于普通执行环境中的加解密存储服务发送口令读取请求,口令读取请求包括:应用场景及待读取的口令;加解密存储服务查找存储的应用场景对应的类密钥;通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求,数据解密请求包括:类密钥及待解密数据,待解密数据包括待读取的口令;可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;可信应用程序根据解密后的类密钥,对待解密数据进行解密;以及可信应用程序通过客户接口,将解密后的待解密数据返回至加解密存储服务。
根据本发明的一实施方式,待读取的口令包括:以第一键-值对中的键名表示的关键字;且待解密数据为加解密存储服务在存储的第二键-值对中查找到的关键字对应的键值。
根据本发明的一实施方式,上述方法还包括:加解密存储服务向客户应用程序发送第一键-值对;其中,第一键-值对的键名为关键字,第一键-值对的键值为解密后的待解密数据。
根据本发明的再一个方面,提供一种基于TrustZone的通用口令存储装置,包括:口令获取模块,用于通过普通执行环境中的客户应用程序获取通用口令;存储请求模块,用于通过客户应用程序向构建于普通执行环境中的加解密存储服务发送口令存储请求,口令存储请求包括:应用场景及通用口令;类密钥获取模块,用于通过加解密存储服务查找存储的应用场景对应的类密钥;加密请求模块,用于通过普通执行环境与可信执行环境之间的客户接口,通过加解密存储服务向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及待加密数据,待加密数据包括通用口令;第一密钥解密模块,用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;数据加密模块,用于通过可信应用程序根据解密后的类密钥,对待加密数据进行加密;以及加密数据返回模块,用于通过可信应用程序通过客户接口,将加密后的待加密数据返回至加解密存储服务中存储。
根据本发明的一实施方式,应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。
根据本发明的一实施方式,通用口令包括:关键字及密码,关键字和密码以第一键-值对形式表示,关键字为第一键-值对中的键名,密码为第一键-值对中的键值;且待加密数据为第一键-值对中的键值。
根据本发明的一实施方式,上述装置还包括:数据存储模块,用于通过加解密存储服务将返回的加密后的待加密数据存储为第二键-值对;其中,第二键-值对中的键名为第一键-值对中的键名,第二键-值对中的键值为加密后的待加密数据。
根据本发明的一实施方式,上述装置还包括:类密钥发送模块,用于通过客户接口,向可信应用程序发送各应用场景对应的类密钥;类密钥加密模块,用于通过可信应用程序根据主密钥对各应用场景对应的类密钥进行加密;以及类密钥返回模块,用于通过可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中存储。
根据本发明的一实施方式,客户接口采用强制访问控制权限管理机制。
根据本发明的再一个方面,提供一种适用于如上述任意一项的通用口令存储装置的通用口令读取装置,包括:指令接收模块,用于通过普通执行环境中的客户应用程序接收用户的通用口令读取指令;读取请求模块,用于通过客户应用程序根据通用口令读取指令,向构建于普通执行环境中的加解密存储服务发送口令读取请求,口令读取请求包括:应用场景及待读取的口令;类密钥获取模块,用于通过加解密存储服务查找存储的应用场景对应的类密钥;解密请求模块,用于通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求,数据解密请求包括:类密钥及待解密数据,待解密数据包括待读取的口令;第二密钥解密模块,用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密;数据解密模块,用于通过可信应用程序根据解密后的类密钥,对待解密数据进行解密;以及解密数据返回模块,用于通过可信应用程序通过客户接口,将解密后的待解密数据返回至加解密存储服务。
根据本发明的一实施方式,待读取的口令包括:以第一键-值对中的键名表示的关键字;且待解密数据为加解密存储服务在存储的第二键-值对中查找到的关键字对应的键值。
根据本发明的一实施方式,上述装置还包括:解密数据发送模块,用于通过加解密存储服务向客户应用程序发送第一键-值对;其中,第一键-值对的键名为关键字,第一键-值对的键值为解密后的待解密数据。
根据本发明的再一个方面,提供一种终端设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中处理器配置为经由执行可执行指令来执行如上述任意一项的方法。
根据本发明的再一个方面,提供一种终端设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中处理器配置为经由执行可执行指令来执行如上述任意一项的方法。
根据本发明实施方式的基于TrustZone的通用口令存储方法,通过一客户应用程序将移动终端设备中其他应用程序的通用口令在可信执行环境中加密,并将加密后的通用口令存储在统一的加解密存储服务中,提升了通用口令的存储安全性,并降低了开发成本;此外,在普通执行环境中存储使用主密钥加密后的类密钥,保证了类密钥的安全,从而进一步提升了数据加密的安全性。进一步地,该方法还提供了不同的密钥使用策略,及简单易用的数据检索的接口。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。
图1是根据一示例示出的终端设备中普通执行环境与可信执行的架构示意图。
图2是根据一示例性实施方式示出的一种基于TrustZone的通用口令存储方法的流程图。
图3是根据一示例性实施方式示出的一种基于TrustZone的通用口令读取方法的流程图。
图4是根据一示例性实施方式示出的一种基于TrustZone的通用口令存储装置的框图。
图5是根据一示例性实施方式示出的一种基于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,图2所示的方法10包括:
在步骤S102中,普通执行环境中的客户应用程序获取通用口令。
参考图1,该位于普通执行环境中的客户应用程序例如为一用于为用户保存其所有其他应用程序的通用口令的保险箱应用程序。
该保险箱应用程序接收用户通过用户界面输入的通用口令,或者通过与其他待保存口令的应用程序之间接口(API)调用获取该应用程序的通用口令。
在步骤S104中,客户应用程序向构建于普通执行环境中的加解密存储服务发送口令存储请求。
加解密存储服务可实现为由至少一个函数构成的代码集合,各函数包括:函数名称,函数调用信息和函数实现中的部分或全部。当有多个函数时,一个函数实现还可以包括调用所定义的其他函数等。
在初始化过程中,加解密存储服务可以为该客户应用程序初始化数据存储容器,以用于存储该客户应用程序的加密后的通用口令。
该口令存储请求例如为通过进程间通信(Inter-Process Communication,IPC)发送的口令存储调用,如Dbus、Biner进程间通信机制等。加解密存储服务在接收到该口令存储请求后,首先通过发送口令存储请求的进程的UID,查找到该进程所对应的数据存储容器。
该口令存储请求中包括例如以参数形式携带的应用场景及通用口令。该应用场景与待保存通用口令的应用程序相关,其可以通过用户的输入获得,也可以通过与与待保存通用口令的应用程序之间的接口调用获得。
应用场景例如包括:
1)终端设备启动成功后可以访问:该场景通常用于常驻系统服务对加密的需求;
2)终端设备启动成功后且合法登录后可以访问:该场景通常用于系统服务和系统应用的加密需求;
3)终端设备启动成功且合法登录且用户界面解除锁定后可以访问:该场景通常用于普通客户应用程序的加密需求;或者,
4)终端设备启动成功且合法登录且用户界面锁定时仅可以写入:该场景通常用于常驻应用程序的加密需求,如短信、邮件、即时通信(IM)等,需要在用户界面被锁定的情况下向系统安全的写入数据。
由于应用程序在不同应用场景下的安全策略是不同的,应用场景每次择一的选择上述的一种应用场景以确定相应的类密钥,差异化的应用场景可以提高应用数据的安全性。举例来说,如果一个加密项的策略被设置为终端设备启动成功且合法登录且用户界面解除锁定后可以访问,则其他时刻的访问请求会被拒绝,并且对应的类密钥也会被从内存中清除出去,从而进一步提升了加密的安全性。
在一些实施例中,保险箱应用程序也可以在一条口令存储请求中携带多个应用程序的通用口令,每个应用程序的通用口令对应其各自的应用场景。也即在口令存储请求中包括多条通用口令及其分别对应的应用场景。
在一些实施例中,口令存储请求中的通用口令以第一键-值对(key-value)形式发送,包括键名及对应的键值。其中键名为指定的关键字,如用户名等;键值数据为用户为应用程序设置的密码。
在步骤S106中,加解密存储服务查找存储的该应用场景对应的类密钥。
在加解密存储服务中,存储有各应用场景所对应的类密钥,其中各类密钥为在可信执行环境中使用主密钥加密后的密文。
密钥是黑盒加密算法的主要攻击点,因此需要保证密钥在存储及使用时的安全性。存储的安全性主要是指攻击者不能够对其进行读写访问,使用的安全性主要是指密钥在内存中遭受动态攻击的可能。在本方法中,为了增强密钥的安全性,将存储于普通执行环境中的类密钥以密文形式存储。
在一些实施例中,加解密存储服务在初始化过程中,还需要通过客户接口,向可信应用程序确认该主密钥是否可用。
在一些实施例中,在步骤S106之前该方法10还可以进一步包括如下步骤:
在步骤1中,加解密存储服务通过客户接口,向可信应用程序发送各应用场景对应的类密钥。
在步骤2中,可信应用程序根据TrustZone上下文中的主密钥对各应用场景的类密钥进行加密。
在步骤3中,可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中的加解密存储服务中存储。
在步骤S108中,加解密存储服务通过客户接口,向可信应用程序发送数据加密请求。
该加密请求包括查找到的类密钥以及待加密数据,该待加密数据包括上述的通用口令。在一些实施例中,待加密数据为第一键-值对中的键值。
如图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中,加解密存储服务将返回的加密后的待加密数据存储为第二键-值对。
加解密存储服务将加密后的待加密数据存储在该进程对应的数据存储容器中,并存储为第二键-值对。
其中,第二键-值对中的键名为第一键-值对中的键名,第二键-值对中的键值为加密后的待加密数据。即加解密存储服务同样采用键-值对的形式存储加密后的数据,以提供简单易用的数据检索接口,方便用户读写自己的通用口令。服务保存的数据加密后还需要进行增删读写的操作,检索接口可以有效的减少应用编程的复杂性,提高开发效率,减少漏洞风险。
根据本发明实施方式的基于TrustZone的通用口令存储方法,通过一客户应用程序将移动终端设备中其他应用程序的通用口令在可信执行环境中加密,并将加密后的通用口令存储在统一的加解密存储服务中,提升了通用口令的存储安全性,并降低了开发成本;此外,在普通执行环境中存储使用主密钥加密后的类密钥,保证了类密钥的安全,从而进一步提升了数据加密的安全性。进一步地,该方法还提供了不同的密钥使用策略,及简单易用的数据检索的接口。
应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。
图3是根据一示例性实施方式示出的一种基于TrustZone的通用口令读取方法的流程图。该解密方法可适用于上述的通用口令存储方法10。结合图1和图3,该方法20包括:
在步骤S202中,普通执行环境中的客户应用程序接收用户的通用口令读取指令。
如前述的保险箱应用程序,接收到用户通用用户界面输入的通用口令读取指令。
在步骤S204中,客户应用程序根据该通用口令读取指令,向构建于普通执行环境中的加解密存储服务发送口令读取请求。
该口令读取请求包括:应用场景及待读取的口令。
同样地,该口令读取请求也可以为进程间通信发送的口令读取调用。加解密存储服务在接收到该口令读取请求后,通过发送口令读取请求的进程的UID,查找到该进程所对应的数据存储容器。
应用场景如上所述,在此不再赘述。
在一些实施例中,在口令读取请求中,客户应用程序仅需向加解密存储服务发送关键字,加解密存储服务即可以通过该关键字查找到其存储的对应该关键字的加密后的键值数据,即待读取的口令。
在一些实施例中,该口令读取请求中也可以包括多个关键字及相对应的多个应用场景,从而同时请求读取多个应用程序的通用口令。
在步骤S206中,加解密存储服务查找存储的应用场景对应的类密钥。
在加解密存储服务中,存储有各应用场景所对应的类密钥,其中各类密钥为在可信执行环境中使用主密钥加密后的密文。
在步骤S208中,加解密存储服务通过客户接口,向可信应用程序发送数据解密请求。
其中,所述数据解密请求中的类密钥为查找到的该应用场景对应的类密钥,数据解密请求中的待解密数据包括待读取的口令。
在一些实施例中,待解密数据为加解密存储服务在存储的第二键-值对中查找到的关键字对应的键值,即关键字对应的通用口令的密文。
在步骤S210中,可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密。
主密钥为每个终端设备所独立拥有的,在可执行环境初始化过程中,该主密钥被加载到TrustZone的映像文件中,即加载到TrustZone的可信执行环境的上下文中。由于该主密钥被预埋到可信执行环境中,不会在普通执行环境中出现,因此在普通执行环境中由于无法获取该主密钥而无法解密类密钥,从而增强了通过类密钥加密的应用数据的安全性。
在步骤S212中,可信应用程序根据解密后的类密钥,对待解密数据进行解密。
对应上述加密过程中所使用的加密算法,对待解密数据进行解密操作。
在步骤S214中,可信应用程序通过客户接口,将解密后的数据返回至加解密存储服务中。
此外,在一些实施例中,该方法20还可以包括:
在步骤S216中,加解密存储服务向客户应用程序发送第一键-值对。
其中,第一键-值对的键名为该客户应用程序在口令读取请求中携带的关键字,第一键-值对的键值为该关键字对应的解密后的密码。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图4是根据一示例性实施方式示出的一种基于TrustZone的通用口令存储装置的框图。如图4所示,该装置30包括:口令获取模块302、存储请求模块304、类密钥获取模块306、加密请求模块308、第一密钥解密模块310、数据加密模块312、加密数据返回模块314。
结合图1所示,口令获取模块302用于通过普通执行环境中的客户应用程序获取通用口令。
存储请求模块304用于通过客户应用程序向构建于普通执行环境中的加解密存储服务发送口令存储请求,口令存储请求包括:应用场景及通用口令。
类密钥获取模块306用于通过加解密存储服务查找存储的应用场景对应的类密钥。
在一些实施例中,应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。
加密请求模块308用于通过普通执行环境与可信执行环境之间的客户接口,通过加解密存储服务向可信执行环境中的可信应用程序发送数据加密请求,数据加密请求包括:类密钥及待加密数据,待加密数据包括通用口令。
在一些实施例中,通用口令包括:关键字及密码,关键字和密码以第一键-值对形式表示,关键字为第一键-值对中的键名,密码为第一键-值对中的键值;且待加密数据为第一键-值对中的键值。
第一密钥解密模块310用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密。
数据加密模块312用于通过可信应用程序根据解密后的类密钥,对待加密数据进行加密。
加密数据返回模块314用于通过可信应用程序通过客户接口,将加密后的待加密数据返回至加解密存储服务中存储。
在一些实施例中,该装置30还包括:数据存储模块316,用于通过加解密存储服务将返回的加密后的待加密数据存储为第二键-值对;其中,第二键-值对中的键名为第一键-值对中的键名,第二键-值对中的键值为加密后的待加密数据。
在一些实施例中,该装置30还包括:类密钥发送模块318、类密钥加密模块320及类密钥返回模块322。其中,类密钥发送模块318用于通过客户接口,向可信应用程序发送各应用场景对应的类密钥。类密钥加密模块320用于通过可信应用程序根据主密钥对各应用场景对应的类密钥进行加密。类密钥返回模块322用于通过可信应用程序通过客户接口,将加密后的各应用场景对应的类密钥返回至普通执行环境中存储。
在一些实施例中,客户接口采用强制访问控制权限管理机制。
根据本发明实施方式的基于TrustZone的通用口令存储装置,通过一客户应用程序将移动终端设备中其他应用程序的通用口令在可信执行环境中加密,并将加密后的通用口令存储在统一的加解密存储服务中,提升了通用口令的存储安全性,并降低了开发成本;此外,在普通执行环境中存储使用主密钥加密后的类密钥,保证了类密钥的安全,从而进一步提升了数据加密的安全性。进一步地,该方法还提供了不同的密钥使用策略,及简单易用的数据检索的接口。
图5是根据一示例性实施方式示出的一种基于TrustZone的通用口令读取装置的框图。该通用口令读取装置适用于上述通用口令存储装置30。如图5所示,解密装置40包括:指令接收模块402、读取请求模块404、类密钥获取模块406、解密请求模块408、第二密钥解密模块410、数据解密模块412及解密数据返回模块414。
结合图1所示,指令接收模块402用于通过普通执行环境中的客户应用程序接收用户的通用口令读取指令。
读取请求模块404用于通过客户应用程序根据通用口令读取指令,向构建于普通执行环境中的加解密存储服务发送口令读取请求,口令读取请求包括:应用场景及待读取的口令。
类密钥获取模块406用于通过加解密存储服务查找存储的应用场景对应的类密钥。
解密请求模块408用于通过普通执行环境与可信执行环境之间的客户接口,向可信执行环境中的可信应用程序发送数据解密请求,数据解密请求包括:类密钥及待解密数据,待解密数据包括待读取的口令。
在一些实施例中,待读取的口令包括:以第一键-值对中的键名表示的关键字;且待解密数据为加解密存储服务在存储的第二键-值对中查找到的关键字对应的键值。
第二密钥解密模块410用于通过可信应用程序根据预先存储于可信执行环境中的主密钥,对类密钥进行解密。
数据解密模块412用于通过可信应用程序根据解密后的类密钥,对待解密数据进行解密。
解密数据返回模块414用于通过可信应用程序通过客户接口,将解密后的待解密数据返回至加解密存储服务。
在一些实施例中,该装置40还包括:解密数据发送模块416用于通过加解密存储服务向客户应用程序发送第一键-值对。其中,第一键-值对的键名为关键字,第一键-值对的键值为解密后的待解密数据。
需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施方式的方法。
以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (13)

1.一种基于TrustZone的通用口令存储方法,其特征在于,包括:
普通执行环境中的客户应用程序获取通用口令;
所述客户应用程序向构建于普通执行环境中的加解密存储服务发送口令存储请求,所述口令存储请求包括:应用场景及所述通用口令;
所述加解密存储服务查找存储的所述应用场景对应的类密钥;
通过所述普通执行环境与可信执行环境之间的客户接口,所述加解密存储服务向所述可信执行环境中的可信应用程序发送数据加密请求,所述数据加密请求包括:所述类密钥及待加密数据,所述待加密数据包括所述通用口令;
所述可信应用程序根据预先存储于所述可信执行环境中的主密钥,对所述类密钥进行解密;
所述可信应用程序根据解密后的所述类密钥,对所述待加密数据进行加密;以及
所述可信应用程序通过所述客户接口,将加密后的所述待加密数据返回至所述加解密存储服务中存储。
2.根据权利要求1所述的方法,其特征在于,所述应用场景包括:终端设备启动成功后可以访问、终端设备启动成功后且合法登录后可以访问、终端设备启动成功且合法登录且用户界面解除锁定后可以访问、终端设备启动成功且合法登录且用户界面锁定时仅可以写入。
3.根据权利要求2所述的方法,其特征在于,所述通用口令包括:关键字及密码,所述关键字和密码以第一键-值对形式表示,所述关键字为所述第一键-值对中的键名,所述密码为所述第一键-值对中的键值;且所述待加密数据为所述第一键-值对中的键值。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述加解密存储服务将返回的加密后的所述待加密数据存储为第二键-值对;
其中,所述第二键-值对中的键名为所述第一键-值对中的键名,所述第二键-值对中的键值为加密后的所述待加密数据。
5.根据权利要求2所述的方法,其特征在于,还包括:
通过所述客户接口,向所述可信应用程序发送各所述应用场景对应的类密钥;
所述可信应用程序根据所述主密钥对各所述应用场景对应的类密钥进行加密;以及
所述可信应用程序通过所述客户接口,将加密后的各所述应用场景对应的类密钥返回至所述普通执行环境中存储。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述客户接口采用强制访问控制权限管理机制。
7.一种适用于如权利要求1-6任一项所述的通用口令存储方法的通用口令读取方法,其特征在于,包括:
普通执行环境中的客户应用程序接收用户的通用口令读取指令;
所述客户应用程序根据所述通用口令读取指令,向构建于普通执行环境中的加解密存储服务发送口令读取请求,所述口令读取请求包括:应用场景及待读取的口令;
所述加解密存储服务查找存储的所述应用场景对应的类密钥;
通过所述普通执行环境与可信执行环境之间的客户接口,向所述可信执行环境中的可信应用程序发送数据解密请求,所述数据解密请求包括:类密钥及待解密数据,所述待解密数据包括所述待读取的口令;
所述可信应用程序根据预先存储于所述可信执行环境中的主密钥,对所述类密钥进行解密;
所述可信应用程序根据解密后的所述类密钥,对所述待解密数据进行解密;以及
所述可信应用程序通过所述客户接口,将解密后的所述待解密数据返回至所述加解密存储服务。
8.根据权利要求7所述的方法,其特征在于,所述待读取的口令包括:以第一键-值对中的键名表示的关键字;且所述待解密数据为所述加解密存储服务在存储的第二键-值对中查找到的所述关键字对应的键值。
9.根据权利要求8所述的方法,其特征在于,还包括:
所述加解密存储服务向所述客户应用程序发送所述第一键-值对;
其中,所述第一键-值对的键名为所述关键字,所述第一键-值对的键值为解密后的所述待解密数据。
10.一种基于TrustZone的通用口令存储装置,其特征在于,包括:
口令获取模块,用于通过普通执行环境中的客户应用程序获取通用口令;
存储请求模块,用于通过所述客户应用程序向构建于普通执行环境中的加解密存储服务发送口令存储请求,所述口令存储请求包括:所述应用场景及所述通用口令;
类密钥获取模块,用于通过所述加解密存储服务查找存储的所述应用场景对应的类密钥;
加密请求模块,用于通过所述普通执行环境与可信执行环境之间的客户接口,通过所述加解密存储服务向所述可信执行环境中的可信应用程序发送数据加密请求,所述数据加密请求包括:所述类密钥及待加密数据,所述待加密数据包括所述通用口令;
第一密钥解密模块,用于通过所述可信应用程序根据预先存储于所述可信执行环境中的主密钥,对所述类密钥进行解密;
数据加密模块,用于通过所述可信应用程序根据解密后的所述类密钥,对所述待加密数据进行加密;以及
加密数据返回模块,用于通过所述可信应用程序通过所述客户接口,将加密后的所述待加密数据返回至所述加解密存储服务中存储。
11.一种适用于如权利要求10所述的通用口令存储装置的通用口令读取装置,其特征在于,包括:
指令接收模块,用于通过普通执行环境中的客户应用程序接收用户的通用口令读取指令;
读取请求模块,用于通过所述客户应用程序根据所述通用口令读取指令,向构建于普通执行环境中的加解密存储服务发送口令读取请求,所述口令读取请求包括:应用场景及待读取的口令;
类密钥获取模块,用于通过所述加解密存储服务查找存储的所述应用场景对应的类密钥;
解密请求模块,用于通过所述普通执行环境与可信执行环境之间的客户接口,向所述可信执行环境中的可信应用程序发送数据解密请求,所述数据解密请求包括:类密钥及待解密数据,所述待解密数据包括所述待读取的口令;
第二密钥解密模块,用于通过所述可信应用程序根据预先存储于所述可信执行环境中的主密钥,对所述类密钥进行解密;
数据解密模块,用于通过所述可信应用程序根据解密后的所述类密钥,对所述待解密数据进行解密;以及
解密数据返回模块,用于通过所述可信应用程序通过所述客户接口,将解密后的所述待解密数据返回至所述加解密存储服务。
12.一种终端设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中所述处理器配置为经由执行所述可执行指令来执行如权利要求1-6任一项所述的方法。
13.一种终端设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中所述处理器配置为经由执行所述可执行指令来执行如权利要求7-9任一项所述的方法。
CN201710214359.2A 2017-04-01 2017-04-01 基于TrustZone的通用口令存储及读取方法、装置及终端设备 Active CN106980793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710214359.2A CN106980793B (zh) 2017-04-01 2017-04-01 基于TrustZone的通用口令存储及读取方法、装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710214359.2A CN106980793B (zh) 2017-04-01 2017-04-01 基于TrustZone的通用口令存储及读取方法、装置及终端设备

Publications (2)

Publication Number Publication Date
CN106980793A true CN106980793A (zh) 2017-07-25
CN106980793B CN106980793B (zh) 2020-05-15

Family

ID=59344932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710214359.2A Active CN106980793B (zh) 2017-04-01 2017-04-01 基于TrustZone的通用口令存储及读取方法、装置及终端设备

Country Status (1)

Country Link
CN (1) CN106980793B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689868A (zh) * 2017-09-12 2018-02-13 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、装置以及终端
CN107770150A (zh) * 2017-08-25 2018-03-06 北京元心科技有限公司 终端保护方法及装置
CN108595970A (zh) * 2018-03-13 2018-09-28 Oppo广东移动通信有限公司 处理组件的配置方法、装置、终端及存储介质
CN108616352A (zh) * 2018-04-13 2018-10-02 北京握奇智能科技有限公司 基于安全元件的动态口令生成方法和系统
CN110032876A (zh) * 2019-02-19 2019-07-19 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
WO2021052086A1 (zh) * 2019-09-17 2021-03-25 华为技术有限公司 一种信息处理方法及装置
CN114647453A (zh) * 2022-03-01 2022-06-21 芯原微电子(成都)有限公司 多处理器的可信动态启动方法、系统、存储介质及终端
CN114692113A (zh) * 2020-12-31 2022-07-01 成都鼎桥通信技术有限公司 解密方法、装置、移动终端和可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187204A (zh) * 2015-09-29 2015-12-23 北京元心科技有限公司 文件的加密、解密方法和加解密系统
CN105260663A (zh) * 2015-09-15 2016-01-20 中国科学院信息工程研究所 一种基于TrustZone技术的安全存储服务系统及方法
CN105812332A (zh) * 2014-12-31 2016-07-27 北京握奇智能科技有限公司 数据保护方法
CN106464485A (zh) * 2014-02-11 2017-02-22 爱立信股份有限公司 用于保护在清单文件中输送的内容密钥的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464485A (zh) * 2014-02-11 2017-02-22 爱立信股份有限公司 用于保护在清单文件中输送的内容密钥的系统和方法
CN105812332A (zh) * 2014-12-31 2016-07-27 北京握奇智能科技有限公司 数据保护方法
CN105260663A (zh) * 2015-09-15 2016-01-20 中国科学院信息工程研究所 一种基于TrustZone技术的安全存储服务系统及方法
CN105187204A (zh) * 2015-09-29 2015-12-23 北京元心科技有限公司 文件的加密、解密方法和加解密系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107770150A (zh) * 2017-08-25 2018-03-06 北京元心科技有限公司 终端保护方法及装置
CN107770150B (zh) * 2017-08-25 2020-09-22 北京元心科技有限公司 终端保护方法及装置
CN107689868B (zh) * 2017-09-12 2021-09-07 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、装置以及终端
CN107689868A (zh) * 2017-09-12 2018-02-13 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、装置以及终端
CN108595970A (zh) * 2018-03-13 2018-09-28 Oppo广东移动通信有限公司 处理组件的配置方法、装置、终端及存储介质
CN108595970B (zh) * 2018-03-13 2020-08-28 Oppo广东移动通信有限公司 处理组件的配置方法、装置、终端及存储介质
CN108616352A (zh) * 2018-04-13 2018-10-02 北京握奇智能科技有限公司 基于安全元件的动态口令生成方法和系统
CN110032876A (zh) * 2019-02-19 2019-07-19 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110032876B (zh) * 2019-02-19 2020-03-06 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
WO2021052086A1 (zh) * 2019-09-17 2021-03-25 华为技术有限公司 一种信息处理方法及装置
CN112596802A (zh) * 2019-09-17 2021-04-02 华为技术有限公司 一种信息处理方法及装置
CN112596802B (zh) * 2019-09-17 2022-07-12 华为技术有限公司 一种信息处理方法及装置
CN114692113A (zh) * 2020-12-31 2022-07-01 成都鼎桥通信技术有限公司 解密方法、装置、移动终端和可读存储介质
CN114692113B (zh) * 2020-12-31 2024-02-13 成都鼎桥通信技术有限公司 解密方法、装置、移动终端和可读存储介质
CN114647453A (zh) * 2022-03-01 2022-06-21 芯原微电子(成都)有限公司 多处理器的可信动态启动方法、系统、存储介质及终端
CN114647453B (zh) * 2022-03-01 2023-06-09 芯原微电子(成都)有限公司 多处理器的可信动态启动方法、系统、存储介质及终端

Also Published As

Publication number Publication date
CN106980793B (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
US10586054B2 (en) Privacy firewall
CN106980793A (zh) 基于TrustZone的通用口令存储及读取方法、装置及终端设备
CN106997439A (zh) 基于TrustZone的数据加解密方法、装置及终端设备
TWI388183B (zh) 用以使敏感資料及關聯記錄無法識別之系統和方法
US11290446B2 (en) Access to data stored in a cloud
EP2929481B1 (en) Secure cloud database platform
CN107209787B (zh) 提高专用加密数据的搜索能力
CN106980794A (zh) 基于TrustZone的文件加解密方法、装置及终端设备
CN104205123B (zh) 用于安全的第三方数据存储的系统和方法
CA2709944C (en) System and method for securing data
US20070074047A1 (en) Key rotation
CN106992851A (zh) 基于TrustZone的数据库文件口令加解密方法、装置及终端设备
CN106022155A (zh) 用于数据库安全管理的方法及服务器
US8504590B2 (en) Methods of encapsulating information in records from two or more disparate databases
US8015214B2 (en) Method of encapsulating information in a database and an encapsulated database
CN110889130A (zh) 基于数据库的细粒度数据加密方法、系统及装置
CN108170753B (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
US9413734B1 (en) Methods and apparatus for sharing encrypted data
RU2311676C2 (ru) Способ обеспечения доступа к объектам корпоративной сети
CN104955043B (zh) 一种智能终端安全防护系统
US20150006906A1 (en) Key retrieval
Inampudi et al. Key Management for protection of health care Data of Multi-user using Access control in Cloud Environment
WO2018034192A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
US20220327211A1 (en) Data processing system and method capable of separating application processes
CN114785553A (zh) 权限认证方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210129

Address after: 101300 room 153, 1 / F, building 17, 16 Caixiang East Road, Nancai Town, Shunyi District, Beijing

Patentee after: Yuanxin Information Technology Group Co.,Ltd.

Address before: 100176 room 2222, building D, building 33, 99 Kechuang 14th Street, Beijing Economic and Technological Development Zone, Beijing

Patentee before: BEIJING YUANXIN SCIENCE & TECHNOLOGY Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20170725

Assignee: Beijing Yuanxin Junsheng Technology Co.,Ltd.

Assignor: Yuanxin Information Technology Group Co.,Ltd.

Contract record no.: X2021110000018

Denomination of invention: General password storage and reading method, device and terminal device based on TrustZone

Granted publication date: 20200515

License type: Common License

Record date: 20210531