资讯专栏INFORMATION COLUMN

TEE系列之ARM Trustzone 技术浅析(四)—— GP规范&TEE API

史占广 / 1346人阅读

摘要:系列之技术浅析四介绍介绍是一个由多家成员公司推动的非营利性行业协会。成员们共同的目标是开发的规范。这些规范现已被广泛认定为推动数字服务和设备在整个生命周期内受到信任并安全管理的国际标准。

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_InitializeContextTEEC_FinalizeContextTEEC_RegisterSharedMemoryTEEC_AllocateSharedMemoryTEEC_ReleaseSharedMemoryTEEC_OpenSession TEEC_CloseSessionTEEC_InvokeCommandTEEC_RequestCancellation

2.2 TEE OS API

这类api就有很多了,也分好几类:
(1)、Asymmetric

TEE_AsymmetricDecryptTEE_AsymmetricEncryptTEE_AsymmetricSignDigestTEE_AsymmetricVerifyDigest

(2)、Authenticated Encryption

TEE_AEDecryptFinalTEE_AEEncryptFinalTEE_AEInitTEE_AEUpdateTEE_AEUpdateAAD

(3)、Basic Arithmetic

TEE_BigIntAddTEE_BigIntDivTEE_BigIntMulTEE_BigIntNegTEE_BigIntSquareTEE_BigIntSub

(4)、Cancellation

TEE_GetCancellationFlagTEE_MaskCancellationTEE_UnmaskCancellation

(5)、Converter

TEE_BigIntConvertFromOctetStringTEE_BigIntConvertFromS32TEE_BigIntConvertToOctetStringTEE_BigIntConvertToS32

(6)、Data Stream Access

TEE_ReadObjectDataTEE_SeekObjectDataTEE_TruncateObjectDataTEE_WriteObjectData

(7)、Deprecated

TEE_BigIntInitFMMContextTEE_CloseAndDeletePersistentObjectTEE_CopyObjectAttributesTEE_GetObjectInfoTEE_RestrictObjectUsage

(8)、Events

TEE_Event_AddSourcesTEE_Event_CancelSourcesTEE_Event_CloseQueueTEE_Event_DropSourcesTEE_Event_ListSourcesTEE_Event_OpenQueueTEE_Event_TimerCreateTEE_Event_Wait

(9)、Fast Modular Multiplication

TEE_BigIntComputeFMMTEE_BigIntConvertFromFMMTEE_BigIntConvertToFMM

(10)、Generic Object

TEE_CloseObjectTEE_GetObjectBufferAttributeTEE_GetObjectInfo (deprecated)TEE_GetObjectInfo1TEE_GetObjectValueAttributeTEE_RestrictObjectUsage (deprecated)TEE_RestrictObjectUsage1

(11)、Generic Operation

TEE_AllocateOperationTEE_CopyOperationTEE_FreeOperationTEE_GetOperationInfoTEE_GetOperationInfoMultipleTEE_IsAlgorithmSupportedTEE_ResetOperationTEE_SetOperationKeyTEE_SetOperationKey2

(12)、Initialization

TEE_BigIntInitTEE_BigIntInitFMMTEE_BigIntInitFMMContext (deprecated)TEE_BigIntInitFMMContext1

(13)、Internal Client API

TEE_CloseTASessionTEE_InvokeTACommandTEE_OpenTASession

(14)、Key Derivation

TEE_DeriveKey

(15)、Logical Operation

TEE_BigIntAbsTEE_BigIntAssignTEE_BigIntCmpTEE_BigIntCmpS32TEE_BigIntGetBitTEE_BigIntGetBitCountTEE_BigIntSetBitTEE_BigIntShiftRight

(16)、MAC

TEE_MACCompareFinalTEE_MACComputeFinalTEE_MACInitTEE_MACUpdate

(17)、Memory Allocation and Size of Objects

TEE_BigIntFMMContextSizeInU32TEE_BigIntFMMSizeInU32TEE_BigIntSizeInU32 (macro)

(18)、Memory Management

TEE_CheckMemoryAccessRightsTEE_FreeTEE_GetInstanceDataTEE_MallocTEE_MemCompareTEE_MemFillTEE_MemMoveTEE_ReallocTEE_SetInstanceData

(19)、Message Digest

TEE_DigestDoFinalTEE_DigestExtractTEE_DigestUpdate

(20)、Modular Arithmetic

TEE_BigIntAddModTEE_BigIntExpModTEE_BigIntInvModTEE_BigIntModTEE_BigIntMulModTEE_BigIntSquareModTEE_BigIntSubMod

(21)、Other Arithmetic

TEE_BigIntComputeExtendedGcdTEE_BigIntIsProbablePrimeTEE_BigIntRelativePrime

