三星KNOX中Trustzone内核完整性动态度量方案(TIMA架构)解析

2024年最全一篇了解TrustZone,2024年最新太现实了 总线上的所有主设备(master)在发起新的操作(transaction)时会设置这些信号,总线或从设备(slave)上解析模块会对主设备发起的信号进行辨识,来确保主设备发起的操作在安全上没有违规。例如:硬件设计上,所有非安全世界的主设备(Non-Secure masters)在操作时必须将信号的NS位置高,而NS位置高又使得其无法访问总线上安全世界的从设备(Secure Slaves),简单来说就是对非安全世界主设备发出的地址信号进行解码时在安全世界中找不到对应的从设备,从而导致操作失败。 阅读详情

三星TIMA方案利用Trustzone安全模块对普通世界操作系统内核提供运行时完整性保护,即使操作系统被攻击者控制,也无法(1)修改原有合法内核代码(2)注入新的内核恶意代码(3)实施return-to-user攻击,将用户空间恶意代码在内核层运行。

这种设计思路的最大挑战在于正常世界对自己的系统资源具有完全的控制权,如物理内存,页表及相应的控制寄存器,一旦操作系统被敌手攻破,完全可以通过修改页表配置改变原有内存访问权限,将只读内核代码段修改为可写,或将位于数据或堆栈区域插入的恶意代码修改为可执行。因此TIMA方案的核心思路是:通过安全的初始化过程使内核代码段在系统初始化后映射为只读,并移除操作系统对自身虚拟内存管理(MMU)相关配置的修改权限(包括页表entry,TTBR寄存器等),页表更新操作只能由安全世界验证并代为执行。


为修改现有的页表映射属性配置,攻击者必须执行以下操作之一来绕过安全世界的监控功能.

1)直接修改当前页表内容,修改监控代码对应页表表项的映射属性为可写;

2) 禁用MMU,直接修改监控代码的物理页面;

3) 篡改页表基址寄存器TTBR的值,使其指向敌手伪造的页表,破坏监控代码页的写保护;

4)将包含监控代码的物理页面映射到可写的虚拟地址,即双重映射攻击;

5)禁用WXN保护,注入重写的系统功能;

6)取消进程用户地址空间的PXN映射属性.


其中,WXN,MMU,TTBR通过CP15安全协处理器的相关控制寄存器设置.由此可见,敌手需要通过修改相应页表表项和相关控制寄存器,来消除虚拟内存保护机制对内核代码区的保护.

修改相关控制寄存器(MMU,WXN,TTBR)的指令和页表更新操作.ARM架构提供专门修改控制寄存器的指令(ldc和mcr),直接将内核代码中的这2类指令替换为smc指令即可.这类监控点触发时,安全世界需确保:

1)所有关闭MMU保护的操作被禁止.

2)所有关闭WXN保护的操作被禁止.

3)对于更新页表基址寄存器(TTBR)的操作,安全世界需首先确保新页表基址与某一合法进程sw_pcb中保存的页表基址一致,即确保此操作发生在正常的进程切换过程中.如果是进程创建后首次调度产生的TTBR切换,安全世界要确保新进程页表内容不违背正常世界地址空间的权限策略,即内核代码区域必须映射为只读,用户地址空间映射必须包含PXN属性,且对于包含内核代码的物理内存,不能以可写方式映射到其他虚拟地址,这要求安全世界记录所有内核代码对应的物理内存页地址.如果上述策略检查通过,则允许TTBR更新操作执行,否则禁止.


对于修改控制寄存器的操作,ARM提供专门的指令,而页表更新的操作是通过普通的内存读写指令完成的,安全世界无法区分内核对于页表的更新和对非页表内存的更新,而在所有内存写操作处插入监控点会导致监控事件频繁触发,严重影响效率,因此不能通过识别内存写指令的方式部署对页表更新的监控点.TIMA借鉴虚拟化技术中影子页表的管理机制,强制所有包含页表的物理内存映射为只读,每次内核更新页表时,将由于页权限错误产生数据中止异常,跳转到异常向量表执行异常处理程序.因此在异常向量表的数据中止异常处插入一个监控点,即可确保所有的页表更新被安全世界拦截.为保证所有页表内存被映射为只读,安全世界需要在TTBR切换和页表更新监控点中加入新的安全策略,即确保所有页表物理内存为只读且不存在可写的多重映射.这要求安全世界在所有页表创建时,记录其物理地址.ARM-Linux默认采用二级页表格式,对一级页表,其创建发生在内核初始化自身页表swap_pg_dir,并尝试将其写入TTBR时,或进程创建后首次调度,进行TTBR切换时.对二级物理页表,其创建发生在一级页表更新事件中,两者都可以被已有监控点拦截,从而确保上述策略能够被安全世界有效验证.页表更新陷入安全世界的流程如下图所示


