沈 泳
[摘要]Windows Vista采用安全軟件開(kāi)發(fā)方法開(kāi)發(fā),在安全性方面得到較大的提高。重點(diǎn)分析Windows Vista用戶(hù)帳戶(hù)信息保密機(jī)制的模型。比較Windows98/2000/XP以及Linux操作系統(tǒng)和Windows Vista在用戶(hù)帳戶(hù)登錄保密機(jī)制上的區(qū)別。并且研究全卷加密技術(shù)的原理,同時(shí)提出利用BitLocker、全卷加密技術(shù)以及版權(quán)控制三種保護(hù)機(jī)制混合使用來(lái)提高數(shù)據(jù)的安全性。
[關(guān)鍵詞]Windows Vista 用戶(hù)賬戶(hù)控制 BitLocker 加密文件系統(tǒng)
中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2009)0110064-03
一、引言
2006年11月30日,美國(guó)微軟公司正式發(fā)布了代號(hào)為L(zhǎng)onghorn的下一代視窗操作系統(tǒng)Windows Vista。這是繼Windows XP和Windows Sever 2003之后的又一重量級(jí)操作系統(tǒng)。和以往的Windows客戶(hù)端操作操作系統(tǒng)相比,Windows Vista在底層技術(shù)方面得到了極大的提升,在網(wǎng)絡(luò)安全以及多媒體方面也體現(xiàn)出了全新的構(gòu)想。
系統(tǒng)安全一直是微軟各個(gè)版本的Windows操作系統(tǒng)關(guān)注的問(wèn)題。微軟新推出的UAC(用戶(hù)賬戶(hù)控制)機(jī)制對(duì)授權(quán)進(jìn)程要求所有用戶(hù)以標(biāo)準(zhǔn)用戶(hù)模式進(jìn)行,并且限制管理員的權(quán)限,從而達(dá)到了限制惡意軟件對(duì)系統(tǒng)帶來(lái)的損害。同時(shí),Windows Vista還提供了Windows防火墻、Windows Service Hardening、EFS(加密文件系統(tǒng))、BitLocker等功能,增加了系統(tǒng)防御能力。
本文主要針對(duì)Windows Vista操作系統(tǒng)中的文件數(shù)據(jù)保護(hù)機(jī)制進(jìn)行了必要的研究,希望為讀者打開(kāi)了解Windows Vista的大門(mén)。
二、Windows Vista與其他操作系統(tǒng)身份驗(yàn)證比較分析
(一)Windows 9X系統(tǒng)
Windows 9X系統(tǒng)將用戶(hù)密碼默認(rèn)保存在擴(kuò)展名為pwl的緩存文件中。該文件包含了共享資源訪問(wèn)密碼、撥號(hào)網(wǎng)絡(luò)密碼、用戶(hù)登錄密碼等信息,是一個(gè)用于訪問(wèn)網(wǎng)絡(luò)資源的高速緩存的密碼清單。一般位于系統(tǒng)目錄(通常為C:Windows)下。不同的用戶(hù)使用不同的pwl文件,通過(guò)用戶(hù)名來(lái)命名文件名。只要獲取pwl文件,就可以獲得該用戶(hù)的各種密碼。
(二)Windows NT/2K/XP/Server 2003系統(tǒng)
Windows NT/2000系統(tǒng)中使用了安全賬號(hào)管理器(Security account manager)機(jī)制對(duì)用戶(hù)帳戶(hù)進(jìn)行安全管理。在賬號(hào)創(chuàng)建的同時(shí),安全標(biāo)識(shí)就被創(chuàng)建。一旦帳號(hào)被刪除,安全標(biāo)識(shí)也被同時(shí)刪除。即使是相同的用戶(hù)名,在每次創(chuàng)建時(shí)獲得的安全標(biāo)識(shí)也是完全不同的,也不會(huì)保留原來(lái)的權(quán)限。故安全標(biāo)識(shí)是唯一的。安全賬號(hào)管理器的具體表現(xiàn)就是%SystemRoot%system32
configsam文件。
與Windows 9X系統(tǒng)相同的是Windows NT/2K/XP/Server 2003等系統(tǒng)同樣使用了文件對(duì)用戶(hù)密碼進(jìn)行保存sam文件。不同的是sam文件是用戶(hù)帳戶(hù)的數(shù)據(jù)庫(kù),所有用戶(hù)的登錄名及密碼等信息都保存在這個(gè)文件中。系統(tǒng)在保存sam信息之前對(duì)sam文件進(jìn)行了壓縮,故而sam文件中的信息是不可讀取的。在系統(tǒng)運(yùn)行期間,sam文件被system賬號(hào)鎖定,即使是administrator賬號(hào)也不能打開(kāi)sam文件。
(三)Linux身份驗(yàn)證
Unix系統(tǒng)使用passwd文件保存用戶(hù)信息,包括經(jīng)過(guò)DES加密的用戶(hù)密碼。如果采用shadow機(jī)制,則會(huì)將密碼保存在shadow文件中,在passwd文件中只顯示“x”。passwd文件對(duì)于所有用戶(hù)均是可讀的,只對(duì)root用戶(hù)可寫(xiě)。而shadow文件則是不可讀的。兩個(gè)文件均位于/etc目錄下。
文件的每一行都代表一個(gè)用戶(hù)資料,每個(gè)賬號(hào)由七部分資料組成,不同資料中使用":"分割。格式如下:
賬號(hào)名稱(chēng):密碼:uid:gid:個(gè)人資料:用戶(hù)目錄:shell
除了密碼是加密的以外(這里的密碼部分已經(jīng)shadow了)其他項(xiàng)目非常清楚明了。
Unix系統(tǒng)采用最多的加密算法是DES,它使用56位的密鑰(8個(gè)7位的字符)加密64位的文本塊。傳統(tǒng)的UNIX系統(tǒng)中,crypt()函數(shù)將用戶(hù)密碼填充到8個(gè)字符,并用這8個(gè)ASCII字符組成的56位DES密鑰,然后對(duì)一個(gè)64位的零字符塊進(jìn)行DES加密,然后再次使用原有的密鑰對(duì)該結(jié)果進(jìn)行加密,該過(guò)程重復(fù)25次,最終生成一個(gè)11個(gè)字符的字串。在此基礎(chǔ)上,UNIX系統(tǒng)還是用摻雜其他數(shù)據(jù)的方法進(jìn)行加密。摻雜的數(shù)據(jù)又稱(chēng)為Salt(鹽粒)。鹽粒一般為12位,基于系統(tǒng)時(shí)間來(lái)讀取數(shù)值,范圍為0~4095。使用鹽粒后,一個(gè)完整的加密口子字串由13個(gè)字符組成,其中前兩個(gè)字符為鹽粒,后11個(gè)字符為真正的加密密碼。
(四)BigLocker加強(qiáng)身份驗(yàn)證功能
Windows Vista中采用BitLocker加密來(lái)加強(qiáng)身份驗(yàn)證。BitLocker原名Secure Star up(安全啟動(dòng))。對(duì)于公司而言,存儲(chǔ)在計(jì)算機(jī)上的數(shù)據(jù)通常比計(jì)算機(jī)本身更有價(jià)值,這些數(shù)據(jù)的丟失或者泄漏可能會(huì)造成極具破壞性的后果。在Windows XP以及之前的操作系統(tǒng)中,非法用戶(hù)可以通過(guò)離線方式讀取操作系統(tǒng)中的文件和數(shù)據(jù)。BitLocker驅(qū)動(dòng)器加密是Windows Vista中新增的一個(gè)系統(tǒng)級(jí)數(shù)據(jù)保護(hù)功能,目前僅在企業(yè)版和旗艦版中提供。它提供完整的驅(qū)動(dòng)器加密功能,有效地避免因用戶(hù)對(duì)計(jì)算機(jī)保護(hù)不當(dāng)或者不當(dāng)?shù)奶蕴幚矶鴮?dǎo)致的數(shù)據(jù)丟失或者泄漏產(chǎn)生的威脅。即使非法用戶(hù)啟動(dòng)另外一個(gè)系統(tǒng)或者運(yùn)行黑客工具軟件,以脫機(jī)方式瀏覽存儲(chǔ)在受保護(hù)驅(qū)動(dòng)西里的數(shù)據(jù),也無(wú)法讀出加密信息,從而提高了數(shù)據(jù)的安全性。故而B(niǎo)itLocker技術(shù)也稱(chēng)之為安全啟動(dòng)。

