透明加密系統設計及實現-緒論
隨著資訊時代的到來,計算機成為了人們日常生活的必備之物。大量的桌面計算機和移動終端裝置給人們帶來了極大的方便,但是也增加的個人的機密資訊洩密的可能性。特別是對於機密部門的機密資料和企業公司的核心技術等更容易通過資訊科技的通道洩密,資訊科技安全面臨著前所未有的挑戰。通常的網路隔離及網路防火牆很難再滿足需求,因為最好的防火牆永遠也抵不過社會工程學的釜底抽薪,人事的問題在目前的網路技術下是一個永生的話題。
那麼這樣才能更好地解決這個問題呢,一切問題的解決思路都要歸根到事物的本源。資訊是根本,而資訊本身的載體更是依託,把握住電子資訊的主要資訊的載體就是檔案保護的關鍵。檔案作為電子資訊的主要載體,檔案的洩漏就代表了資訊的洩漏。解決檔案洩密的最為主要的方法是對檔案進行加密,但是靜態的加密是一種不可控的方法,是一種非實時的,可用性極低的技術。而動態加密是解決這個問題的最根本的方法,動態加密也稱透明加密,是在檔案使用時加密,是一種使用時加密技術,具有很強的控制能力,檔案在脫離了佈置透明加密的系統時是無法使用的,具有很強的控制性。
本系列文章將全面介紹設計並開發一個檔案透明加密及控制系統需要的關鍵技術、具體設計及具體實現方法,展示一個透明檔案加密系統應該具備的功能,以及這樣實現一個較為完整的透明加密系統。
1 背景知識
上世紀中業,隨著第一臺計算機的誕生,資訊科技快速發展,近些年計算機更成為日常生活、工作的主要工具,大量的企業及機構部門已經進入了資訊化的辦公時代,然而事情都是都是相對的,高新的技術後面隱藏著更多的安全問題。檔案作為電子資訊的主要載體,是資訊傳遞的最常見的表現形式。隨著網路技術的快速發展,檔案共享的便捷性逐步增加,範圍極大地擴大。同樣,技術給人們帶來方便的同時,也給人們帶來了挑戰,對於要進行檔案保護時面臨的挑戰是巨大的,非常困難的。
2011年來,資料洩漏的案例頻頻發生,從美國的HBGary Federal公司洩漏美商會、美國司法部、美洲銀行和WikiLeak的大量異常敏感的“商業機密”,到Epsilon 失竊的2500名企業客戶中2%的電子郵件資料庫,及蘋果員工出賣機密資訊,甚至是國內的網路最大洩密事件,超1億密碼被公開。員工跳槽導致關鍵技術洩漏的事件頻頻發生,不僅是員工本身法律意識較低或僥倖心理的原因,更反映出目前企業的檔案保護意識的欠缺,也體現出現在檔案保護措施的欠缺。
一般情況下,檔案的洩漏就意味著資訊的洩漏,檔案的保護毫無疑問是資訊保護的關鍵,也是資訊保護的根本。檔案保護的最根本的策略就是檔案加密,這樣加密檔案對於沒有金鑰的非法人員就是加密的,很難得到檔案的真實內容,檔案得到了有效的保護。
目前對於檔案的加密主要有兩種技術解決方案,一種是靜態加密,是一種相對成熟的加密方案,是對整個檔案及資料夾加密,使用時通過加密軟體解密後使用,是一種主動加密,不具有可控性。另一種是動態加密,動態加密是一種使用時加密的技術,是在檔案使用時加密,檔案使用者並不知道使用的檔案是加密的,故而又稱為透明加密,動態加密對於使用者而言是被動的,無論如何檔案都是加密的,是一種被動的加密技術,有很強的控制性,在企業檔案保護控制中具有很強的實用性。下表列出了基本的加密技術分類、加密原理及例項。
表1 加密演算法的分類
透明加密其在企業中受到的極大的重視,近年來成為了許多企業的必備的檔案保護設施。透明加密系統的特點是被動加密,可以防止檔案內容的非法洩密。同時最重要的是透明加密系統不改變使用者的軟體的使用習慣,第三方軟體不需要任何的改變就能夠達到透明加解密的效果。
透明加密從技術的發展來看經過四代的發展階段。
第一代技術階段,採用基於應用層的API hook的透明加密技術,該種設計方式的的透明加密系統工作在使用者態,鉤子技術多在作業系統的應用層介面實現,攔截目標作業系統的系統的操作檔案的API,然後將這些API入口定位到自定義的功能模組,完成相應的檔案加解密及檔案的控制功能,該種方式設計的透明加密系統的開發難度低,此種技術實現位於使用者層,由於不同的作業系統的系統呼叫的介面設定存在差異,採用第一代技術的透明加解密系統的可移植性得不到保障。
第二代技術階段,採用基於過濾驅動的清cache技術,基於檔案過濾驅動的透明檔案加密系統工作在作業系統的核心態,作為作業系統核心的擴充套件模組進行工作,主要通過攔截作業系統的核心模式下的檔案I/O請求,然後對相應的I/O請求進行過濾操作,實現檔案的透明加解密及控制的功能。採用該技術開發的檔案透明加密系統在處理檔案的緩衝互斥訪問問題時,採用了清除cache的技術防止系統緩衝中明文的洩漏和資料破壞。第二代技術主要的特點是適應度高,穩定性好,平臺的相容性好,但是其採用驅動模組完成系統的主要功能,開發難度大,是第一代技術的數倍。
第三代技術階段,採用基於檔案過濾驅動的智慧雙緩衝技術,與第二代技術一樣採用過濾驅動完成系統的主要功能,用該類技術開發的透明加密系統工作在作業系統的核心態,不同的是該種類型的透明加密系統在處理系統緩衝的互斥訪問中引入了新的智慧雙緩衝技術來解決的,該種方式設計的透明加密系統和第二代技術設計思路相比,系統的效能提高很多,同時系統的穩定性也得到了很好的提高,但是系統設計相對比較複雜。開發難度較大。
第四代技術階段,採用基於檔案過濾驅動及LayerFSD開發框架的技術,第四代技術檔案過濾驅動的同時,採用了LayerFSD的開發框架,LayerFSD採用分層的檔案系統驅動的技術來完成檔案透明加解密。引入LayerFSD技術的主要目的在於解決檔案系統過濾驅動之間的相容性,主要用於透明檔案加解密的過濾驅動與其它型別的檔案過濾驅動的相容性問題,如解壓縮及病毒掃描過濾驅動的相容性,採用該種類型的檔案透明加密系統與其它的過濾驅動具有很好的相容性,特別是和病毒安全軟體的相容性得到了很好的保證。
2 國內外研究現狀
透明檔案加密技術的研究在國內外起步都較晚,國內透明檔案加密技術的研究主要起始於21世紀初期,至今約十多年的時間,相比較之下,國外的起步要早幾年。透明加密技術在十年內得到了飛速的發展,透明加密系統已經成為了企業安全防護的第三道防線,也是最後一道防線(第一道防線是詳盡細緻的操作審計,第二道防線是全面嚴格的操作授權),被稱為企業最強的安全防護盾。
國外很少有單獨的透明加密提供商,大多是產品中包括了透明加密服務的功能。如RSA 公司的 Data Protection Manager 產品、賽門鐵克公司(Symantec)研發的 PGP Encryption Products系列產品、EMC 公司的 SourceOne for FileSystems 系列產品、McAfee 公司的 TotalProtection for Data Loss Prevention (DLP)產品等。這些產品都有一個共同的特點,它們不僅提供透明加密的服務,而是提供一套完整的企業的檔案安全保護的解決方案。
相比之下,國內的透明加密服務提供的軟體附加服務與國外公司相比之下要少,有的公司僅僅提供單一的企業解決方案。如商業級透明加密核心SEFS,提供了單一的透明加密的功能,採用的是第四代透明加密技術的設計方式,系統的穩定性和效能都比較好。也有公司提供一整套的安全防護體系,包括傳統的閘道器控制、嚴格的審計、操作授權及最為核心的透明加密。這些公司大多采用第三代的技術進行系統的設計和開發。具有代表性的產品很多,廣州溢信科技公司的IP-guard提供了除透明加密之外的大量的其它功能,如移動儲存控制,上網行為管理,桌面終端安全等等。還有北京博睿勤資訊科技有限公司的透明加密軟體除提供透明加密的功能外也提供了列印監控、介質管理及上網審計等附加的功能。
透明加密在企業環境中得到了極大重視,特別是2011以來連續發生巨大資訊洩密事件更是給各大企業敲了檔案保護的警鐘,檔案保護越來越受到各大企業的重視,紛紛開始採購並引進透明加密保護系統用於檔案的保護。但是由於技術不成熟,出現許多預料不急的事情,如引入透明加密系統後導致作業系統效能降低,由於透明加密系統的不穩定導致作業系統崩潰,從而導致資料丟失的事件經常發生。目前與現有系統完全相容的透明加密系統在市面仍然缺乏。
總體來看,國內外的透明加密系統採用的設計技術大多是基於第三代技術進行設計的,也有的公司採用的是第四代技術進行研究開發的。也有的公司在透明加密的系統中集合各代技術的特點進行設計及開發,該種方法雖然是系統的功能變得更加完善了,但是其可移植和與其它安全軟體的相容性很難得到保證,不是理想的設計思路。第四代技術是目前最為理想的設計方式,該種設計方案以高效率及穩定性很容易得到使用者的認可,而高的可移植降低了系統的更新換代的代價,也提高軟體公司的開發軟體複用的程度,是目前最為理想的設計方案。
3 主要內容
本系列文章在研究透明加密技術的各代技術的特點的同時,結合對Windows作業系統核心結構及I/O模式的特點來分析檔案系統驅動的程式設計架構。在此基礎上對檔案系統過濾驅動做出較為合理的選擇,根據現有的透明加密技術特點,充分考慮到系統模組驅動的可移植性及與其它軟體的相容性,結合第四代的透明加密技術LayerBSD分層過濾驅動的設計思想,以Minifiler為基本的驅動框架設計一套透明檔案加密系統。此外系統研究並實現了一套安全度高,實時性好,可控性優越的身份驗證機制,確保對使用者登陸身份的保證,這是目前市面上大部分的透明加密系統所缺乏的。為了進一步保證系統的安全性,系統對檔案的訪問進行嚴格的控制,包括可執行檔案的及移動磁碟,防止非法程式的執行,禁止非法使用者隨意盜取檔案。為了提高系統的靈活性,滿足系統的其它各種需求,系統設計實現了核心模組與使用者模組通訊的完整框架,保證了系統的配置的靈活性。策略配置端完成磁碟訪問控制策略、可執行檔案控制策略及透明加解密策略配置,進行檔案許可權批量設定,使用者管理及機密檔案與非機密檔案相互轉換等輔助功能。
本系列文章將獨立設計並自主實現了一個基於Minifilter微過濾驅動程式框架的一套完整的透明加密系統,系統包括位於的核心模式的檔案控制器FileControl.sys,採用動態連結封裝技術完成對系統的使用者模式通訊模組進行封裝成FileControl_dll.dll,以及介面美觀的使用者策略配置端FileControl.exe,使用者配置端採用最新的DirectUI技術進行介面的設計開發,介面美觀的同時保證了策略配置端的高效率。最為重要的是系統採用了全新的身份驗證技術,身份驗證時採用了密碼及USBKey的雙重機制,同時加上了身份的動態認證,隨時隨刻驗證使用者身份的可靠性。
本系列文章的主要研究內容概括如下:
(1)分析Windows作業系統的驅動開發的基本模型,熟練掌握Minifilter微過濾驅動的基本框架;
具體內容:分析windows 作業系統的基本結構,理解Windows理解的中斷優先順序模型,熟悉檔案I/O的基本流程及快取管理的基本原理及Windows驅動模型的基礎模型,閱讀並分析Microsoft wdk給出的Minifilter的例項,熟悉Minifilter的基本框架,熟練地採用Minifilter進行檔案過濾驅動的設計及開發。
(2)完成基於Minifilter的檔案加密系統的整體結構的設計及分析
具體內容:採用第四代的透明加密技術的LayerBSD思想,基於minifilter微過濾驅動框架來進行透明加密系統的設計,充分利用Minifilter微過濾驅動高效及易於移植的特點,保證系統的可移植性。系統主要包括三個部分,基於核心層的檔案控制器、位於應用層的策略配置端及核心模式與使用者結合的通訊介面部分,系統應用層及核心層功能劃分合理,層級結構清晰,同時給出了系統的系統結構圖及工作情況的概括圖。
(3)完成對檔案的訪問許可權的控制的設計和實現
具體內容:應用層對非指定卷的讀寫需要使用者進行授權,防止通過可移動磁碟隨意拷貝檔案。指定檔案只能由相關的使用者訪問,可執行檔案的讀寫必須在可執行檔案集合中,防止非法程式在計算機中執行,保證系統的安全性。
(4)完成對指定檔案為指定程序進行透明加解密的的設計與實現
具體內容:系統自動區分普通檔案及加密檔案,機密程序讀取機密檔案可以獲取明文,非機密程序讀寫機密檔案無法獲取明文。加密演算法的選擇多樣化,有至少三種加密演算法供選擇。對透明加密多種設計思路進行了比較,設計並給出了自己的檔案透明加密模型並進行實現。
(5)設計並實現核心模組與策略配置端的通訊設計和實現
具體內容:將策略配置端與核心檔案控制器緊密聯絡在一起,嚴格控制客戶端的使用者身份登陸,通過通訊模組能在二者之間完成必要的資料互動,通訊模組是透明加解密配置的關鍵橋樑,也是完成使用者身份驗證的必備模組。為了方便策略配置端的使用和程式設計,將使用者模式下的通訊子模組封裝為動態連結庫,降低系統的程式碼外部庫檔案的依賴。
(6)完成應用層對核心層部分動態配置的實現
具體內容:採用USBKey及密碼驗證使用者身份,同時加上動態的身份驗證機制,隨時監測使用者的身份。身份驗證由密碼驗證及USBKey驗證的同時跟USBKey、策略配置端及檔案控制器緊密集合在一起,任何模組出現問題,驗證都將會失敗,從而保證系統完整性,提高了身份驗證的有效性。策略配置端可以對檔案訪問許可權(包括可移動磁碟及可執行檔案)及加解密策略進行配置,能夠批量設定檔案許可權,機密檔案與普通檔案可以相互轉換。
4 系列文章的整體結構
本系列文章總共分為五章,各章的只要內容如下:
第一章,介紹了前資訊科技產業面臨的巨大的資訊保安的威脅,分析了國內外透明解密技術的現狀及發展過程,然後簡單第介紹了本論文研究的內容及論文的結構安排。
第二章,主要分析了windows的基本結構、驅動模型及微過濾驅動模型的基本框架和結構,介紹windows核心程式設計的基本方法及除錯技術。
第三章,將全面地研究透明加密系統的結構的設計、關鍵物件的標識、核心模式及使用者模式的通訊方式、透明加密的關鍵技術以及高可靠的身份驗證機制。給出透明加密系統的設計模型,為透明加密系統的整體的設計和實現奠定基礎。
第四章,將全面的概括了透明加密系統的整體的功能結構,詳細的闡述整個透明加密系統設計及實現過程。
第五章,概述從各個方面對系統進行測試,包括系統的功能測試及效能測試以及系統的相容性測試等。
最終, 本系列文章將給出專案實踐過程中的涉及資料及原始碼,以便探討學習。