FileVault

FileVault是一款磁盘加密程序，内嵌于Mac OS X 10.3 (2003)和更新的版本。它的工作方式允许Mac电脑上的卷宗被即时地加密。

版本沿革与关键功能 
FileVault 首次随附于 Mac OS X Panther (10.3),当时的版本只允许加密用户目录，而非启动宗卷。 操作系统使用一个加密的稀疏磁盘镜像（一个单一的大文件）为用户目录的数据提供虚拟磁盘。 Mac OS X Leopard 和 Mac OS X Snow Leopard 使用更现代的 稀疏磁盘镜像包 ，将数据拆分成8 MB大小的文件（被称作 bands ）存放于文件包中。 Apple将采用这两种方法加密的版本称为legacy FileVault。

Mac OS X Lion (10.7) 及之后的系统随附重新设计过的 FileVault 2， 新版的软件将直接加密整个OS X的启动宗卷（自然也包括用户目录），并抛弃了之前使用磁盘镜像的方法。采用这种加密方法，已授权的用户信息将从一个单独的非加密引导卷宗读取。 (分区格式为 Apple_Boot)。

FileVault 
原始版本的 FileVault 随附于Mac OS X Panther，且只被用于加密用户目录。

主密码和恢复密钥 
启动 FileVault 功能时，系统会要求用户设置一个主密码，当用户忘记密码时，便可以使用这个主密码或是恢复密钥直接解密文件。

数据迁移 
迁移 FileVault 用户目录时有以下两个限制条件：

 目标计算机上不可以存留此前迁移过的数据
 目标计算机上不可以存留用户账户

若迁移助手检测到目标计算机上有用户账户，或曾经建立过用户账户：

 迁移数据前，FileVault 必须在源计算机上被停用

若 FileVault 数据是使用 10.4 或更早版本的 Mac 上的内建实用工具建立的，那么在转移到新机器上时，数据将仍使用旧的磁盘格式存储。若用户手动关闭 FileVault 再重启，（此操作会重新加密磁盘数据），数据会以新格式存储。

手动加密 
不使用用 FileVault ，用户也可以用 磁盘实用工具创建用户目录之下任意子目录的加密。 (例如, )。这种方式除了文件存放在用户自定的目录之外，和 FileVault 没有明显的不同。

只加密部分用户目录会造成一些应用在访问加密文件时出现问题，除非先挂载加密镜像，否则用户文件往往不可用。为特定文件制作 symbolic links 可以缓解此问题。

软件限制和问题

备份 

Time Machine 在非 OS X Server 环境下备份时会登出用户账户。 已有一些案例指明其备份的用户目录可能不完整。 当备份目标计算机使用 OS X Server 时，TimeMachine 允许用户在登录时备份FileVault 用户目录。

因为 FileVault 限制了其他用户对当前用户数据的访问，因此一些第三方软件在备份用户目录时，会要求排除其它用户的目录才可以继续备份过程。

问题 
legacy FileVault已被证明存在一些缺陷，通过破解1024-bit RSA 或 3DES-EDE算法，加密数据可被解密。

和 Legacy FileVault 使用的 CBC 操作模式比较， (请参阅磁盘加密原理)， FileVault 2 使用的 XTS-AESW 模式更健壮。 其他问题包括将macOS置于睡眠模式时，密钥存在的泄露风险。 2008 年发布的一篇研究显示，数据在室温下将残留在动态随机存储器 (DRAM)里长达数秒至数分钟之久，在处理器冷却下来之后可存留更长时间。这使得研究人员能够执行冷启动攻击来从主流的一些磁盘加密方式中恢复解密密钥，这也包括FileVault, 研究人员利用其采用的密钥扩展后的冗余存储方式（这种方法用来提高解密效率，用于诸如密钥调度算法中）完成攻击。研究人员建议，物主在离开计算机时可将电脑关机而非置于休眠模式，来确保数据安全。

早期版本的FileVault自动将用户密码存储在系统“钥匙串”内，需要用户手动停用该密码来弥补这一安全漏洞。

2006年，第23届混沌通讯大会讨论了Unlocking FileVault: An Analysis of Apple's Encrypted Disk Storage System 的主题后，Jacob Appelbaum 和 Ralf-Philipp Weinmann 发布了 VileFault which decrypts encrypted Mac OS X disk image files.

A free space wipe using 磁盘实用工具 left a large portion of previously deleted file remnants intact. Similarly, FileVault compact operations only wiped small parts of previously deleted data.

FileVault 2

安全性 
FileVault使用用户登录密码作为加密令牌，并采用AES的XTS-AES模式将数据划分成128位的块，同时生成一枚256位密钥来加密磁盘，这一标准也是NIST推荐的标准。当用户解锁后，其他用户也可以访问这些数据，直到电脑关机。

性能 
约有3%的I/O的性能下降会出现在使用AES指令集的CPU上（如Intel Broadwell 架构CPU， OS X 10.10.3环境）， 早期的酷睿CPU，或者其他不使用该指令集的处理器会有更明显的性能下降。

主密码和恢复密钥 
系统运行时执行 FileVault2，电脑会创建一个恢复密钥，并在屏幕上显示出来，提示用户保管，并且提供了一个将密钥上传至 Apple 的可选项。恢复密钥共有120位，由全部英文字母和数字 1-9 组成，系统会调用的随机数生成器生成整枚密钥。因此其安全性取决于macOS 使用的随机数生成算法，根据密码学家 2012 年的声明指出，该算法是安全的。

除非重新加密整个卷宗，否则将无法修改恢复密钥。

OS X 10.9 或更早版本的 FileVault 2可以执行终端命令来检查密钥是否正常工作，命令为：

 

密钥必须显示为类似以下格式：

 

若工作正常，系统会返回 true 状态。

另请参阅 

 Apple Keychain
 BitLocker
 TrueCrypt
 VeraCrypt
 LUKS

参考资料 

磁盘加密
加密软件
MacOS
有未审阅翻译的页面