当前位置:首页 >技术文章>

TrueCrypt的安全隐患与改进方案

 

TrueCrypt作为*有名的应用*广泛的免费文件夹加密软件,它也有着它的安全隐患。本文就来阐述一下它的安全隐患在哪,以及如何改进。


TureCrypt的安全隐患


通过分析研究发现TrueCrypt存在安全隐患,*主要的是:实时加解密的主密钥和被加密的实体存放在同一个加密卷中。类似现实生活中银行卡和身份证放在一起.万一丢失则对失主造成损失。


TrueCrypt加密卷结构特点:加密卷是分卷首部分和数据部分组成。卷首部分(除 “盐”外)由卷首密钥加密,其中卷首部分有两个很重要的数据区:一个是未加密的 “盐”,另一个是由卷首密钥加密的主密钥。数据部分填充了由RNG产生的,由临时密钥加密的随机数。一个鲜明的特点是:卷首部分中未加密的“盐”可以和用户 口令产生卷首密钥,从而解密卷首部分,得到实时加密解密的主密钥。这使得加密卷中文件不再安全。虽然主密钥在卷头 中被卷首密钥加密着.且卷首密钥基于 PBKDF2的,PBKDF2产生的产生密钥过程因为有 “盐”.可以有效防范字典攻击。在rImIeCrypt中卷首中 “盐”是64字节.所以对于每一个用户名都有 25,2“盐”值可能。TmeCrypt用户名的长度是 64字节。所 以利用要破解密码一共需要2的1024次方=1.797693134862315907729305t90789e+308次尝试。TrueCrypt将 “盐”设置位卷首部前 64字节字节并且是不加密的。普通加密卷主密钥放在卷首部第256至511的字节中,隐藏加密卷的主密钥则存在卷首部第65792至66034字节中。也就是说非法用户得到加密卷时,同时获得了解密卷首部非常重要的 “盐”。要想破解加密卷.非法用户只需要猜测用户 口令即可 大体需 1.3407807929942597099574024998206e+154次尝试.这大大减少了运算时间。如果非法用户再知道加密使用用户口令的特点或者用户 口令的关键字。那么破解时间还会大大减少。这便失去了加“盐”的优势,而变成了典型的“字典攻击”。


TrueCrypt的改进


针对以上安全隐患,本文提出了改进策略:卷首部分重要数据和数据部分分离;在TmeCrypt中添加u盘准入控制模块。将卷首部分分离出来的重要数据保存在可准入的u盘中。


卷首部分重要数据和数据部分分离:把卷首部分中的 “盐”和主密钥,至少是把 “盐’’从加密卷中分离出来。原来卷首部分中“盐”的位置存放卷的序列号。分离出来的部分也要存有相同的序列号,以便以加载过程中分离部分的载入。同样的也很方便的随时变换分离部分的数据,即使分离部分丢失,也不用怕数据丢失,因为丢失的分离部分已经作废了。分离出来的重要数据保存在经过u盘准入控制的U盘中u盘准入控制模块:把普通或者特定的u盘作为密钥的载体,u盘的准入控制为TrueCrypt添加了新的一道防护门槛。只有经过准入控制的u盘才可作为密钥载体.才会让TrueCrypt加载加密卷时有反应。没有经过准入控制的U盘。即使u盘中有卷首分离的数据,TrueCrypt也不会有任何反应的。主密钥和被加密实体分离的实现可以通过修改卷数据格式说明和写入时的操作实现。u盘准入控制在安全领域的技术较为成熟,U盘准入的模块可以较为容易地实现。

通过添加U盘准入控制模块 以及对卷首部分重要数据和数据部分的分离,使得TrueCrypt中的 “实时加解密的主密钥和被加密的实体存放在同一个加密卷中”这一安全隐患得到解决。即使数据被他人获取,也不有很大的损失。


TrueCrypt是个好的开源文件加密软件,有着安全、易用 、功能强大等优点。但也存在着安全隐患。目前国内TrueCrypt研究资料非常少.本文依据源代码研究。对特征 、结构以及基本原理进行了分析,并针对其中存在的安全隐患提出了改进方案.使得TrueCrypt更加的完善。

  • 电话咨询

  • 4000-186-360