一、加密软件

1.知名加密软件所使用的“对称加密算法”久经考验。

高级加密标准“AES”(Advanced Encryption Standard),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,已经被多方分析且广为全世界所使用。是美国国家标准局公开招标的21世纪新一代加密算法标准,经过多轮淘汰,最终由Rijndael被选中成为“AES”。其算法本身已经被世界知名密码学专家研讨过,几乎不存在算法层面的漏洞。

2.密钥的穷举

高级加密算法使用的密钥,其“密钥空间”往往很大。研究人员充分考虑到了摩尔定律带来的算力增长,在相当长的时间内都不可能对密钥进行穷举。

3.弱口令的暴力猜解

作为针对弱口令的常见手段。用于“暴力猜解密码”的服务器集群,往往非个人和普通组织能配备。而且只需要引入【key files】作为加密盘的“认证因素”,就可以使暴力猜解变得不可能。

注:①key files要使用“二进制”文件,不要用文本文件;②最好是随机生成的;③文件尺寸至少64字节。

二、如何防止攻击者窃取密钥?

1.确保物理系统(Host OS)的纯洁

在电脑BIOS系统上设置“开机密码”和“硬盘锁密码”,防止攻击者在物理接触电脑时,在主引导扇区的boot loader中植入恶意软件,从而盗取全盘加密的“密钥”。

注:在不依赖外部启动介质的情况下,主引导扇区是不可能加密的。因为需要一个明文程序,让用户输入全盘加密的“密码”,并执行解锁动作。从技术上说,用户可以把boot loader放在启动U盘内,每次开机直接插入U盘。但是该方法拥有额外风险:因为一般的U盘没有硬盘锁,只要攻击者拿到启动U盘,同样可以植入恶意软件。

2.禁用“虚拟内存”

主流操作系统都有“虚拟内存”机制。Windows叫“页交换文件”,Linux就是“swap分区”。“虚拟内存”的作用在于当运行内存比较紧张时,把一些不经常访问的“内存页”转储到硬盘,腾出运行内存来存放新的内容。一旦启用了“虚拟内存”,也就存在某种危险性。敏感加密盘的“密钥”会残留在“虚拟内存”上(即物理硬盘上)。

3.禁用“休眠”

“休眠”的安全性

当电脑采取休眠模式时,会把整个物理内存保存到硬盘中的“休眠文件”。如果用户在未卸载“敏感加密盘”的情况下让系统休眠,那么“休眠文件”中必定包含敏感加密盘的“密钥”。

“待机”的安全性

如果已经禁用“虚拟内存”和“休眠”功能。在混合睡眠模式下,让系统进入“待机”状态,也会保存一部分内存在硬盘上。现在DRAM内存条在断电后依然有数据残留。在残留时间内,攻击者对“待机”电脑进行【冷启动攻击】,可以直接拿到内存中的数据,然后分析出加密盘“密钥”。

注:“锁定屏幕”与“待机”类似,同样可以采取【冷启动攻击】。

“关机”的安全性

休眠和待机都有安全风险,所以尽量选择关机。只要关机超过10分钟,数据全消,就不可能被【冷启动攻击】。

注:断电后,内存中的数据不会立即消失。温度越低,残留时间越长。在正常的室温下,内存条的数据残留时间不超过10分钟。

4.禁用FireWire DMA

“FireWire”是硬件接口规格(俗称“火线接口”,也叫“IEEE 1394接口”)。该接口支持DMA(direct memory access)方式直接操作物理内存。所以,攻击者如果能物理接触到电脑,可以电脑上插入特定的FireWire设备,利用DMA的方式直接读取整个系统内存。   

三、文件备份技巧

1.虚拟加密盘

首先使用加密工具创建一个虚拟分区。这个虚拟分区对应于物理硬盘上的一个大文(卷文件)。创建的虚拟分区有多大,卷文件就有多大。然后,只需要加密工具挂载该文件,系统上就会多出一个盘符。存放到这个盘符(虚拟硬盘)上的数据,都会被自动加密。

  • 优点:便于备份,虚拟加密盘本质是个大文件,只需要把文件复制粘贴,就相当于完成了虚拟盘的备份。
  • 缺点:对于操作系统的系统分区,只能采用物理加密盘的方式,无法采用虚拟加密盘的方式。

2.加密盘搭配网盘

找一个带同步功能的网盘。然后把本地的加密盘文件同步到网盘上。(注意同步的是加密盘“卷文件”,而不是加密盘内的文件)

加密盘搭配网盘的优点:

  • 保密性。因为同步到网盘的是“加密盘文件”,攻击者难以偷窥上传的数据。
  • 防止网盘服务提供商偷窥。
  • 防止网盘被入侵。如果账号被盗,攻击者只能拿到加密盘,看不到原始数据。
  • 防止上传过程中的网络监视
  • 提高了数据的可用性。即使电脑硬盘损坏,备份在网盘的加密数据也不会丢失。

注:某些网盘同步时,没有进行加密传输。在这种情况下,一旦攻击者对用户的网络传输流量进行嗅探,就有可能拿到同步的所有文件。

3.全盘加密的缺陷

从理论上讲,任何一款磁盘加密工具,在不借助外部机制的情况下,都不可能实现真正的“自启动全盘加密”。因为要想自启动,必须要有一个引导程序,这个引导程序是不能加密的(引导程序如果被加密,就无法引导)。所以,凡是能够实现“自启动全盘加密”的,其引导程序都是明文的(无加密)。

解决方案:

  • 采用BIOS提供的“硬盘口令”功能
  • 采用外部存储介质进行引导(TrueCrypt和VeraCrypt无法使用该方案)
  • 将操作系统安装在外部存储介质上