TrustZone——Android的救星?

本文探讨了安卓手机的安全性问题,指出root操作带来的隐私风险,并介绍了TrustZone技术作为解决之道。TrustZone技术已应用于三星和苹果手机,提供支付、应用和文件安全。文章深入分析了TrustZone技术原理及其在不同层面的应用。

背景知识

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

2013年,参加了软件开发者大会。听了《Android软件安全与逆向分析》非虫的演讲和瞬间微博的账号和密码就能被读取的演示。感觉安卓手机没法用了。

非虫给了几点建议。

1.不要root自己的手机

2.从正规应用商店下载APP

 

相关新闻

2004年,ARM建立安全功能标准,推出TrustZone技术

2013年,王骏超: 基于Trustzone技术的手机安全平台及移动支付方案

 

我拿什么拯救

在任何一个系统,被很多技术屌丝熟悉之后。系统的安全性就很难保证了,尤其是纯软件的东西。所有的安全公司都在寻找着,一个救世主。不过基本都是最后把密钥存储到CPU中了事。单个硬件破解成本远远大于,重新购买一个新设备。索尼PSP、PSV的CPU,还有近几年提出的“安全芯片”基本都是这样的。由于现在的手机厂商都是SOC。所以,在不在CPU里并不重要,一起掩模到SOC中。99%的破解者就不会朝这边努力了。

安全芯片推广有两个难题,就是硬件一旦密钥丢失,或者损坏,必须更换整个主板,成本是个问题;另外就是运行时,无法得到保证,无法挡住其他进程窥探(就像边上色狼偷看MM)。

如果一个部分是黑盒,与网络部分的通讯进行加密。基本上就算是很高的安全级别了。现实中的例子就是,游戏客户端与服务器中间加密传输,游戏客户端使用代码扰乱或其他防止调试手段保护软件被反编译破解,再加上定期更新就非常安全了。其实TrustZone就是那个黑盒。

 

TrustZone出现了,救世主出现了。依靠ARM指定标准。各大厂商配合。未来前景一片大好。

我们看一下,用户眼中的TrustZone。就是支付安全了,应用安全了,文件视频也安全了。

 

我们在看看技术屌丝眼中的TrustZone。是不是各位美女觉得很专业?

有木有想了解这个神秘技术?有木有想了解一下,这个技术会不会改变这个世界?也许就会发生在不久的将来。

其实TrustZone技术已经包含在三星和苹果的手机中了。GalaxyS3欧版和Iphone5s的SecureEnclave。

这个技术能找到的资料非常少。各位看官,不用浪费时间搜索了。等我慢慢揭开TrustZone的神秘面纱吧。

### BL31与TrustZone的关系 BL31是ARM Trusted Firmware(ATF)的一部分,负责在ARM TrustZone架构中实现安全世界与非安全世界之间的切换。BL31运行在EL3(Exception Level 3)级别,是系统启动流程中的一个关键组件,主要用于建立安全监控环境,使得安全世界与非安全世界之间的通信和切换成为可能 [^4]。 在TrustZone架构中,系统被划分为安全世界和非安全世界,分别运行在不同的执行状态。BL31作为EL3运行时软件的核心部分,负责在系统启动时初始化EL3的运行环境,并为后续的安全世界(如BL32)和非安全世界(如Linux内核)提供安全监控服务 [^1]。 ### BL31在ARM安全架构中的作用 BL31的主要作用包括以下几个方面: 1. **SMC(Secure Monitor Call)处理** BL31实现了SMC接口,用于处理来自非安全世界的请求。当非安全世界需要访问安全世界中的资源时,它会通过SMC指令触发异常,进入EL3级别,由BL31接管处理。BL31根据SMC指令中的功能标识符(FID)将请求路由到相应的处理函数,从而实现安全世界与非安全世界之间的交互 [^5]。 2. **PSCI(Power State Coordination Interface)支持** BL31包含PSCI模块,用于管理处理器的电源状态,包括处理器的挂起、恢复、上下电等操作。该模块在系统运行过程中对多核处理器的状态协调至关重要 [^4]。 3. **EL3运行时环境初始化** BL31在系统启动过程中负责初始化EL3的运行时环境,包括设置异常向量表、配置寄存器、建立安全监控模式等。这一初始化过程确保了BL31能够作为安全世界与非安全世界之间的桥梁 [^4]。 4. **世界切换调度** 在系统启动流程中,BL2会加载BL31、BL32(安全OS)和BL33(非安全OS,如Linux内核)到内存中,并将控制权交给BL31。BL31随后会调用BL32进行安全OS的初始化,并在适当的时候切换到BL33,使非安全世界开始运行 [^2]。 5. **安全世界服务路由** BL31中的SMC接口会根据SMC指令的FID将请求路由到不同的服务处理函数。例如,某些请求可能需要调用OP-TEE的SMC处理程序,而另一些请求可能由Trusty或其他安全OS处理。BL31通过SPD(Secure Payload Dispatcher)模块实现这一路由功能 [^5]。 ### 示例代码:BL31中的SMC处理逻辑(伪代码) 以下是一个简化的BL31中SMC处理逻辑的伪代码示例,展示其如何根据SMC FID路由请求: ```c // 伪代码:BL31 SMC处理逻辑 void smc_handler(uint64_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4, void *cookie) { switch (smc_fid) { case SMC_FID_PSCI_CPU_SUSPEND: psci_cpu_suspend(x1, x2, x3); break; case SMC_FID_PSCI_SYSTEM_OFF: psci_system_off(); break; case SMC_FID_OPTEE_CALL: optee_smc_handler(x1, x2, x3, x4, cookie); break; case SMC_FID_TRUSTY_CALL: trusty_smc_handler(x1, x2, x3, x4, cookie); break; default: // 未知的SMC请求 smc_return_unknown(); break; } } ``` ###
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值