嵌入式开发论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 100|回复: 1

optee-密文在安全世界解密

[复制链接]

2

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2018-12-28 10:42:36 | 显示全部楼层 |阅读模式
本帖最后由 yifeng 于 2018-12-28 15:00 编辑

各位专家,

请教一下:
现在的应用需求:密文在安全世界解密,并处理,内容明文和对称加解密密钥不能暴露在REE侧。
  (设备商提供)Ta1: 3个接口。 a. 导入设备私钥,b.使用设备私钥加密,c.使用设备私钥解密
(应用商开发)Ta2: 1个接口。传入两个参数,设备公钥加密过的aes对称密钥key’(原始aes对称密钥为key)和aes key加密过的内容,在secure world调用ta1的c接口,解密得到key,然后用key解密得到内容明文。
这样有个问题,如果ta1留了接口c.使用设备私钥解密,ta2可以调用,那么其他REE里面的程序也可以调用,那么如果黑入了设备,植入了REE侧的程序,监控得到了key‘,可以在调用ta1的接口c,得到key‘,解密得到了key,然后解密得到内容明文。
这个我其实是仿照DRM的思路,当然我做了简化,省去了授权中心这个环节。
但在设备端面临同样的问题,不知道这块是不是有更好的解决方案?单独用trustzone是否能够解决上面的问题,还是需要配合其他安全组件?

应用商开发的应用通过远程下载安装,不是提前预装的(如果可以提前预装的话,可以注入私钥,比较容易,远程下载安装的话,不可能将私钥直接打包在安装包里)

现在我想了两个方案:
1, 接口c不暴露在REE侧,只在TEE里的TA才可以调用,TEE里的TA都是认证过的,确保没有恶意代码。
这个可以做到吗?ta调用ta也是通过opensession,invokecomand这类的接口,我看了gp internal api文档,并没有ta直接共享内存/文件和其他通信方式,如果通过这种方式ta能调用,理论REE侧也会有这个接口。
2. 在第一次打开应用商开发的应用时,应用的ta生成一对这个应用的公私钥对,然后将公钥发送给服务器端,然后服务器端用这把公钥加密对称密钥,发送给设备端,然后设备端用私钥解密,得到对称密钥。


回复

使用道具 举报

59

主题

64

帖子

255

积分

版主

Rank: 7Rank: 7Rank: 7

积分
255
发表于 昨天 10:37 | 显示全部楼层
现在我想了两个方案:
1, 接口c不暴露在REE侧,只在TEE里的TA才可以调用,TEE里的TA都是认证过的,确保没有恶意代码。
这个可以做到吗?ta调用ta也是通过opensession,invokecomand这类的接口,我看了gp internal api文档,并没有ta直接共享内存/文件和其他通信方式,如果通过这种方式ta能调用,理论REE侧也会有这个接口。
------>该接口是否需要保留在REE侧是由开发者决定的。
2. 在第一次打开应用商开发的应用时,应用的ta生成一对这个应用的公私钥对,然后将公钥发送给服务器端,然后服务器端用这把公钥加密对称密钥,发送给设备端,然后设备端用私钥解密,得到对称密钥。
----->该方案有点类似有SSL的握手机制,然后建立可信通道的过程,你可以研究研究一下SSL的过程,然后仿照该过程形成一个在线秘钥的下发机制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|TEE and Virtualization

GMT+8, 2019-3-22 20:13 , Processed in 0.105365 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表