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