在数据中止异常监控事件触发时,安全世界需要对3种不同情况分别进行处理:1)当异常由系统正常功能触发时,如进程创建时的写时拷贝机制,安全世界跳转到正常世界相应的处理函数处即可.2)当异常由合法的页表更新请求触发时,如mmap系统调用,安全世界获取调用参数代替内核完成页表更新操作.虽然页表内存在正常世界中映射为只读,但2个世界具有独立的地址空间映射,安全世界可以将正常世界物理内存映射到自身地址空间中进行修改,因此可以代理页表更新操作.3) 对于其他页表更新请求,安全世界需执行与TTBR修改操作相同的策略检查.安全世界可以读取正常世界的错误地址寄存器(data fault address register, DFAR),错误状态寄存器(data fault status register, DFSR)来获取出错地址和错误类型,以此区分上述3种情况.

综上所述,需要在正常世界内核中插入2类监控点:控制寄存器修改(MMU,WXN,TTBR),数据中止异常,设置相应页表映射权限策略,即可确保内核代码的运行时完整性保护.



Qualcomm平台下基于QSEE的指纹识别方案移植之一简介 在网上能找到关于TEE相关的资料极少,因此把工作中遇到的相关技术及问题记录下来,备忘。 Qualcomm平台下基于QSEE的指纹识别方案移植系列文章仅叙述移植的过程,不深入技术的讨论。   1. QSEE是什么?  QSEE可以理解为一个小的操作系统,Linux的跟内核一样。跟Linux的内核相比,它的安全级别更高.QSEE是高通提供的TEE环境。 2.为什么要引入QSEE? Andr... 阅读详情

相关推荐

三星基于TrustZone的解决方案knox说明文档

介绍三星的安全解决方案的白皮书,是基于TrustZone的,了解一下

TrustZone——系统产品

学习TrustZone技术有段时间了。从去年三星和HTC推出TZ技术的手机,苹果推出A7的5S。都包含了TZ技术。 今年部分解决方案的资料已经出现了。 三星的knox和苹果的secure enclave。都是基于TZ技术的系统级产品。 knox更加偏重企业应用。主打产品,企业用户认证和企业应用安全。它的技术白皮书标题“Meet evolving enterprise mobility cha

TrustZone领域先行者 4267

Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

---------------------------------------------------Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

2020全网最全Apache Knox实战总结

最近一个月在研究Apache knox,谈不上精吧,或多或少有些心得 截止目前,knox最新版本为1.4,实践过的版本有1.3、1.1、1.0、HDP下的1.0.0.3-78、0.12等,每个版本在组件UI跳转这块都有些问题。 自己在HDP3.1下安装的Knox_1.0.0.3-78版本下进行修复后,形成了一个比较稳定的版本,如有需要可以私信我 现在花点时间将此次knox之行进行总结 如有问题欢迎讨论

gaofeng的博客 1万+

CS5511芯片实战:如何用DP转LVDS驱动高刷显示器(附配置代码)

本文详细解析了CS5511芯片在DP转LVDS高刷显示器驱动方案中的应用,包括核心架构、寄存器配置、时序优化及典型问题排查。通过实战案例和配置代码,帮助开发者快速实现120Hz高刷新率显示,特别适合医疗影像和工业HMI等严苛场景。

m3n5b7v8c9x的博客 1075

Halcon相机标定实战:从参数设置到精度优化全解析

本文详细解析Halcon相机标定的全流程,从基础概念到实战技巧,涵盖参数设置、精度优化及常见问题解决方案。通过实际案例和代码示例,帮助读者掌握工业视觉项目中相机标定的关键技术,提升测量精度和系统稳定性。