根據(jù)不同的計(jì)算機(jī)系統(tǒng),Windows Vista提供以下選項(xiàng):
1.不帶有TPM芯片的計(jì)算機(jī),將啟動(dòng)密鑰保存在USB閃存上。啟動(dòng)系統(tǒng)時(shí),閃存必須連接到計(jì)算機(jī)。
2.帶有TPM芯片的計(jì)算機(jī)。數(shù)據(jù)解密功能被限制為首先必須對(duì)系統(tǒng)組件進(jìn)行校驗(yàn),而校驗(yàn)信息保存在TPM新片中。
3.TPM和PIN。每次系統(tǒng)啟動(dòng)后,都需要輸入長(zhǎng)度在4到20位的PIN碼。
4.TPM和啟動(dòng)密鑰。由啟動(dòng)密鑰代替PIN碼,每次啟動(dòng)系統(tǒng)時(shí),只要插入保存了啟動(dòng)密鑰的閃存,無(wú)需輸入PIN碼。
5.恢復(fù)密鑰。為了在數(shù)據(jù)校驗(yàn)失敗后訪問(wèn)數(shù)據(jù)。用戶(hù)可以通過(guò)功能鍵手工輸入恢復(fù)PIN碼,或者從網(wǎng)絡(luò)驅(qū)動(dòng)器或者USB閃存中讀入[1]。
(五)BitLocker加密原理
BitLocker基于Trusted Platform Module(TPM)1.2平臺(tái),需要支持TPM的硬件芯片。TPM負(fù)責(zé)生成加密密鑰,同時(shí)存儲(chǔ)密鑰、密碼、數(shù)字證書(shū)以核心操作系統(tǒng)文件的測(cè)量值。BitLocker采用128位或者256位的AES(Advanced Encryption Standard高級(jí)加密標(biāo)準(zhǔn))加密,并且可以通過(guò)組策略進(jìn)行設(shè)置。[3]BitLocker采用全卷加密驅(qū)動(dòng)程序(FVE)進(jìn)行全卷加密。FVE是一個(gè)篩選級(jí)驅(qū)動(dòng)程序,該系統(tǒng)隨機(jī)產(chǎn)生一個(gè)密鑰,叫做FVEK(全卷加密密鑰)。FVE可以收到NTFS文件系統(tǒng)發(fā)送給卷的所有I/O請(qǐng)求,寫(xiě)入的時(shí)候自動(dòng)加密,讀取的時(shí)候自動(dòng)解密。FVEK對(duì)Windows分區(qū)進(jìn)行加密,然后再由VMK(Volume Master Key卷主密鑰)對(duì)FVEK進(jìn)行加密。加密后的FVEK密鑰保存在卷的特殊元數(shù)據(jù)區(qū)域。當(dāng)系統(tǒng)有TPM1.2及以上版本的芯片時(shí),將TPM加密VMK。既可以用TPM中的密鑰SRK和USB閃盤(pán)里的密鑰聯(lián)合對(duì)VMK加密;也可以用PM中的密鑰SRK和開(kāi)機(jī)時(shí)輸入的PIN聯(lián)合對(duì)VMK加密。即使TPM出錯(cuò),也可以通過(guò)恢復(fù)模式重新生成密鑰。
若系統(tǒng)沒(méi)有TPM,還可以用USB閃盤(pán)中的密鑰對(duì)VMK加密。

