首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Truecrypt和交换

Truecrypt和交换
EN

Security用户
提问于 2016-08-28 18:14:18
回答 2查看 346关注 0票数 4

我有Ubuntu14.04桌面,我使用Truecrypt存储我的机密文件。我读过这样的文章,因为Truecrypt可以动态加密,所以它只存储解密的内容(以及用户的密码和他的密钥文件,我认为呢?)在内存中。如果这一切都是真的,那么这是否意味着即使我不加密交换,我的数据也不会被存储在Truecrypt容器中(以及我的密码和密钥文件)?是否会以未加密的形式出现在交换分区上?

EN

回答 2

Security用户

回答已采纳

发布于 2016-08-29 00:07:15

通常,如果您有任何加密的存储,那么您应该加密您的交换。这适用于任何加密系统,而不仅仅是TrueCrypt。任何程序的数据都可能以交换结束,包括操纵机密数据的程序。内核根据访问频率选择它放入交换中的数据,它不知道数据的哪一部分更机密。

TrueCrypt本身确实要求操作系统为其提供内存,内存锁在内存中,不能交换。我认为,如果操作系统不愿意给它足够的RAM,它不会拒绝操作,所以这种行为不能得到保证。即使是这样,也于事无补:那些操纵机密数据的程序不会有这样的保护。例如,如果在TrueCrypt分区中的文件上运行编辑器,编辑器的内存可能会被交换。

您还应该确保存储临时数据的所有位置都是加密的。在Linux上,这包括/tmp (也有/var/tmp,但它的使用是显式的,而任何程序都可能最终使用/tmp)。许多现代的Linux系统,包括Ubuntu14.04,都在/run下放置临时文件,它总是在内存中(虚拟内存,即:它可以被交换),但是有些应用程序是硬代码/tmp。临时数据可能以临时数据结束的其他常见位置包括/var/spool/cups (打印机假脱机程序,如果您打印机密文档)、/var/spool/mail (传入邮件)、/var/spool/postfix (发送邮件,如果使用不同的- adapt目录名,则使用不同的MTA)、~/.cache

票数 3
EN

Security用户

发布于 2016-08-28 23:25:17

这更像是一个Linux问题。由于Truecrypt作为用户空间程序运行,它无法控制其内存页,也就是说,它将内存管理留给内核。

内核从未被告知Truecrypt所使用的内存页是机密的,因此它可能会将这些页面放在交换中。永远也不会被告知它的版面被交换了。对于用户空间进程(Truecrypt)来说,虚拟内存只是虚拟内存,不管它目前是在RAM芯片中还是在交换设备上。

因此,如果您不加密交换分区并使用Truecrypt您的密钥(某种PBKDF之后的密码)是不安全的。如果某个键恰好位于被交换的内存中,则可以从磁盘读取该键。

在运行Truecrypt之前,执行cat /proc/swaps并对每个可用的交换空间执行sudo swapoff <partition or file> (或者最好使用加密的交换空间)。

(我说的是一个用户空间进程,因为它不同于cryptsetup,它作为内核模块工作,并保护其内存页不被交换。)

附加音符

Truecrypt自2014年5月以来不再收到任何更新(正如它在项目主页上说的那样)。您应该认真考虑使用不同的工具来加密您的文件。一些备选办法是:

  • Veracrypt非常类似于(甚至基于) Truecrypt。
  • cryptsetup在每个linux发行版上都是可用的(您正在使用Ubuntu)。尽管它需要使用循环设备。
  • 陵墓是一个脚本,它使用cryptsetupgnupg,并抽象出循环设备的使用。
票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/135175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档