Trustzone
文章平均质量分 72
Q7318
目前在进行trustzone的技术实现,如有技术问题,欢迎私信。
展开
-
OP-TEE xtest 功能记录
现有的用于测试的xtest TA(Trusted Application)共有8个,分别涵盖了内核测试、内部API测试、客户端API测试、加密测试、创建失败测试等方面,笔者对各测试功能进行统计,用于对TA以及OP-TEE的学习。xtest已经成功在HIKEY、QEMU、FVP等平台上运行通过。 根据optee_test/host/xtest/目录下的xtest_main.c文件获知,xtest共有原创 2016-03-29 17:30:38 · 7493 阅读 · 6 评论 -
OP-TEE 简易驱动编写:启动TZPC与TZPCDEP
继续进行驱动开发,在上一篇文章中完成了对寄存器的读写,Hikey soc 中对Trustzone IP核是支持的,但在官方文档中并未对三个IP核的寄存器地址进行定义和使用,所以需要自行编写驱动用以初始化TZPC和AXI-APB总线桥信号寄存器的外围设备时钟,代码如下,可以参考OP-TEE的core/driver/目录下的pl011.c代码:一.定义头文件在/devel/optee/optee_os/原创 2016-05-04 10:38:55 · 4315 阅读 · 7 评论 -
Hikey OP-TEE Helloworld.TA移植和运行
一.获得Helloworld的TA源码 将TA源码下载到OP-TEE工程目录下,一般为/devel/opteegit clone https://github.com/jenswi-linaro/lcu14_optee_hello_world.git optee_helloworld cd optee_helloworld当然参照optee_test的TA程序也可以自行编写,这里使用官方人员编写原创 2016-04-19 13:56:01 · 5274 阅读 · 17 评论 -
OP-TEE在HIKEY上的编译、运行与测试
笔者使用的是UBUNTU14.04 版本,OP-TEE官方的方法尝试失败,故采用如下方法移植成功: 1. 新建目录并下载相应交叉编译器,并设置环境变量。mkdir arm-tc arm64-tctar --strip-components=1 -C ${PWD}/arm-tc -xf gcc-linaro-arm-linux-gnueabihf-4.9-*_linux.tar.xztar --原创 2016-03-23 11:33:33 · 6667 阅读 · 5 评论 -
Intel SGX 技术初探
最近公司需要开发一款使用intel 的移动终端,需要用到SGX技术,特此将调研和整理的相关资料放置于下,欢迎交流。一、SGX技术背景1.1 SGX技术定义SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)的一个扩展,用于增强软件的安全性。这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个encl原创 2016-10-20 17:13:22 · 43588 阅读 · 5 评论 -
OP-TEE TA:读写寄存器数据
最近想为OP-TEE的Trusted OS开发一个触摸屏驱动,在查询代码的时候发现直接调用TA修改TZPC寄存器的值是不可行的,原因是user TA的运行采用了沙盒机制,所以无法直接访问寄存器所映射的物理地址。所以在查看了相关资料后,总结出如下方法用以解决此问题。一. 编写static TA在/optee_os/core/arch/arm/sta目录下新建一个sta_reg.c文件,作为一个新的st原创 2016-04-27 15:49:54 · 5417 阅读 · 0 评论 -
HIKEY OP-TEE切换UART运行状态
已经实现了UART的安全状态的切换。打算基于此继续开发OPTEE_OS相应的各类驱动。 一.资源准备OPTEE工程源码:OPTEE官网 注意:根据说明下载hikey_debian的代码版本。二.实现方法1.新版本的Hikey_Debian的代码版本带有helloworld的样例TA,可以修改为调用静态TA,当然也可以自行编写TA调用静态TA,调用方法前文讲述过了,不再累述。2.下载OPTEE工程原创 2016-08-05 14:12:32 · 2611 阅读 · 0 评论 -
FSL i.MX6 UltraLite EVK OP-TEE的移植
由于HIKEY板对于TZPC寄存器控制位的相关资料不全,所以正在使用飞思卡尔的FSL i.MX6 UltraLite EVK Board平台,用以继续开发并应用Trustzone技术的TZASC。一. 前期准备:U-BOOT代码:git checkout 4f016adae573aaadd7bf6a37f8c58a882b391ae6git clone https://githu原创 2016-12-26 17:17:17 · 4143 阅读 · 5 评论 -
Trustzone OP-TEE 在QEMU平台上的编译、运行与测试
一.OP-TEE介绍 TEE背后的基本思想就是将和安全服务提取到独立的安全环境中去运行,当主系统有安全相关的操作时,通过发动请求到安全环境获取系统预定义的服务。基于此OP-TEE可以分为三个部分,TEE客户端和用来和安全环境通讯的TEE驱动,这2个部分都运行在主系统(Android/Linux…),运行在安全环境中的TEE OS以及在上面的安全应用,具体参见下图。 引用于ARM中文社区 二原创 2016-03-01 17:11:22 · 8199 阅读 · 33 评论 -
TrustZone OP-TEE 在 FVP 编译与测试
一. 前期准备源代码下载 : 使用repo来下载项目源代码$repo init -u https://github.com/OP-TEE/manifest.git -m ${TARGET}.xml [-b ${BRANCH}]$ repo sync我们使用的TARGET 为FVP.xml BRANCH为master 使用以下命令来下载编译器: 注意:下载路径不建议修改make toolc原创 2016-03-18 15:38:21 · 3451 阅读 · 7 评论 -
OP-TEE设计结构(二)
5. MMU翻译表 OP-TEE使用多个L1层次下的翻译表,一个大的(4G)的和两个或两个以上的小的翻译表(32MB)。大翻译表处理内核模式映射,匹配在小翻译表所包含之外的所有的地址,小翻译表是按每一个线程分配的,并覆盖了一个大的虚拟内存空间的映射。 存在于大小翻译表之间的存储空间由TTBRC进行初始化,TTBR1总是指向大的翻译表。TTBR0在用户映射活跃时指向小的翻译表,若用户映射当前为未翻译 2016-03-21 15:24:29 · 3003 阅读 · 0 评论 -
OP-TEE笔记之OPTEE__OS文件结构
1.根目录下 /core:此目录下文件仅被使用于构建TEE核心 /lib:此目录下文件被用来构建TEE核心和辅助工具 /ta:此目录下文件仅被使用于构建辅助工具 /mk:构建系统的编译文件(Makefile) /tmp-stuff:临时进行存储,在最后编译完成之前将会被删除 /scripts:多种任务的帮助脚本 /out:如果创建命令中存在O=…的时候在此目录下进行创建 2./cor原创 2016-03-09 15:45:59 · 4129 阅读 · 0 评论 -
TrustZone软硬件架构
第一章TrustZone的硬件结构1. 系统结构TrustZone硬件架构旨在提供安全框架,从而使设备能够抵御将遇到的众多特地威胁。 TrustZone技术可提供允许SoC设计人员从大量可在安全环境中实现特定功能的组件中进行选择的基础结构,而不提供固定且一成不变的安全解决方案。 架构的主要安全目标是支持构建可编程环境,以防止资产的机密性和完整性受到特定的攻击。具备这些特性的平台可用于构建一组翻译 2016-04-01 13:01:22 · 9415 阅读 · 1 评论 -
OpenVirtualization otzon 学习笔记
目录一、文件目录secure_api.hint open_session_from_ns (void *param) 调度命令方法处理来自于非安全世界的建立对话(通信)的请求int close_session_from_ns (void *param) 调度命令方法处理来自于非安全世界的关闭对话(通信)的请求int open_session_from_secure (int原创 2016-02-23 10:46:25 · 839 阅读 · 1 评论 -
OP-TEE笔记之TEECORE的启动过程
TEECORE的启动代码在路径/optee_os/core/arch/arm/tee/下的init.c,我们来分段解读以下:#define TEE_MON_MAX_NUM_ARGS 8首先定义了一个宏来设定TEE的最大参数个数extern __initcall_start, __initcall_end;外部链接的数据类型initcall_t的两个变量指针,用于指向初始化调用的起始地址和终止原创 2016-03-09 16:41:01 · 3171 阅读 · 0 评论 -
OP-TEE设计结构(一)
OP-TEE design目录介绍平台初始化安全监视器调用函数-SMC SMC操作SMC接口使用SMC接口进行通信线程操作 Translation tablesTranslation tables and switching to normal world存储管理单元(MMU)堆栈共用存储器(shared memory)Pager加密抽象层TEE所使用的库(libute翻译 2016-03-10 09:25:07 · 9150 阅读 · 0 评论 -
IMX6UL EVK OP-TEE SET TZASC ENABLE
一.准备工作 配置IMX6UL EVK平台并将OP-TEE移植到此平台中。 二.具体实现 1. 编写运行于linux非安全世界的地址访问程序,并将其放置到IMX6UL 文件系统/home/root路径下。 创建一个简单的程序test_mem.c,代码如下:#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#incl原创 2017-03-17 13:20:21 · 2172 阅读 · 5 评论