Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

DEFY: A Deniable, Encrypted File System for Log-Structured Storage

论文下载

Intruduction

想要在文件系统中保护某些重要的文件,一般来说加密是第一选择。但是文件加密仅仅能够防止攻击者获取文件的内容,却无法阻止攻击者发现加密文件的存在,甚至有的时候对文件进行加密反而会使需要保护的文件变得引人注意。在这种情况下,就需要到一种被称为deniable file system的技术,所谓的deniable file system是指攻击者在不知道文件系统加密密钥的情况下,无法证明在该文件系统上存在任何的超越自己阅读权限的文件,是一个允许使用者进行“抵赖”的文件系统。但是已有的deniable file system均不适用于现在的移动设备,因为当前主流的移动设备使用的存储介质都是诸如NAND这样的基于闪存的存储器,这样存储器无法提供deniable file system所要求的原地擦除数据的功能。因为本文提出一种基于YAFFS的deniable file system架构,作者称之为DEFY(Deniable Encrypted File System from YAFFS). 相较于之前的deniable file system,DEFY主要提供以下新的特性:

  • 符合一般性的设计准则,能够在保留日志结构的情况下适配于其他需要抵赖性(deniability level)的系统
  • 支持多个抵赖级别(deniability level),并能够动态的进行管理
  • 是移动设备上第一个提供认证加密的加密文件系统
  • 提供快速有效的安全数据擦除功能,并能够事先通过策略对安全擦除进行配置
  • 能够抵抗目前已知的最高级的攻击,快照攻击(snapshotting adversary)

Related Work

  • R. Anderson, R. Needham, and A. Shamir, “The steganographic file system,” in Information Hiding, Second International Workshop (IH’98), Portland, Oregon, USA, April 1998, pp. 73–82.
  • A. D. Mcdonald and M. G. Kuhn, “StegFS: A steganographic file system for Linux,” in Information Hiding, 1999.
  • P. Gasti, G. Ateniese, and M. Blanton, “Deniable cloud storage: sharing files via public-key deniability,” in WPES ’10: Proceedings of the 9th annual ACM workshop on Privacy in the electronic society, Oct. 2010. – R. Canetti, C. Dwork, M. Naor, and R. Ostrovsky, “Deniable encryption,” Advances in Cryptology — CRYPTO ’97, pp. 90–104, 1997.
  • A. Skillen and M. Mannan, “On implementing deniable storage encryption for mobile devices,” in Proceedings of the Network and Distributed System Security Symposium, February 2013. [Online]. Available: http://spectrum.library.concordia.ca/975074/
  • “GitHub: WhisperSystems/WhisperYAFFS: Wiki” http://goo.gl/Qsku4, WhisperSystems, 2012. [Online]. Available: https://github.com/WhisperSystems/WhisperYAFFS/wiki

BackGround

NAND&YAFFS

NAND是目前主流移动设备使用的存储介质。NAND向上层提供页(page)级别的读写和块(block)级别的删除操作。当一个页上被写入内容后,除非擦除整个页,否则无法再向上写入数据。对于NAND来说,一个很重要的指标就是可擦写次数,当一个页的擦写次数超过了设计寿命时,整个存储介质就报废了。所以对于大部分的上层驱动来说,会尽可能的平衡每一个页面的读写次数,以保证最长的使用寿命。

