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起到两个世界的桥梁。

系统架构

image-20241125091823069

系统由两部分组成:

  • 一部分在REE,与客户端应用交互请求,由以下部分组成:
    • Android APP:安装在安卓系统中,与MAbECC交互
    • MabECC:本文系统的客户端,接收记录和读取数据的请求,并将其转发给TA
    • 富操作系统:正常应用的操作系统(本文是安卓系统)
  • 一部分在TEE,由可信应用执行管理、加解密私有数据的操作
    • 安全操作系统:管理设备可信应用的操作系统,并管理与正常世界的通信
    • MAbECC:基于REE客户端的命令处理加解密私有数据

MAbECC由以下组件组成:

  • MAbECC:本文系统的基础,负责管理记录与读取关于私有数据的请求
  • 数据块管理器(Data Block Manager):将私有数据分割为块,恢复存储在OP-TEE安全元素中的数据
  • ABE套件(ABE Suite):在由数据块管理器管理的数据块上执行加解密操作

系统流程

image-20241125095417773

上图显示系统的主要流程:

  1. 安卓APP向MAbECC的CA交互发送一组数据
  2. CA接收到数据,与TA打开上下文接口,将数据从REE转到TEE
  3. TA接收数据
  4. TEE获取设备和用户的属性
  5. TA将数据分割为块
  6. 使用属性派生密钥
  7. 加密数据存储在安全元素(SE)中,写入REE,加强防篡改
image-20241125101512608

上图展示系统的数据读取流程:

  1. 安卓应用向MAbECC客户端接口发送读取请求
  2. 客户端收到请求并与MAbECC的TA打卡上下文,转发上下文
  3. TA收到数据请求
  4. 在TEE内获得设备和用户属性
  5. TA根据请求使用数据块管理器从SE获取数据块
  6. 向SE请求数据块
  7. 从SE读取和检索数据块
  8. MAbECC使用由属性生成的密钥执行数据解密
  9. MAbECC的TA将获取的数据返回给MAbECC的CA
  10. MAbECC客户端将数据返回给安卓应用

其实我觉得这篇文章有点奇怪,尤其是ABE的部分,TEE获取设备和用户的属性,这其实跟传统的由AA派生属性私钥的方案相违背,一是从一部手机到另一部手机属于跨域了,属性与策略表示必须提前协调好,二是TEE派生属性私钥再自己解密,隐含TEE一定可信的条件