自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卢鸿波-security²-安全二次方

曾就职于华为海思,现为某处理器厂商安全方向副研究员。 在底层软件安全、低功耗方向工作7余年。工作内容涉及Trustzone/TEE/TF-A安全、Modem低功耗等。 曾参与世界首款单芯片多模5G基带芯片相关软件研发工作。

  • 博客(421)
  • 收藏
  • 关注

原创 Arm功耗管理精讲与实战

1、功耗管理背景及挑战2、功耗管理架构演进及变迁3、系统分区-电压域和电源域4、功耗状态及功耗模式5、功耗管理框架-SCP&PPU&LPI6、功耗管理软件7、功耗管理标准接口8、多核处理器启动9、睡眠锁与唤醒源10、功耗管理实战11、功耗数据与功耗收益评估12、功耗管理与安全

2024-04-24 10:01:19 1108 5

原创 OPTEE的GDB调试技术实战

【按语】:如果需要调试OPTEE,那么在远程调试配置中使用GDB可能会很有用。远程调试意味着GDB在您的PC上运行,它可以访问源代码,而被调试的程序在远程系统上运行(在本例中,在QEMU环境的OPTEE中)。本博客来探讨OPTEE的GDB调试技术实战。

2024-04-23 19:49:15 607

原创 安全二次方(security²)博客目录导读

一、ARM&RISC-V安全架构二、TF-A/TEE/Hafnium之安全三、GP安全认证&IDA逆向分析四、静&动态代码分析五、低功耗六、其他

2023-08-12 19:57:12 3972 15

原创 OPTEE之ARM安全扩展

OPTEE之ARM安全扩展一、BTI(Branch Target Identification)二、如何使能OP-TEE core的BTI三、如何使能TA的BTI

2023-08-05 18:21:40 962

原创 ATF(TF-A)安全通告汇总

ATF(TF-A)安全通告汇总,包含10个相关安全通告,12个CVE。

2023-08-04 18:27:00 2069

原创 ATF(TF-A)/OPTEE之静态代码分析汇总

1、静态代码分析基础知识及分析工具2、静态代码扫描分析sonarlint使用一——windows下的makefile工程3、静态代码扫描分析sonarlint使用二——windows下的cmake工程4、静态代码扫描分析sonarlint使用三——linux下的makefile工程5、静态代码扫描分析sonarlint使用四——linux下的cmake工程6、TF-A静态代码分析实战7、OPTEE静态代码分析实战8、Sonarqube扫描结果存入数据库并网页显示,提升团队代码质量

2023-07-04 13:05:13 854

原创 TEE之GP(Global Platform)认证汇总

一、为什么需要GP认证?二、TEE GP认证规范三、TEE GP认证方案四、TEE GP安全认证方案五、TEE GP功能认证方案六、TEE GP安全认证实验室七、TEE GP功能认证实验室八、TEE GP安全认证产品九、TEE GP功能认证产品十、TEE GP技术委员会及中国任务小组

2023-07-03 20:57:04 1156

原创 RISC-V TEE(可信执行环境)方案初探

本文对RISC-V TEE整体概览、硬件层面支持、各家TEE方案(Multizone、Keystone、Penglai、VirtualZone)介绍分别进行了初探。

2023-06-15 08:56:09 2106

原创 OPTEE常见13类问题与解答

OPTEE常见13类问题并解答

2023-06-14 21:06:29 974 1

原创 Altium designer10---PCB添加Logo

看到这篇的时候,想必你以前做过或正在学习印刷电路板(PrintedCircuitBoard)的制作,可能以前你把板子做好后,检测硬件连接正常后,就投入到软件编程了。其实,我们可以在制作板子的同时,制作一些自己喜欢的Logo等来美化一下你的电路板。此篇是我在天津科技大学就读本科时,于电信学院新电社所做,当时和范文龙一拍即合,作为内部教学资料所写,满满的社团回忆,现作为本人第一篇博客,现将具体方法

2015-06-02 09:43:32 13345 8

原创 PSCI OS-initiated操作系统启动模式

