SxSSD: A Secure and Extensible Software-defined Solid State Drive

2026-08-24Cryptography and Security

Cryptography and SecurityOperating Systems
AI summary

The authors discuss how solid-state drives (SSDs) use a layer called the flash translation layer (FTL) to manage data between the operating system and NAND flash memory. They explain that modifying the FTL for security is hard because it is usually isolated from the OS, but newer SSD designs blur this separation. The authors propose SxSSD, a new design that keeps the FTL isolated for security while allowing trusted software to change its behavior dynamically. They built a prototype and found it adds only a small performance cost compared to traditional SSDs.

Solid-State Drive (SSD)NAND Flash MemoryFlash Translation Layer (FTL)Operating System (OS)Open-Channel SSDZoned NamespaceTrusted Computing BaseFirmwareData SecuritySoftware-Defined Storage
Authors
Josh Dafoe, Bo Chen
Abstract
Solid-state drives (SSDs) are built on NAND flash memory and expose it to the operating system through a block-based storage interface. As NAND flash has special read/write constraints due to its hardware nature, a translation between OS-level I/Os and raw flash memory I/Os is needed. This results in a flash translation layer (FTL) that creates a ``trusted computing base'' due to its physical isolation from the OS. Building on this trusted computing base, some security designs (e.g., data recovery from malware attacks) can ensure strong data security properties even if the OS is compromised. However, they mostly require modifying the FTL's firmware code, which is hard in practice because the traditional block-based FTL does not provide an interface to modify its internal functions. New flash storage interface designs, such as open-channel SSDs or zoned namespaces, have moved key FTL functions into the OS. These interfaces ease modification of FTL functions, at the cost of blurring the trusted boundary, as the FTL is no longer isolated from the OS. In this work, we have introduced SxSSD, a secure yet extensible software-defined SSD design. By decoupling internal policy definitions from primitive FTL mechanisms, we allow trusted applications to dynamically and securely define FTL policies and the exposed storage interface (achieving increased flexibility compared to open-channel and zoned namespaces SSDs). Most significantly, SxSSD retains the isolation of traditional FTL execution (achieving security similar to traditional block-based SSDs). We have identified and addressed key security challenges introduced under a compromised OS. In addition, we have implemented a prototype of SxSSD and evaluated its overhead with different FTL policies and storage interfaces. Experimental evaluation demonstrates that the overhead incurred by SxSSD is small compared to native FTL implementations.