文献|MAbECC
Santos J H D S S, Valadares D C G, Gorgônio K C, et al. Mobile Data Security with Attribute-based Encryption and Confidential Computing[C]//2024 IEEE International Conference on Consumer Electronics (ICCE). IEEE, 2024: 1-4.
主要问题
在线和个人交易的数据经常被记录在存储中,并可能被恶意应用程序操纵
移动设备加剧了这种情况,因为移动设备更容易丢失、被盗,导致非法利用在线和个人交易的数据
主要贡献
- 提高移动设备上用户数据的安全性
- 可靠的私有数据处理
- 限制设备用户的数据访问,在本地操作
- 使密钥更难泄露
属性是从特征和用户识别数据中获得的,例如生物特征,电子邮件账户,同时使用移动设备中属性,例如设备的唯一识别码(IMEI)和SIM码
TrustZone
https://www.trustonic.com/technical-articles/what-is-trustzone/
理论上,TrustZone逻辑上将物理处理器一分为二,隔离一组程序和数据。每个内核代表一个执行环境:富执行环境(Rich Execution Environment,normal/unsafe world),运行大多数用户程序与正常OS;可信执行环境(TEE,safe/trusted world),运行可信OS(OPTEE),被限制只能安全运行程序。由安全监控(Secure Monitor)来切换运行模式。正常世界的客户端程序(client application,CA)可以通过安全监控调用(secure monitor call,SMC)调用安全世界的可信程序(trusted application,TA)。SM起到两个世界的桥梁。
系统架构
系统由两部分组成:
- 一部分在REE,与客户端应用交互请求,由以下部分组成:
- Android APP:安装在安卓系统中,与MAbECC交互
- MabECC:本文系统的客户端,接收记录和读取数据的请求,并将其转发给TA
- 富操作系统:正常应用的操作系统(本文是安卓系统)
- 一部分在TEE,由可信应用执行管理、加解密私有数据的操作
- 安全操作系统:管理设备可信应用的操作系统,并管理与正常世界的通信
- MAbECC:基于REE客户端的命令处理加解密私有数据
MAbECC由以下组件组成:
- MAbECC:本文系统的基础,负责管理记录与读取关于私有数据的请求
- 数据块管理器(Data Block Manager):将私有数据分割为块,恢复存储在OP-TEE安全元素中的数据
- ABE套件(ABE Suite):在由数据块管理器管理的数据块上执行加解密操作
系统流程
上图显示系统的主要流程:
- 安卓APP向MAbECC的CA交互发送一组数据
- CA接收到数据,与TA打开上下文接口,将数据从REE转到TEE
- TA接收数据
- TEE获取设备和用户的属性
- TA将数据分割为块
- 使用属性派生密钥
- 加密数据存储在安全元素(SE)中,写入REE,加强防篡改
上图展示系统的数据读取流程:
- 安卓应用向MAbECC客户端接口发送读取请求
- 客户端收到请求并与MAbECC的TA打卡上下文,转发上下文
- TA收到数据请求
- 在TEE内获得设备和用户属性
- TA根据请求使用数据块管理器从SE获取数据块
- 向SE请求数据块
- 从SE读取和检索数据块
- MAbECC使用由属性生成的密钥执行数据解密
- MAbECC的TA将获取的数据返回给MAbECC的CA
- MAbECC客户端将数据返回给安卓应用
其实我觉得这篇文章有点奇怪,尤其是ABE的部分,TEE获取设备和用户的属性,这其实跟传统的由AA派生属性私钥的方案相违背,一是从一部手机到另一部手机属于跨域了,属性与策略表示必须提前协调好,二是TEE派生属性私钥再自己解密,隐含TEE一定可信的条件