Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

User-Level Secure Deletion on Log-structured File Systems

论文下载

这篇文件讨论了在Log-structured File Systems上的数据安全删除问题,主要是针对两个平台:YAFFS和FlashMemory的FTL。

首先作者讨论了为什么在这样的文件系统上无法做到数据的安全删除,在Log-structured File Systems中,当一个文件被修改或是删除的时候,并不会将原来版本的数据从磁盘上删除,而是在原来版本的数据后面附加一个新的版本,然后将文件的指针指向新的版本,将旧的数据所属的block标记为已删除。真正意义上的数据删除是发生在文件系统的垃圾回收过程中,在垃圾回收过程中,文件系统会将所有标记为已删除的block中的数据抹掉。这就造成了主动删除文件并不能正确的删除数据。

Fig

作者并没有对这个结论进行实验,而是默认数据残留是一个YAFFS和FTL上的事实。

之后作者做了一个实验来定量的说明这些文件系统上垃圾回收机制的工作情况:

Fig

同时还测试了一个被删除的block在磁盘上残留的使用,实验方案是在发生磁盘读写的时候向磁盘内写入一个特殊的标记页,当磁盘再次发生读写的时候,将这个标记页删除,计算从删除开始到这个标记页所属的block被再次分配的时间:

Fig

可以看出,一个block被分配之后,需要过很长的时间才会被再次分配,在这个期间,文件的数据都是可读的。 之后作者提出了2个user-level的解决方案:

  • purging-往磁盘内写入大量的误用数据,直到撑爆整个磁盘。之后讲数据删除,这个时候所有的残留数据都被无用数据覆盖了。

Fig

  • ballooning-持续的往磁盘内写入无用数据,压缩可用空间,迫使系统加速垃圾回收。

Fig

最后就是两种的混合:

Fig