TrustZone_Hcoco
一个搞技术的读书人,妄图分享最干货的技术知识与世界运转的底层逻辑。公ZH:TrustZone
展开
-
【学习资料】2000+本书:芯片、驱动、系统、应用、程序、人生、理财等
GPU、CUDA并行程序设计相关电子书 pdf资料原创 2024-01-21 18:34:58 · 856 阅读 · 1 评论 -
【TEEOS】OP-TEE的安全存储
OP-TEE的安全存储功能是OP-TEE为用户提供的安全存储机制。用户可使用。使用OP-TEE安全存储功能保存数据时,OP-TEE会对需要被保存的数据进行加密,且每次更新安全文件时所用的加密密钥都会使用随机数重新生成,用户只要调用GP标准中定义的安全存储相关接口就能使用OP-TEE的安全存储功能对私有数据进行保护。需要被保护的数据被OP-TEE加密后会被保存到、EMMC,至于具体需要将加密后的数据保存到哪里则由芯片提供商决定。(为啥放在REE侧的文件系统?原创 2023-11-20 13:04:05 · 763 阅读 · 0 评论 -
【TEEOS】搞懂TA-CA交互流程
最近一位读者问我CA如何与TA进行匹配的,答案在文中,当然文中也有广告,不介意的话欢迎点击一下退出即可给作者充电成功!TA 是 Trusted Application 的缩写,通常运行在 TEE 环境下的应用简称为 TA。CA 是 Client Application 的缩写,通常运行在 REE 环境下的应用简称为 CA。原创 2023-11-18 13:08:52 · 912 阅读 · 0 评论 -
TEE中的SCMI服务与SCP固件
SCMI(System Control and Management Interface)是一种标准化的系统控制和管理接口,旨在提高跨平台设备管理的效率和可移植性。SCMI通过定义一组命令、消息和数据结构,为操作系统、虚拟机、固件和硬件提供一个通用的通信接口。SCMI主要涉及电源域管理、性能管理、时钟管理、传感器管理、复位管理、电压域管理等方面。在系统中,通常使用一个微控制器处理上述的系统管理问题,以减轻应用处理器的负载。原创 2023-09-17 22:22:51 · 311 阅读 · 0 评论 -
一道题:Secure storage&TEE TA漏洞利用的题
TEE 全称叫做 Trust Executed Environment 可信执行系统,TEE 主要应用在手机以及 iot 设备上,比如用户的指纹识别以及支付相关的敏感操作都是在 TEE 中进行处理的,敏感的信息也是通过 TEE 加密之后存储在一个可信的位置。原创 2023-09-08 00:14:19 · 218 阅读 · 0 评论 -
Android可信执行环境安全研究(三):特权提升
至此,我们就形成了完整的漏洞利用链。在这一阶段,我们成功将所有TEE内存映射到Android应用程序中。内存是完全可读和可写的,这意味着攻击者可以:(1)修改TA和TEE内核的代码,因为权限控制不适用于Android应用程序。(2)在内核中实现KASLR、PAN和PXN的绕过。一旦攻击者完全控制了TEE,就可以进一步实现各类攻击,例如修改TEE中实现的设备指纹或面部识别解锁功能,以绕过屏幕锁定。转载 2023-09-07 23:24:25 · 424 阅读 · 0 评论 -
Android可信执行环境安全研究(二):可信应用漏洞利用
在这篇文章中,我们演示了发现并利用HDCP TA中两个漏洞的详细过程,同时还说明了TEE中防回滚机制的重要性。欢迎大家继续关注下一篇文章,我们将详细分析如何提升特权,并获得对整个TEE内存的完整访问权限.转载 2023-09-07 23:23:52 · 380 阅读 · 0 评论 -
Mate60Pro鸿蒙系统如何打造安全屏障,守护个人隐私?
iTrustee安全OS是华为基于TrustZone技术实现的可信执行环境,提供一套完整的TEE解决方案。TrustZone技术将中央处理器的工作状态划分为可信执行环境(TEE, Trusted Execution Environment)和富执行环境(REE, Rich Execution Environment)。REE运行在正常模式下,TEE运行在安全模式下。在安全模式下,提供了对外围硬件子元的保护和隔离,包括内存、外设等,保证REE和TEE的隔离,保障TEE的安全性。原创 2023-09-05 09:00:47 · 550 阅读 · 0 评论 -
Android可信执行环境安全研究(一):TEE、TrustZone和TEEGRIS
在过去的几年内,可信执行环境(TEE,Trusted Execution Environment)在Android生态系统中实现了普及。在这一系列文章中,我们将分析。本文涉及到的全部漏洞均已在当时报告给三星,并且已经在2019年年底完成修复。我们此次研究的目标是评估三星TEE OS的安全性,分析是否可以对其进行攻击以获取运行时控制并提取所有受保护的数据,例如对用户数据进行解密。在分析过程中,我们并没有考虑完整的漏洞利用链,这一系列文章基于我们先前在2020年9月Riscure Workshop的演讲。转载 2023-09-04 14:03:15 · 980 阅读 · 0 评论 -
KINIBI TEE 的可信环境及相关漏洞与利用方法
很多Android设备和嵌入式系统都使用TEE(Trusted Execution Environment,可信执行环境)来实现一些安全功能(如硬件密码/密钥、DRM(数字版权保护)、移动支付、生物识别等等)。在ARM平台上,TEE是使用ARM Trustzone技术将其运行环境与标准操作系统(如Linux)隔离开来的小型操作系统。TEE操作系统比传统的终端应用运行环境(REE,Rich Execution Environment,如Android)简单得多,对逆向工程来说也是一件有趣的事情。转载 2023-09-03 23:51:59 · 328 阅读 · 0 评论 -
TEE安全攻防之内存隔离-【OPTEE】
TEE作为可信执行环境,通常用于运行处理指纹、人脸、PIN码等关键敏感信息的可信应用,即使手机被ROOT,攻击者也无法获取这些敏感数据。因此TEE侧程序的安全至关重要,本文深入分析了TRUSTZONE物理内存隔离、TEEOS内存管理及TEE侧对REE传入地址的校验。在了解了这些原理之后,我们就可以进行漏洞挖掘了, 当然也能写出简单有效的FUZZ工具。只有对漏洞原理、攻击方法进行深入的理解 ,才能进行有效的防御。FUZZ是一个模糊测试工具,用于在漏洞挖掘过程中进行重要的一步。转载 2023-09-03 23:34:06 · 634 阅读 · 0 评论 -
ARM:Base Boot Security Requirements 1.2
密码身份验证:为了确保只有授权的用户可以访问和启动基于ARM的产品,Base Boot Security Requirements 1.2强烈要求产品实现密码身份验证机制。除了以上详细描述的方面,Base Boot Security Requirements 1.2还包括其他一些要求和最佳实践,例如使用最新的安全标准和协议、定期进行安全漏洞评估和修复、实施严格的数据备份和恢复策略等。这些要求旨在确保基于ARM的产品具有足够的安全性和稳定性,以保护用户的数据和系统的完整性。非常抱歉我的回答没有满足您的期望。原创 2023-09-02 20:27:53 · 164 阅读 · 0 评论 -
一文搞懂OPTEE的中断处理机制
OP-TEE(Open Portable Trusted Execution Environment)的中断处理机制包括以下几个步骤:中断控制器初始化:在OP-TEE中,需要初始化中断控制器,以便能够正确地处理来自外部设备的中断。在初始化过程中,需要设置中断控制器的中断向量表、中断优先级、中断使能等参数。中断处理函数的注册:在OP-TEE中,**需要为每个中断类型注册一个中断处理函数。**当中断发生时,中断控制器会调用相应的中断处理函数来处理中断。中断处理函数需要根据中断类型进行相应的处理,例如读取网络数据原创 2023-09-02 17:15:49 · 237 阅读 · 0 评论 -
安全引导和加密数据存储
之前我们一起学习了怎么使用OPTEE与TrustZone进行可信应用的开发,今天我们来看看另外一个重要的方面:安全引导和加密数据存储。安全引导确保只有经过身份验证的软件才能在设备上运行,并通过在执行代码之前验证软件的数字签名来实现。为了实现安全引导,需要处理器/SoC支持。根据我们的经验,一些具有现成文档的更安全的引导友好型处理器包括NXP i.MX/QorIQ Layerscape、Xilinx Zynq、Atmel SAMA5、TI Sitara和高通Snapdragon系列。原创 2023-08-24 23:29:00 · 352 阅读 · 0 评论 -
RusTEE:开发内存安全的ARM TrustZone应用程序
这里作者为我们介绍了为什么要做这样的一件事情:用Rust语言来实现TA?近年来,TrustZone被广泛用于在ARM平台上提供安全保护。它通过为安全敏感代码和数据保护创建可信执行环境(TEE)来实现系统范围的隔离,从而保护TEE的软件免受不可信的富执行环境(REE)的影响。隔离是通过处理器中内置的硬件功能以及系统总线互连来实现的。由于硬件辅助隔离的保护,基于TrustZone的系统承担整个TEE的信任变得很常见,包括运行在TEE中的可信应用程序(TA)。原创 2023-08-24 09:59:14 · 184 阅读 · 0 评论 -
一起来看看什么是TCB!
在计算机系统的世界里,一个系统或组件被“trusted”意味着什么?为什么这很重要?在这篇文章中,我们将概述什么是可信计算基础(TCB),并为如何评估TCB的安全性提供一个框架。我们还将更深入地了解“trusted”在这种情况下的含义。尽管名称上有一些相似之处,但可信计算库(TCB)并不像可信平台模块(TPM)那样指代特定的芯片或规范。系统的可信计算基础TCB是安全体系结构中的一个术语,指的是对建立和维护特定系统的安全性至关重要的所有系统组件。具有安全属性的系统将具有TCB,原创 2023-08-24 09:58:25 · 339 阅读 · 0 评论 -
使用OP-TEE进行可信软件开发
TEE提供了一个隔离的环境,以确保代码/数据的完整性和机密性。运行Linux或Android的典型嵌入式系统在内核和用户空间包中都暴露出大量安全漏洞。漏洞可能使攻击者能够访问敏感信息和/或插入恶意软件。TEE增加了一个额外的安全层,TEE上运行的代码/数据不能从正常世界的操作系统(如Linux/Android)访问/篡改。在TEE(安全世界)上运行的软件通常包括一个小型的面向安全的操作系统(例如:OP-TEE OS)以及可信的应用程序。原创 2023-08-22 00:46:23 · 261 阅读 · 0 评论 -
ATF-BL32:TEE OS的启动过程
## ATF流程ATF冷启动实现分为5个步骤:+ BL1 - AP Trusted ROM,一般为BootRom。+ BL2 - Trusted Boot Firmware,一般为Trusted Bootloader。+ BL31 - EL3 Runtime Firmware,一般为SML,管理SMC执行处理和中断,运行在secure monitor中。+ BL32 - Secure-EL1 Payload,一般为TEE OS Image。+ BL33 - Non-Trusted Firmwa原创 2023-08-14 23:43:28 · 344 阅读 · 0 评论 -
万字长文:安全启动之SecureBoot启动吧(小白也能看懂!)
安全引导(Secure Boot)功能是指在系统的整个启动过程中,使用链式验证电子签名的方式来验证系统中重要镜像文件的可靠性,然后再加载镜像文件的引导过程。安全引导功能可以保护二级厂商系统的独立性和完整性。在ARMv8架构中ARM提供了ARM可信固件(ATF)。Bootloader、Linux内核、TEE OS的启动都由ATF来加载和引导。对于ARMv8, Bootloader、Linux内核和TEE OS镜像文件的验签工作都是在ATF中完成的。本文将介绍安全引导功能的原理以及ATF的启动过程。原创 2023-08-14 23:15:23 · 842 阅读 · 0 评论 -
TEEOS之鸿蒙
作为国内现在很多的操作系统鸿蒙,因为受到美国的制裁,华为自己创新了鸿蒙,通过1+8+N的商业布局,实现了迅速的发展。那么这个操作系统有没有和咱们安全操作系统相关的内容呢?下面来看看。iTrustee安全OS是华为基于TrustZone技术实现的可信执行环境,提供一套完整的TEE解决方案。原创 2023-07-14 00:13:00 · 524 阅读 · 0 评论 -
简单认识一下PBKDF2、bcrypt、scrypt等是个啥?
加密算法强度应该是scrypt>bscypt>pbkdf2>sha256(standard)性能的话正好相反.采用PBKDF2、bcrypt、scrypt等算法可以有效抵御彩虹表攻击,即使数据泄露,最关键的“用户密码”仍然可以得到有效的保护,黑客无法大批量破解用户密码,从而切断撞库扫号的根源。原创 2023-01-31 23:27:24 · 843 阅读 · 0 评论 -
Secureboot概念进阶版
安全启动的根本目的是为了防止消费者从软硬件层面对产品的部分关键系统进行读写、调试等高权限的操作。以限制消费者的能力,来达到保护产品的商业机密、知识产权等厂家权益的目的。当然,厂家是不会这样宣传 Secure Boot 的。他们的文案通常都是通过这项技术保护用户的隐私,防止恶意软件修改系统软硬件等等。不过不论如何,随着 ARM 架构的广泛授权,基于 TrustZone 的 Secure Boot 也越来越普遍了。转载 2023-01-31 23:15:35 · 2197 阅读 · 0 评论 -
关于RSA的一点小知识
RSA是一种公钥密码算法,它的名字由三位开发者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母组成的。RSA被用于公钥密码和数字签名。1983年,RSA公司为RSA算法在美国取得了专利,但现在该专利已经过期。原创 2023-01-30 21:46:17 · 848 阅读 · 0 评论 -
关于TEEOS的闲言碎语:华为iTrustee
iTrustee安全OS是华为基于TrustZone技术实现的可信执行环境,提供一套完整的TEE解决方案。TrustZone技术将中央处理器的工作状态划分为可信执行环境(TEE, Trusted Execution Environment)和富执行环境(REE, Rich Execution Environment)。REE运行在正常模式下,TEE运行在安全模式下。在安全模式下,提供了对外围硬件子元的保护和隔离,包括内存、外设等,保证REE和TEE的隔离,保障TEE的安全性。原创 2023-01-29 22:41:34 · 1578 阅读 · 0 评论 -
TEE OS的一点闲言碎语
伴随着Android的发展,TEEOS已成为端侧的基础安全平台,其提供的安全能力为指纹、人脸、支付等多个安全相关的业务服务,而如今都有哪些厂商在做TEE OS呢?这里列出了18个TEEOS的厂商,在Android手机搭载的TEEOS中,高通的QSEE占比35%Trustonic&TEEgris占比20%华为的iTrustee占比17%。下面就基于各个手机厂商的选型来对比一下各个TEE OS解决方案。原创 2023-01-29 22:31:10 · 1678 阅读 · 2 评论 -
【CA-TA实战系列九】安全驱动OP-TEE(华为tzdriver)
我们前面知道了整个构建TEE的执行环境的软件有REE侧部分和TEE侧部分,分别包括CA、REE侧接口库(libteec)、常驻进程(tee_supplicant)、OP-TEE驱动、OP-TEE OS、TA等部分。这一步就是开始我们的安全驱动-REE侧OP-TEE的驱动:(华为就是那个teecd)OP-TEE驱动是REE侧与TEE侧之间进行交互的重要通道,在REE侧的CA接口以及RPC请求的接收和结果的返回最终都会被发送到驱动中,由驱动对数据做进一步的处理。OP-TEE驱动通过解析传入的参数,重新组合原创 2023-01-27 22:11:32 · 749 阅读 · 0 评论 -
【CA-TA实战系列八】CA与TA背后的故事一:华为itrustee架构下的CA和TA通信模式
TeeClient 向应用提供访问安全OS(TEEOS)能力,让非安全侧应用可以访问安全OS内运行的安全应用。TeeClient模块可以分为如下三大部分:TeeClient SDK层:提供TeeClient API供应用调用,标准系统提供libteec.z.so库,小型系统提供libteec_vendor.so。TeeClient 基础服务层:包括teecd、tlogcat服务,标准系统及小型系统均提供。原创 2023-01-27 19:30:39 · 1181 阅读 · 0 评论 -
【CA-TA实战系列七】CA与TA背后的故事二:REE侧接口库(libteec)与常驻进程(tee_supplicant)
现在我们知道了怎么创建CA和TA,一下子就跑起来了,但是对于怎么跑起来的,这通路的内容是从哪里到哪里,通路里面有点啥,都是模糊的。就是站在管道的两头,不知道管道的内容是什么?我们前面知道了整个构建TEE的执行环境的软件有REE侧部分和TEE侧部分,分别包括CA、REE侧接口库(libteec)、常驻进程(tee_supplicant)、OP-TEE驱动、OP-TEE OS、TA等部分。现在我们解决了CA和TA(上一篇只是对TEEOS的目录简要了解,真正的内容还不算已经了解。原创 2023-01-27 10:03:26 · 540 阅读 · 0 评论 -
【CA-TA实战系列六】CA与TA背后的故事一:TEE OS
TEE OS就是可信环境的操作系统,这里我们的参考资料是前辈的《手机安全和可信应用开发指南》,因此这里我们的TEE OS就是OP TEE。那么为什么在搞TA CA的设计实现要关TEEOS什么事情?关OPTEE什么事情?回想一下我们当时的那个架构图。看到没OP-TEE包含的可多了,咱们这CA和TA的开发是绕不开TEEOS的。靓仔们,所以我们来了解了解这玩意的代码结构有什么,关于optee的东西,在这个专栏里面,转载了很多前辈书里面的内容来讲解,这里就不展开了。原创 2023-01-26 22:53:51 · 717 阅读 · 0 评论 -
【CA-TA实战系列五】是骡子是马?CA和TA跑起来
是骡子是马?拉出来溜溜,这里来跟着前辈书里的流程,让CA和TA示例跑起来看看。OP-TEE中自带的TA和CA都保存在optee_examples目录中,那么如何添加自己开发的TA和CA程序到OP-TEE中并运行呢?本节将对此进行介绍。为减少对编译方面的理解,本节将结合实际的TA和CA示例介绍详细的操作步骤。本节所用示例的所有源代码可从gitHub上获取,读者可使用如下指令获取到源代码,示例包中有对应的补丁,读者直接合入补丁就可将该示例集成到OP-TEE中,该示例的gitHub链接如下:获取到示例代码之后,原创 2023-01-26 21:42:44 · 272 阅读 · 0 评论 -
【CA-TA实战系列四】TA和CA的调试与使用
调试一个TA和CA程序时最主要的手段就是在报错的地方打印。在开发TA和CA的过程中会牵扯到。关于程序编译的问题只需要根据编译报错的日志进行修改即可,若对编译过程不熟悉可在编译系统中添加打印的方式跟踪整个编译过程,然后定位编译报错的位置后进行对应的修改,一般都是函数和变量的定义问题以及相关选项的设置问题。对于应用层的调试,。为方便形成自己的调试风格,。为确定在哪一步操作地方出现了错误,读者可以在代码中添加对应的打印信息,然后根据打印的信息进行对应的修改。原创 2023-01-26 19:59:03 · 669 阅读 · 0 评论 -
【CA-TA实战系列三】TA和CA的集成
前面我们已经编辑完TA和CA的源代码,现在需修改源代码中的Makefile文件和OP-TEE工程源代码中对应的板级mk文件和common.mk文件。原创 2023-01-26 19:45:37 · 410 阅读 · 0 评论 -
【CA-TA实战系列二】如何创建一个TA
TA的属性定义了该TA的运行方式、链接方式、堆栈大小、版本等信息。在GP标准中对一个TA所需要具有的属性进行了严格的定义和说明,这些属性的名称、作用、值的内容说明如表所示。TA个属性说明表OP-TEE中TA的扩展属性如表21-2所示。需要被设定的TA属性都在TA源代码的user_ta_headr_defines.h文件中被定义,gpd.ta. appID的值通常被设置成该文件中TA_UUID的值。原创 2023-01-26 19:19:50 · 705 阅读 · 1 评论 -
【CA-TA实战系列一】如何创建一个CA
之前其实一直打算做这个系列,但是因为不是强相关,就把这个事情拖沓了。这次倒是安排的任务基于之前的老代码就能实现,然后我就是增加一些维测手段,定位问题修改即可。但是对这个CA和TA的学习还是停靠在之前学习《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 》这本书的内容,这个专栏的内容也大多数是来自与这本书和一些前辈们的优秀blog。尽量今年今晚能把这个系列写出来,实在不行先写个浅入版本,后续再整个源码版本。原创 2023-01-19 21:34:39 · 994 阅读 · 0 评论 -
聊聊TEEOS中的安全存储
其实提起安全存储,我脑子里第一时间想的是RPMB,因为当时做了一个关于RPMB的方案。如果你不知道RPMB是什么可以看看【一文简单了解RPMB】。第二时间想的是TEEOS的本质就是把数据安全存储在TEE的环境中。回归原文:安全存储是TEEOS重要特性之一,安全存储主要用来为用户保存敏感数据如密钥等信息。用户在使用安全存储功能保存数据时会在TEE内对数据进行加密,然后保存到REE侧的相关存储区域中。(类似于动态TA,就是保存在REE的文件系统,加载的到TEE侧的时候进行校验。原创 2022-12-27 11:25:44 · 692 阅读 · 1 评论 -
TEEOS的术语表
整个TEEOS场景的术语表,可能在你阅读的时候会带来便利。原创 2022-10-26 01:48:19 · 228 阅读 · 0 评论 -
TEE可信应用的使用领域
这应该是近期关于TEEOS的最后一篇文章。后续的学习内容是什么,还在考量中。不知道是不是驱动,还是BSP相关,或者是kernel相关。随着互联网经济的飞速发展,移动设备用户的数据安全性越来越重要,有些数据直接关系到用户的经济利益。本章将简要介绍TEE方案的实际应用场景,在实际使用过程中。由于篇幅有限,对于实际使用的技术细节就不作详细的介绍。原创 2022-10-26 01:46:40 · 908 阅读 · 0 评论 -
TEEOS的实例-在线支付系统
基于安全考虑,支付系统的最终结算由支付服务提供商与银行完成支付结算,而终端设备只为支付系统的服务器提供支付凭据,让支付系统的服务器端触发支付操作完成与银行间的账务清算。而终端设备的支付凭据就在整个在线支付过程中起到了至关重要的作用。如何确保支付凭据安全且可信的发送到服务器端并被服务器验证通过就尤为重要。本章将简要介绍在线支付系统中,终端设备中的TEE是如何确保数据安全且可信地被支付系统的服务器端使用。(原来支付的结算不是终端,而是服务提供商与银行,那支付宝、微信都是服务提供商,难怪要收利息)原创 2022-10-26 01:37:02 · 474 阅读 · 0 评论 -
终端密钥在线下发系统
密钥在线下发系统在REE侧会运行一个常驻进程用于接收服务器端发送的密文密钥数据包,该进程在接收到数据包后直接调用下发系统的CA接口,将数据发送给OP-TEE中密钥下发系统的TA,该TA会按照约定的数据格式和密钥解析并解密下发的数据包,从而获得明文的密钥,然后调用OP-TEE的安全存储功能保存该密钥,在使用时同样也通过该TA来获取该密钥。这里给出了一个使用OP-TEE实现密钥在线下发的系统示例,使用该框架可实现密钥的密文在线下发功能,在下发过程中,所有数据都是以密文的形式存在的,原创 2022-10-25 01:26:02 · 742 阅读 · 0 评论 -
OP-TEE的安全存储(二)
参考内容来自《手机安全和可信应用开发指南》原创 2022-10-25 01:17:50 · 573 阅读 · 0 评论