关注分享主机优惠活动
国内外VPS云服务器

快速解析TEE系列中的ARM Trustzone技术(四)——GP规范和TEE API

摘要:系列 4 技术分析简介是一个由众多会员公司推动的非营利性行业协会。 成员们有着制定规范的共同目标。 这些规范现已被广泛认为是国际标准,使数字服务和设备在其整个生命周期内得到信任和安全管理。

TEE系列ARM Trustzone技术简析(四)

1. GlobalPlatform2和TEE GP API概述 2.1 TEE Client API概述2.2 TEE OS API

1. GlobalPlatform

GlobalPlatform 是一个由 100 多家会员公司支持的非营利行业协会。 成员的共同目标该标准是开发GlobalPlatform 的规范。 这些规范现已被广泛认为是国际标准,使数字服务和设备在其整个生命周期内得到信任和安全管理。

GlobalPlatform 制定标准并认证安全硬件和硬件组合(统称为充当设备上的信任锚的安全组件)。 这促进了服务提供商和设备制造商之间的协作,以确保所有设备都足够安全以抵御威胁。

GlobalPlatform 规范还为现场使用的数字服务和设备的安全管理制定了标准。 总体而言,GlobalPlatform 为最终用户提供方便、安全的数字服务,同时支持隐私保护,无论市场领域或设备类型如何。 受 GlobalPlatform 保护的设备包括智能手机、平板电脑、机顶盒、可穿戴设备、联网汽车以及其他物联网 (IoT) 设备和智能卡。

该技术在世界各地得到应用,为所有用户提高了成本并缩短了上市时间。 采用 GlobalPlatform 技术的市场领域包括支付、电信、交通、汽车、智能城市、智能家居、公用事业、医疗保健、优质内容、政府和企业形象。

GlobalPlatform技术规范的成功开发得益于过去20年来各相关行业之间充满活力且富有成效的合作。 成员通过参与技术委员会、工作组和战略工作组来影响组织成果。 GlobalPlatform 技术是与世界各地众多标准机构和区域组织合作开发的,确保持续的相关性和及时性。

用一句话概括。

1. SE Management作为GP标准的重要组成部分,拥有完整的API和测试套件。    2. TEE API 规范是主要由 TEE 解决方案提供商和 TA 开发人员需要的桌面参考手册。    3. TEE 合规规范。 主要包含与测试相关的内容。    4、TEE管理框架与应用管理相关,各大TEE厂商应重点关注。    5. TEE PP是TEE安装。完整概述,TEE安全认证最重要的文件。    注意:在实际应用中,TEE和SE也是不可分割的兄弟对,所以将SE放在一起。    

,

2. TEE GP API概述

TEE API分为两种:

一种API CA 和 TA 的通信是通过调用 libteec.so 库的应用程序来实现的。 libteec.so 库由 optee_client 编译。 libteec.so中调用dev/tee_priv节点进入内核态,内核态调用smc同步异常指令。 进入ATF,ATF弹出到TEE OS,TEE OS发送消息给对应的TA。 该 API 在全局平台文档 TEE_Client_API_Specific-V1.0_c.pdf 中指定。 API的具体实现可以在optee_client/libteec中找到
第一类是调用TEE OS的TA系统API。 这就是它的实现方式。 它实际上是一个系统调用,调用SVC同步异常命令进入内核模式。 该 API 在全球平台 GPD_TEE_Internal_Core_API_Specific_v1.1.pdf 文档中指定。 API的具体实现可以在optee_os/lib/libutee中找到。

2.1 TEE 客户端 API 概述

此类 API 少于 10 个(总共 9 个)

TEEC_InitializeContextTEEC_FinalizeContextTEEC_RegisterSharedMemoryTEEC_AllocateSharedMemoryTEEC_ReleaseSharedMemoryTEEC_OpenSession TEEC_CloseSessionTEEC_InvokeCommandTEEC_Request取消

2.2 TEE OS API

这样的API有很多,它们分为几类:
(1)、非对称

TEE_AmetricDecryptTEE_A 对称EncryptTEE_AmetricSignDigestTEE_A 对称VerifyDigest

(2),认证加密

TEE_AEDecryptFinalTEE_AEEncryptFinalTEE_AEInitTEE_AEUpdateTEE_AEUpdateAAD 

( 3)、基本算术运算

TEE_BigIntAddTEE_BigIntDivTEE_BigIntMulTEE_BigIntNegTEE_BigIntSquareTEE_BigIntSub

(4)、取消

 TEE_Get paymentFlagTEE_Mask cancelTEE_Unmask cancel 

(5)、转换器

TEE_BigIntConvertFromOctetStringTEE_BigIntConvertFromS32TEE_BigIntConvertToOctetStringTEE_BigIntConvertToS32

(6)、数据流 Access

TEE_ReadObjectDataTEE_SeekObjectDataTEE_TruncateObjectDataTEE_WriteObjectData

(7),已弃用

