sptee
tee程序
62.234.166.247:/home/ubuntu/TeeService是最新调试成功的程序
需要打包到Docker镜像
TeeService运行在Docker容器,需要映射两个目录
配置conf/tee_service.conf
#文件系统API端口,
HttpPort=8020
#密钥管理中心
KeyStoreService=https://localhost:12083
#管理界面,应该是宿主机家欢的web服务地址
MgrService=http://localhost:8888/tee/findTee?id=%d
#应用程序下载路径,git映射到本地的程序放置路径
AppHome=/opt/share
#zookeeper,应该执行
ZooKeeper=localhost:2181
#镜像存储路径,映射到docker容器的路径
OcclumImages=/mnt/images
启动执行start.sh
--- 接口说明 ---
1.创建Tee节点镜像:
URI:/
Post:{"name":"newTee","teename":"occluminstance1","memory":500}
Return:{"code":0}
//teename:镜像目录名,不同节点不能重复
//memory: Occlum镜像运行内存(500-10000)M
2.初始化Tee节点:
URI:/Init
Post:{授权文件的Json内容},
Return:{"code":0,"entity":"1"}
3.更新核心程序至Tee节点镜像:
URI:/
Post:{"name":"updateTee","pid":1,"path":"app1","cmd":"./start.sh","sign":"32rdsdskdjsd"}
pid:可信核心程序唯一标识
Path: 进程放置在git上的根路径
cmd:启动命令,系统以打包时提交的路径(如:/app1)为程序工作目录,cmd是/app1下的启动脚本
Sign: Hash签名
Return:{"code":101,"pid":1,"data":"执行的所有过程信息"}:异步执行中间状态,请稍后重试,直到!=101
Return:{"code":501,"pid":1,"data":"执行的所有过程信息"}:标识pid=1的程序已经被打包到镜像
Return:{"code":0,"pid":1,"data":"执行的所有过程信息"}:成功
Return:{"code":500,"pid":1,"data":"错误信息"}:成功
4.启动镜像中的核心程序:
URI:/
Post:{"name":"runProgram","pid":1}
Return:{"code":0}
//pid:可信核心程序唯一标识,与updateTee时的pid一致
5.授权数据库表:
URI:/
Post:{"name":"authTables","url":"http://localhost:8020","teeid":1},
Return:{"code":0}
//功能: 将teeid=1的节点所拥有的数据库表权限(后端接口地址http://localhost:8020),授权给目标tee
6.下载系统日志:
URI:/
Post:{"name":"downloadlog","date":"20231025"}
date:日志时间,格式'YYYYMMDD'
Return content-type: application/octet-stream (字节流)
7.APP请求签名:
URI:/Sign
Post:{"data":"签名内容"}
Return:{"code":0,"ret":"签名结果"}
8.APP请求验签:
URI:/Verify
Post:{"tee_id":1,"data":"签名内容","signature":"签名"}
验签成功Return:{"code":0}
验签错误Return:{"code":1000}