系統(tǒng)是不是全程加密?如何確定文件是否應(yīng)該加密?
對于透明加密來說,當(dāng)然應(yīng)該是全程的。也就是說,應(yīng)用軟件生成的臨時文件也應(yīng)該是密態(tài)的。
很多應(yīng)用軟件在編輯數(shù)據(jù)文件時,都會生成臨時文件。廣為人知的就是MS Word在編輯doc文檔時,會在同目錄下出現(xiàn)以“~$”開頭的文件和一個以“~”開頭并以tmp為后綴的文件。這些臨時文件在相應(yīng)的數(shù)據(jù)文件被正常關(guān)閉后,會被刪除。由于這些臨時文件也存儲有企業(yè)的機(jī)密數(shù)據(jù),因而這些臨時文件的保護(hù)也就顯得非常重要了。
在對供應(yīng)商進(jìn)行這一項(xiàng)考查的時候,要特別注意。有些品牌的加密系統(tǒng),為了給自己圖方便,放棄對中間過程的文件進(jìn)行加密。例如,業(yè)界有一個老牌的廠商便采取了這樣一種做法:①利用Hook技術(shù)攔截程序?qū)ξ募拇蜷_操作;②把打開的文件隱蔽地解密到一個“秘密”的地方;③在后臺把應(yīng)用程序?qū)?shù)據(jù)文件操作指針指向位于“秘密”之處的明文;④在關(guān)閉數(shù)據(jù)文件時,把隱藏的明文加密并替換原有的文件。這樣的設(shè)計(jì),讓用戶看起來是能夠打開編輯密文,編輯保存后得到的還是密文。但是實(shí)際上應(yīng)用軟件真實(shí)編輯的對象是一個不加密的明文文件。這種做法,從原理上來說也是可以“忽悠”住一些客戶的。但是畢竟紙包不住火,那個“秘密的地方”其實(shí)很容易被發(fā)現(xiàn)。如果授信節(jié)點(diǎn)的User知道了這個“秘密的地方”,完全可以打開密文時到那個“秘密的地方”去獲得明文。
透明加密應(yīng)該只是針對數(shù)據(jù)文件,操作系統(tǒng)的文件和應(yīng)用軟件的文件肯定不能夠被加密。而且,不同的用戶,甚至同一個用戶的不同部門,所要加密的數(shù)據(jù)文件也不盡相同。例如產(chǎn)品設(shè)計(jì)部門理應(yīng)對產(chǎn)品圖紙進(jìn)行加密,而Photoshop的*.psd文件則無需加密。但是對于宣傳策劃部門可能正好相反,他們的腦力勞動成果是創(chuàng)意文案,而文案恰恰是用*.psd文件來承載的。簡言之,*.psd文件在技術(shù)部門是不敏感的,而在宣傳策劃部門則是敏感的。所以,程序如何判斷某個文件是否應(yīng)該加密,也是透明加密系統(tǒng)極其重要考查指標(biāo)。這個問題也可以換一種說法:管理員應(yīng)該如何設(shè)定加密規(guī)則。
面對這種問題,加密廠商們有三種選擇方式。
第一,指定路徑方式,即保存在指定路徑中的文件一律加密。系統(tǒng)管理員可以為每一個授信節(jié)點(diǎn)指定一個或多個“涉密路徑”。用戶如果將文件保存到這個路徑下,那么文件就會被加密。由于透明加密的特點(diǎn)是“強(qiáng)制地、自動地加密”,所以用戶有可能將機(jī)密文件保存到非涉密路徑下。廠商們?yōu)榱藨?yīng)對這個問題,通常會向用戶提供這樣的解決方案:①將所有的應(yīng)用軟件全部安裝在C盤,然后對C盤做一個鏡像,其他盤(無論是邏輯盤還是物理盤)都只允許存放數(shù)據(jù)文件;②將除C盤以外的所有盤符都設(shè)定為“涉密路徑”,以確保所有的數(shù)據(jù)文件都是密態(tài)存儲;③每次Windows啟動時,或者Windows關(guān)閉前,都會對C盤進(jìn)行自動還原(這一點(diǎn)很像網(wǎng)吧和部分企業(yè)中采用的還原技術(shù))。
第二,指定應(yīng)用方式,即由指定的應(yīng)用軟件生成的文件一律加密。系統(tǒng)管理員可以為每一個授信節(jié)點(diǎn)指定一個或多個“涉密應(yīng)用”。普通用戶如果用這些涉密應(yīng)用軟件保存文件,那么文件就會被加密。例如,前文所列舉的例子,系統(tǒng)管理員就可以將AutoCAD設(shè)置為技術(shù)部門的涉密應(yīng)用,將Photoshop設(shè)置為策劃部門的涉密應(yīng)用。
第三,指定后綴方式,即保存的文件只要是指定的后綴,文件就一律被加密。系統(tǒng)管理員可以為每一個授信節(jié)點(diǎn)指定一個或多個“涉密后綴”。普通用戶如果將數(shù)據(jù)保存為這種后綴的文件,那么文件就會被加密。繼續(xù)承上例,系統(tǒng)管理員可以將*.dwg和*.psd分別設(shè)置為技術(shù)部門和策劃部門的“涉密后綴”。
這三種方式,各有優(yōu)缺點(diǎn)。
第一種方式的優(yōu)點(diǎn)是易于實(shí)現(xiàn),且不關(guān)心應(yīng)用軟件是什么。但是弊端也非常明顯。主要表現(xiàn)為:①給日常的IT維護(hù)工作造成了很大的不便:殺毒軟件的特征庫升級、安裝新的應(yīng)用軟件等工作,都會隨著C盤的還原而還原,除非先解除對C盤的保護(hù),升級或者安裝結(jié)束后再恢復(fù)保護(hù);②有著明顯的安全漏洞:普通用戶完全可以將文件先保存到C盤,然后關(guān)閉Windows,甚至強(qiáng)行突然斷電,使得C盤的還原機(jī)制還沒有來得及發(fā)揮作用就將硬盤拆卸帶走,從而將文件的明態(tài)數(shù)據(jù)帶走了。由于明顯地弊大于利,所以這種方式只被少數(shù)的廠商所采用;③不從文件本身來區(qū)分,會產(chǎn)生過度加密(所謂過度加密,就是不該加密的也加密了,“眉毛胡子一把抓”)。
第二種方式的優(yōu)點(diǎn)是非常好貼近用戶,非常符合用戶的思維方式,因?yàn)橛脩糇铌P(guān)心的還是“由特定應(yīng)用軟件生成的文件”。這種方式易于用戶制定和維護(hù)規(guī)則。一般來說,采用了這種方式的加密系統(tǒng)都會限定:只有涉密應(yīng)用軟件才可以打開密文,非涉密應(yīng)用軟件是不允許打開密文的。(這一限制很容易理解:如果非涉密應(yīng)用也能夠打開密文,那么它再將文件另存,密文就變成了明文了。)這樣就帶來了該方式的一個弊病,即可能會導(dǎo)致過度加密。例如,軟件行業(yè)就相當(dāng)明顯。他們通常是要對程序的源代碼進(jìn)行加密,也就是說*.c、*.h等源代碼文件通常是密文。編譯程序需要讀取這些密態(tài)的源代碼文件,照理說編譯程序應(yīng)該是涉密程序。但同時編譯程序又要生成目標(biāo)文件,而目標(biāo)文件是不應(yīng)該被加密的。類似的矛盾在其他各個行業(yè)都存在。例如,在制造行業(yè)中的機(jī)加工編程軟件,一方面要讀取密態(tài)的dwg文件,另一方面要生成明態(tài)的機(jī)加工代碼文件;在建筑行業(yè)中的結(jié)構(gòu)分析軟件,一方面要讀取密態(tài)的dwg文件,另一方面要生成明態(tài)的報告文件等等。
第三種方式的優(yōu)點(diǎn)也是比較貼近用戶,比較符合用戶的思維方式。缺點(diǎn)是很難通過窮舉的辦法來指定所有的“涉密后綴”。
一般推薦用戶選擇采用“涉密程序”和/或“涉密后綴”方式的加密系統(tǒng)。有些品牌的透明加密系統(tǒng),同時采用了第二種方式和第三種方式,并主要針對第二種方式的弊病采取了一些修正措施(例如針對某個涉密程序可以設(shè)置例外后綴)。對于用戶而言,這樣的設(shè)計(jì)是最可接受的。