一些存储设备(例如,某些固态硬盘,包括USB闪存驱动器)使用所谓的“TRIM”操作来标记驱动器扇区为空闲,例如当删除文件时。因此,即使这些扇区位于VeraCrypt加密的驱动器部分内,它们也可能包含未加密的零或其他未定义的数据(未加密)。
在Windows系统上,VeraCrypt允许用户控制非系统卷和系统卷的TRIM操作:
- 对于非系统卷,TRIM默认被阻止。用户可以通过VeraCrypt的界面,导航到“设置 -> 性能/驱动程序配置”,并勾选“允许对非系统SSD分区/驱动器执行TRIM命令”选项来启用TRIM。
- 对于系统加密,TRIM默认启用(除非正在运行隐藏操作系统)。用户可以通过导航到“系统 -> 设置”,并勾选“阻止对系统分区/驱动器执行TRIM命令”选项来禁用TRIM。
在Linux系统下,VeraCrypt不会阻止使用原生Linux内核加密服务的卷的TRIM操作,这是默认设置。若要在Linux上阻止TRIM,用户应在VeraCrypt的偏好设置中启用“不使用内核加密服务”选项(仅适用于之后挂载的卷),或者在命令行挂载时使用
--mount-options=nokernelcrypto
开关。
在macOS系统下,VeraCrypt不支持TRIM操作。因此,所有卷的TRIM始终被阻止。
在发生TRIM操作的情况下,攻击者将能够识别哪些扇区包含空闲空间(并可能利用此信息进行进一步的分析和攻击),并且
似是而非的否认能力可能会受到负面影响。为避免这些问题,用户应如前文所述在VeraCrypt设置中禁用TRIM,或者确保VeraCrypt卷不位于使用TRIM操作的驱动器上。