TEE系列之GP规范TEE API浅析
TEE系列之GP规范&TEE API浅析
- 1、GlobalPlatform
- 2、TEE GP API介绍
- 2.1 TEE Client API介绍
- 2.2 TEE OS API
1、GlobalPlatform
GlobalPlatform是一个由100多家成员公司推动的非营利性行业协会。成员们共同的目标是开发GlobalPlatform的规范。这些规范现已被广泛认定为推动数字服务和设备在整个生命周期内受到信任并安全管理的国际标准。
GlobalPlatform通过制定标准和认证安全硬件/硬件组合(合称安全组件,可充当设备上的信任锚)来保护数字服务。这有助于服务提供商和设备制造商之间的协作,使他们能够确保所有设备足够安全,能够防范威胁。
GlobalPlatform规范还制定了实地应用数字服务和设备的安全管理标准。总而言之,GlobalPlatform可为终端用户提供方便、安全的数字服务,同时无论市场部门或设备类型如何,GlobalPlatform都提供隐私保护支持。GlobalPlatform保护的设备包括智能手机、平板电脑、机顶盒、可穿戴设备、联网汽车、其他物联网(IoT)设备和智能卡片。
该技术广泛应用于全球,提高了所有用户的成本和上市时间的效率。采用GlobalPlatform技术的市场领域包括支付、电信、交通、汽车、智能城市、智能家居、公用事业、医疗保健、优质内容、政府和企业ID。
GlobalPlatform成功技术规范开发的成就归功于近二十年来各相关行业充满活力与卓有成效的合作。成员通过参与技术委员会、工作组和战略工作组来影响组织的成果。GlobalPlatform技术是与世界各地的众多标准机构和区域组织合作开发的,确保了持续的相关性和及时性。
下面分别进行一句话概况:
1,SE管理作为GP标准重要一项,有完善的API、测试套件。
2,TEE API规范主要是TEE方案商和TA开发者必备的案头参考手册。
3,TEE 一致性规范,主要还包含测试相关啦!
4,TEE管理框架,就是应用管理相关,也是需要各大TEE厂商所重视的。
5,TEE PP也就是TEE的安全轮廓,是TEE安全认证的最重要的文档。
备注:把SE也放在一起,因为实际应用中TEE和SE也是一对不可分离的兄弟!
、
2、TEE GP API介绍
TEE API分两种:
一类是CA与TA通信的API,实现方式就是应用程序调用libteec.so库,libteec.so库是由optee_client编译出的,libteec.so中调用了dev/tee_priv节点陷入kernel mode,在kernel mode中调用smc同步异常指令陷入到ATF,ATF再跳出到TEE OS, TEE OS再将消息发送给相应的TA。该API在globalplatform中的TEE_Client_API_Specification-V1.0_c.pdf文档中有所规定,api的具体实现是在optee_client/libteec
一类是TA系统调用TEE OS的API,这是的实现方式其实就是系统调用,调用SVC同步异常指令,进入kernel mode。该API在globalplatform中的GPD_TEE_Internal_Core_API_Specification_v1.1.pdf文档中有所规定,api的具体实现是在optee_os\lib\libutee
2.1 TEE Client API介绍
这类api不到10个(一共9个)
TEEC_InitializeContext
TEEC_FinalizeContext
TEEC_RegisterSharedMemory
TEEC_AllocateSharedMemory
TEEC_ReleaseSharedMemory
TEEC_OpenSession
TEEC_CloseSession
TEEC_InvokeCommand
TEEC_RequestCancellation
2.2 TEE OS API
这类api就有很多了,也分好几类:
(1)、Asymmetric
TEE_AsymmetricDecrypt
TEE_AsymmetricEncrypt
TEE_AsymmetricSignDigest
TEE_AsymmetricVerifyDigest
(2)、Authenticated Encryption
TEE_AEDecryptFinal
TEE_AEEncryptFinal
TEE_AEInit
TEE_AEUpdate
TEE_AEUpdateAAD
(3)、Basic Arithmetic
TEE_BigIntAdd
TEE_BigIntDiv
TEE_BigIntMul
TEE_BigIntNeg
TEE_BigIntSquare
TEE_BigIntSub
(4)、Cancellation
TEE_GetCancellationFlag
TEE_MaskCancellation
TEE_UnmaskCancellation
(5)、Converter
TEE_BigIntConvertFromOctetString
TEE_BigIntConvertFromS32
TEE_BigIntConvertToOctetString
TEE_BigIntConvertToS32
(6)、Data Stream Access
TEE_ReadObjectData
TEE_SeekObjectData
TEE_TruncateObjectData
TEE_WriteObjectData
(7)、Deprecated
TEE_BigIntInitFMMContext
TEE_CloseAndDeletePersistentObject
TEE_CopyObjectAttributes
TEE_GetObjectInfo
TEE_RestrictObjectUsage
(8)、Events
TEE_Event_AddSources
TEE_Event_CancelSources
TEE_Event_CloseQueue
TEE_Event_DropSources
TEE_Event_ListSources
TEE_Event_OpenQueue
TEE_Event_TimerCreate
TEE_Event_Wait
(9)、Fast Modular Multiplication
TEE_BigIntComputeFMM
TEE_BigIntConvertFromFMM
TEE_BigIntConvertToFMM
(10)、Generic Object
TEE_CloseObject
TEE_GetObjectBufferAttribute
TEE_GetObjectInfo (deprecated)
TEE_GetObjectInfo1
TEE_GetObjectValueAttribute
TEE_RestrictObjectUsage (deprecated)
TEE_RestrictObjectUsage1
(11)、Generic Operation
TEE_AllocateOperation
TEE_CopyOperation
TEE_FreeOperation
TEE_GetOperationInfo
TEE_GetOperationInfoMultiple
TEE_IsAlgorithmSupported
TEE_ResetOperation
TEE_SetOperationKey
TEE_SetOperationKey2
(12)、Initialization
TEE_BigIntInit
TEE_BigIntInitFMM
TEE_BigIntInitFMMContext (deprecated)
TEE_BigIntInitFMMContext1
(13)、Internal Client API
TEE_CloseTASession
TEE_InvokeTACommand
TEE_OpenTASession
(14)、Key Derivation
TEE_DeriveKey
(15)、Logical Operation
TEE_BigIntAbs
TEE_BigIntAssign
TEE_BigIntCmp
TEE_BigIntCmpS32
TEE_BigIntGetBit
TEE_BigIntGetBitCount
TEE_BigIntSetBit
TEE_BigIntShiftRight
(16)、MAC
TEE_MACCompareFinal
TEE_MACComputeFinal
TEE_MACInit
TEE_MACUpdate
(17)、Memory Allocation and Size of Objects
TEE_BigIntFMMContextSizeInU32
TEE_BigIntFMMSizeInU32
TEE_BigIntSizeInU32 (macro)
(18)、Memory Management
TEE_CheckMemoryAccessRights
TEE_Free
TEE_GetInstanceData
TEE_Malloc
TEE_MemCompare
TEE_MemFill
TEE_MemMove
TEE_Realloc
TEE_SetInstanceData
(19)、Message Digest
TEE_DigestDoFinal
TEE_DigestExtract
TEE_DigestUpdate
(20)、Modular Arithmetic
TEE_BigIntAddMod
TEE_BigIntExpMod
TEE_BigIntInvMod
TEE_BigIntMod
TEE_BigIntMulMod
TEE_BigIntSquareMod
TEE_BigIntSubMod
(21)、Other Arithmetic
TEE_BigIntComputeExtendedGcd
TEE_BigIntIsProbablePrime
TEE_BigIntRelativePrime
(22)、Panic Function
TEE_Panic
(23)、Peripherals
TEE_Peripheral_Close
TEE_Peripheral_CloseMultiple
TEE_Peripheral_GetPeripherals
TEE_Peripheral_GetState
TEE_Peripheral_GetStateTable
TEE_Peripheral_Open
TEE_Peripheral_OpenMultiple
TEE_Peripheral_Read
TEE_Peripheral_SetState
TEE_Peripheral_Write
(24)、Persistent Object
TEE_CloseAndDeletePersistentObject (deprecated)
TEE_CloseAndDeletePersistentObject1
TEE_CreatePersistentObject
TEE_OpenPersistentObject
TEE_RenamePersistentObject
(25)、Persistent Object Enumeration
TEE_AllocatePersistentObjectEnumerator
TEE_FreePersistentObjectEnumerator
TEE_GetNextPersistentObject
TEE_ResetPersistentObjectEnumerator
TEE_StartPersistentObjectEnumerator
(26)、Property Access
TEE_AllocatePropertyEnumerator
TEE_FreePropertyEnumerator
TEE_GetNextProperty
TEE_GetPropertyAsBinaryBlock
TEE_GetPropertyAsBool
TEE_GetPropertyAsIdentity
TEE_GetPropertyAsString
TEE_GetPropertyAsU32
TEE_GetPropertyAsU64
TEE_GetPropertyAsUUID
TEE_GetPropertyName
TEE_ResetPropertyEnumerator
TEE_StartPropertyEnumerator
(27)、Random Data Generation
TEE_GenerateRandom
(28)、Symmetric Cipher
TEE_CipherDoFinal
TEE_CipherInit
TEE_CipherUpdate
(29)、TA Interface
TA_CloseSessionEntryPoint
TA_CreateEntryPoint
TA_DestroyEntryPoint
TA_InvokeCommandEntryPoint
TA_OpenSessionEntryPoint
(30)、Time
TEE_GetREETime
TEE_GetSystemTime
TEE_GetTAPersistentTime
TEE_SetTAPersistentTime
TEE_Wait
(31)、Transient Object
TEE_AllocateTransientObject
TEE_CopyObjectAttributes (deprecated)
TEE_CopyObjectAttributes1
TEE_FreeTransientObject
TEE_GenerateKey
TEE_InitRefAttribute
TEE_InitValueAttribute
TEE_PopulateTransientObject
TEE_ResetTransientObject
在这里插入图片描述
TEE系列之GP规范TEE API浅析相关推荐
- TEE是什么?现有TEE解决方案
有一点还是蛮有意思的,TEEOS知道什么什么.ATF知道是什么.Secureboot也大概知道是点什么东西,但是问我TEE是什么?我还是一瞬间不知道该怎么描述,正好手边有一本书:<手机安全和可信 ...
- Android开发规范:API接口安全设计规范
公众号[国民程序员]回馈粉丝福利: 现金红包和送书活动火热进行中,点击参与! 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请 ...
- C# 海康DVR客户端开发系列(2)—— 封装API
前言 从上篇文章(10月4日)到本篇文章截止到今天(10月22日)一直在做这个SDK翻译工作,耗时2周半,代码超过1万行,约有三分之二的行数是注释.由于工作忙也只能一天抽出那么半个小时一个小时来整理, ...
- gateway网关_SpringCloud技术指南系列(十二)API网关之Gateway使用
SpringCloud技术指南系列(十二)API网关之Gateway使用 一.概述 API网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的Facade模式,它的存在就像是整个微服务架 ...
- 《城市大脑系列建设标准规范》立项评审会胜利召开
来源:城市大脑全球标准研究组 2022年04月14日,<城市大脑系列建设标准规范>立项评审会在中国科学院自动化研究所召开,本次会议由中国指挥与控制学会团体标准工作委员会总干事张俊文主持,学 ...
- git gitee github等系列提交备注规范,提交规范(实用)
git gitee github等系列提交备注规范,提交规范(实用) <新功能|bug修复|文档改动|格式化|重构|测试代码>: (影响范围) <主题> # 解释为什么要做这些 ...
- .net core实践系列之短信服务-Api的SDK的实现与测试
前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为, ...
- Java 版本、语言规范、API、JDK、IDE、Java 源程序编译、执行原理(跨平台性根本原因)、特殊字符用法、8 大数据类型小结
文章目录 前言 一.三大版本类型 二.Java 语言规范 三.应用程序接口(API) 四.Java 开发工具包(JDK) 五.集成开发环境(IDE) 六.Java 运行环境(JRE) 七.Java 源 ...
- python 图表_Python入门学习系列——使用Python调用Web API实现图表统计
使用Python调用Web API实现图表统计 Web API:Web应用编程接口,用于URL请求特定信息的程序交互,请求的数据大多以非常易于处理的格式返回,比如JSON或CSV等. 本文将使用Pyt ...
最新文章
- 轻操作动作休闲单机游戏《狂斩三国2》评测
- 从jsp向servlet传送数据的两种方式
- SQL Server 审计操作概念
- Oracle体系结构之控制文件管理
- Qt 70行代码实现控件任意拆分 选中控件水平垂直拆分 窗口分割
- MBR磁盘分区见解笔记
- 使用python编写聊天小程序
- 考研经验-东南大学软件学院软件工程(这些基础课和专业课的各种坑和复习技巧你应该知道)
- 负载均衡篇(二)实现Web负载均衡的几种方式
- 文件服务器和nas区别,nas和ftp服务器的区别
- 制作的动图太大怎么办?如何快速将gif图片缩小?
- MT【118】利用线面角最小解题
- EasyAR_实现AR涂涂乐
- 更改WPS云文档数据存储位置
- PE头解析(仅限于PE头)
- GitHub 热点速览 Vol.24:程序员自我增值,优雅赚零花钱
- ecshop小京东的模板切换到smarty3.1.3之去掉原生的php语法
- Python爬取梨视频并下载【ajax抓包】
- 番茄编程助手_如何使用番茄法高效的写算法题?
- Android图片轮播第三弹,给你想不到的惊喜