关键词:
SQLite
可信执行环境
嵌入式系统
数据安全
摘要:
随着物联网逐步走向智能化,SQLite作为嵌入式系统广泛使用的轻量级数据库,其关于数据安全保护的缺陷也日益突出。常用的安全技术手段往往采用加密算法对数据库进行加密,但此类方式无法保证数据在内存中动态处理过程的安全性,潜在的安全问题依然会导致隐私数据的泄露;而配合可信执行环境的安全机制虽然可以进一步提升SQLite的安全性,然而过度的安全设计往往导致SQLite的性能大打折扣。为此,本文基于可行执行环境Keystone的资源隔离机制,设计并实现了一个符合嵌入式应用场景对安全,性能等需求的可信安全SQLite数据库系统,以保护用户隐私数据的存储和处理过程。
系统设计上,本文首先在原始的SQLite上扩展了认证加密算法AES-GCM用于保护数据静态存储时的机密性和完整性。为了进一步提高系统的安全性,本文结合了可信执行环境Keystone提供的远程认证和内存隔离机制,为系统提供了程序的身份真实性认证和处理重要数据的安全环境。结合RISC-V的PMP机制所带来的内存优势,本文还介绍了SQLite处于IN-MEMORY及TEMPDB模式与Keystone相结合的系统设计以应对实时任务中性能不足的缺陷。
为了同时满足系统的安全性和实用性,本文提出了一种结合缓存机制的MT(Merkle Tree)算法,有效减少可信空间中的内存需求并提高了系统的数据采集性能。此外,为了减少MT扩充的时间开销,本文提出了一种约定式的MT扩充协议,在不破坏安全性的前提下避免了该过程中用户与系统之间的通信开销。
本文利用QEMU搭建了以RISC-V架构为基础的虚拟平台,在该平台上完成了系统的性能测试,其中包括数据查询和插入以及MT扩充的执行时间开销。测试结果表明,系统在TPC-H测试基准中数据查询性能仅比扩展加密后的SQLite平均高出了11%,而系统在IN-MEMORY及TEMPDB模式下的查询能力,数据插入和MT扩充测试上都表现出较好的性能。最后根据系统的具体执行流程证明了系统安全性。