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

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

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

课程地址: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

相关文章
|
6月前
|
弹性计算 供应链 测试技术
计算巢实操合集:软件用户使用服务及供应商进阶管理(系列四)
弹性计算社区推出的面向开发者计算巢成长系列课程已经发布第四期了,本期将围绕软件用户使用服务实操以及供应商进阶管理实操,并且一步步教大家如何利用计算巢完成部署体验。
107663 1
|
Cloud Native Java API
开发第一个gPRC的开发
开发第一个gPRC的开发
63 0
|
存储 安全 Ubuntu
开发第一个可信的应用|学习笔记
快速学习开发第一个可信的应用。
128 0
|
运维 负载均衡 Cloud Native
全部满分!阿里云函数计算通过可信云21项测试
在未来,无论是一方云服务,还是三方应用,所有事件都可被函数计算等服务可靠地处理。
1541 9
全部满分!阿里云函数计算通过可信云21项测试
|
人工智能 自然语言处理 算法
用户地址数据不规范、管理难?阿里云帮您0.1秒解决
近年来,人工智能、大数据、小程序等技术广泛应用,直播电商、社交电商、跨境电商海外仓等模式深化创新。面对新冠肺炎疫情带来的冲击,消费者的消费习惯正在发生改变,以抖音、快手为主的直播平台带来的直播红利快速爆发。在订单的狂欢之后,用户地址杂乱、不规范等问题也让企业花费较大人力、时间成本去解决。基于此,阿里云AI人工智能团队在充分调研市场后,通过超强的NLP算法致力于企业用户地址数据的抽取、结构化、纠错等,实现以人工智能降本增效。
用户地址数据不规范、管理难?阿里云帮您0.1秒解决
|
Android开发 开发者 iOS开发
开放的是平台 改变的是环境
  大风始于青萍之末。   一个虚拟的在线软件商店,很可能改变的是整个行业的生态。   这恐怕是苹果公司CEO乔布斯在萌发App Store(苹果应用程序商店)创意时所始料不及的。眼下,App Store不仅每个月给苹果带来了超过2亿美元的销售收入,而且成为了软件开发公司和个人开发者销售软件的好去处。
1158 0
|
存储 安全 数据安全/隐私保护
下一篇
无影云桌面