若希望在BitLocker被撤銷(xiāo)后訪問(wèn)加密的數(shù)據(jù),需要用到“Clear Key”密鑰。這個(gè)密鑰保存在硬盤(pán)上,使用VMK和FVEK可以在BitLocker被撤銷(xiāo)后繼續(xù)訪問(wèn)加密的數(shù)據(jù)。如果隨后BitLocker再次被啟用,就不能繼續(xù)訪問(wèn)Clear Key了。在啟用BitLocker的時(shí)候,生成一個(gè)恢復(fù)密碼是很重要的,這個(gè)48位的密碼分為八組,每組有六個(gè)數(shù)字。記錄這48位密碼對(duì)以后恢復(fù)很有用。
當(dāng)系統(tǒng)啟動(dòng)時(shí),會(huì)將自己的散列值和PCR加載代碼進(jìn)行比較,并把該散列值寫(xiě)入到TPM芯片的第一個(gè)PCR寄存器中。然后計(jì)算出BIOS度量值,并將該度量值存放在合適的PCR寄存器中。BIOS會(huì)給啟動(dòng)序列中的下一個(gè)組件計(jì)算散列值,持續(xù)該操作過(guò)程直至操作系統(tǒng)加載程序計(jì)算出度量值并與之進(jìn)行比較。然后運(yùn)行的每段代碼都需要負(fù)責(zé)對(duì)其加載的代碼計(jì)算度量值,并負(fù)責(zé)把度量值存儲(chǔ)到TPM芯片里相應(yīng)的PCR寄存器中。最后,當(dāng)用戶(hù)選擇引導(dǎo)的操作系統(tǒng),引導(dǎo)管理器會(huì)從該卷中讀取加密的VMK,并請(qǐng)求TPM對(duì)其進(jìn)行解密。只有當(dāng)所有的度量值和VMK封裝時(shí)相同時(shí),包括可選的PIN等,TPM才能夠成功解密VMK。
三、Windows Vista文件加密機(jī)制
(一)EFS加密技術(shù)介紹
EFS(Encrypt File System加密文件系統(tǒng))是NTFS文件系統(tǒng)獨(dú)有的一種安全特性。BitLocker僅對(duì)Windows所在的驅(qū)動(dòng)器加密,對(duì)非Windows所在的驅(qū)動(dòng)器并不自動(dòng)保護(hù)。也就是說(shuō),對(duì)于那些具有多個(gè)卷或者多個(gè)磁盤(pán)的系統(tǒng)來(lái)說(shuō),BitLocker并不能保護(hù)它們的數(shù)據(jù)。當(dāng)系統(tǒng)順利啟動(dòng)后,BitLocker無(wú)法對(duì)數(shù)據(jù)提供保護(hù)。
EFS加密可以保證系統(tǒng)啟動(dòng)后對(duì)用戶(hù)數(shù)據(jù)提供保護(hù)。其他任何未授權(quán)的用戶(hù),包括管理員,都不能訪問(wèn)加密的數(shù)據(jù)。
EFS將文件夾/文件以加密形式存儲(chǔ)在硬盤(pán)上,這樣,特定的文件/文件夾只能被具有正確證書(shū)通過(guò)私鑰認(rèn)證的用戶(hù)打開(kāi)。和第三方工具不同,EFS加密并不需要用戶(hù)提供密碼,加密和解密過(guò)程由Windows在后臺(tái)自動(dòng)進(jìn)行,對(duì)用戶(hù)透明。用戶(hù)按照正常方式使用文件,當(dāng)文件被關(guān)閉時(shí),它會(huì)被解密。對(duì)于不具有操作權(quán)限的證書(shū)的用戶(hù),即使重新安裝系統(tǒng),同樣無(wú)法存取該文件/文件夾。EFS是Windows Vista中對(duì)BitLocker較好的補(bǔ)充。但是EFS加密與NTFS的壓縮功能不能同時(shí)使用,即如果文件被壓縮,那么就無(wú)法對(duì)其實(shí)施加密功能。
加密文件/文件夾的方法如下[4]:
1.在資源管理器中找到待保護(hù)的文件/文件夾,右鍵選擇屬性。
2.在“常規(guī)”選項(xiàng)頁(yè)中選擇“高級(jí)”。
3.勾選高級(jí)屬性中的“加密內(nèi)容以便保護(hù)數(shù)據(jù)”項(xiàng),點(diǎn)擊“確定”。
4.在返回的常規(guī)選項(xiàng)頁(yè)中點(diǎn)擊“確定”。
(二)EFS加密原理
EFS加密過(guò)程如下,如圖3:
1.隨機(jī)生成一個(gè)加密密鑰,稱(chēng)之為FEK(文件加密密鑰)m1。
2.用FEK對(duì)目標(biāo)文件m2進(jìn)行加密生成E1(m2)。
3.若第一次使用,系統(tǒng)自動(dòng)為該用戶(hù)生成一對(duì)公鑰/私鑰pk/sk。
4.用該用戶(hù)的公鑰對(duì)FEK進(jìn)行加密E2(m1)。
5.刪除原始的FEK。將E2(m1)作為加密文件的一個(gè)屬性和加密文件保存在一起。
EFS解密過(guò)程如下,如圖4:
1.EFS系統(tǒng)用用戶(hù)的私鑰解密FEK即D2(E2(m1))得到m1。
2.用解密后的FEK m1將文件E1(m2)解密D(E1(m2))得到m2。
如果用戶(hù)持有已加密的NTFS文件的私鑰,那么用戶(hù)就能夠打開(kāi)該文件,并且將該文件作為普通的文檔透明的使用,所有的加密、解密過(guò)程都在NTFS底層進(jìn)行。反之,文件將拒絕用戶(hù)的訪問(wèn)。
(三)BitLocker和EFS比較
雖然EFS可以支持?jǐn)?shù)據(jù)加密,但是對(duì)于系統(tǒng)的某些敏感區(qū)域,如注冊(cè)表配置單元文件,EFS就無(wú)能為力了。例如,如果組策略允許用戶(hù)不在域環(huán)境時(shí)也能登錄到計(jì)算機(jī),驗(yàn)證所用的域憑據(jù)就會(huì)緩存在注冊(cè)表中,這樣攻擊者就可以使用工具來(lái)獲取域賬戶(hù)的散列值,并借助密碼破解工具來(lái)破解域賬戶(hù)的密碼,然后順利訪問(wèn)賬戶(hù)。EFS通過(guò)NTFS文件系統(tǒng)驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn),并進(jìn)行文件級(jí)別操作。
BitLocker使用全卷加密驅(qū)動(dòng)程序,并進(jìn)行卷級(jí)別加密。它可以加密頁(yè)面文件、休眠文件、SAM數(shù)據(jù)庫(kù)等重要的系統(tǒng)文件,這樣攻擊者就無(wú)法破解離線賬戶(hù)。BitLocker加密主要用于系統(tǒng)登錄之前,當(dāng)?shù)卿浀接脩?hù)環(huán)境后[5],系統(tǒng)所有文件都處于解密狀態(tài),這時(shí)候需要EFS加密實(shí)現(xiàn)基于用戶(hù)的文件保護(hù)。

