微軟在NTFS4.0及后續(xù)版本的文件系統(tǒng)中,捆綁了兩個(gè)功能強(qiáng)大的工具:壓縮文件系統(tǒng)和加密文件系統(tǒng)。這個(gè)選項(xiàng)在文件夾的屬性-高級(jí)里面。是一個(gè)單選框。壓縮文件系統(tǒng)在這里就不多提了,不過(guò)有一點(diǎn),可能有心的朋友注意得到,就是這兩個(gè)選項(xiàng)不可以同時(shí)選。這個(gè)原因很簡(jiǎn)單,因?yàn)椴徽撌羌用芪募€是壓縮文件,我們都是在改變文件,我們通過(guò)改變他們的讀碼框架來(lái)加密或者壓縮文件。這里可能有人要問(wèn),WinRAR為什么可以及加密文件又壓縮文件。其實(shí)WinRAR加密的方法是在基于WinRAR這個(gè)文件壓縮系統(tǒng),而不是基于文件本身。我們還是言歸正傳。
這里面要提到的一點(diǎn)叫做加密方式。相信有些朋友對(duì)Alice和Bob這兩個(gè)名字非常熟悉,這兩個(gè)名字最早用于IBM出版的一本圖書(shū)中,用來(lái)解釋對(duì)稱加密和非對(duì)稱加密。對(duì)稱加密,簡(jiǎn)單一點(diǎn)說(shuō)就是加密所使用的密碼和解密所使用的密碼是同一個(gè)密碼。非對(duì)稱呢,加密使用的和解密是不同的密碼。這個(gè)不同的密碼,一個(gè)被稱為私鑰,另一個(gè)就是公鑰。從名字上面可以看出來(lái),私鑰,是無(wú)論如何不會(huì)公開(kāi)的,公鑰,則是發(fā)布出去的。
詳細(xì)解釋一下,熟悉非對(duì)稱加密的朋友可以跳過(guò)這一段。e.g.Alice要發(fā)送一份敏感數(shù)據(jù)給BOB,顯然需要加密。非對(duì)稱加密,使用兩個(gè)不同的密碼加密和解密。就是說(shuō),如果alice的公鑰和私鑰為一組密碼,分別是alice的公鑰和alice的私鑰。那么,用alice公鑰加密的東西只有使用alice的私鑰可以解密,對(duì)應(yīng)的,如果使用alice公鑰加密的東西,只有alice的私鑰可以解開(kāi)。那么對(duì)于bob也是一樣。如果我們采用對(duì)稱加密的方法,也就是加密和解密的過(guò)程使用的是一個(gè)密碼,那么這個(gè)密碼是無(wú)論如何不能被第三方截獲的。互聯(lián)網(wǎng)絡(luò),可以截獲;電話,可以監(jiān)聽(tīng);甚至當(dāng)面交換,都可以被竊聽(tīng)。所以這是對(duì)稱加密的一個(gè)重大缺陷。如果采用非對(duì)稱加密,alice和bob都不公開(kāi)自己的私鑰,然后他們?cè)诮粨Q信息前,互相交換公鑰。這樣,alice使用bob的公鑰加密alice要給bob的文件,這個(gè)使用bob公鑰加密過(guò)的文件,僅有bob的私鑰可以解開(kāi)。而bob從來(lái)沒(méi)有公開(kāi)過(guò)他的私鑰,所以,我們看到,這樣的加密,是安全的。這個(gè)信息加密解密,交換公鑰的過(guò)程,就是非對(duì)稱加密。
解釋過(guò)非對(duì)稱加密,我們也可以簡(jiǎn)單的比較出兩者在安全性上的優(yōu)越性。不過(guò)非對(duì)稱加密一個(gè)重要的缺陷,就是運(yùn)算時(shí)間很長(zhǎng),對(duì)稱加密在工作效率上可能是非對(duì)稱加密的100-1000倍。所以微軟也是在看到這一點(diǎn)后,在EFS中集成了兩者的優(yōu)點(diǎn)。EFS使用了對(duì)稱加密和非對(duì)稱加密結(jié)合的工作方式,即先生成一個(gè)字符串作為密鑰采用對(duì)稱加密方法加密文件,然后,再使用非對(duì)稱加密加密這個(gè)密鑰。這個(gè)密鑰具體位數(shù)我記不得了,大約在70位。這里出現(xiàn)一個(gè)問(wèn)題,實(shí)際在操作系統(tǒng)中,公鑰和私鑰是怎么獲得的?為什么管理員可以解開(kāi)所有用戶的加密文件?
依照微軟的白皮書(shū)中解釋,加密文件系統(tǒng)中的用戶證書(shū)的獲得,有兩種途徑,一個(gè)是從CA(CertificationAuthority)獲得,另一種是在企業(yè)級(jí)CA失效的時(shí)候由本機(jī)為自己頒發(fā)一個(gè)數(shù)字證書(shū)。這里需要解釋的是證書(shū)和密鑰的關(guān)系,證書(shū)是密鑰的載體,在證書(shū)中包含了密鑰。這里可能又有人要問(wèn),用戶的私鑰是存放在什么地方?用戶的私鑰是通過(guò)另外一種驗(yàn)證機(jī)制實(shí)現(xiàn)的,這個(gè)在系統(tǒng)層面,日后我會(huì)寫(xiě)文章加以闡釋。除了這兩個(gè)密鑰,還有一個(gè)用于直接加密文件的密鑰,這個(gè)根據(jù)用戶自己的SID計(jì)算出來(lái)的,微軟沒(méi)有公開(kāi)這方面的信息,還請(qǐng)有心人共同嘗試?yán)斫馄渲械墓ぷ髟怼9芾韱T之所以可以管理所有用戶的加密文件,是為了保證系統(tǒng)的穩(wěn)定,如果每一個(gè)用戶的文件都只有創(chuàng)建者可以修改,那么計(jì)算機(jī)可能因此陷入混亂的狀態(tài)。
近日聽(tīng)聞?dòng)行┸浖梢云平馕④浀腅FS,我本為之興奮,結(jié)果下載后研究了一下,這種軟件的工作原理是備份出管理員的帳戶信息,通過(guò)ERA(緊急恢復(fù)代理)實(shí)現(xiàn)加密文件的恢復(fù)。事實(shí)上,如果用戶不慎在重新安裝系統(tǒng)的時(shí)候忘記備份出相應(yīng)的密鑰,那么這個(gè)加密過(guò)的文件可能永遠(yuǎn)打不開(kāi)。這一點(diǎn)不難理解,因?yàn)槊恳淮伟惭b操作系統(tǒng),操作系統(tǒng)會(huì)隨即生成一個(gè)SID號(hào),當(dāng)然,如果用戶的人品足夠好,還是可能生成一樣的SID號(hào)的(開(kāi)個(gè)玩笑)。關(guān)于備份管理員賬號(hào)和密碼,可以通過(guò)Windows2000及后續(xù)版本中內(nèi)建的忘記密碼向?qū)?lái)幫助備份密碼。希望可以給大家一些幫助。


