VeraCrypt

用於即時加密的開放原始碼實用工具

VeraCrypt是一款开放源代码即时加密软件英语on-the-fly encryption(OTFE)。[6]它可以创建一个虚拟加密磁盘文件或加密分区[7],或预引导认证英语Pre-boot authentication整个存储设备(除非使用了UEFIGPT)。[8]

VeraCrypt
VeraCrypt 1.17 (Windows平台)
VeraCrypt 1.17 (Windows平台)
开发者IDRIX[1]
首次发布2013年6月22日,​11年前​(2013-06-22
当前版本
  • 1.26.14(2024年8月25日;稳定版本)[2][3]
编辑维基数据链接
源代码库 编辑维基数据链接
编程语言CC++汇编语言
操作系统
语言37种语言[4]
类型硬盘加密软件英语Disk encryption software
许可协议Apache License 2.0 但受限于 TrueCrypt License version 3.0[5]
网站www.veracrypt.fr

VeraCrypt是已经停止开发的TrueCrypt项目的一个分支[9]。据其开发者声称,安全方面的改进已经落实,最初TrueCrypt的代码审计问题已得到解决。[10]

加密方式

算法

TrueCrypt相同,VeraCrypt支持的加密算法AESCamellia、Kuzenyechik、SerpentTwofish。此外,另有十种多重加密英语Multiple encryption方式:AES-Twofish,AES-Twofish-Serpent,Serpent-AES,Serpent-Twofish-AES,Twofish-Serpent,Camellia-Kuzenyechik,Kuzenyechik-Twofish,Camellia-Serpent,Kuzenyechik-AES及Kuzenyechik-Serpent-Camellia。[11] 可使用的密码散列函数RIPEMD-160SHA-256SHA-512Whirlpool英语Whirlpool (cryptography)和Streebog。[12]

操作模式

VeraCrypt使用XTS英语Disk_encryption_theory#XEX-based_tweaked-codebook_mode_with_ciphertext_stealing_.28XTS.29操作模式[13]

密匙

软件头密匙(header key)和第二头密匙(the secondary header key)是使用512-和327,661至655,331迭代的PBKDF2产生的,这取决于其使用的底层散列函数。[14]

安全性改进

据其开发者声称,VeraCrypt对TrueCrypt提出了一些安全方面的改进。

虽然TrueCrypt使用1000次迭代的PBKDF2-RIPEMD160算法的系统分区,然而VeraCrypt使用的是327,661次迭代。对于标准储存器和其他分区,VeraCrypt使用655331次迭代的RIPEMD160和500,000次迭代SHA-2和Whirlpool。虽然这使得VeraCrypt在打开被加密分区时稍慢,但它可以让密码破解增加最少10倍和最多约300倍的的难度。“事实上,如果破解TrueCrypt的加密分区需要一个月,那么破解VeraCrypt可能需要一年。”[9]

Windows在引导程序中的漏洞也是如此。开发人员增加了对SHA-256的系统启动加密选项,还修正了Shell的安全问题。LinuxMac OS X用户受益于硬盘驱动器扇区大小大于512的支持,并且Linux得到了NTFS格式加密扇区的支持。

由于安全性改进,因此VeraCrypt存储格式是与TrueCrypt不兼容的。VeraCrypt开发团队认为,TrueCrypt的旧格式容易受到美国国家安全局的攻击,因此它必须被抛弃。这是和VeraCrypt的竞争对手——CipherShed之间的主要区别之一,CipherShed继续使用了TrueCrypt加密格式。自版本1.0F开始,VeraCrypt开始支持打开及转换TrueCrypt的旧格式加密卷。[15][16]

似是而非的否认

VeraCrypt支持一种名为“似是而非的否认”的功能[17],允许在卷内创建另一个“隐藏驱动卷”。[18]此外,Windows版本的VeraCrypt可以创建并运行一个隐藏的加密操作系统,其存在可以被否认[19]该功能使用户在受到胁迫时通过展示无关紧要的外层卷,而使内层隐藏卷蒙混过关。

VeraCrypt帮助文档中列出多种方式写明当该功能受到影响时(例如第三方软件可能通过临时文件、缩略图等向未加密的磁盘分区泄露信息),几种可能的方法来避免这种情况。[20]

性能

VeraCrypt支持多元处理并行[21]:63加密,在Windows系统中,流水线型读写操作(异步处理的一种形式)[21]:63以提高加密解密的性能效率。该软件在较新的处理器支持AES-NI指令集,亦支持AES硬件加速以进一步提高性能。[21]:64 磁盘加密对性能的影响在使用直接内存访问(Direct Memory Access,DMA)操作中尤其明显,因为所有数据必须通过CPU进行解密,而不是直接从磁盘复制到内存。

安全问题

VeraCrypt很容易受到各种已知的攻击,也影响到其他基于软件的磁盘加密软件,如BitLocker。为了缓解这些攻击,VeraCrypt的帮助文档要求用户遵守各种安全防范措施。[20][22]一些安全问题详述如下:

内存中的加密密匙

VeraCrypt存储其在内存中的密匙。普通个人计算机上对动态内存断电后的几秒钟(或更长,如降低温度)之后可能仍然保留着数据。即使在内存中的数据已经严重丢失,仍有各种算法可以恢复密钥。这种方法被称为冷启动攻击,特别适用于在接入电源时,闲置或锁屏模式下的笔记本电脑,现已成功地用于攻击由TrueCrypt加密保护的文件系统。[23]

物理安全性

VeraCrypt帮助文档指出,如果攻击者物理攻击计算机中的数据,或者在受感染的电脑上使用该软件,VeraCrypt也无法保全其加密数据的完整性。当然电脑被盗,遗失或被没收这样的情况自然无能为力。[24]当攻击者通过物理访问电脑,例如,安装一个硬件或软件的键盘记录器或一个总线主控英语Bus mastering设备捕获内存信息,或安装任何其他恶意硬件英语Hardware Trojan软件的攻击,让攻击者捕捉到未加密的数据(包括加密密钥和密码),然后以这些非法得到的加密密匙及密码进行解密。因此,物理安全是一个完善安全系统的基本前提。这种攻击方式也一般称之为“邪恶女佣攻击”(Evil Maid attack)。[25]

恶意软件

VeraCrypt帮助文档指出,VeraCrypt无法保护被感染某些恶意软件类型的电脑上的数据。某些类型的恶意软件被设计用来记录键盘输入,包括键入的密码,攻击者也可以通过互联网上传或保存到未加密的本地驱动器后读取它,或者直接物理访问计算机时。[26]

可信平台模块

VeraCrypt网站上的FAQ指出,[27]可信平台模块(Trusted Platform Module,TPM) 的安全性并不可靠。因为如果攻击者具有对计算机的物理管理访问权限时,电脑可能被攻击者植入恶意程序,如一个简单的键盘按键记录器等,可以被用来捕捉密码或其他敏感信息。——TPM并非杀毒软件,并不会防止攻击者恶意修改计算机,因此VeraCrypt将不支持TPM。

安全审计

VeraCrypt正在进行一次独立的代码审核,目前正处于初期规划阶段。[28]

VeraCrypt是基于TrueCrypt开发的,通过独立的安全审计。审计的第一阶段已于2014年4月14日完成,结果为“没有证据证明该软件有后门或恶意代码”。[29]审计的第二阶段完成于2015年4月2日,结果为“没有证据表明该软件有故意后门,或在大多数情况下将使软件不安全的严重设计缺陷”。[30][31]

许可证

VeraCrypt从2015年6月28日起采用Apache 2.0许可证授权。[32]在此之前,它是以微软公共许可证(Microsoft Public License)发布的。[33]VeraCrypt使用了大量从其前身TrueCrypt得到的代码,也是唯一一款使用 TrueCrypt License 3.0 的加密软件。[34][35]然而这并不是一个广泛使用的开源软件许可证,也不是自由软件基金会定义的自由软件许可证,因为它包含分销和著作权责任的限制等。[36]

参见

参考文献

  1. ^ Contact Us - IDRIX. [16 November 2016]. (原始内容存档于2022-04-19). 
  2. ^ https://sourceforge.net/p/veracrypt/discussion/general/thread/8d9f4f9c84/; 出版日期: 2024年8月25日.
  3. ^ https://github.com/veracrypt/VeraCrypt/releases/tag/VeraCrypt_1.26.14; 出版日期: 2024年8月27日.
  4. ^ VeraCrypt 1.0f Bundle (All files and their signatures). IDRIX. [2015-01-04]. (原始内容存档于2015-06-03). 
  5. ^ VeraCrypt License. [2016-01-28]. (原始内容存档于2016-02-05). 
  6. ^ "VeraCrypt Official Site". [2015-10-24]. (原始内容存档于2021-03-30). 
  7. ^ VeraCrypt Volume. VeraCrypt Official Website. [February 16, 2015]. (原始内容存档于2017-10-10). 
  8. ^ Operating Systems Supported for System Encryption. VeraCrypt Official Website. [February 16, 2015]. (原始内容存档于2017-10-10). 
  9. ^ 9.0 9.1 Rubens, Paul. VeraCrypt a Worthy TrueCrypt Alternative. eSecurity Planet. Quinstreet Enterprise. October 13, 2014 [February 16, 2015]. (原始内容存档于2018-01-04). 
  10. ^ Henry, Alan. Five Best File Encryption Tools. Lifehacker. Gawker Media. February 8, 2015 [February 16, 2015]. (原始内容存档于2022-04-23). 
  11. ^ Encryption Algorithms. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2015-01-05). 
  12. ^ Hash Algorithms. VeraCrypt Documentation. IDRIX. [2015-01-04]. (原始内容存档于2015-01-05). 
  13. ^ Modes of Operation. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2015-01-05). 
  14. ^ Header Key Derivation, Salt, and Iteration Count. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2015-01-05). 
  15. ^ [https:/acrypt.codeplex.com/wikipage?title=Release%20Notes "VeraCrypt Release Notes"]
  16. ^ Castle, Alex (March, 2015). "Where Are We At With TrueCrypt?". MaximumPC, p. 59.
  17. ^ Plausible Deniability. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2016-01-11). 
  18. ^ Hidden Volume. VeraCrypt Documentation. IDRIX. [2015-01-04]. (原始内容存档于2015-12-22). 
  19. ^ Hidden Operating System. VeraCrypt Documentation. IDRIX. 2014-01-04 [2015-01-04]. (原始内容存档于2015-12-22). 
  20. ^ 20.0 20.1 Security Requirements and Precautions Pertaining to Hidden Volumes. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2015-12-22). 
  21. ^ 21.0 21.1 21.2 VeraCrypt User Guide 1.0f. IDRIX. 2015-01-04 [2015-10-24]. (原始内容存档于2015-12-16). 
  22. ^ Security Requirements and Precautions. VeraCrypt Documentation. IDRIX. [February 16, 2015]. (原始内容存档于2015-01-05). 
  23. ^ Alex Halderman; et al. Lest We Remember: Cold Boot Attacks on Encryption Keys. [2015-10-24]. (原始内容存档于2011-06-07). 
  24. ^ Physical Security. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2015-12-22). 
  25. ^ Schneier, Bruce. "Evil Maid" Attacks on Encrypted Hard Drives. Schneier on Security. 2009-10-23 [2014-05-24]. (原始内容存档于2022-04-29). 
  26. ^ Malware. VeraCrypt Documentation. IDRIX. 2015-01-04 [2015-01-04]. (原始内容存档于2016-07-30). 
  27. ^ FAQ. [2015-01-04]. (原始内容存档于2015-12-16). 
  28. ^ Idrassi, Mounir. Security audit. December 31, 2014 [February 22, 2015]. (原始内容存档于2015-08-05). 
  29. ^ Farivar, Cyrus, TrueCrypt audit finds "no evidence of backdoors" or malicious code, Ars Technica, 2014-04-14 [2014-05-24], (原始内容存档于2014-05-23) 
  30. ^ Green, Matthew. Truecrypt report. A Few Thoughts on Cryptographic Engineering. April 2, 2015 [April 4, 2015]. (原始内容存档于2015-04-05). 
  31. ^ Truecrypt Phase Two Audit Announced. Cryptography Services. NCC Group. February 18, 2015 [February 22, 2015]. (原始内容存档于2022-05-09). 
  32. ^ Apache License 2.0 (Apache). [2015-07-01]. (原始内容存档于2015-07-09). 
  33. ^ Microsoft Public License (Ms-PL). [2015-07-01]. (原始内容存档于2016-02-05). 
  34. ^ TrueCrypt License. Accessed on: May 21, 2012 Archive.is存档,存档日期2012年5月30日,
  35. ^ TrueCrypt Collective License页面存档备份,存于互联网档案馆). Accessed on: June 4, 2014
  36. ^ Simon Phipps, TrueCrypt or false? Would-be open source project must clean up its act, InfoWorld英语InfoWorld, 2013-11-15 [2014-05-20], (原始内容存档于2014-09-14) 

外部链接