排序:
默认
按更新时间
按访问量

trustzone与OP-TEE介绍导读

如果系统芯片支持trustzone技术且支持TEE,那么TEE将在系统中提供一个安全的运行环境,用于保护系统中的重要数据和安全操作。通常一个完成的系统除了有bootloader和kernel,recovery以及上层android系统之外还需要有TEE OS。系统启动的时候使用secure boo...

2017-06-25 14:23:55

阅读数:5947

评论数:24

ARMv8中的异常向量介绍

在ARMV8架构中使用execption level来表示AArch64的执行等级,而在ARMV7架构中则使用PL的方式来进行定义。在ARMv8中ARM核的执行等级划分如下图所示。

2018-03-04 12:45:45

阅读数:272

评论数:0

44. TA镜像加载时的验证

当TA镜像文件已经被加载到共享内存之后,OP-TEE会对该份数据进行合法性检查。对TA镜像文件合法性的检查是通过调用检查镜像文件中的hash值,magic值,flag等值是否合法并对镜像文件中的signature部分做Verify操作是否成功来判定读取到共享内存中的TA镜像文件内容是否合法。整个验...

2017-07-18 15:51:24

阅读数:906

评论数:0

43. TA镜像文件的签名

TA镜像文件的是在OP-TEE工程编译过程中被编译生成,也可以通过单独调用AT目录下的脚本来进行编译,但是前提是OP-TEE工程被完整编译过。编译后会生成原始的TA镜像文件然后使用签名脚本对该文件进行电子签名生成.ta文件,这也就是最终的TA镜像文件。 1. TA镜像文件的编译   编译TA镜...

2017-07-06 19:04:32

阅读数:1030

评论数:3

42. OP-TEE中secure stroage------安全文件的创建

使用secure storage的时候首先就需要创建安全文件并初始化该安全文件。如果在创建安全文件之前,在/data/tee目录下如果没有dirf.db文件,则在创建安全文件之前首先会创建dirf.db文件并进行初始化,而创建的dirf.db文件和安全文件中的初始化数据都会按照相同的格式进分成三个...

2017-06-25 13:19:26

阅读数:955

评论数:2

41. OP-TEE中secure stroage------安全文件中数据的加密操作

secure storage中的安全文件和dirf.db文件都是按照一定的格式保存的,主要由三部分组成:tee_fs_htree_image, tee_fs_htree_node_image以及数据区域块data block。tee_fs_htree_image和tee_fs_htree_node...

2017-06-25 11:59:55

阅读数:534

评论数:0

40. OP-TEE中secure stroage------读写安全文件数据(read and write)

打开了安全文件之后就可以对打开的安全文件中的数据执行读写操作了。在TA中对安全文件进行读写操作是分别通过调用TEE_ReadObjectData和TEE_WriteObjectData函数来实现的,调用之后最终会切换到OP-TEE的kernel space中调用对应的读写接口syscall_sto...

2017-06-24 18:22:35

阅读数:844

评论数:5

39. OP-TEE中secure stroage------安全文件数据的打开过程(open)

secure storage的完整实现不亚于一个小型的文件系统,为方便理解secure storage的实现,假设dirf.db文件和安全文件已经创建和初始化完毕,从对安全文件的Open/write/read/rename等方向入手理解整个secure storage的实现是一个很好的方向,本文将...

2017-06-24 17:31:53

阅读数:1055

评论数:0

38. OP-TEE中secure stroage------安全文件数据格式和操作过程

OP-TEE的secue sotrage功能能够满足用户保存敏感数据的需求,需要保存的数据会被加密保存到文件系统或者是RPMB中,当选择将数据保存到文件系统中时,默认情况下加密后的数据会被保存在/data/tee目录中。secure storage使用二叉树的方式来保存加密自后的文件。   当第一...

2017-06-23 20:12:06

阅读数:996

评论数:0

37. OP-TEE中secure stroage------安全存储使用的key的产生

在OP-TEE中使用secure storage功能保存的数据都是经过AES加密之后被保存在文件系统或者是RPMB中的,使用AES算法进行加密或者解密的时候需要提供加密使用的key和初始化向量IV值。每个TA在使用secure storage功能保存数据的时候都会生成一个随机数作为IV值,使用FE...

2017-06-21 20:12:07

阅读数:1356

评论数:8

36. OP-TEE中secure stroage的使用

