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

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

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

课程地址: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中的密码学算法
477 0
|
存储 安全 Linux
Android安全启动学习(四):device-mapper-verity (dm-verity)和哈希树
Android安全启动学习(四):device-mapper-verity (dm-verity)和哈希树
1107 0
|
3月前
|
JSON 监控 API
解析得物商品详情:API 接口调用实践与数据结构分析
本文详解得物平台商品详情API:涵盖GET请求方式、核心参数(productId/skuId)、JSON响应结构(含价格、库存、规格、图片等),并提供Python调用示例及频率限制、错误处理、合规使用等关键注意事项。(239字)
416 0
|
监控 数据安全/隐私保护 Python
ERP系统中的资产管理模块详解
【7月更文挑战第25天】 ERP系统中的资产管理模块详解
1416 4
|
Linux 网络安全 数据安全/隐私保护
Jun 03 14:50:45 nodeName sshd[60215]: Accepted password for root from 192.168.0.100 port 15612 ssh2 如何关闭这个连接
【6月更文挑战第6天】Jun 03 14:50:45 nodeName sshd[60215]: Accepted password for root from 192.168.0.100 port 15612 ssh2 如何关闭这个连接
335 2
|
安全 物联网 数据安全/隐私保护
基于证书的物联网设备安全认证(上)
在当前物联网发展的过程中,越来越多的企业开始接受物联网,拥抱物联网。随着应用的普及,行业也对设备安全有了更高的要求。如何保障设备合法未被冒用,如何保障设备与服务端通道安全可靠,能否对通信数据进行业务层面的加密,都是从业者们频繁面对的问题。本文将介绍一种基于PKI整数体系认证设备,确保设备合法的方式
|
Go 开发工具 git
在Visual Studio Code中配置GO开发环境
一、GO语言安装 详情查看:GO语言下载、安装、配置 二、GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github.
2181 0
|
15天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34808 42
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)