TrueCrypt教程:真正的便携式数据加密
简短介绍程序的功能
TrueCrypt是一种免费软件,可以“即时”加密数据。 现在发布的最新版本是4.3版本。 您可以使用TrueCrypt创建加密的硬盘驱动器,单独的分区或目录。 它不是简单地加密文件的内容,而是他们的名字和他们所在的目录的名称。 此外,没有办法检查加密目录/ HDD /分区的大小。 TrueCrypt可用于Windows和Linux。
TrueCrypt的优点:
- 创建加密的硬盘并挂载它,
- 加密整个驱动器,选择的分区/目录甚至USB闪存驱动器,
- 加密是自动的,即时和用户透明
- 没有办法检查加密分区/目录的大小,
- 使用以下加密算法 : AES -256, Serpent , Twofish ,
- 创建一个隐藏的卷,
- 在使用中,您无法区分创建的卷和公用数据,
- 使用起来很简单,
- 使用TrueCrypt创建的虚拟驱动器完全独立于操作系统,
- 授权密钥可以保存在U盘上。
- 以及更多…
有三种方法来保护加密数据:
- 用密码,
- 用一个特殊的钥匙,
- 同时使用密码和密钥。
这是什么关键? 密钥可以是硬盘驱动器中的任何文件,例如: * .avi , * .mpg或* .txt ,甚至包含几个文件的整个目录。 警告! 请注意使用* .txt文件作为关键,因为如果修改它,密钥将更改,您将无法解密数据。 当您失去钥匙时会发生什么? 你永远不会恢复你的数据! 这就是为什么我建议使用两者,密钥和密码是最好的方式。 在这种情况下,如果您丢失了密钥,您可以通过输入正确的密码进行更改,反之亦然。 当然,没有理想的解决方案,因为您可以忘记密码并同时丢失钥匙。
TrueCrypt和DM-Crypt的简短比较
其实很难说哪些方案比较好。 在对两种选择和审议的描述进行了艰苦的审查之后,我意识到最好的解决方案是将它们组合起来。 它们都使您能够创建一个所谓的“容器”,它是一个加密文件,其工作方式类似于可以存储私有文件的目录(当您不想加密整个分区时,这是非常有用的功能)。 这些程序的巨大优点是可以在CD / DVD上刻录数据时加密数据。 TrueCrypt的一个缺点在于,在重新加载内核后,您可能需要再次安装TrueCrypt模块。 另一方面,在TrueCrypt中,您可以同时使用不同的加密算法! 它也运行在Windows下,所以如果你使用这两个系统,TrueCrypt将是一个更好的选择。
如何选择最好的钥匙?
个人而言,我不建议从硬盘驱动器中选择任何文件或目录作为关键。 最好的方式是使用内置TrueCrypt的特殊密钥发生器。 RNG - 随机数生成器 - 是功能,它创建一个最大大小为320字节的随机数据,并将其保存到先前选择的文件中。 如何生成随机数据? 如果是Linux,则RNG使用/ dev / random或/ dev / urandom代表插入到PC的设备(如鼠标和键盘)产生的所有噪声。
TrueCrypt如何工作?
整个加密过程对用户是透明的。 当将文件复制到加密驱动器时,其组成片段(如果它是一个大文件,如电影)被复制到RAM中,然后加密并保存到目标文件。 解密过程是一样的。 首先,通过片段将文件解密为RAM,然后将其传递给用户。 TrueCrypt不会将未加密的数据保存到驱动器,加密数据始终存储在RAM中。 这是一种非常安全的方法,可以防止意外访问您的文件。
TrueCrypt下载
您将始终在http://www.truecrypt.org上找到的最新版本的程序。 TrueCrypt需要一个名为dmsetup的工具才能正常工作。 Dmsetup是一种使您能够使用与设备映射器驱动程序映射的逻辑驱动器的工具。 最新版本的dmsetup可在http://sources.redhat.com/dm/上找到 。 下载源码后首先要做的是安装dmsetup:
tar -zxvf device-mapper.your_version_no
cd device-mapper.your_version_no
./configure
make
make install (as root or sudo)
如果一切顺利,请尝试安装TrueCrypt:
tar -zxvf truecrypt-your_version_no
cd truecrypt-your_version_no
进入linux
目录并安装:
cd linux
./build.sh
Checking build requirements...
Building kernel module... Done.
Building truecrypt... Done.
首先,脚本将检查您的系统是否满足所有要求,如果无法找到包的位置,它将提示信息。 警告! 要正确安装TrueCrypt,您必须拥有内核2.6.5或更高版本。
接下来你运行:
./install.sh (as root or sudo)
检查安装要求...
测试truecrypt ...完成。
将二进制文件安装到[/ usr / bin]:
按[Enter] 安装手册页到[/ usr / share / man]:
按[Enter] 将用户指南和内核模块安装到[/ usr / share / truecrypt]:
[Enter] 允许非管理员用户运行TrueCrypt [y / N]:
允许非root用户使用TrueCrypt按[y] else [N] 安装内核模块...完成。
安装truecrypt到/ usr / bin ...完成。
安装手册页到/ usr / share / man / man1 ...完成。
安装用户指南到/ usr / share / truecrypt / doc ...完成。
将备份内核模块安装到/ usr / share / truecrypt / kernel ...完成。
如果一切如上所述,你可以继续。
关键一代
生成键类型:
truecrypt --keyfile-create key.txt
当然你可以选择另一个键名和扩展名。
您的鼠标是否直接连接到运行TrueCrypt的计算机?
按“Y”,系统将提示您移动鼠标。
如果一切正常,将显示以下文字: 创建密钥文件
。
虚拟卷创建
要创建新卷,您必须考虑其名称和类型。 这样的卷只有两种类型: 正常和隐藏 。 他们有什么区别? 隐藏的只是,隐藏(放置是不同的 - 更多信息在TrueCrypt主页 )。
终端类型:
truecrypt -c home.txt
您创建一个名为home.txt
的卷。 扩展是由用户自行决定的,我选择了* .txt
,因为潜在的黑客更难发现它是一个卷。
音量类型:
1)正常
2)隐藏
选择[1]:
选择1 文件系统:
1)FAT
2)无
选择[1]:
选择2,因为您将创建FAT以外的其他文件系统
在你的卷上,默认是FAT 输入卷大小(字节 - 大小/大小K / sizeM / sizeG):
10M -
现在你说出你的音量的大小,我选择了10 MB 散列算法:
1)RIPEMD-160
2)SHA-1
3)漩涡
选择[1]:
选择哈希,建议SHA-1,默认为RIPEMD-160 加密演算法:
1)AES
2)low鱼
3)CAST5
4)蛇
5)三重DES
6)双鱼
7)AES-Twofish
8)AES-Twofish-Serpent
9)蛇 - AES
10)蛇 - 鸭鱼AES
11)Twofish-Serpent选择[1]:
选择算法,默认为AES 输入新卷“home.txt”的密码:
如果您不想要任何密码,请按[Enter]
重新输入密码:
再次按[Enter]键 输入密钥文件路径[无]:
如果没有任何密钥, 请输入密钥
的完整路径或留空 输入密钥文件路径[完成]:
将再次提示输入路径。 如果您有多个键键入另一个路径,并且输入了所有键盘,请留空,然后按[Enter] TrueCrypt现在将收集随机数据。
您的鼠标是否直接连接到运行TrueCrypt的计算机?
如果您的鼠标直接连接到PC,请按“Y”,但请尝试按“n”,看看会发生什么 请输入至少320个随机选择的字符,然后按Enter键:
如果输入的数量少于要求,程序将显示有多少 字符
丢失
现在程序将开始创建你的卷。 此操作所需的时间取决于您的CPU和卷的大小。 该脚本将会在您完成( 批量创建
)后通知您。 在root的主目录中应该有一个文件home.txt
。 您可以尝试在文本处理器中打开它,如果您设法从中读取任何内容,我很高兴。
卷映射和文件系统的创建。
你记得你在创建过程中没有为你的卷选择文件系统。 这就是为什么你现在要做的。 这是必需的,因为TrueCrypt使用Linux工具装载来装载需要作为选项传递文件系统的卷。
输入:
truecrypt /root/home.txt -k /root/key
输入'/root/home.txt'的密码:
如果该卷没有密码,请按[Enter]
好。 检查映射是否良好类型:
truecrypt -vl
(显示有关映射设备的信息)
如果没有信息,这意味着出现了一些问题。
现在创建一个文件系统:
mkfs.ext3 /dev/mapper/truecrypt0
您可以选择任何文件系统
The filesystem has been created.
安装创建的卷
现在,当您在卷上创建了一个文件系统并对其进行映射时,可以将其安装到任何目录。
要做这个类型:
truecrypt -d /dev/mapper/truecrypt0
取消映射卷
mkdir encrypted -
创建一个名为“encrypted”的目录,这是您要安装该卷的目录
truecrypt /root/home.txt -k /root/key /root/encrypted
将卷安装到加密目录
完成了! 从现在开始,保存在“encrypted”目录中的所有数据将被加密。
但是,如何加密现有的目录呢? 这很简单。 只需从该目录移动数据,然后将卷安装到此目录,并将数据移回该目录。 记住在规定尺寸时使音量适当大,因为否则不能容纳所有的数据。 卷的大小应该大于目录的大小。
重新启动后自动安装。
如您所见,重新启动后,您将不得不重新安装该卷。 有一个简单的方法来做到这一点。 在TrueCrypt主页上浏览论坛我收到了两种不同的解决方案:
- 将脚本添加到
/etc/init.d
或/etc/rc.d
, - 在主目录中创建一个名为.profile的配置文件,并正确编辑它。
我建议你使用下面我描述的第二种方式。 为什么? 有一个简单的原因 假设您使用密钥和密码(甚至仅使用密码)来保护卷。 在这种情况下,运行引导脚本放在init.d或rc.d目录中,您将必须使用参数-p初始化TrueCrypt,并将密码明确写在那里,这不是最聪明的解决方案。 这样,任何人都可以读取您的密码。
也许您的主目录中已经有一个文件.profile ,但如果没有:
touch .profile - creates a new file .profile
在编辑器中打开.profile
并添加以下行:
truecrypt /root/home.txt -k /root/key /root/encrypted
保存更改并离开编辑器。 现在,每次登录系统时,TrueCrypt将提示您输入密码(由于在本示例中您只能通过密钥进行识别,所以只需按[Enter]),虚拟卷将被安装。
我可以在pendrive / U盘上握住钥匙吗?
是的,有这样的选择,你可以相信我不是那么困难。 您首先要做的是在启动时自动安装USB驱动器。 为此,您必须编辑/ etc / fstab 。 然后在/ mnt中为pendrive创建一个新目录:
mkdir /mnt/pendrive
起初,你必须看到系统中pendrive的位置。 将pendrive插入USB端口并运行以下命令:
dmesg > output.txt
在文件末尾应该有这样一行:
usb 1-1: configuration #1 chosen from 1 choice
uba: uba1
正如您在PC中看到的,USB驱动器位于/ dev / uba1
。 你可能在/ dev / sda *
。 现在你必须修改/ etc / fstab
。 添加这一行:
/dev/uba1 /mnt/pendrive auto defaults 0 0
然后输入:
mount /mnt/pendrive
下一步是将键移动到USB驱动器,并将.profile
文件中的行更改为包含/ mnt / pendrive键的路径。 完成了!
现在系统自动重新启动虚拟卷。 自动安装有哪些缺点? 假设你有一个非常好奇的兄弟姐妹,你不希望他们能够访问系统的某些部分(不管在Windows或者Linux上工作)。 如果您仅使用密钥进行授权,并将其放置在硬盘上的某个位置,则在启动后会将数据解密。 “但我把钥匙放在USB驱动器上”。 如果你忘了把它从PC下载下来怎么办?
未来
在不久的将来,TrueCrypt的开发人员正在计划扩展其功能:
- MAC OS版本,
- 添加外部授权(因此将有可能通过网络/ Internet解密),
- 构建TrueCrypt的官方GUI,
- 以及更多…
TrueCrypt是否有非官方的GUI图层? 当然有。 我建议你看看下面的网页: TruecryptGUI在GoogleCode 。 有关更多信息,请访问TrueCrypt论坛 。
翻译成英文: Borys Musielak
更正: T_ziel
作者:Marcin Lipiec又名“lipiec”
本文首次发表在polishlinux.org