开发第一个可信的应用|学习笔记

简介: 快速学习开发第一个可信的应用。

开发者学堂课程【阿里云物联网安全:开发第一个可信的应用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/570/detail/7773


开发第一个可信的应用

 

内容介绍:

一、课程回顾

二、SDK 包结构

三、CA TA 样例流程

四、CA XOR 源码

五、TA XOR 源码

六、添加 TA

七、运行 CA_XOR


一、课程回顾

TEE CAP 是纯软件实现的,可以在通用的平台中使用,无需系统底层软件的修改,因此 TEE CAP 是学习 TEE 安全应用开发的最方便工具。我们提供 top6平台的试用版 SDK 供大家下载,运行环境为 open Ubuntu 16.04,只可以运行单个 TA,CA 和 TA 的单次运行数限制在200条以内。

 

二、SDK包结构

从网站上下在 Link_TEE_CAP_SDK,解压后有四个文件夹。

1、apps

apps 包含两个 CA、TA 示例源码和编译脚本,xor 是简单的 CA/TA 交互示例源码,sst 是安全存储的示例

2、ntws

ntw 包含 TEE Client api 文件的 dee 以及 CA 运行所需要的动态库之一 libtee_client.so;tw 包含 TEE Internal api 的头文件、编译脚本 libtee internal 静态库和用来添加 TA 的 tee_srv_table.c,

3、tw

tw 目录用来将 TA 和 tee os 联合编译为 libtee.os 动态库。

4、out

Out 目录用于存放编译后生成的两个动态库,litee_client.so 和 litee_internal.so

 

三、CA TA 样例流程

1、创建 Context

TEE_lnitializeContext(&context,…)

2、创建 CA/TA 会话

TEEC_OpenSession(&context,$session,…)

3、CA 发送命令

TEEC_InvokeCommand(&session,CommandId,operation,…)

4、返回结果

Result=TEEC_InvokeCommand

5、关闭 CA/TA 会话

TEEC-CloseSession(&session)

6、清空 Context

TEEC_Finalize(&context)

 

四、CA XOR 源码

//初始化 Context

result = TEEC_ _lnitializeContext(NULL, &context);

//初始化 Session

result = TEEC_ OpenSession(&context, &session,

&_ g_ _uuid_ xor, TEEC_ LOGIN_ USER, NULL, NULL, NULL);

//1设置 Operation 输入参数

operation.paramTypes = TEEC_ PARAM_ TYPES(

TEEC_ VALUE_ INPUT, TEEC_ _VALUE_ INPUT,

TEEC_ VALUE_ OUTPUT, TEEC_ _NONE);operation.params[0].value.a = a;operation.params[1].value.a= b;operation.params[2].value.a = c;
//发送命令

result = TEEC__InvokeCommand(&session, CMD _XOR, &operation, NULL);

//获得结果
C = operation.params[2].value.a;

 

五、TA XOR 源码

//检查 operation 参数

if (TEE_ PARAM_ TYPES(

TEE PARAM_ TYPE_ VALUE INPUT,

TEE_ PARAM_ TYPE_ VALUE_ INPUT,

TEE_ PARAM_ TYPE_ VALUE_ OUTPUT,

TEE_ PARAM_ _TYPE_ NONE) != paramTypes){

return TEE_ ERROR_ BAD_ PARAMETERS;

}

if (CMD_ XOR != commandlD) {

return TEE_ ERROR_ BAD_ PARAMETERS;

}

//汁算 c=a^b

params[2].value.a = params[0].value.a л params[1].value.a;

TEE_ Print("xor result 0x%08xIn", params[2].value.a);

return TEE_ SUCCESS;


六、添加 TA

tee_ srv_ table.c

//添加 xor ta 头定义

/* TEE registered srv table */

tee_ srv_ head_ t* tee_ _srV_ table[TEE_ _MAX_ SRV_ _NUM]={

&xor_ srV_ head,

NULL,

};

tw/Makefile

//添加 ta 源文件

SRCS := ./src/tee_ srv_ table.c \

../apps/xor/tw/ta_ xor.c

编译 libtee_internal.so

运行 tw/build_ta.sh 生成 out/libtee_internal.so


七、运行 CA_XOR

编译运行 ca__xor

shell $ cd apps/xor/ntw

shell $ make

shell $ LD_ LIBRARY_ PATH= ../../out ./ca_ xor

运行日志

<TEE_ CLI> I Alibaba Cloud Link TEE-CAP

<TEE_ CLI> I Client API Version: 1.2.0

<TEE_ CLI> I Mode: trial

<TEE_ CLI> I Platform: GENERAL

<TEE_ SEC> I Alibaba Cloud Link TEE-CAP

<TEE SEC> I Internal API Version: 1.2.0_2019_2_2_17:10

<TEE_ SEC> I Mode: trial

<TEE_ SEC> I Platform: GENERAL

<TEE_ SRV> xor result 0x00000001

a= 0;b= 1; c= a^b: 1

注:

<TEE_CLI>为 CA,<TEE_SEC>为 TEE OS,<TEE_SRV>为 TA

相关文章
|
算法 安全 芯片
OP-TEE中的密码学算法
OP-TEE中的密码学算法
341 0
|
11月前
|
移动开发 JavaScript HTML5
HTML5实现2025雪花飘新年倒计时源码
2025年即将到来,此源码页为单html纯代码,新年倒计时,背景雪花飘落效果,倒计时时间日期在JS/app.js文件第21行代码自行修改即可!
497 7
|
SQL 前端开发 API
前端登录流程
前端登录流程
381 0
|
存储 数据安全/隐私保护 云计算
带你了解文件系统架构的演变:从传统到分布式
带你了解文件系统架构的演变:从传统到分布式
749 0
|
Arthas 负载均衡 网络协议
Tomcat连接之KeepAlive逻辑分析
Tomcat连接之KeepAlive逻辑分析
733 1
|
Shell Linux
linux通过namespace技术实现user用户隔离的例子
在Linux中,可以使用namespace技术实现用户隔离。下面是一个简单的示例,演示如何使用namespace隔离用户。 1. 首先,我们可以创建一个新的用户和组。使用以下命令创建一个新用户和组: ```shell sudo useradd -m testuser ``` 这将创建一个名为testuser的新用户,并为其创建一个相应的用户目录。 2. 接下来,我们将在新的用户namespace中启动一个新的bash Shell。运行以下命令: ```shell sudo unshare -U /bin/bash ``` 该命令将创建一个新的用户namespace,并在该names
1010 0
|
网络协议
【产品快讯】阿里云DNS积极拥抱和贡献国际DNS技术社群
阿里云DNS正式加入国际DNS-OARC组织。 域名系统运行分析研究中心(DNS-OARC)是全球领先的非营利性的域名技术研究组织,集结了业界领先的公司和顶级域运营机构、研究机构。共同研究、分析和推动互联网寻址技术的发展。旨在促进大家对DNS基础网络的理解以及构建安全、稳定的网络环境。
|
分布式数据库 Hbase Shell
|
5天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
11天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