YAFFS是针对NAND而设计的轻量级日志结构文件系统(log-structured file system),因为其简单、轻便、低消耗而被移动设备广泛采用(Android2.3之后的版本使用ext4代替YAFFS)。作为一个日志结构文件系统,YAFFS一个显著的特点在于,当一个页面的内容被修改时,该页面原来的内容并没有被删除,而是在另一个页中写入新的数据,然后将文件的指针指向新的页。这是由之前提到NAND的读写和删除操作粒度的不同造成的,当修改一个页面的内容时,由于包含该页的块中存在其他有用的数据,所以无法在这个块上执行删除操作,也就不能向这个块中写入新的数据。这个特性同样导致了YAFFS文件系统中删除操作并不能真正删除存储介质上的数据,而这些特性也被YAFFS的后继者EXT4文件系统集成。在这种情况下,磁盘上废弃的数据会在系统定期的垃圾回收(garbage collection)过程中被擦除,在此之前,废弃的数据会一直残留在磁盘上。(这方面的详细研究可以参考Reardon J, Marforio C, Capkun S, et al. User-level secure deletion on log-structured file systems[C]//Proceedings of the 7th ACM symposium on information, computer and communications security. ACM, 2012: 63-64.)

Adversaries

  • 文件系统,操作系统,应用程序均是可信的
  • 攻击者能够获得操作系统的源码
  • 攻击者能够获取任意时刻磁盘的完整拷贝

Design Requirements

  • 抵赖性级别(Deniability Levels) 不同的抵赖级别包含了不同保护程度的文件,用户无法访问超过自己抵赖性级别的文件。用户使用不同抵赖性级别的密钥去释放(reveal)对应的文件。抵赖性级别是有序的。
  • 安全删除(Secure Deletion) 一个文件被安全删除意味这该文件将永远不能被访问,即使当攻击者获得设备和加密密钥时。同时被安全删除的文件不应该呈现出被删除的特征,被删除的文件看上去应该和磁盘上未使用或未释放的数据一样。
  • 认证加密(Authenticated Encryption)
  • 最小数据损失(Minimizing Data Loss) 可抵赖文件系统的特性决定了,当文件系统以较低的抵赖性级别被打开时,由于无法获得任何更高抵赖级别文件的信息,此时对文件系统的写操作有一定概率会覆盖掉高抵赖级别的有用数据,这是所有可抵赖文件系统都无法避免的问题。
  • 损耗平衡(Wear Leveling) NAND的损耗平衡策略会让任何依靠修改数据来达到安全性的文件系统失效,这一特点是任何为闪存而设计的安全文件系统需要考虑的。
  • 容易部署(Easily Deployable)

Design

DEFY主要是针对YAFFS进行了可抵赖性的改造,增加了认证加密、安全删除和多层可抵赖性等特征,DEFY和其他可抵赖文件系统的对比如图:

Fig

  • 抵赖性级别 DEFY支持用户自定义的多抵赖性级别共存。每一个级别对应了不同的名字和根密钥,名字和根密钥均由用户输入,不在磁盘上驻留,磁盘上仅保存由根密钥生成的密钥对。当以某一个抵赖性级别打开文件系统时,所有低于当前抵赖性级别的级别都会被打开。
  • 认证加密 DEFY对每一个页进行单独加密,每个页的数据和OOB都会被单独加密,同时计算出一个额外的信息的tag,tag本身无法被用来解密数据,但是缺失了tag会导致无法正确的解密数据,tag存储在DEFY的metadata数据区域中。具体算法见下图:

Fig

  • 基于加密的安全擦除 认证加密的所使用的加密方案能够很好的完成安全擦除的功能,当一个页的数据被删除时,只需要将tag抛弃就可以保证加密页的数据不被任何人读取到。
  • Metadata for DEFY Metadata中储存了DEFY的各类节点的tag信息。DEFY的metadata保存在一个特殊的磁盘区域中,不受日志结构文件系统特性的影响,保证该区域内的信息在删除时能够及时的被随机数据覆盖,保证不会存在数据残留。
  • 最小数据损失 DEFY使用了一些方法来尽量减少数据损失:一是在打开某一个抵赖性级别时将所以低级别同时打开,保证这些数据所属的块不会被当成可使用的块。二是对每一个块仅用于一个可抵赖性级别使用。

File System Operations

一些非常细节的设计,感兴趣的话可以自己去看原文

Security Analysis

对于可抵赖文件系统来说,衡量安全性最为关键的因素在于三种不同状态的基本块是否能够被攻击者所区分出来:未分配的块、已删除的块、未打开的块。通过上文的设计我们可以看到这三种块在系统中看上去都是随机无意义的乱码。

Performance

在读方面基本上没有额外的性能损耗,因为文件系统打开时已经完成了解密工作。在写方面和传统的可抵赖文件系统没有明显区别,和正常文件系统存在10-30倍的额外性能开销。同时,多个可抵赖级别并不会对系统性能造成额外的影响。