一句话:DATS 通过硬件能力增强容器和 MVC 风格原语,安全高效地支持 Web 应用跨容器组合数据。
数据容器允许用户控制自身数据的访问,同时让不可信应用在其上计算,但现有方案需在每个容器内复制应用,损害功能、可编程性与性能。DATS 面向 Web 应用提出一套系统,结合硬件能力增强的容器与两个受 MVC 模式启发的新原语:一是模板语言,用于创建可跨数据容器组合数据的视图;二是认证存储与隔离机制,使 memcached、去重等不可信存储服务能对跨容器的明文数据操作。二者作为稳健的去分类器,使 DATS 能强制容器间非干扰,并将大型应用移出可信计算基(TCB)。作者在 Gitlab 和类 Slack 聊天等八个 Web 应用上评估,显著降低了应用复制导致的最坏情况开销,并展示了常见场景下可用的性能。
Data containers enable users to control access to their data while untrusted applications compute on it. However, they require replicating an application inside each container - compromising functionality, programmability, and performance. We propose DATS - a system to run web applications that retains application usability and efficiency through a mix of hardware capability enhanced containers and the introduction of two new primitives modeled after the popular model-view-controller (MVC) pattern. (1) DATS introduces a templating language to create views that compose data across data containers. (2) DATS uses authenticated storage and confinement to enable an untrusted storage service, such as memcached and deduplication, to operate on plain-text data across containers. These two primitives act as robust declassifiers that allow DATS to enforce non-interference across containers, taking large applications out of the trusted computing base (TCB). We showcase eight different web applications including Gitlab and a Slack-like chat, significantly improve the worst-case overheads due to application replication, and demonstrate usable performance for common-case usage.