weixin_29279153的博客 320

动态度量,内核获取代码段方式

获得内核函数地址的四种方法 获得内核函数地址的四种方法 本文以获取内核函数 sys_open()的地址为例。 1)从System.map文件中直接得到地址: $grep sys_open /usr/src/linux/System.map 2)使用 nm 命令: $nm vmlinuz | grep sys_open 3)从 /proc/kallsyms 文件获得地址: $cat /proc/kallsyms | grep...

mjfh095215的专栏 785

BitLocker加密盘解密实战:从隐藏分区到密钥恢复的全过程

本文深入探讨了BitLocker加密盘在密钥丢失或遗忘情况下的解密实战方法。文章系统性地介绍了从理解加密机制、制作取证镜像,到深度扫描隐藏分区、分析内存转储寻找密钥残留,最终利用恢复密钥解锁加密卷的全过程。重点剖析了非标准恢复路径,为数据恢复和数字取证工作提供了专业的技术框架和实战思路。

weixin_29268385的博客 332

动态度量 linux,扩展Linux完整性度量IMA/EVM到Android

1.完整性度量概述运行时的系统完整性由系统的访问控制机制保证,如DAC(Discrete Access Control, 间接访问控制)/MAC(Mandatory Access Control, 强制访问控制,如SELinux, Smack)。DAC/MAC无法检测文件的离线修改;加密文件系统可以保护非法访问,但开销大,效率相对较低。完整性度量,将文件内容和文件的属性/扩展属性,通过加密哈希生...

weixin_39926540的博客 1497

模型算力需求估算

(Billion Parameters,简称B)和训练/推理的计算任务复杂度,结合硬件计算能力(例如每秒浮点运算次数,FLOPS)来估算。以下是详细的方法和公式说明,以及实际的计算示例。算力需求的估算依赖于参数量、模型架构及硬件性能,结合训练/推理场景的特定要求来计算。通过上述公式和示例,我们可以定量分析不同任务的算力需求,并合理配置硬件资源以优化运行效率。结论:推理任务相对较轻,单台H100可以在30秒内完成此任务。推理算力需求一般远低于训练,因为只需要执行前向传播。,可以将训练时间缩短到约。

形上得其象,形下合于数;阴阳自济,玄理自明。 8950

GNSS气象学入门:从ZTD到PWV的水汽反演全流程解析(含精度评估)

本文详细解析了GNSS气象学中从ZTD到PWV的水汽反演全流程,包括基础概念、反演原理、数据处理步骤及精度评估方法。通过PRIDE软件和MATLAB代码示例,展示了如何高效提取ZTD数据并结合ERA5气象数据进行PWV计算,为气象研究和业务应用提供了实用指南。

weixin_28707365的博客 572

浅谈三星KNOX安全解决方案

TEE

baron-周贺贺-代码改变世界ctw 1585

芒果YOLOv8改进52:主干Backbone篇之GhostNetV2:提出原创GhostNetV2 架构升级版:引入长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干,打造高效轻量级检测器

长距离注意力机制增强廉价操作,打造轻量级检测器

包括YOLOv5、YOLOv7、YOLOv8等模型改进 1611

从0到TrustZone第一篇:探究高通的 SEE(安全可执行环境)

转载:http://www.freebuf.com/articles/system/103152.html 在本篇文章中,我们将讨论高通安全执行环境(QSEE)。 之前讨论过,设备使用TrustZone的最主要的原因之一是它可以提供“可信执行环境(TEE)”,该环境可以保证不被常规操作系统干扰的计算,因此称为“可信”。 这是通过创建一个可以在TrustZone的“安全世界”中独立

Share 1万+

hadoop 切片机制详解

hadoop切片机制详解

congge 1万+

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1241

trustZone初探(一)

trustZone初探(一) 转载自http://blog.sina.com.cn/s/blog_4ce016230102v7no.html 最近在搞trustzone,把arm的例子程序成功在某Cortex-A9的处理器上跑起来,趁着手热记一些东西。 1.Truztzone和已有trust computing比如TPM技术的区别。 trustzone并没有打算取代TPM,

A307294185的专栏 1367

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

从0到TrustZone第三篇:从QSEE劫持Linux内核

