田文郁 張靜文 張鵬 張曉燁 廖赟
(南京拓界信息技術(shù)有限公司,江蘇南京 210014)
BitLocker(BitLocker Driver Encryption)是微軟公司在 Windows Vista 操作系統(tǒng)內(nèi)首次提供的一項(xiàng)數(shù)據(jù)保護(hù)功能[1]。Win7/Win8/Win10系列操作系統(tǒng)使用了此安全策略,包括計(jì)算機(jī)全磁盤(pán)加密、磁盤(pán)分區(qū)加密以及BitLocker To Go移動(dòng)存儲(chǔ)設(shè)備加密等功能。Windows 系統(tǒng)的各個(gè)版本不斷改進(jìn)BitLocker的安全性,從而允許操作系統(tǒng)為更多驅(qū)動(dòng)器和設(shè)備提供BitLocker 保護(hù)。BitLocker 是扇區(qū)級(jí)別的加密,它可以對(duì)操作系統(tǒng)所在的驅(qū)動(dòng)器進(jìn)行保護(hù),也可以對(duì)普通磁盤(pán)的數(shù)據(jù)進(jìn)行保護(hù)。BitLocker 強(qiáng)大的數(shù)據(jù)保護(hù)功能解決了用戶(hù)信息泄露的危險(xiǎn),但同時(shí)給電子數(shù)據(jù)取證帶來(lái)了很大挑戰(zhàn)。下面基于Windows分區(qū)加密模式下的數(shù)據(jù)取證的相關(guān)問(wèn)題進(jìn)行探討,依據(jù)BitLocker加密機(jī)制,提出面向Clear key保護(hù)磁盤(pán)數(shù)據(jù)解密加密的取證方法。
BitLocker 使用全卷加密密鑰FVEK(Full Volume Encryption Key)對(duì)驅(qū)動(dòng)器的數(shù)據(jù)進(jìn)行加密,F(xiàn)VEK又通過(guò)卷主密鑰VMK(Volume Master Key)進(jìn)行加密,VMK 則可以通過(guò)用戶(hù)選擇不同的保護(hù)密鑰進(jìn)行加密,包括TPM、PIN碼、啟動(dòng)密鑰、用戶(hù)密碼以及恢復(fù)密鑰[2]。BitLocker加密密鑰和保護(hù)密鑰的關(guān)系圖1所示。
圖1 BitLocker加密密鑰和保護(hù)密鑰的關(guān)系
(1)全卷加密密鑰(FVEK)。全卷加密密鑰(FVEK)是BitLocker驅(qū)動(dòng)器加密算法中最核心的密鑰,用來(lái)加密所選磁盤(pán)中的靜態(tài)數(shù)據(jù),F(xiàn)VEK通過(guò)VMK 加密存儲(chǔ)在磁盤(pán)加密數(shù)據(jù)中。FEVK的核心部分以AES 128bit或AES 256bit兩種擴(kuò)展密鑰的形式存儲(chǔ),但用戶(hù)無(wú)論是選擇128bit還是256bit,密鑰的實(shí)際長(zhǎng)度都是256bit。密鑰的存儲(chǔ)格式圖2所示??梢钥吹?,AES 128bit密鑰僅有前128bit被用來(lái)加密,后128bit為空,AES 256bit密鑰256bit都用來(lái)進(jìn)行加密。
圖2 128/256位FVEK密鑰結(jié)構(gòu)圖
(2)卷主密鑰(VMK)。在BitLocker 驅(qū)動(dòng)器加密的密鑰管理系統(tǒng)中,VMK 是第二層密鑰。VMK和FEVK一樣都是存儲(chǔ)在BitLocker的加密卷上。每一個(gè)不同的VMK由不同的方式進(jìn)行加密,通過(guò)這些不同方法可以允許用戶(hù)通過(guò)不同的方式訪問(wèn)BitLocker加密卷。VMK的存儲(chǔ)格式和FVEK相似,大小為256bit,存儲(chǔ)在多個(gè)FVE卷主密鑰結(jié)構(gòu)中。VMK存儲(chǔ)時(shí)使用恢復(fù)密鑰、外部密鑰或TPM加密。
(1)TPM??尚牌脚_(tái)模塊,是一塊內(nèi)置在計(jì)算機(jī)中的微芯片,由CPU、存儲(chǔ)器、I/O、密碼運(yùn)算器、隨機(jī)數(shù)產(chǎn)生器和嵌入式操作系統(tǒng)等部件組成[3]。TPM相當(dāng)于一個(gè)“保險(xiǎn)柜”,可以將卷主密鑰(VMK)和密碼管理等重要的信息存放在里面。(2)PIN。在TPM之外,用戶(hù)使用輸入的數(shù)字/字母組合的密鑰來(lái)保護(hù)卷主密鑰(VMK)。(3)Startup key。使用移動(dòng)介質(zhì)存儲(chǔ)的密鑰,可以單獨(dú)使用,也可以和TPM組合使用。(4)Rcovory password。用來(lái)解密恢復(fù)模式的48位數(shù)字密鑰。(5)Recovery key。存儲(chǔ)在移動(dòng)介質(zhì)中,用來(lái)恢復(fù)加密數(shù)據(jù)。(6)Clear key。清除密鑰是存儲(chǔ)在卷上的未受保護(hù)的256位密鑰,這種方式對(duì)主密鑰沒(méi)有保護(hù)作用。
Windwos系統(tǒng)允許用戶(hù)在不解密BitLocker加密卷的情況下關(guān)閉BitLocker,當(dāng)BitLocker禁用后,系統(tǒng)會(huì)向卷元數(shù)據(jù)塊中寫(xiě)入一個(gè)256bit的密鑰,和使用此密鑰對(duì)VMK加密的密文副本。密鑰對(duì)應(yīng)的元數(shù)據(jù)結(jié)構(gòu)將包含GUID、時(shí)間戳、256bit密鑰和VMK的一個(gè)加密版本。此時(shí)系統(tǒng)可在不需要任何其他信息的情況下解密VMK和FVEK。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),一些為Windows 10系統(tǒng)設(shè)計(jì)的設(shè)備(如Surface),在具有TPM芯片的情況下默認(rèn)下自動(dòng)創(chuàng)建必要的分區(qū)和初始化加密,并在磁盤(pán)的元數(shù)據(jù)中存儲(chǔ)用Clear key。為了達(dá)到對(duì)硬盤(pán)中的電子數(shù)據(jù)取證的目標(biāo),可采取預(yù)處理備存加解密認(rèn)證模塊,然后啟用Clear Key解密BitLocker加密分區(qū),對(duì)分區(qū)加密機(jī)制進(jìn)行閑置性處理,由此通過(guò)分區(qū)解密認(rèn)證,繼而對(duì)電子數(shù)據(jù)進(jìn)行獲取,最后將預(yù)處理備存加解密認(rèn)證模塊進(jìn)行恢復(fù),從而達(dá)到數(shù)據(jù)取證的目的。
在實(shí)際案例中,通過(guò)Manage-bde -status工具查看設(shè)備的加密狀態(tài),如圖3所示為磁盤(pán)bitlocker加密狀態(tài)圖。BitLocker加密了磁盤(pán)已用空間,保護(hù)狀態(tài)為關(guān)閉。但是密鑰保護(hù)器顯示找不到,也就是說(shuō)默認(rèn)情況啟用的BitLocker加密,其密鑰是不被保護(hù)的,即存在明文狀態(tài)的Clear Key,可通過(guò)Clear Key解密得到VMK,進(jìn)而解密FVEK,最終解密整個(gè)保護(hù)卷數(shù)據(jù)。
圖3 查看磁盤(pán)bitlocker加密狀態(tài)
BitLocker是Windows主機(jī)最常用的一種加密方式,在計(jì)算機(jī)取證中遇到BitLocker加密的概率也會(huì)越來(lái)越高。面對(duì)不斷完善的磁盤(pán)加密技術(shù)及種類(lèi)繁多的加密軟件,電子數(shù)據(jù)取證未來(lái)的研究工作必須攻克現(xiàn)有的難題并不斷地技術(shù)創(chuàng)新,以提升我國(guó)計(jì)算機(jī)取證的技術(shù)能力,為國(guó)家安全穩(wěn)定做出貢獻(xiàn)。