四、版權(quán)保護(hù)
Windows Vista中提供了版權(quán)保護(hù),只有授權(quán)的用戶(hù)才能夠使用相應(yīng)的文件。電子郵件可以被指定的用戶(hù)群瀏覽,但是不能進(jìn)行打印或者轉(zhuǎn)發(fā)等操作。Windows Vista還提供了訪問(wèn)版權(quán)保護(hù)Office文檔的客戶(hù)端(RMS client)[6],用戶(hù)無(wú)需再安裝/配置額外軟件。
五、總結(jié)
Windows Vista中提供三種數(shù)據(jù)保護(hù)技術(shù):BitLocker,加密文件系統(tǒng)(EFS)以及版權(quán)保護(hù)。在操作系統(tǒng)啟動(dòng)之前和過(guò)程中,BitLocker保證非授權(quán)用戶(hù)無(wú)法登入系統(tǒng),但是BitLocker無(wú)法對(duì)操作系統(tǒng)以外的磁盤(pán)數(shù)據(jù)保護(hù)。加密文件系統(tǒng)無(wú)法對(duì)系統(tǒng)文件加密,例如頁(yè)面文件、休眠文件等,但是EFS可以在系統(tǒng)啟動(dòng)后對(duì)非操作系統(tǒng)外的磁盤(pán)數(shù)據(jù)提供保護(hù),保證非授權(quán)用戶(hù)即使提升權(quán)限也無(wú)法讀取數(shù)據(jù)。BitLocker和EFS相輔相成,分別作用于不同階段。當(dāng)用戶(hù)需要對(duì)Office文檔進(jìn)行遠(yuǎn)程權(quán)限控制時(shí),需要考慮使用版權(quán)保護(hù)。
根據(jù)不同的用戶(hù)場(chǎng)景,三種數(shù)據(jù)保護(hù)方式分別使用情況如表1所示。
參考文獻(xiàn):
[1]王旭,Vista的磁盤(pán)加密功能,個(gè)人電腦,2007.04.
[2]劉輝,揭密Vista的磁盤(pán)加密功能,http://www.pcpro.com.cn/pcpro/20
07/0509/435924.shtml.
[3]Vista BitLocker,給系統(tǒng)動(dòng)態(tài)保護(hù),每周電腦報(bào),2007.04.
[4]嘯天,Windows Vista中的文件和文件夾加密,網(wǎng)絡(luò)與信息,2007.07.
[5]深入理解Windows Vista內(nèi)核三:BitLocker,http://blogs.itecn.net/
blogs/winternals/archive/2007/03/22/insidevistakernel2.aspx.
[6]http://technet2.microsoft.com/WindowsVista/en/library/00d04415-2b2f-422c-b70e-b18ff918c2811033.mspx?mfr=true.