TEE_BigIntInitFMMContextTEE_CloseAndDeletePersistentObjectTEE_CopyObjectAttributesTEE_GetObjectInfoTEE_RestrictObjectUsage

> (8)、事件

TEE_Event_AddSourcesTEE_Event_CancelSourcesTEE_Event_CloseQueueTEE_Event_DropSourcesTEE_Event_ListSourcesTEE_Event_OpenQueueTEE_Event_TimerCreateTEE_Event_Wait

(9)、快速模乘

 EE_BigIntComputeFMMTEE_BigIn tConvertFromFMMTEE_BigIntConvertToFMM 

(10),通用对象

TEE_CloseObjectTEE_GetObjectBufferAttributeTEE_GetObjectInfo(已弃用)TEE_GetObjectInfo1TEE_GetObjectValueAttributeTEE_RestrictObjectUsage(已弃用)ed)TEE_RestrictObjectUsage1

(11),通用操作

TEE_AllocateOperationTEE_CopyOperationTEE_FreeOperationTEE_GetOperationInfoTEE_GetOperationInfoMultipleTEE_IsAlgorithmSupportedTEE_ResetOperationTEE_SetOperationKeyTEE_SetOperationKey2 pre> 

(12),初始化

TEE_BigIntInitTEE_BigIntInitFMMTEE_BigIntInitFMMContext(已弃用)TEE_BigIntInitFMMContext1

(13),内部客户端 API

TEE_CloseTASessionTEE_InvokeTACommandTEE_OpenTASession

(14)、密钥推导

TEE_DeriveKey

(15)、逻辑运算

TEE_BigIntAbsTEE_BigIntAssignTEE_BigIntCmpTEE_BigIntCmpS32TEE_BigIntGetBitTEE_BigIntGetBitCountTEE_BigIntSetBitTEE_BigInt右移

(16),MAC

TEE_MACCompareFinalTEE_MACComputeFinalTEE_MACInitTEE_MACUpdate

(17)、对象内存分配和大小

TEE_BigIntFMMContextSizeInU32TEE_BigIntFMMSizeInU32TEE_BigIntSizeInU32(宏)</ DigestExtractTEE_DigestUpdate 

(20)、模运算

TEE_BigIntAddModTEE_BigIntExpModTEE_BigIntInvModTEE_BigIntModTEE_BigIntMulModTEE_BigIntSquareModTEE_BigIntSubMod

(21)、其他Ari算术

TEE_BigIntComputeExtendedGcdTEE_BigIntIsProbablePrimeTEE_BigIntRelativePrime

(22),紧急功能

TEE_Panic

(23),外设

TEE_Peripheral_CloseTEE_Peripheral_CloseMultipleTEE_Peripheral_GetPeripheralsTEE_Peripheral_GetStateTEE_Peripheral_GetStateTableTEE_Peripheral_OpenTEE_Peripheral_OpenMultipleTEE_Peripheral_ReadTEE_Peripheral_SetStateTEE_Peripheral_Write

),持久对象

TEE_CloseAndDeletePersistentObject(已弃用)TEE_CloseAndDeletePersistentObject1TEE_CreatePersistentObjectTEE_OpenPersistentObjectTEE_RenamePersistentObject

( 25) , 枚举持久对象

TEE_AllocatePersistentObjectEnumeratorTEE_FreePersistentObjectEnumeratorTEE_GetNextPersistentObjectTEE_ResetPersistentObjectEnumeratorTEE_StartPersistentObjectE分子

(26),属性访问

TEE_AllocatePropertyEnumeratorTEE_FreePropertyEnumeratorTEE_GetNextPropertyTEE_GetPropertyAsBinaryBlockTEE_GetPropertyAsBoolTEE_GetPropertyAsIdentityTEE_GetPropertyAsStringTEE_GetPropertyAsU32TEE_GetPro 64 TEE_ GetPropertyAsUUIDTEE_GetPropertyNameTEE_ResetPropertyEnumeratorTEE_StartPropertyEnumerator

(27)、随机数据生成

TEE_GenerateRandom

(28)、对称密码

TEE_CipherDoFinalTEE_CipherInitTEE_CipherUpdate

( 29) )、TA接口

TA_CloseSessionEntryPointTA_CreateEntryPointTA_DestroyEntryPointTA_InvokeCommandEntryPointTA_OpenSessionEntryPoint

(30)、时间

TEE_GetREETimeTEE_GetSystemTimeTEE_GetTAPersistentTimeTEE_SetTAPercientTimeTEE_Wait

(31),临时对象

TEE_AllocateTransientObjectTEE_CopyObjectAttributes(已弃用)TEE_CopyObjectAttributes1TEE_FreeTransientObjectTEE_GenerateKeyTEE_InitRefAttributeTEE_InitValueAttributeTEE_PopulateTransientObjectT EE_Reset Trans ientObject 

此处插入图片描述

未经允许不得转载:主机频道 » 快速解析TEE系列中的ARM Trustzone技术(四)——GP规范和TEE API

评论 抢沙发

评论前必须登录!