(22)、Panic Function

TEE_Panic

(23)、Peripherals

TEE_Peripheral_CloseTEE_Peripheral_CloseMultipleTEE_Peripheral_GetPeripheralsTEE_Peripheral_GetStateTEE_Peripheral_GetStateTableTEE_Peripheral_OpenTEE_Peripheral_OpenMultipleTEE_Peripheral_ReadTEE_Peripheral_SetStateTEE_Peripheral_Write

(24)、Persistent Object

TEE_CloseAndDeletePersistentObject (deprecated)TEE_CloseAndDeletePersistentObject1TEE_CreatePersistentObjectTEE_OpenPersistentObjectTEE_RenamePersistentObject

(25)、Persistent Object Enumeration

TEE_AllocatePersistentObjectEnumeratorTEE_FreePersistentObjectEnumeratorTEE_GetNextPersistentObjectTEE_ResetPersistentObjectEnumeratorTEE_StartPersistentObjectEnumerator

(26)、Property Access

TEE_AllocatePropertyEnumeratorTEE_FreePropertyEnumeratorTEE_GetNextPropertyTEE_GetPropertyAsBinaryBlockTEE_GetPropertyAsBoolTEE_GetPropertyAsIdentityTEE_GetPropertyAsStringTEE_GetPropertyAsU32TEE_GetPropertyAsU64TEE_GetPropertyAsUUIDTEE_GetPropertyNameTEE_ResetPropertyEnumeratorTEE_StartPropertyEnumerator

(27)、Random Data Generation

TEE_GenerateRandom

(28)、Symmetric Cipher

TEE_CipherDoFinalTEE_CipherInitTEE_CipherUpdate

(29)、TA Interface

TA_CloseSessionEntryPointTA_CreateEntryPointTA_DestroyEntryPointTA_InvokeCommandEntryPointTA_OpenSessionEntryPoint

(30)、Time

TEE_GetREETimeTEE_GetSystemTimeTEE_GetTAPersistentTimeTEE_SetTAPersistentTimeTEE_Wait

(31)、Transient Object

TEE_AllocateTransientObjectTEE_CopyObjectAttributes (deprecated)TEE_CopyObjectAttributes1TEE_FreeTransientObjectTEE_GenerateKeyTEE_InitRefAttributeTEE_InitValueAttributeTEE_PopulateTransientObjectTEE_ResetTransientObject

在这里插入图片描述

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119508.html

相关文章

  • docker配置阿里云镜像加速器,加速下载docker镜像

    背景:官方镜像站下载速度慢,推荐使用阿里云镜像站,加速镜像下载速度操作步骤阿里云官网链接:阿里云docker加速器1.阿里云镜像加速器地址:https://jwrmyfx1.mirror.aliyuncs.com2.服务器内配置2.1 centossudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF&...

    社区管理员 评论0 收藏0
  • 边缘计算的七项核心技术

    摘要:与云计算中心不同,广域网的网络情况更为复杂,带宽可能存在一定的限制因此,如何从设备层支持服务的快速配置,是边缘计算中的一个核心问题。边缘计算可汲取云计算发展的经验,研究适合边缘计算场景下的隔离技术。 作者:施巍松团队(张星洲、王一帆、张庆阳) 计算模型的创新带来的是技术的升级换代,而边缘计算的迅速发展也得益于技术的进步。本节总结了推动边缘计算发展的7项核心技术,它们包括网络、隔离技术、...

    leanote 评论0 收藏0
  • 分层的加密经济网络下的二层扩容方案

    摘要:在年,我们正式作为公链的实现者,开启了加密经济生态的构造中。来保证安全和去中心化,绝对可靠可信它能做到全球共识,并作为加密法院,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到上。 在 2016 年秘猿科技成立之初,我们就认为共识是分层的,最下面最基础、最昂贵、最慢的,是全世界范围的共识。但是我们一层一层往上看的话,共识范围会越来越小,那么上面共识范围更小的地方,是不是要用...

    SegmentFault 评论0 收藏0
  • Gitlab CI/CD执行流程

    一、什么是CI/CDCI 持续集成CD 持续交付CI/CD就是在开发阶段,通过自动化发布,来频繁部署应用的一种方式二、为什么要配置CI/CD想象一下,一个项目的发布如果手动部署,需要的操作有:单元测试打包文件上传服务器等等如果每个过程都需要手动执行,每次都要保证不出错,这个已经很繁琐了。而现在大的前端项目多达10+的人开发,而且人员流动大。如果每个人都这么发布,快速迭代就容易出错。这时候就需要CI...

    社区管理员 评论0 收藏0

发表评论

0条评论

史占广

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<