转载:http://www.freebuf.com/vuls/104733.html 本系列文章 在前一篇文章中,我们介绍了QSEE的漏洞及利用,接下来让我们将重点转移到QSEE shellcode。 之前讨论过,QSEE可以被提权——这里的提权不仅包含直接与TrustZone内核交互并访问硬件——安全的TrustZone文件系统(SFS),也包括一些系统内存的直接访问形

Share 4227

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

三星 Galaxy S4 全面精简列表详解及三星KNOX所有组件。

以下内容仅供参考,删除需谨慎,后果需自负! 建议把精简的APK移动到SD卡,以备出错用来恢复。 注:红色字体代表本人精简的文件。 建议保留任意一个字体(推荐楷体字体),否则锁屏界面不再显示(心意合一)字样 AccessControl 互动控制,不可删 AccuweatherPhone2013 系统自带的天气组件,可删 AirMotionTryActually.apk Al

nick_fire的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

三星knox

knox集成在bootloader里了,可以记录强制刷recovery或root的次数(对kernel和recovery的签名进行校验。非官方版本即导致保修失效)。 knox应该是使用了MobiCore的TEE软件。see http://www.sensepost.com/blog/9114.html TEE driver的code是开源的。https://code.google.com/p/

lognbow的专栏 1043

arm-2014.05 编译三星内核错误 “not support ARM mode ‘smc 0’ ”

(1)arch/arm/mach-exynos/include/mach/smc.h文件: 在第54行和第69下面添加: __asm__ volatile ( ".arch_extension sec\n" "smc 0\n" : "+r"(reg0), "+r"(reg1), "+r"(reg2), "+r"(reg3

光明顶魔教工程师 603

TrustZone——市场普及——TEE组成部分浅析

近几年,随着苹果支付、三星支付、支付宝普及、华为支付、小米支付的普及,基本代表从2012年从三星推出S3。然后是KNOX,苹果支付入华,支付宝和微信大面积线下推广。今年华为和小米退出各自的支付。逐渐证明着安卓市场TrustZone技术的普及。尽管也暴露了几个漏洞,市场还是在往前走着。就连北京公交集团,明年计划支持各种支付,推广中国公交一卡通,俨然一张公交卡走遍中国都不怕的节奏。目前首批计划支持京津

TrustZone领域先行者 7801

Knox的安装与部署(五)

说明:Knox组件在安装HDP时已通过Ambari自动安装了,如下步骤主是为Ambari与Ranger配置Knox的SSO 5.1 为Ambari设置Knox SSO 本节描述如何配置Ambari来使用Knox SSO(单点登录)来验证用户。通过这种配置,试图访问Ambari的未经身份验证的用户将被重定向到Knox SSO登录页面进行身份验证。 1、ambari-server setup-sso

Stay Focused And Work Hard !!! 1万+

TrustZone——Android的救星?

背景知识 安卓手机太不安全了。我觉得敢在安卓手机上,使用手机银行的算是勇者了吧。在安卓手机上,如果root了,基本上没有秘密可言了。各大公司的APP,各个比较好用的APP或游戏,都会获取到很多游戏。做研发的同事都明白,为什么开发个跟通讯录一点关系没有的软件就要访问通讯录?微博,微信,360哪个不是?哪个程序都在后台悄悄的运行着几个线程。也许说的夸张,其实99%的android开发者应该都明白。相

TrustZone领域先行者 2万+

一篇了解TrustZone

这篇文章源于老板想了解TrustZone,要求我写一篇文章简单介绍TrustZone的原理。既然是给领导看的,只介绍原理哪里够,因此也添加了公司自己现有TEE环境的设计、实现和发展,也顺带加入了一些题外话。也是因为要给领导看,所以文章也不能涉及太多技术细节,包括TrustZone模块的详细设计以及示例代码等,所以只从总体上讲解了什么是TrustZone,TrustZone是如何实现安全隔离的、Tr...

洛奇看世界 8万+
上一篇: Trustzone安全内核Open Virtualization SierraTEE向Xilinx ZC702移植手册
下一篇: (TrustCom 2015)基于Trustzone的智能手机双因子认证通用安全架构
zhyjunFov
博客等级 码龄18年 17粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值