來源:超時代軟件 更新時間:2013年12月24日 19:01:47
TrueCrypt作為*有名的應(yīng)用*廣泛的免費文件夾加密軟件,它也有著它的安全隱患。本文就來闡述一下它的安全隱患在哪,以及如何改進。
TureCrypt的安全隱患
通過分析研究發(fā)現(xiàn)TrueCrypt存在安全隱患,*主要的是:實時加解密的主密鑰和被加密的實體存放在同一個加密卷中。類似現(xiàn)實生活中銀行卡和身份證放在一起.萬一丟失則對失主造成損失。
TrueCrypt加密卷結(jié)構(gòu)特點:加密卷是分卷首部分和數(shù)據(jù)部分組成。卷首部分(除 “鹽”外)由卷首密鑰加密,其中卷首部分有兩個很重要的數(shù)據(jù)區(qū):一個是未加密的 “鹽”,另一個是由卷首密鑰加密的主密鑰。數(shù)據(jù)部分填充了由RNG產(chǎn)生的,由臨時密鑰加密的隨機數(shù)。一個鮮明的特點是:卷首部分中未加密的“鹽”可以和用戶 口令產(chǎn)生卷首密鑰,從而解密卷首部分,得到實時加密解密的主密鑰。這使得加密卷中文件不再安全。雖然主密鑰在卷頭 中被卷首密鑰加密著.且卷首密鑰基于 PBKDF2的,PBKDF2產(chǎn)生的產(chǎn)生密鑰過程因為有 “鹽”.可以有效防范字典攻擊。在rImIeCrypt中卷首中 “鹽”是64字節(jié).所以對于每一個用戶名都有 25,2“鹽”值可能。TmeCrypt用戶名的長度是 64字節(jié)。所 以利用要破解密碼一共需要2的1024次方=1.797693134862315907729305t90789e+308次嘗試。TrueCrypt將 “鹽”設(shè)置位卷首部前 64字節(jié)字節(jié)并且是不加密的。普通加密卷主密鑰放在卷首部第256至511的字節(jié)中,隱藏加密卷的主密鑰則存在卷首部第65792至66034字節(jié)中。也就是說非法用戶得到加密卷時,同時獲得了解密卷首部非常重要的 “鹽”。要想破解加密卷.非法用戶只需要猜測用戶 口令即可 大體需 1.3407807929942597099574024998206e+154次嘗試.這大大減少了運算時間。如果非法用戶再知道加密使用用戶口令的特點或者用戶 口令的關(guān)鍵字。那么破解時間還會大大減少。這便失去了加“鹽”的優(yōu)勢,而變成了典型的“字典攻擊”。
TrueCrypt的改進
針對以上安全隱患,本文提出了改進策略:卷首部分重要數(shù)據(jù)和數(shù)據(jù)部分分離;在TmeCrypt中添加u盤準(zhǔn)入控制模塊。將卷首部分分離出來的重要數(shù)據(jù)保存在可準(zhǔn)入的u盤中。
卷首部分重要數(shù)據(jù)和數(shù)據(jù)部分分離:把卷首部分中的 “鹽”和主密鑰,至少是把 “鹽’’從加密卷中分離出來。原來卷首部分中“鹽”的位置存放卷的序列號。分離出來的部分也要存有相同的序列號,以便以加載過程中分離部分的載入。同樣的也很方便的隨時變換分離部分的數(shù)據(jù),即使分離部分丟失,也不用怕數(shù)據(jù)丟失,因為丟失的分離部分已經(jīng)作廢了。分離出來的重要數(shù)據(jù)保存在經(jīng)過u盤準(zhǔn)入控制的U盤中u盤準(zhǔn)入控制模塊:把普通或者特定的u盤作為密鑰的載體,u盤的準(zhǔn)入控制為TrueCrypt添加了新的一道防護門檻。只有經(jīng)過準(zhǔn)入控制的u盤才可作為密鑰載體.才會讓TrueCrypt加載加密卷時有反應(yīng)。沒有經(jīng)過準(zhǔn)入控制的U盤。即使u盤中有卷首分離的數(shù)據(jù),TrueCrypt也不會有任何反應(yīng)的。主密鑰和被加密實體分離的實現(xiàn)可以通過修改卷數(shù)據(jù)格式說明和寫入時的操作實現(xiàn)。u盤準(zhǔn)入控制在安全領(lǐng)域的技術(shù)較為成熟,U盤準(zhǔn)入的模塊可以較為容易地實現(xiàn)。
通過添加U盤準(zhǔn)入控制模塊 以及對卷首部分重要數(shù)據(jù)和數(shù)據(jù)部分的分離,使得TrueCrypt中的 “實時加解密的主密鑰和被加密的實體存放在同一個加密卷中”這一安全隱患得到解決。即使數(shù)據(jù)被他人獲取,也不有很大的損失。
TrueCrypt是個好的開源文件加密軟件,有著安全、易用 、功能強大等優(yōu)點。但也存在著安全隱患。目前國內(nèi)TrueCrypt研究資料非常少.本文依據(jù)源代碼研究。對特征 、結(jié)構(gòu)以及基本原理進行了分析,并針對其中存在的安全隱患提出了改進方案.使得TrueCrypt更加的完善。