secure storage是TEE提供的一种用来存放key, data以及其他数据的功能,上层用户只要调用,TEE就能够将数据进行加密并保存到文件系统或者是EMMC的RPMB分区中,至于将数据是保存到文件系统中还是RPMB中这是需要在编译TEE的时候进行相关的配置,如果产品使用了RPMB分区,建...

2017-06-20 20:40:43

阅读数:1605

评论数:6

35. OP-TEE中基本算法接口调用实现

OP-TEE根据GP标准支持当前主流的基本算法,包括RAS/AES/HMAC/SHA/RANDOM等,本文将介绍在OP-TEE中添加一个TA和CA来调用上述算法的GP接口实现对数据的加密,解密,签名,验签,计算hash值等操作。   在xtest中也有上述算法的接口调用用例,但是查看下来比较零散,...

2017-06-18 15:33:54

阅读数:1325

评论数:20

34. OP-TEE中system call的实现

在GP文档中定义了很多接口,而这些接口大部分都是给TEE中的TA调用的,例如实现AES,RSA,SHA,HMAC,PBKDF等等算法在GP中都有统一的接口,该部分在OP-TEE编译的时候会被编译到libutee.a的库文件中,以备OP-TEE的userspace层面使用。TA中可以通过调用这些接口...

2017-06-16 11:50:59

阅读数:1066

评论数:0

33. secure world对smc请求的处理------invoke command操作在OP-TEE中的实现

在REE侧的CA执行open session成功之后,CA就可以使用获取到的session和command ID调用TEEC_InvokeCommand接口来实现让TA指定特定的command的操作。在REE侧调用TEEC_InvokeCommand接口之后,该函数会将调用时带入的session变...

2017-06-15 11:04:41

阅读数:787

评论数:0

32. secure world对smc请求的处理------open session操作在OP-TEE中的实现

session是CA调用TA的基础,如果CA没与TA之间没有建立session,那么CA就无法调用TA中的任何command。在libteec中通过执行TEEC_OpenSession函数来建议CA与特定TA之间的session的操作,该函数执行时会调用到OP-TEE驱动中的optee_open_...

2017-06-14 18:59:34

阅读数:1066

评论数:3

31. secure world对smc请求的处理------OP-TEE对标准smc(std smc)请求的处理

当在驱动中触发的是标准smc时(std smc),经过monitor模式下程序的处理后最终会调用到OP-TEE中的vector_std_smc_entry来对请求进行处理,该过程与上一文判定是fast smc请求一样。都是进入monitor模式的smc中断处理函数,然后根据a0参数中的bit31来...

2017-06-14 11:28:37

阅读数:822

评论数:0

30. secure world对smc请求的处理------OP-TEE对fast smc请求的处理

在OP-TEE中将所有的smc请求分为fast smc和std smc,monitor模式中通过判定从REE侧传递的第一个参数的bit31是否为1来判定该请求是fast smc还是std smc。fast smc一般会在驱动挂载过程中或者需要获取OP-TEE OS的版本信息,共享内存配置,cach...

2017-06-13 11:39:59

阅读数:834

评论数:0

29. secure world对smc请求的处理------monitor模式中的处理

libteec和tee_supplicant调用接口之后最终会调用到OP-TEE驱动来触发对应的SMC操作。在OP-TEE驱动中触发SMC操作的方法是调用arm_smccc_smc(a0, a1, a2, a3, a4, a5, a6, a7, res)来实现,其中在REE端需要传递給TEE侧的数...

2017-06-12 16:04:28

阅读数:1354

评论数:0

28. OP-TEE驱动篇----tee_supplicant接口在驱动中的实现

在《22. OP-TEE中TA与CA执行流程-------tee-supplicant(一)》一文中介绍了tee_supplicant主要作用,用来实现secure world端操作REE侧文件系统,EMMC的rpmb分区,网络socket操作,数据库操作的需求。tee_supplicant与se...

2017-06-11 19:16:50

阅读数:590

评论数:0

27. OP-TEE驱动篇----libteec接口在驱动中的实现

libteec提供给上层使用的接口总共有十个,这十个接口的功能和定义介绍请参阅《21. OP-TEE中TA与CA执行流程-------libteec介绍》,这十个接口通过系统调用最终会调用到驱动中,在接口libteec中调用Open函数的时候,在驱动中就对调用到file_operations结构体...

2017-06-11 16:35:34

阅读数:780

评论数:0

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