Keystone is a trusted execution environment, based on RISC-V architecture. It divides the memory into a secure Keystone private memory and an unsecure non-Keystone memory, and allows code that lies inside the Keystone private memory to execute securely. Simple demand paging in Keystone ends up leaking sensitive access patterns of Keystone application to the Operating System(OS), that is assumed to be malicious. This is because, to access the unsecure non-Keystone memory, Keystone needs support of the OS. To mitigate this, Keystone needs to implement oblivious demand paging while obfuscating its page access patterns by using Oblivious RAM(ORAM) techniques. This causes substantial slowdown in the application execution. In this paper, we bridge the performance gap between application execution time with unsecure and secure demand paging in Keystone by using Deterministic, stash free, Write only ORAM (DetWoORAM) for oblivious demand paging. We also show why DetWoORAM, that is a write-only ORAM, is sufficient for oblivious demand paging. DetWoORAM logically partitions the memory into a main area and a holding area. The actual pages are stored in main area. We propose two enhancements over DetWoORAM that improves the application execution slowdown. The first enhancement, which we call the Eager DetWoORAM, involves page preloading that exploits the deterministic access pattern of DetWoORAM, and tries to hide the ORAM latency. The second enhancement, which we call the Parallel DetWoORAM, involves spawning multiple threads and each thread performs a part of the DetWoORAM memory access algorithm. Compared to DetWoORAM that shows slowdown of [1.4x, 2x, and 3.24x], Eager DetWoORAM and Parallel DetWoORAM provide slowdown of [1.2x, 1.8x, and 3.2x] and [1.1x, 1.1x, and 1.4x], for k= 3, 7, and 15, respectively.
翻译:以RISC- V 架构为基础, 关键石是一个信任的执行环境 。 它将记忆分割成安全的 Keystone 私人内存和不安全的非 Keystone 内存, 并允许 Keystone 私人内存中的代码安全执行 。 在 Keystone 的简单需求定位导致 Keystone 应用程序的敏感访问模式泄漏到操作系统( OOS ), 这被认为是恶意的 。 这是因为, 要访问不安全的非 Keystone 内存, Key1.1stone 需要支持 OS 。 为了缓解这一点, Keystone 需要实施隐蔽的需求调节, 同时通过使用 Olist RAM( ORAM) 技术来模糊其页面访问模式 。 这导致应用程序执行大幅减速 。 在本文中, 我们通过安放空, 仅写入 ORAM( DeW) 和 IMO ( DeW) 的第二个调控区域, 将自动递增的内存( O) 。