WO2019144640A1 - 一种提高可信应用程序安全的方法 - Google Patents
一种提高可信应用程序安全的方法 Download PDFInfo
- Publication number
- WO2019144640A1 WO2019144640A1 PCT/CN2018/108106 CN2018108106W WO2019144640A1 WO 2019144640 A1 WO2019144640 A1 WO 2019144640A1 CN 2018108106 W CN2018108106 W CN 2018108106W WO 2019144640 A1 WO2019144640 A1 WO 2019144640A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- trusted application
- signature file
- key
- verification
- public key
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Definitions
- Step S4 The security execution system performs hierarchical verification on the parsing result, and if the verification passes, it indicates that the current trusted application is in a secure state;
- test fails, it indicates that the current trusted application is in an unsecured state.
- each of the trusted applications includes a unique identity code
- the second key pair including a second private key and a second public key corresponding to the second private key
- Step A4 Packet the second public key, the first signature file, the trusted application, the first encrypted value, and the second signature file to form the signature file package.
- a public key encryption algorithm is provided, and the first public key and the first private key in the first key pair are obtained by the public key encryption algorithm, and/or
- the security execution system is a security operating system
- the second operating environment is an operating environment provided by the security operating system.
- the method of loading the signature file package into the second running environment comprises the following steps:
- Step B2 The security execution system loads the trusted application according to the request, and loads the signature file package into the second running environment.
- the parsing result obtained by the security execution system parsing the signature file package includes:
- the second public key the first signature file, the trusted application, the first encrypted value, and the second signature file;
- the method for verifying the parsing result by the security execution system by using the layer verification manner includes the following steps:
- Step C1 The security execution system checks the first signature file by using the first public key stored in the security storage module to obtain a first verification result, according to the first verification result. Determine whether the verification is successful;
- Step C2 Perform verification on the second signature file by using the second public key to obtain a second verification result, and determine, according to the second verification result, whether the verification is successful.
- Step C3 Encrypt the trusted application by using the preset encryption algorithm to obtain a second encrypted value, and compare the second encrypted value with the first encrypted value to determine whether the comparison result is the same. ;
- FIG. 2 is a flowchart of an embodiment of a method for forming a signature file package of a trusted application in an embodiment of a method for improving security of a trusted application;
- FIG. 3 is a flowchart of an embodiment of a method for loading a signature file package into a second running environment in an embodiment of a method for improving security of a trusted application;
- FIG. 4 is a flowchart of an embodiment of a method for verifying an analysis result in an embodiment of a method for improving security of a trusted application according to an embodiment of the present invention.
- a method for improving the security of a trusted application is applied to a smart device, wherein the smart device provides a main operating system and a secure execution system;
- Step S4 The security execution system performs hierarchical verification on the analysis result, and if the verification passes, the current trusted application is in a safe state;
- Trusted applications use a simple digital signature mechanism that carries digital signatures, but all trusted applications use the same key signature verification. Once the key is intercepted by the destroyer, the vandal can take advantage of this. The key is used to mimic the digital signature of all trusted applications on the system, making the entire TEE system untrustworthy.
- the first key pair including a first private key and a first public key corresponding to the first private key
- the second key pair including a second private key and a second public key corresponding to the second private key
- Step A1 sign the second public key and the identity code of the trusted application by using the first key to generate a first signature file
- a signature file package including the second public key, the first signature file, the trusted application, the first encrypted value, and the second signature file is formed.
- multiple trusted applications can be signed and verified simultaneously in the signature and verification process, and the UUID code of each trusted application is bound to the second key pair to ensure each
- the application key has an independent and unique second key pair, which overcomes the use of a unified application key for each trusted application in the prior art, and once the application key is compromised, it will affect all trusted application security. Sexual problem.
- the main operating system provides a storage module, where the storage module is configured to save the signature file package and the installation file of the client application;
- the main operating system is LINUX or Android
- the first operating environment is an operating environment provided by LINUX or Android.
- the main operating system provides a storage module, where the storage module is configured to save the signature file package and the installation file of the client application;
- the parsing result obtained by the security execution system parsing the signature file package includes:
- the current trusted application is in a secure state.
- the trusted application is 8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta;
- the trusted application identification code (TA UUID) is 8aaaf200-2450-11e4-abe2-0002a5d5c51b;
- the trusted application is 8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta.
- the first public key (RSA root public key) of the first key pair is RSA_ROOT_KEY_PUK
- the first private key is RSA_ROOT_KEY_PRI;
- the second public key (RSA application public key RSA_TA_KEY_PUB) of the second key pair is, and the second private key (RSA application private key) is RSA_TA_KEY_PRI.
- Step 2 Calculate the hash of the TA trusted application 8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta with the SHA256 hash hash algorithm, and generate a hash value (first encrypted value) 8aaaf200-2450-11e4-abe2-0002a5d5c51b .hash;
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种提高可信应用程序安全的方法,应用于智能设备中,其中,包括以下步骤:步骤S1、上位机通过一层级签名的方式对可信应用程序进行签名以生成一关于可信应用程序的签名文件包并保存至主操作系统中;步骤S2、安全执行系统用于主操作系统中获取签名文件包并加载至第二运行环境中;步骤S3、安全执行系统对签名文件包进行解析以获得解析结果;步骤S4、安全执行系统对解析结果进行层级校验,如检验通过,则表示当前的可信应用程序处于安全状态;如检验不通过,则表示可信应用程序处于非安全状态。其技术方案的有益效果在于,克服现有技术中对于可信应用程序缺乏安全的认证方式以及仅单纯采用简单的数字签名机制存在的安全性较低的缺陷。
Description
本发明涉及通信技术领域,尤其涉及一种提高可信应用程序安全的方法。
随着网络技术的发展以及智能设备普及,如家庭多媒体设备、手机等,通过智能设备进行在线购物,缴纳家庭水电费用,购买播放数字影音作品等新型消费购物方式已经逐渐走入了家庭生活。
但是这些新型购物消费方式中安全问题尤为重要,目前主流的家庭多媒体设备和手机平板等移动设备中,普遍采用了ARM的TrustZone技术构建安全执行环境TEE,让在线支付、DRM播放等作为可信应用程序在TEE环境中执行,增强其安全性。
现有的智能设备中,其可信应用程序存在的安全问题在如下:
1)、可信应用程序没有签名校验机制。对于这类程序,破坏者可以直接通过篡改应用程序的代码段,替换原来的可信应用程序,进入TEE系统后获取程序的执行权限,从而访问安全资源,截获安全数据,破坏整个TEE系统的安全性;
2)、可信应用程序程序采用了简单的数字签名机制,这类程序携带数字签名,不过所有的可信应用程序采用同样的密钥签名校验,一旦密钥被非法者截获,非法者可以利用这个密钥来仿造系统上所有的可信应用程序的数字签名,使得整个TEE系统不可信。
发明内容
针对现有技术中可信程序在安全性方面存在的上述问题,现提供一种旨在采用多层签名以及对应的多层校验的方式,有效的提高可信应用程序的安 全性的方法。
具体技术方案如下:
一种提高可信应用程序安全的方法,应用于智能设备中,其中,所述智能设备提供一主操作系统以及一安全执行系统;
提供一上位机,所述上位机与所述智能设备连接;
所述主操作系统提供一第一运行环境,所述安全执行系统提供一第二运行环境;
提供一客户端应用程序,所述客户端应用程序运行于所述第一运行环境中;
提供一可信应用程序,所述可信应用程序运行于所述第二运行环境中;
包括以下步骤:
步骤S1、所述上位机通过一层级签名的方式对所述可信应用程序进行签名以生成一关于所述可信应用程序的签名文件包并保存至所述主操作系统中;
步骤S2、所述安全执行系统用于所述主操作系统中获取所述签名文件包并加载至所述第二运行环境中;
步骤S3、所述安全执行系统对所述签名文件包进行解析以获得解析结果;
步骤S4、所述安全执行系统对所述解析结果进行层级校验,如检验通过,则表示当前的所述可信应用程序处于安全状态;
如检验不通过,则表示当前的所述可信应用程序处于非安全状态。
优选的,每个所述可信应用程序包括一唯一的身份标识码;
提供一第一密钥对,所述第一密钥对包括一第一私钥以及与所述第一私钥对应的第一公钥;
提供一第二密钥对,所述第二密钥对包括一第二私钥以及与所述第二私钥对应的第二公钥;
通过所述层级签名的方式形成关于所述可信应用程序的所述签名文件包的方法,包括以下步骤:
步骤A1、通过所述第一密钥对所述第二公钥和所述可信应用程序的所述身份标识码进行签名以生成一第一签名文件;
步骤A2、通过一预设的加密算法对所述可信应用程序进行加密以获得一第一加密值;
步骤A3、通过所述第二密钥对所述第一加密值进行签名以生成一第二签名文件;
步骤A4、将所述第二公钥、所述第一签名文件、所述可信应用程序、所述第一加密值以及所述第二签名文件打包形成所述签名文件包。
优选的,所述加密算法为哈希散列算法,所述第一加密值为哈希值。
优选的,所述身份标识码为所述可信应用程序的UUID码(UUID,Universally Unique Identifier,通用唯一识别码,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息)。
优选的,提供一公钥加密算法,通过所述公钥加密算法处理获得所述第一密钥对中的所述第一公钥以及所述第一私钥,和/或
通过所述公钥加密算处理获得所述第二密钥对中的所述第二公钥以及所述第二私钥。
优选的,所述主操作系统为LINUX或者安卓系统,所述第一运行环境为所述LINUX或者安卓系统提供的运行环境。
优选的,所述安全执行系统为安全操作系统,所述第二运行环境为所述安全操作系统提供的运行环境。
优选的,所述主操作系统提供一存储模块,所述存储模块用以保存所述签名文件包以及所述客户端应用程序的安装文件;
所述安全执行系统提供一安全存储模块,所述第一公钥保存于所述安全存储模块中。
优选的,加载所述签名文件包至所述第二运行环境中的方法包括以下步骤:
步骤B1、所述客户端应用程序发送一触发所述可信应用程序的请求至所述安全执行系统;
步骤B2、所述安全执行系统根据所述请求,加载所述可信应用程序以及加载所述签名文件包至所述第二运行环境中。
优选的,所述安全执行系统解析所述签名文件包获取的所述解析结果包 括:
所述第二公钥、所述第一签名文件、所述可信应用程序、所述第一加密值以及所述第二签名文件;
所述安全执行系统通过所述层级校验的方式对所述解析结果进行校验的方法,包括以下步骤:
步骤C1、所述安全执行系统调用存储在所述安全存储模块中的所述第一公钥对所述第一签名文件进行校验,以获得第一校验结果,根据所述第一检验结果判断校验是否成功;
若否,返回一校验错误信息,并退出,表示所述可信应用程序处于非安全状态;
步骤C2、通过所述第二公钥对所述第二签名文件进行校验,以获得第二校验结果,根据所述第二检验结果判断校验是否成功;
若否,返回一校验错误信息,并退出,表示所述可信应用程序处于非安全状态;
步骤C3、通过所述预设加密算法对所述可信应用程序进行加密以获得一第二加密值,将所述第二加密值与所述第一加密值进行比较,以判断比较结果是否相同;
若否,返回一校验错误信息,并退出,表示所述可信应用程序处于非安全状态;
若是,则表示当前的所述可信应用程序处于安全状态。
上述技术方案具有如下优点或有益效果:通过多层签名的方式以及对应多层签名的多层校验的方式,可有效的提高可信应用程序的安全性,克服现有技术中对于可信应用程序缺乏安全的认证方式以及仅单纯采用简单的数字签名机制存在的安全性较低的缺陷。
参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
图1为本发明一种提高可信应用程序安全的方法实施例的流程图;
图2为本发明一种提高可信应用程序安全的方法实施例中,关于形成可 信应用程序的签名文件包的方法实施例的流程图;
图3为本发明一种提高可信应用程序安全的方法实施例中,加载签名文件包至第二运行环境中的方法实施例的流程图;
图4为本发明一种提高可信应用程序安全的方法实施例中,对解析结果进行校验的方法实施例的流程图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的技术方案中包括一种提高可信应用程序安全的方法。
一种提高可信应用程序安全的方法,应用于智能设备中,其中,智能设备提供一主操作系统以及一安全执行系统;
提供一上位机,上位机与智能设备连接;
主操作系统提供一第一运行环境,安全执行系统提供一第二运行环境;
提供一客户端应用程序,客户端应用程序运行于第一运行环境中;
提供一可信应用程序,可信应用程序运行于第二运行环境中;
如图1所示,包括以下步骤:
步骤S1、上位机通过一层级签名的方式对可信应用程序进行签名以生成一关于可信应用程序的签名文件包并保存至主操作系统中;
步骤S2、安全执行系统用于主操作系统中获取签名文件包并加载至第二运行环境中;
步骤S3、安全执行系统对签名文件包进行解析以获得解析结果;
步骤S4、安全执行系统对解析结果进行层级校验,如检验通过,则表示 当前的可信应用程序处于安全状态;
如检验不通过,则表示当前的可信应用程序处于非安全状态。
针对现有技术中,可信应用程序缺乏安全认证机制,智能设备获取的可信应用存在应用程序代码被串篡改,在被串改的可信应用进入TEE系统后获取程序的执行权限,从而访问安全资源,截获安全数据,破坏整个TEE系统的安全性;
2)可信应用程序采用了简单的数字签名机制,这类程序携带数字签名,不过所有的可信应用程序采用同样的密钥签名校验,一旦密钥被破坏者截获,破坏者可以利用这个密钥来仿造系统上所有的可信应用程序的数字签名,使得整个TEE系统不可信。
本发明中,首先在通过上位机对可信应用程序进行多层签名以形成签名文件包并保存于主操作系统中,智能设备启动后安全执行系统通过获取加载签名文件包,并通过多层校验的方式对签名文件进行校验,并基于校验结果判断当前的可信应用程序是否处于安全状态;
若处于安全状态,则可信应用程序可以运行;
若处于非安全状态,则可信应用程序存在被篡改的风险,因此不可运行,通过上述的多层签名以及校验的方式可以有效保证可信应用程序的安全性。
在一种较优的实施方式中,每个可信应用程序包括一唯一的身份标识码;
提供一第一密钥对,第一密钥对包括一第一私钥以及与第一私钥对应的第一公钥;
提供一第二密钥对,第二密钥对包括一第二私钥以及与第二私钥对应的第二公钥;
如图2所示,通过层级签名的方式形成关于可信应用程序的签名文件包的方法,包括以下步骤:
步骤A1、通过第一密钥对第二公钥和可信应用程序的身份标识码进行签名以生成一第一签名文件;
步骤A2、通过一预设的加密算法对可信应用程序进行加密以获得一第一加密值;
步骤A3、通过第二密钥对第一加密值进行签名以生成一第二签名文件;
步骤A4、将第二公钥、第一签名文件、可信应用程序、第一加密值以及 第二签名文件打包形成签名文件包。
上述技术方案中,在签名过程中即加密过程中,首先在通过第一私钥进行第一层签名,以形成第一签名文件,第一签名文件中包括,第二公钥和可信应用程序的身份标识码;
然后通过加密算法对可信应用程序进行加密形成第一加密值;
接着通过第二私钥进行第二层签名,以形成第二签名文件,第二签名文件中包括第一加密值;
最后形成包括第二公钥、第一签名文件、可信应用程序、第一加密值以及第二签名文件的签名文件包。
在一种较优的实施方式中,加密算法为哈希散列算法,第一加密值为哈希值。
上述技术方案中,采用哈希散列算法计算获得的哈希值的位数优选为256位。
在一种较优的实施方式中,身份标识码为可信应用程序的UUID码。
上述技术方案中,在签名和校验过程中可同时对多个可信应用程序进行签名及校验操作,每个可信应用程序的UUID码与第二秘钥对绑定,可确保每个应用秘钥拥有独立且唯一的第二秘钥对,克服了现有技术中的每个可信应用程序采用统一的应用秘钥,存在的一旦应用秘钥泄露会波及所有的可信应用程序安全性的问题。
在一种较优的实施方式中,提供一公钥加密算法,通过公钥加密算法处理获得第一密钥对中的第一公钥以及第一私钥。
在一种较优的实施方式中,通过公钥加密算处理获得第二密钥对中的第二公钥以及第二私钥。
在一种较优的实施方式中,主操作系统提供一存储模块,存储模块用以保存签名文件包以及客户端应用程序的安装文件;
安全执行系统提供一安全存储模块,第一公钥保存于安全存储模块中。
上述技术方案中,需要说明的是,第一秘钥对为根秘钥(Root Key)对, 第二秘钥对为应用秘钥(TA Key)对,采用根密钥和应用密钥两级签名,使得安全系统的发布者单独持有根密钥,而不同的可信应用发布者可以分别持有各自应用密钥,分散了密钥集中管理的安全风险。
在一种较优的实施方式中,主操作系统为LINUX或者安卓系统,第一运行环境为LINUX或者安卓系统提供的运行环境。
在一种较优的实施方式中,安全执行系统为安全操作系统,第二运行环境为安全操作系统提供的运行环境。
在一种较优的实施方式中,主操作系统提供一存储模块,存储模块用以保存签名文件包以及客户端应用程序的安装文件;
安全执行系统提供一安全存储模块,第一公钥保存于安全存储模块中。
在一种较优的实施方式中,如图3所示,加载签名文件包至第二运行环境中的方法包括以下步骤:
步骤B1、客户端应用程序发送一触发可信应用程序的请求至安全执行系统;
步骤B2、安全执行系统根据请求,加载可信应用程序以及加载签名文件包至第二运行环境中。
在一种较优的实施方式中,安全执行系统解析签名文件包获取的解析结果包括:
第二公钥、第一签名文件、可信应用程序、第一加密值以及第二签名文件;
如图4所示,安全执行系统通过层级校验的方式对解析结果进行校验的方法,包括以下步骤:
步骤C1、安全执行系统调用存储在安全存储模块中的第一公钥对第一签名文件进行校验,以获得第一校验结果,根据第一检验结果判断校验是否成功;
若否,返回一校验错误信息,并退出,表示可信应用程序处于非安全状态;
此处需要说明的是,形成的校验结果存在两种状态,1)、第一公钥对第一签名文件进行校验可正常解开第一签名文件包含的内容;
2)、第一公钥对第一签名文件进行校验不能正常解开第一签名文件的内 容,则形成校验错误信息;
步骤C2、通过第二公钥对第二签名文件进行校验,以获得第二校验结果,根据第二检验结果判断校验是否成功;
若否,返回一校验错误信息,并退出,表示可信应用程序处于非安全状态;
此处需要说明的是,形成的校验结果存在两种状态,1)、第二公钥对第二签名文件进行校验可正常解开第二签名文件包含的内容;
2)、第二公钥对第二签名文件进行校验不能正常解开第二签名文件的内容,则形成校验错误信息;
步骤C3、通过预设加密算法对可信应用程序进行加密以获得一第二加密值,将第二加密值与第一加密值进行比较,以判断比较结果是否相同;
若否,返回一校验错误信息,并退出,表示可信应用程序处于非安全状态;
若是,则表示当前的可信应用程序处于安全状态。
以下以一具体的实施方式进行说明;
我们假设,客户端应用程序(CA)为tee_demo;
可信应用程序(TA)为8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta;
可信应用程序的标识码(TA UUID)为8aaaf200-2450-11e4-abe2-0002a5d5c51b;
可信应用程序为8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta。
第一秘钥对中的第一公钥(RSA根公钥)为RSA_ROOT_KEY_PUK,第一私钥(RSA根私钥)为RSA_ROOT_KEY_PRI;
第二秘钥对中的第二公钥(RSA应用公钥RSA_TA_KEY_PUB)为,第二私钥(RSA应用私钥)为RSA_TA_KEY_PRI。
在上位机的运行环境中对可信应用程序执行具体签名实施过程如下:
步骤1:用RSA根私钥RSA_ROOT_KEY_PRI对RSA应用公钥RSA_TA_KEY_PUB和TA可信应用程序8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta的通用唯一识别码UUID:8aaaf200-2450-11e4-abe2-0002a5d5c51b进行签名,生成第一签名文件RSA_TA_KEY_PUB.sign;
步骤2:用SHA256哈希散列算法计算TA可信应用程序8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta的哈希,生成哈希值(第一加密值)8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash;
步骤3:用RSA应用私钥RSA_TA_KEY_PRI对8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash签名,生成第二签名文件8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash.sign;
步骤4:将RSA应用公钥RSA_TA_KEY_PUB、第一签名文件RSA_TA_KEY_PUB.sign、TA可信应用8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta、TA可信应用的哈希值8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash及其哈希值的第二签名文件8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash.sign一起打包,生成打包文件8aaaf200-2450-11e4-abe2-0002a5d5c51b.pkg。
完成上述TA签名后,将最终生成的签名打包文件8aaaf200-2450-11e4-abe2-0002a5d5c51b.pkg和CA客户端应用程序一起部署到设备第一操作系统的第一运行环境(REE环境的)文件系统中,再将RSA根公钥RSA_TA_KEY_PUB烧录到智能设备安全执行系统对应的安全存储模块(TEE安全存储)中。
对可信应用程序执行具体校验的实施过程如下:
步骤1:CA客户端应用程序tee_demo从第一运行环境(REE环境)发起请求,触发安全执行系统加载TA可信应用程序以及从REE环境加载8aaaf200-2450-11e4-abe2-0002a5d5c51b.pkg到第二运行环境(TEE安全环境)中,安全执行系统(TEE安全系统)解析8aaaf200-2450-11e4-abe2-0002a5d5c51b.pkg,得到RSA应用公钥RSA_TA_KEY_PUB、RSA应用公钥的签名RSA_TA_KEY_PUB.sign、TA可信应用8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta、TA可信应用的哈希值8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash及其哈希值的签名8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash.sign等。
步骤2:用存储在安全存储模块(TEE安全存储)中的RSA根公钥RSA_ROOT_KEY_PUK对RSA应用公钥的第一签名文件RSA_TA_KEY_PUB.sign进行校验。若此校验过程失败返回错误;校验成功 则继续;
步骤3:用RSA应用公钥RSA_TA_KEY_PUB对TA可信应用哈希值的第二签名文件8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash.sign进行校验。若校验失败返回错误,成功则继续;
步骤4:计算TA可信应用8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta的哈希值,得到第二加密值8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash2,与解析8aaaf200-2450-11e4-abe2-0002a5d5c51b.pkg得到的哈希值8aaaf200-2450-11e4-abe2-0002a5d5c51b.hash进行对比,不同返回校验失败,相同则校验过程成功,加载TA,正常运行。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (10)
- 一种提高可信应用程序安全的方法,应用于智能设备中,其特征在于,所述智能设备提供一主操作系统以及一安全执行系统;提供一上位机,所述上位机与所述智能设备连接;所述主操作系统提供一第一运行环境,所述安全执行系统提供一第二运行环境;提供一客户端应用程序,所述客户端应用程序运行于所述第一运行环境中;提供一可信应用程序,所述可信应用程序运行于所述第二运行环境中;包括以下步骤:步骤S1、所述上位机通过一层级签名的方式对所述可信应用程序进行签名以生成一关于所述可信应用程序的签名文件包并保存至所述主操作系统中;步骤S2、所述安全执行系统用于所述主操作系统中获取所述签名文件包并加载至所述第二运行环境中;步骤S3、所述安全执行系统对所述签名文件包进行解析以获得解析结果;步骤S4、所述安全执行系统对所述解析结果进行层级校验,如检验通过,则表示当前的所述可信应用程序处于安全状态;如检验不通过,则表示当前的所述可信应用程序处于非安全状态。
- 根据权利要求1所述的方法,其特征在于,每个所述可信应用程序包括一唯一的身份标识码;提供一第一秘钥对,所述第一秘钥对包括一第一私钥以及与所述第一私钥对应的第一公钥;提供一第二秘钥对,所述第二秘钥对包括一第二私钥以及与所述第二私钥对应的第二公钥;通过所述层级签名的方式形成关于所述可信应用程序的所述签名文件包的方法,包括以下步骤:步骤A1、通过所述第一秘钥对所述第二公钥和所述可信应用程序的所述 身份标识码进行签名以生成一第一签名文件;步骤A2、通过一预设的加密算法对所述可信应用程序进行加密以获得一第一加密值;步骤A3、通过所述第二秘钥对所述第一加密值进行签名以生成一第二签名文件;步骤A4、将所述第二公钥、所述第一签名文件、所述可信应用程序、所述第一加密值以及所述第二签名文件打包形成所述签名文件包。
- 根据权利要求2所述的方法,其特征在于,所述加密算法为哈希散列算法,所述第一加密值为哈希值。
- 根据权利要求2所述的方法,其特征在于,所述身份标识码为所述可信应用程序的UUID码。
- 根据权利要求2所述的方法,其特征在于,提供一公钥加密算法,通过所述公钥加密算法处理获得所述第一秘钥对中的所述第一公钥以及所述第一私钥,和/或通过所述公钥加密算处理获得所述第二秘钥对中的所述第二公钥以及所述第二私钥。
- 根据权利要求1所述的方法,其特征在于,所述主操作系统为LINUX或者安卓系统,所述第一运行环境为所述LINUX或者安卓系统提供的运行环境。
- 根据权利要求1所述的方法,其特征在于,所述安全执行系统为安全操作系统,所述第二运行环境为所述安全操作系统提供的运行环境。
- 根据权利要求2所述的方法,其特征在于,所述主操作系统提供一存储模块,所述存储模块用以保存所述签名文件包以及所述客户端应用程序的安装文件;所述安全执行系统提供一安全存储模块,所述第一公钥保存于所述安全存储模块中。
- 根据权利要求1所述的方法,其特征在于,加载所述签名文件包至所述第二运行环境中的方法包括以下步骤:步骤B1、所述客户端应用程序发送一触发所述可信应用程序的请求至所述安全执行系统;步骤B2、所述安全执行系统根据所述请求,加载所述可信应用程序以及加载所述签名文件包至所述第二运行环境中。
- 根据权利要求8所述的方法,其特征在于,所述安全执行系统解析所述签名文件包获取的所述解析结果包括:所述第二公钥、所述第一签名文件、所述可信应用程序、所述第一加密值以及所述第二签名文件;所述安全执行系统通过所述层级校验的方式对所述解析结果进行校验的方法,包括以下步骤:步骤C1、所述安全执行系统调用存储在所述安全存储模块中的所述第一公钥对所述第一签名文件进行校验,以获得第一校验结果,根据所述第一检验结果判断校验是否成功;若否,返回一校验错误信息,并退出,表示所述可信应用程序处于非安全状态;步骤C2、通过所述第二公钥对所述第二签名文件进行校验,以获得第二校验结果,根据所述第二检验结果判断校验是否成功;若否,返回一校验错误信息,并退出,表示所述可信应用程序处于非安全状态;步骤C3、通过所述预设加密算法对所述可信应用程序进行加密以获得一第二加密值,将所述第二加密值与所述第一加密值进行比较,以判断比较结果是否相同;若否,返回一校验错误信息,并退出,表示所述可信应用程序处于非安全状态;若是,则表示当前的所述可信应用程序处于安全状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/325,502 US11048824B2 (en) | 2018-01-23 | 2018-09-27 | Method for improving security of trusted application |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810064595.5A CN108399329B (zh) | 2018-01-23 | 2018-01-23 | 一种提高可信应用程序安全的方法 |
CN201810064595.5 | 2018-01-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019144640A1 true WO2019144640A1 (zh) | 2019-08-01 |
Family
ID=63094148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/108106 WO2019144640A1 (zh) | 2018-01-23 | 2018-09-27 | 一种提高可信应用程序安全的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11048824B2 (zh) |
CN (1) | CN108399329B (zh) |
WO (1) | WO2019144640A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949972A (zh) * | 2020-02-19 | 2020-11-17 | 华控清交信息科技(北京)有限公司 | 人工智能模型的验证方法、系统、设备及存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399329B (zh) * | 2018-01-23 | 2022-01-21 | 晶晨半导体(上海)股份有限公司 | 一种提高可信应用程序安全的方法 |
CN109960582B (zh) * | 2018-06-19 | 2020-04-28 | 华为技术有限公司 | 在tee侧实现多核并行的方法、装置及系统 |
US11012241B2 (en) * | 2018-09-10 | 2021-05-18 | Dell Products L.P. | Information handling system entitlement validation |
CN109409137B (zh) * | 2018-11-21 | 2021-06-29 | 北京握奇智能科技有限公司 | 一种在tee环境中加载外部资源的方法和系统 |
WO2020151831A1 (en) * | 2019-01-25 | 2020-07-30 | Huawei Technologies Co., Ltd. | Method for end entity attestation |
CN111953637B (zh) * | 2019-05-16 | 2022-08-26 | 阿里巴巴集团控股有限公司 | 一种应用服务方法与装置 |
CN110555293A (zh) * | 2019-09-10 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 用于保护数据的方法、装置、电子设备和计算机可读介质 |
CN111723365B (zh) * | 2020-06-30 | 2023-03-17 | 亿咖通(湖北)技术有限公司 | 一种车载信息娱乐系统中安装应用程序的方法和设备 |
US11520895B2 (en) * | 2020-12-07 | 2022-12-06 | Samsung Electronics Co., Ltd. | System and method for dynamic verification of trusted applications |
CN113190831A (zh) * | 2021-05-27 | 2021-07-30 | 中国人民解放军国防科技大学 | 一种基于tee的操作系统应用完整性度量方法及系统 |
CN113343234B (zh) * | 2021-06-10 | 2023-01-20 | 支付宝(杭州)信息技术有限公司 | 对代码安全性进行可信检查的方法及装置 |
CN113946375A (zh) * | 2021-10-19 | 2022-01-18 | 珠海全志科技股份有限公司 | 嵌入式系统快速安全启动方法、装置及电子设备 |
CN114491565B (zh) * | 2022-03-31 | 2022-07-05 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
CN116436681B (zh) * | 2023-04-25 | 2024-01-02 | 上海物盾信息科技有限公司 | 一种基于TrustZone的安全隔离系统、方法、终端及存储介质 |
US11962691B1 (en) * | 2023-06-14 | 2024-04-16 | Fmr Llc | Systems, methods, and media for generating and using a multi-signature token for electronic communication validation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104993932A (zh) * | 2015-06-19 | 2015-10-21 | 飞天诚信科技股份有限公司 | 一种提高签名安全性的方法 |
CN106936774A (zh) * | 2015-12-29 | 2017-07-07 | 中国电信股份有限公司 | 可信执行环境中的认证方法和系统 |
CN107315959A (zh) * | 2016-04-27 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 移动终端业务安全的保障方法和装置 |
WO2017208064A1 (en) * | 2016-05-30 | 2017-12-07 | Silverleap Technology Limited | System and method for ensuring system integrity against, and detection of, rollback attacks for stored value data in mobile devices |
CN108399329A (zh) * | 2018-01-23 | 2018-08-14 | 晶晨半导体(上海)股份有限公司 | 一种提高可信应用程序安全的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959384B1 (en) * | 1999-12-14 | 2005-10-25 | Intertrust Technologies Corporation | Systems and methods for authenticating and protecting the integrity of data streams and other data |
US9787648B2 (en) * | 2014-06-25 | 2017-10-10 | Samsung Electronics Co., Ltd. | System and method for trustzone attested authenticators |
CN104918116B (zh) * | 2015-05-28 | 2018-10-23 | 北京视博数字电视科技有限公司 | 用于智能终端的资源播放方法及系统 |
CN105224875B (zh) * | 2015-11-13 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种终端的安全启动系统和方法 |
CN106656502B (zh) * | 2016-09-26 | 2020-09-01 | 上海兆芯集成电路有限公司 | 计算机系统及安全执行的方法 |
US20180254898A1 (en) * | 2017-03-06 | 2018-09-06 | Rivetz Corp. | Device enrollment protocol |
CN107591176A (zh) * | 2017-08-25 | 2018-01-16 | 晶晨半导体(上海)股份有限公司 | 一种减弱芯片和存储器之间的辐射强度的方法 |
-
2018
- 2018-01-23 CN CN201810064595.5A patent/CN108399329B/zh active Active
- 2018-09-27 US US16/325,502 patent/US11048824B2/en active Active
- 2018-09-27 WO PCT/CN2018/108106 patent/WO2019144640A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104993932A (zh) * | 2015-06-19 | 2015-10-21 | 飞天诚信科技股份有限公司 | 一种提高签名安全性的方法 |
CN106936774A (zh) * | 2015-12-29 | 2017-07-07 | 中国电信股份有限公司 | 可信执行环境中的认证方法和系统 |
CN107315959A (zh) * | 2016-04-27 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 移动终端业务安全的保障方法和装置 |
WO2017208064A1 (en) * | 2016-05-30 | 2017-12-07 | Silverleap Technology Limited | System and method for ensuring system integrity against, and detection of, rollback attacks for stored value data in mobile devices |
CN108399329A (zh) * | 2018-01-23 | 2018-08-14 | 晶晨半导体(上海)股份有限公司 | 一种提高可信应用程序安全的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949972A (zh) * | 2020-02-19 | 2020-11-17 | 华控清交信息科技(北京)有限公司 | 人工智能模型的验证方法、系统、设备及存储介质 |
CN111949972B (zh) * | 2020-02-19 | 2023-10-03 | 华控清交信息科技(北京)有限公司 | 人工智能模型的验证方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11048824B2 (en) | 2021-06-29 |
CN108399329A (zh) | 2018-08-14 |
US20200050798A1 (en) | 2020-02-13 |
CN108399329B (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019144640A1 (zh) | 一种提高可信应用程序安全的方法 | |
US11489678B2 (en) | Platform attestation and registration for servers | |
Anati et al. | Innovative technology for CPU based attestation and sealing | |
US10019601B2 (en) | Method and apparatus for securely saving and restoring the state of a computing platform | |
US7818585B2 (en) | Secure license management | |
US9626512B1 (en) | Validating using an offload device security component | |
EP2278514B1 (en) | System and method for providing secure virtual machines | |
US9413538B2 (en) | Cryptographic certification of secure hosted execution environments | |
JP4689945B2 (ja) | リソースアクセス方法 | |
US20180183580A1 (en) | Provisioning keys for virtual machine secure enclaves | |
CN105718807B (zh) | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 | |
US20160134660A1 (en) | Securely operating a process using user-specific and device-specific security constraints | |
US20050120219A1 (en) | Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable process | |
WO2016074506A1 (zh) | 应用程序完整性验证方法及网络设备 | |
KR20160054555A (ko) | 타깃이 되는 컴퓨팅 디바이스 상에서 수행될 동작을 인가하는 방법 | |
TW201512879A (zh) | 行動通信裝置及其操作方法 | |
JP2009528596A (ja) | 信頼コードグループ | |
JP2010073193A (ja) | モバイルインターネットデバイス(mid)でuefiファームウェア及びuefiアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法 | |
TW201525755A (zh) | 合法性驗證方法、中間伺服器及電腦可讀取儲存介質 | |
WO2024148820A1 (zh) | 基于隐私计算的零信任敏感大数据跨域分享方法和装置 | |
KR20220090537A (ko) | 정책 적용을 위한 가상 환경 유형 검증 | |
CN115580413B (zh) | 一种零信任的多方数据融合计算方法和装置 | |
Xin et al. | Property-based remote attestation oriented to cloud computing | |
KR20130101964A (ko) | 플랫폼 컴포넌트들의 보안 업그레이드 또는 다운그레이드를 위한 방법 및 시스템 | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18902797 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18902797 Country of ref document: EP Kind code of ref document: A1 |