目录
摘要:系列 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
此处插入图片描述
评论前必须登录!
注册