CN108563953B - 一种安全可扩展的可信应用开发方法 - Google Patents
一种安全可扩展的可信应用开发方法 Download PDFInfo
- Publication number
- CN108563953B CN108563953B CN201810250458.0A CN201810250458A CN108563953B CN 108563953 B CN108563953 B CN 108563953B CN 201810250458 A CN201810250458 A CN 201810250458A CN 108563953 B CN108563953 B CN 108563953B
- Authority
- CN
- China
- Prior art keywords
- script
- trusted application
- tee
- android
- application
- 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.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013515 script Methods 0.000 claims abstract description 177
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 4
- 230000006978 adaptation Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000013175 transesophageal echocardiography Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安全可扩展的可信应用开发方法,包括以下步骤:S11使用JavaScript脚本语言开发并调试TA‑Script;S12在TA‑Script程序检测服务器上对TA‑Script进行性能检测和安全性检测;S13利用TA‑Script签名服务器对通过检测的TA‑Script进行签名及加密;S14将签名后的TA‑Script内置在Android端的APK中。本发明的有益效果:通过将TA‑Script内置于Android端应用中,在REE端与TEE端分别进行部署,使得TA‑Script的开发与TEE平台无关,增加了可扩展性及开发更新的便利性;同时,通过采用签名服务器对TA‑Script进行签名和加密,使只有通过TEE端校验后的TA‑Script可在TEE环境下执行,保证了TA‑Script的安全性与一致性。
Description
技术领域
本发明涉及可信应用的开发技术领域,具体来说,涉及一种安全可扩展的可信应用开发方法。
背景技术
TEE(Trusted Execution Environment)是可信执行环境的简称。当前的可信执行环境主要是基于智能终端(如智能手机)中处理器的安全区域构建的可信执行环境。TEE是一个独立的执行区域,它提供了很多安全属性,如隔离性,TA的完整性等,同时TEE也确保了加载到TEE中代码和数据的安全性。传统的TEE技术包含ARM的TrustZone等。GP组织(GlobalPlatform,全球平台国际标准组织)公布了TEE的基本保护范围,相关API和安全属性,符合该标准的TEE被称为GPTEE。同时还有其他的TEE,如N3TEE等。TEE的安全级别介于REE(Rich Execution Environment)和SE(Secure Element)之间。
运行在TEE的应用称为可信应用(Trusted Apps),以下简称TA。TA可以访问设备主处理器和内存的全部功能,硬件隔离技术保护其不受安装在主操作系统环境(REE环境)的用户Apps影响。而TEE内部的软件和密码隔离技术可以保护每个TA不相互影响,这样可以为多个不同的服务提供商同时使用,而不影响安全性。
TA的开发与用户Apps的开发不同,通常TA需要使用C语言在可信环境下开发,开发难度较大;由于TEE之间的实现不同,通常需要针对TEE系统分别开发。
APK是AndroidPackage的缩写,即Android安装包(apk)。
Android,即安卓系统,主要用于移动设备的一种操作系统。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种安全可扩展的可信应用开发方法,能够保证开发的安全性及可扩展性。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种安全可扩展的可信应用开发方法,包括以下步骤:
S11 使用JavaScript脚本语言开发并调试TA-Script;
S12 在TA-Script程序检测服务器上对TA-Script进行性能检测和安全性检测;
S13 利用TA-Script签名服务器对通过检测的TA-Script进行签名及加密;
S14将签名后的TA-Script内置在Android端的APK中。
进一步的,TA-Script脚本文件包括应用ID、脚本签名、脚本加密标识及脚本程序体。
进一步的,TA-Script签名服务器对TA-Script加密后,将TA-Script的脚本加密标识设置为加密状态。
进一步的,所述TA-Script按照以下步骤被调用及执行:
S21 Android端应用调用TA-Script 客户端服务中的invoke方法,将脚本和请求参数传入;
S22 TA-Script 客户端服务将所述脚本和请求参数转发到TA-Script宿主可信应用中;
S23 TA-Script宿主可信应用解析并执行所述脚本和请求参数;
S24 TA-Script宿主可信应用将处理结果打包成响应返回给TA-Script客户端服务;
S25 TA-Script客户端服务将响应转发给Android端应用。
进一步的,所述Android端应用和TA-Script 客户端服务部署在REE端。
进一步的,所述TA-Script宿主可信应用部署在TEE端,在不同的TEE系统上进行相应的适配及实现。
进一步的,TA-Script宿主可信应用校验TA-Script签名后,解析并执行脚本和请求参数。
进一步的,TA-Script宿主可信应用解析并执行脚本和请求参数时,将调用TEE系统库。
本发明的有益效果:通过将TA-Script内置于Android端应用中,在REE端与TEE端分别进行部署,使得TA-Script的开发与TEE平台无关,增加了可扩展性及开发更新的便利性;同时,通过采用签名服务器对TA-Script进行签名和加密,使只有通过TEE端校验后的TA-Script可在TEE环境下执行,保证了TA-Script的安全性与一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种安全可扩展的可信应用开发方法的流程示意图;
图2是根据本发明实施例所述的TA-Script的一种简要架构示意图;
图3是根据本发明实施例所述的TA-Script在应用时的一种架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1和2所示,根据本发明实施例所述的一种安全可扩展的可信应用开发方法,包括以下步骤:
S11 使用JavaScript脚本语言开发并调试TA-Script;
S12 在TA-Script程序检测服务器上对TA-Script进行性能检测和安全性检测;
S13 利用TA-Script签名服务器对通过检测的TA-Script进行签名及加密;
S14将签名后的TA-Script内置在Android端的APK中。
进一步的,TA-Script脚本文件包括应用ID、脚本签名、脚本加密标识及脚本程序体。
进一步的,TA-Script签名服务器对TA-Script加密后,将TA-Script的脚本加密标识设置为加密状态。
进一步的,所述TA-Script按照以下步骤被调用及执行:
S21 Android端应用调用TA-Script 客户端服务中的invoke方法,将脚本和请求参数传入;
S22 TA-Script 客户端服务将所述脚本和请求参数转发到TA-Script宿主可信应用中;
S23 TA-Script宿主可信应用解析并执行所述脚本和请求参数;
S24 TA-Script宿主可信应用将处理结果打包成响应返回给TA-Script客户端服务;
S25 TA-Script客户端服务将响应转发给Android端应用。
进一步的,所述Android端应用和TA-Script 客户端服务部署在REE端。
进一步的,所述TA-Script宿主可信应用部署在TEE端,在不同的TEE系统上进行相应的适配及实现。
进一步的,TA-Script宿主可信应用校验TA-Script签名后,解析并执行脚本和请求参数。
进一步的,TA-Script宿主可信应用解析并执行脚本和请求参数时,将调用TEE系统库。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
在具体使用时,根据本发明所述的一种安全可扩展的可信应用开发方法,开发者在进行开发时的具体流程如下:
1.开发者使用JavaScript脚本语言开发TA-Script程序。
2.开发者使用TA-Script Lib for JavaScript调试TA-Script程序。
3.在TA-Script程序检测服务器上对TA-Script进行性能检测和安全性检测。
4.签名服务器对通过检测的TA-Script进行签名并返回给开发者。
5.开发者将签名后的TA-Script内置在Android的APK程序中。
6.开发者发布APK
其中,TA-Script主要有两部分构成,如图2所示,一部分是部署在REE端的TA-Script Client Service,向Android Application提供接口,用来完成内置于AndroidApplication的TA-Script的调用;一部分是部署在TEE端的TA-Script Host TA,用来解析并执行TA-Script。调用、执行TA-Script的具体流程如下:
1.Android端应用调用TA-Script Client Service中的invoke方法,将脚本和参数传入;
2.TA-Script Client Service将脚本和request参数转发到TA-Script Host TA中;
3.TA-Script Host TA解析并执行,期间会调用到相应的TEE系统库;
4.TA-Script Host TA将处理结果打包成response返回给TA-Script ClientService;
5.TA-Script Client Service将response转发给Android端应用。
由于TA-Script内置于安装在REE端的Android Application中。为了保证其安全性,本发明设计通过TA-Script签名服务器对开发者开发的TA-Script程序进行签名和加密。加密后,服务器将TA-Script的脚本加密标识设置为加密状态。这样就保证了在REE端是无法看到TA-Script的明文代码的。只有在TEE端校验TA-Script的签名后,由TA-ScriptHost TA对TA-Script解密,TA-Script才在TEE环境下被执行。这样就保证了TA-Script的安全性和一致性。
具体而言,TA-Script签名服务器提供如下功能来支持TA-Script的开发以及确保其安全性。对于企业级用户,可以搭建企业自己的企业版签名服务器。TA-Script签名服务器的功能设计如下:
•开发者通过TA-Script签名服务器进行注册,并申请AppID;
•对TA-Script进行签名。签名可以分为开发版(开发过程中使用)和正式版(程序正式发布时使用)。签名可以绑定设备,也可以根据需要设置签名的有效期;
•对TA-Script进行加密;
•对TA-Script脚本进行性能检测和安全检测;
•对TA-Script程序进行预编译/解释,节省手机端对TA-Script的解释时间;
•进行TA-Script的统一部署。
TA-Script 客户端服务Client Service是TA-Script的Android端入口服务,是用来实现TA-Script的发布以及调用引导的,因此其可与TEE平台上适配的TA-Script HostTA对接。其形式是一个Android应用服务。Service提供如下接口:
•String response = invokeScript(request, script);
接口参数说明:
•request:传入TA的请求消息体,包含script运行时需要的参数信息;
•response:脚本执行之后返回的响应消息体;
•script:TA-Script脚本文件。
TA-Script脚本文件包括如下要素:
•AppID:采用UUID格式,分配给开发者,用来标识具体的应用。
•脚本签名:对开发者的脚本进行的签名。
•脚本加密标识:用来标识脚本内容是否已经加密。
•脚本程序体:带有main()方法,经加密并序列化后的脚本。
TA-Script标准库提供以下功能和服务:
•request请求参数接收、response响应返回
TA-Script的执行时无状态的,业务流程在开发者的安卓应用中控制,可以多次调用不同的TA-Script,通过request传入相应的状态参数
•Device相关
获取DeviceID
EK签名验证(设备可信性验证)
•加解密相关
AES、SHA、RSA、RNG
•文件读写相关
基于AppID,将用户文件加密后,保存在REE端AppID相对应的目录中
•TAP相关
提供可信资产分发的接口
•RPMB计数器
提供在RPMB中保存的计数器,用于防止回滚攻击
currentCounter:保存当前数值
increase():计数器+1方法
•日志输入接口
•指纹验证接口
•校验TA-Script签名证书
•解密加密后的TA-Script
同时,TA-Script应用不局限在某一种TEE平台,可以支持多TEE平台下编译运行。TA-Script所使用的TA-Script Lib库接口是唯一的;TA-Script Host TA是TA-Script Lib在不同的TEE系统上的实现;TA-Script Client Service是Android端的通用入口服务,对接TEE平台上适配的TA-Script Host TA。
综上所述,借助于本发明的上述技术方案,通过采用签名服务器对TA-Script进行签名和加密,使只有通过TEE端校验后的TA-Script可在TEE环境下执行,保证了TA-Script的安全性与一致性;同时,通过采用REE端与TEE端分别进行部署的方式,使得TA-Script的开发与TEE平台无关,一次开发可适用于多个TEE平台;此外,TA-Script内置于Android端应用中,更新Android端应用即可同时更新TA端操作,使开发升级变得更加简单。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种安全可扩展的可信应用开发方法,其特征在于,包括以下步骤:
S11使用JavaScript脚本语言开发并调试TA-Script;
S12在TA-Script程序检测服务器上对TA-Script进行性能检测和安全性检测;
S13利用TA-Script签名服务器对通过检测的TA-Script进行签名及加密;
S14将签名后的TA-Script内置在Android端的APK中;
所述Android端应用和TA-Script客户端服务部署在REE端;
所述TA-Script宿主可信应用部署在TEE端,在不同的TEE系统上进行相应的适配及实现;所述TA-Script宿主可信应用校验TA-Script签名后,解析并执行脚本和请求参数;
所述TA-Script宿主可信应用解析并执行脚本和请求参数时,将调用TEE系统库。
2.根据权利要求1所述的安全可扩展的可信应用开发方法,其特征在于,TA-Script脚本文件包括应用ID、脚本签名、脚本加密标识及脚本程序体。
3.根据权利要求2所述的安全可扩展的可信应用开发方法,其特征在于,TA-Script签名服务器对TA-Script加密后,将TA-Script的脚本加密标识设置为加密状态。
4.根据权利要求1所述的安全可扩展的可信应用开发方法,其特征在于,所述TA-Script按照以下步骤被调用及执行:
S21 Android端应用调用TA-Script客户端服务中的invoke方法,将脚本和请求参数传入;S22 TA-Script客户端服务将所述脚本和请求参数转发到TA-Script宿主可信应用中;
S23 TA-Script宿主可信应用解析并执行所述脚本和请求参数;
S24 TA-Script宿主可信应用将处理结果打包成响应返回给TA-Script客户端服务;
S25 TA-Script客户端服务将响应转发给Android端应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810250458.0A CN108563953B (zh) | 2018-03-26 | 2018-03-26 | 一种安全可扩展的可信应用开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810250458.0A CN108563953B (zh) | 2018-03-26 | 2018-03-26 | 一种安全可扩展的可信应用开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563953A CN108563953A (zh) | 2018-09-21 |
CN108563953B true CN108563953B (zh) | 2021-12-21 |
Family
ID=63533009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810250458.0A Active CN108563953B (zh) | 2018-03-26 | 2018-03-26 | 一种安全可扩展的可信应用开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563953B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019120317A2 (en) * | 2019-03-26 | 2019-06-27 | Alibaba Group Holding Limited | Program execution and data proof scheme using multiple key pair signatures |
CN112787813B (zh) * | 2021-01-19 | 2023-03-24 | 北京豆荚科技有限公司 | 一种基于可信执行环境的身份认证方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014038926A1 (en) * | 2012-09-07 | 2014-03-13 | Mimos Berhad | A system and method of mutual trusted authentication and identity encryption |
CN105320535A (zh) * | 2014-08-04 | 2016-02-10 | 优视科技有限公司 | 一种安装包的校验方法、客户端、服务器及系统 |
CN105590051A (zh) * | 2015-11-18 | 2016-05-18 | 中国银联股份有限公司 | 用于可信执行环境的可信应用生成及安装方法 |
CN106990972A (zh) * | 2017-04-13 | 2017-07-28 | 沈阳微可信科技有限公司 | 用于运行可信用户界面的方法和装置 |
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 |
-
2018
- 2018-03-26 CN CN201810250458.0A patent/CN108563953B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014038926A1 (en) * | 2012-09-07 | 2014-03-13 | Mimos Berhad | A system and method of mutual trusted authentication and identity encryption |
CN105320535A (zh) * | 2014-08-04 | 2016-02-10 | 优视科技有限公司 | 一种安装包的校验方法、客户端、服务器及系统 |
CN105590051A (zh) * | 2015-11-18 | 2016-05-18 | 中国银联股份有限公司 | 用于可信执行环境的可信应用生成及安装方法 |
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 |
CN106990972A (zh) * | 2017-04-13 | 2017-07-28 | 沈阳微可信科技有限公司 | 用于运行可信用户界面的方法和装置 |
Non-Patent Citations (2)
Title |
---|
TSSDroid: realization of an efficient and usable TSS API for the Android software stack;Khan, Sohail等;《SECURITY AND COMMUNICATION NETWORKS 》;20160725;第9卷(第11期);1553-1576 * |
基于ARM-TrustZone的移动支付系统的设计与实现;段文浩;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20170331(第3期);I138-836 * |
Also Published As
Publication number | Publication date |
---|---|
CN108563953A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102217501B1 (ko) | 신뢰 실행 환경을 갖는 모바일 디바이스 | |
US9680648B2 (en) | Securely recovering a computing device | |
US8332823B2 (en) | Application program verification system, application program verification method and computer program | |
US9100172B2 (en) | Method for interworking with trustzone between normal domain and secure domain, and management method of trusted application download, management server, device and system using it | |
US8254568B2 (en) | Secure booting a computing device | |
US9721101B2 (en) | System wide root of trust chaining via signed applications | |
CN104680039B (zh) | 一种应用程序安装包的数据保护方法及装置 | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
EP3971745B1 (en) | Secure service request processing methods and apparatuses | |
CN107870793B (zh) | 一种应用程序中加载so文件的方法及装置 | |
CN108563953B (zh) | 一种安全可扩展的可信应用开发方法 | |
KR101872104B1 (ko) | Apk 파일 동적로딩 기법을 이용한 뱅킹 어플리케이션 무결성 검증 시스템 및 무결성 검증방법 | |
CN107066888B (zh) | 可扩展的可信用户接口、方法和电子设备 | |
US10878114B2 (en) | Software handling device, server system and methods thereof | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
KR20130053867A (ko) | 보안 어플리케이션 다운로드 관리방법, 이를 적용한 보안 어플리케이션 다운로드 관리서버, 단말기, 및 관리시스템 | |
KR20190128534A (ko) | 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법 | |
Msgna et al. | Secure application execution in mobile devices | |
Titze et al. | Preventing library spoofing on android | |
Nazar et al. | Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service | |
Ribeiro et al. | DBStore: A TrustZone-backed Database Management System for Mobile Applications. | |
CN111984963A (zh) | 绕过自签证书校验的方法和装置 | |
US20220156364A1 (en) | Method for Executing Secure Code, Corresponding Devices, System and Programs | |
Park et al. | Analyzing security of Korean USIM-based PKI certificate service | |
Dettenborn | Open virtual trusted execution environment |
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 |
Effective date of registration: 20240521 Address after: 100000 1909, floor 17, building 32, North Third Ring West Road, Haidian District, Beijing Patentee after: BEIJING BEANPOD TECHNOLOGY Co.,Ltd. Country or region after: China Address before: Room 301, South Building, building D2, No. 32, Dazhou Road, Yuhuatai District, Nanjing, Jiangsu 210012 Patentee before: NANJING WEIKE INFORMATION TECHNOLOGY Co.,Ltd. Country or region before: China |