电源域拓扑是一种系统中电源域的逻辑层级结构,它源于电源域之间的物理依赖关系。本地电源状态描述单个节点的电源状态,而复合电源状态则描述该节点及其父节点的组合电源状态。对于核心层级之上的拓扑节点,进入低功耗状态需要协调其子节点。例如,在一个电源域包括共享缓存、每个核心有独立电源域的系统中,必须先关闭核心的电源域,才能关闭共享缓存的电源域。PSCI(电源状态协调接口)支持两种电源状态协调模式:平台协调(platform-coordinated)和操作系统启动(OS-initiated)。

2025-06-22 10:58:40 72

原创 运行时安全引擎RSE

该博客重点介绍了运行时安全引擎(Runtime Security Engine,简称 RSE)与应用处理器(Application Processor,简称 AP)之间的关系。根据 ARM 的参考设计,RSE 是位于同一芯片(die)上的一个独立核心,与 AP 和系统控制处理器(System Control Processor,简称 SCP)并列存在。RSE 为整个系统提供基本的安全保障和运行时服务,例如:可信启动(trusted boot)、度量启动(measured boot)、平台认证(platf

2025-06-22 10:50:37 701

原创 离散TPM驱动程序

本博客重点介绍了TF-A中离散TPM驱动的设计与功能。TPM技术旨在提供一种专用的、基于硬件的解决方案,用于存储加密密钥以及执行安全相关操作。离散TPM是一种独立的硬件组件,物理上与系统主处理器隔离。这种隔离有助于保护敏感信息(如加密密钥和平台凭据)不被恶意软件或未经授权的用户访问或篡改。当离散TPM接口被正确实现时,可降低基于软件的攻击风险,从而进一步缩小攻击面。

2025-06-22 10:48:49 634

原创 可信启动方案设计

本博客简要解释了TF-A中的Measured-Boot可信启动设计实现。

2025-06-22 10:47:27 937

原创 DRTM动态度量信任根的POC概念验证

动态度量信任根(DRTM) 通过度量并执行受保护的负载,启动一个新的可信执行环境。目前由 TF-A 使用的 静态度量信任根(SRTM)/度量引导(Measured Boot) 实现,会覆盖所有固件,从启动 ROM 一直到非安全世界的引导加载程序(bootloader)。作为一个整体,它们构成了系统的 TCB(可信计算基)。这些启动过程的度量可以用于证明系统上正在运行的软件,并用于强制执行安全策略。然而,随着启动链变长或固件变得可动态扩展,构建一个可证明的 TCB 变得更加困难。DRTM 提供了解决方

2025-06-22 10:45:58 992

原创 使用离散型 TPM 的可信启动(概念验证 PoC)

可信启动(测量启动)是一种在启动时对代码和关键数据进行加密度量的过程,例如使用 TPM,以便后续能够对系统的安全状态进行验证。TF-A 中当前包含的驱动实现支持多种后端,每种后端使用不同的方式来存储度量值。本节聚焦于离散型 TPM 后端,该后端将度量值存储在 TPM 内的 PCR(平台配置寄存器)中。此后端可与 TCG 事件日志配合使用,以实现对事件日志中度量值的验证。更多详细内容请参考《Measured Boot Design》。本博客提供了设置和构建一个概念验证(PoC)的说明,该 PoC 展示

2025-06-22 09:22:06 641

原创 可信启动与fTPM的交互验证(概念验证)

可信启动(Measured Boot)是通过密码学方式度量启动阶段代码及关键数据(例如使用TPM芯片)的过程,以便后续对系统安全状态进行验证。当前TF-A集成的驱动支持多种后端存储方式,每种方式采用不同的测量值存储机制。本节重点讨论TCG事件日志后端,该后端将测量值存储在安全内存中。该驱动还提供将事件日志传递至普通世界的机制。本手册提供的概念验证(PoC)构建指南,旨在演示如何将可信启动与基于OP-TEE实现的fTPM(fTPM)服务结合使用。

2025-06-22 08:22:04 870

原创 Kinibi-610a:面向芯片厂商与设备制造商的TEE升级详解

Trustonic最新发布的可信执行环境(TEE)Kinibi-610a,在前代Kinibi-600多平台支持的基础上,进一步增强了系统功能。本系列博文的第一部分已介绍其对可信应用(TA)开发者的改进,本文将重点解析芯片供应商和设备制造商集成工程师最关注的TEE演进特性。

2025-04-22 21:13:02 129

原创 为TA开发人员介绍具有最新改进的Kinibi-610a

Trustonic 推出的 Kinibi-610a 进行了多项底层优化,以实现更深度的系统集成,并更好地适应不断演进的用例需求。在本系列博文的第一部分,我们将重点介绍 Kinibi-610a 的关键改进,以帮助可信应用(TA)开发者更好地利用新特性。第二部分将深入探讨与芯片系统(SoC)集成商相关的底层系统变更。

2025-04-22 20:57:21 226

原创 SCP-Firmware安全通告:CVE-2024-11863和CVE-2024-11864

在SCP固件(SCP-Firmware)中发现两处安全漏洞,可能允许普通世界特权软件(normal world privileged software)对系统控制处理器(SCP)发起拒绝服务攻击。向SCP发送特制的SCMI消息可能导致使用错误(Usage Fault)并使SCP崩溃。这两个漏洞已被分配编号CVE-2024-11863和CVE-2024-11864。

2025-04-14 22:45:46 731

原创 【CVE-2024-10929】ARM CPU漏洞安全通告

在部分基于Arm架构的CPU中发现了一个潜在安全问题,称为Spectre-BSE(Branch Status Eviction,分支状态驱逐漏洞)。该漏洞可能使攻击者能够绕过现有保护措施,以较弱的形式控制受害者的分支历史记录。Arm公司认为实际利用风险极低,因为攻击者需要首先找到可利用的泄露指令片段,控制相关寄存器,并且在初始化和利用阶段之间保持被操控的分支预测器状态不变。

2025-04-14 22:29:13 1007

原创 Arm CPU安全通告:基于TrustZone的Cortex-M系统面临多重故障注入攻击

Arm注意到BlackHat 2022大会官网发布的演讲摘要《糟糕..!我又一次故障注入成功了!——如何突破ARM TrustZone-M的多重防护机制》。本文旨在澄清该摘要所述攻击是否会影响搭载Arm TrustZone技术的Cortex-M系统。

2025-04-13 22:12:48 512

原创 【CVE-2024-7881】ARM CPU漏洞安全通告

基于Arm架构的部分CPU中发现一个安全问题:非特权上下文可能触发数据内存依赖型预取引擎(data memory-dependent prefetch engine),从而获取特权内存位置的内容(该位置本无读取权限),并将这些内容作为地址再次解引用。需注意,此问题不影响虚拟机间及虚拟机与宿主机间的隔离保障。同样,在启用RME(Realm Management Extension)的配置中,预取器会严格遵守颗粒保护检查(GPC)规则。

2025-04-13 21:52:23 757

原创 ARM-V9 CCA/RME QEMU环境搭建

整个用于 CCA 的软件栈仍在开发中,这意味着指令会频繁更改,且仓库可能是临时的。有关手动编译该栈以及从 OP-TEE 构建环境编译的指令,均基于 Ubuntu 22.04 LTS 系统编写。

2025-01-21 21:03:51 815

原创 ARM-V9 CCA/RME FVP环境搭建

FEAT_RME(简称RME)是Armv9-A的一项扩展,也是Arm Confidential Compute Architecture(Arm CCA)的一个组成部分。从TF-A版本2.6开始支持RME。本博客讨论了TF-A对RME的支持所涉及的更改,并提供了如何构建和运行启用RME的TF-A的说明。

2025-01-20 20:40:27 824

原创 SMMU软件指南之使用案例(Stage 2使用场景)

一、第二阶段用例Stage 2 use cases1、虚拟机设备分配2、带客户操作系统 SMMU 功能的虚拟机设备分配3、媒体保护4、主机隔离

2025-01-05 19:40:59 1402

原创 SMMU软件指南之使用案例(Stage 1使用场景)

一、Stage 1使用场景1、Scatter-gather2、64 位操作系统中的 32 位设备3、操作系统设备隔离4、用户空间设备驱动程序5、用户空间共享虚拟地址 (SVA)

2025-01-05 19:37:58 1162

原创 ARM CCA机密计算安全模型之加密建议

1、加密算法和密钥大小2、后量子准备3、指导3.1 推荐的参数大小3.2 推荐的算法3.3 内存保护

2025-01-05 19:34:35 569

原创 ARM CCA机密计算安全模型之安全生命周期管理

一、固件启用的调试二、CCA系统安全生命周期三、重新供应四、可信子系统与CCA HES

2025-01-05 19:30:57 1339

原创 SMMU软件指南之系统架构考虑

本博客介绍与 SMMU 相关的一些系统架构注意事项

2025-01-04 20:48:47 1710

原创 ARM CCA机密计算安全模型之固件更新

1、远程更新2、本地更新3、鲁棒性

2025-01-04 20:44:02 1089

原创 ARM CCA机密计算安全模型之CCA认证

1、基本的认证流程2、令牌格式和签名方案3、隐私保护认证4、委托的Realm认证5、本地认证

2025-01-04 20:42:16 1032

原创 SMMU软件指南SMMU编程之全局错误和最小配置

一、全局错误二、最小配置

2024-12-22 21:54:53 498

原创 SMMU软件指南SMMU编程之事件队列

如果发生一组配置错误和故障,这些将记录在事件队列中。这些错误和故障包括因设备流量引发的事件,例如:1、当收到设备流量时,发现配置错误2、因设备流量地址引发的页面错误每个安全状态都有一个事件队列。当事件队列从空状态变为非空状态时,SMMU会生成一个中断。队列的结构与命令队列相同,唯一的不同在于生产者和消费者的角色是相反的。在命令队列中,SMMU是消费者;而在事件队列中,SMMU是生产者。

2024-12-22 21:52:50 500

原创 SMMU软件指南SMMU编程之命令队列

SMMU通过内存中的循环命令队列进行控制。例如,当软件更改STE或翻译时,需要在SMMU中失效相关缓存。这可以通过向命令队列发出相应的失效命令来实现。有关命令类型的详细信息,请参见“命令”部分。在SMMUv3.3之前,每个安全状态只有一个命令队列。支持SMMUv3.3的SMMU可以选择支持多个命令队列,以减少多个处理器元素(PE)同时向SMMU提交命令时的争用。

2024-12-22 21:50:49 699

原创 SMMU软件指南SMMU编程之虚拟机结构和缓存

一、虚拟机结构(VMS)二、缓存

2024-12-21 16:15:57 648

原创 SMMU软件指南SMMU编程之上下文描述符

CD(上下文描述符)存储与一级转换相关的所有设置,每个CD占用64字节。CD的指针来自STE,而非寄存器。仅在执行一级转换时需要CD。对于仅需二级转换或绕过的流,仅需STE。CD将StreamID与一级转换表的基地址相关联,以便将虚拟地址(VA)转换为中间物理地址(IPA),适用于每个二级配置。若使用子流,则多个CD表示多个一级转换,每个子流对应一个CD。当一级转换未启用时,带有子流ID的事务将被终止。

2024-12-21 16:13:05 519

原创 ARM CCA机密计算安全模型之固件启动

本节定义了将CCA固件引导至可证明状态的要求和通用流程。安全世界固件和普通世界固件的引导要求不在本规范的范围内。CCA固件包括:1、应用处理单元(PE)的监控安全域和领域管理安全域的固件2、CCA HES固件以及CCA HES主机的受信子系统固件3、CCA系统安全域中其他所有受信子系统的固件CCA平台的实现应遵循 [Boot PSG]。

2024-12-15 18:49:59 967

原创 ARM CCA机密计算安全模型之受保护内存

1、一般威胁模型2、可能的缓解措施3、CCA 使用外部内存4、外部内存初始化5、资产6、基线内存保护配置文件7、内存清理8、额外的内存保护

2024-12-15 18:48:15 874

原创 SMMU软件指南SMMU编程之一级流表描述符和流表项

一、一级流表描述符(L1 Stream Table Descriptor)二、流表项(STEs)

2024-12-14 10:47:28 410

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除