複製鏈接
請複製以下鏈接發送給好友

安全內核

鎖定
安全內核是指計算機系統中,能根據安全訪問控制策略訪問資源,確保系統用户之問的安全互操作,並位於操作系統和程序設計環境之間的核心計算機制。安全內核的目標是能夠靈活地控制被保護的對象,免於被非法的使用和拷貝。安全內核的安全機制通過保護域界定,並通過存取監視器控制。存取監視程序檢查和實施安全訪問策略。 [1] 
中文名
安全內核
外文名
security kernel

安全內核發展

安全內核的概念是由Roger Schell在1 972年提出來的,通常被定義為實現存取監督器抽象的硬、軟件。這種想法提出十六年來,只實現了少量的安全內核,且很少達到商業化,幾乎也未投入實際應用。這種絕少的進步並不是由於內核方法本身,而是買方對安全方法缺少興趣,這一點我們在第二章中已討論過。在工業部門和政府部門對安全問題的興趣日益增高的今天,可以預計幾年後會出現更多的基於內核開發的商業化的系統。
第一個安全內核是作為政府援助的項目由MITRE開發,在DEC PDP—l 1/45機器上運行,以證明安全內核這個概念。另一個值得注意的安全內核研究是PDP一11/4和1 1/70上的UCLA Data Secure Unix。國防部在一個稱作“保護人”的計劃中,資助了Multics的安全內核的設計和形式描述,但這個內核從未實現過。政府資助的功能系統開發中(現在已很少使用),包括由系統開發公司(現在是Unisys的一部分)開發的KVM——IBM的VM/370的加強版(,和Ksos——由福特太空通訊公司在PDP一11/70上開發的支持Unix的內核。還有兩個商業級的安全內核:Honeywell的STOP,在SCOMP上運行,該機是該公司的第六級加強型小型計算機;另一個是Gemini,計算機公司的GEMSOS,在Intel iAPX 80286微處理器上運行 [2] 

安全內核設計原則

概括地來講安全內核的設計和實現應當符合以下3條基本原則。
完整性原則要求主體引用客體時必須通過安全內核,即所有信息的訪問都必須經過安全內核。但是操作系統的實現與完整性原則的明確要求之間通常有很大差別:操作系統認為系統的信息存在於明顯的地方,比如文件、內存和輸入輸出緩衝區,並且操作系統有理由控制對這些客體的訪問。完整性原則並不滿足於對客體的特別定義,它認為任何信息存在之處,不管它們大小怎樣,用途如何,都是一個潛在的客體。
同時,完整性原則對支持內核系統的硬件也有一定要求。如果內核不檢查每條機器指令就允許有效地執行不可信程序,硬件就必須保證程序不能繞過內核的存取控制。所有對內存寄存器輸入輸出設備的引用必須由內存管理中的存取控制等存取機制進行合法存取檢查。內核必須使各個進程獨立,並且保證未通過內核的各進程間不能相互聯繫。若一台機器允許所有進程不加約束就能訪問物理存儲器的公共頁面,該機器就不適於建立安全內核。
2.隔離性原則
隔離性原則要求安全內核具有防篡改的能力,即可以保護自己,防止偶然破壞。
在實際實施隔離性原則時常需要軟硬件相結合。硬件的基本特性是使內核能防止用户程序訪問內核代碼和數據,這與內核防止一進程訪問別的進程是同一種內存管理機制。同時,還必須防止用户程序執行內核用於控制內存管理機制的特權指令。這需要某種形式的域控制機制,比如保護環機制。
在擁有這些硬件特性的系統中,用户程序幾乎沒有機會通過寫內核的存儲器、執行特權指令或修改內核軟件等方法使內核受到直接攻擊。
3.可驗證性原則
可驗證性原則是通過如下一些設計要素實現的:
·利用最新的軟件工程技術,包括結構設計、模塊化、信息隱藏、分層、抽象説明以及合適的高級語言;
·內核接口簡單化;
·內核小型化;
·代碼檢查; [3] 

安全內核作用

安全內核的主要作用是維護信息的機密性和完整性。它管理以下四種基本的操作:
(1)進程激活。在多道程序併發處理的環境下,進程的激活和撞起經常發生:由一個進程切換到另一個進程需要安全的寄存器、重定位映像、文件訪問控制表、進程狀態信息、指針等敏感信息安全處理手段。
(2)運行區域切換。運行在某一區域的進程為了進行敏感信息服務,常需要調用其它區域的進程或進行切換。
(3)內存保護。由於內存中保存了數據和程序代碼,其中許多是敏感信息。為確保各區域的機密性和數據完整性,安全內核必須對內存實施安全管理
(4)I/O操作。I/O操作可覆蓋所有區域,也是常調用的一種操作。在許多系統電,有將字符轉換成I/0操作的功能,這就需要在外層連接用户程序,在內層連接I/O設備管理。為保證該過程的安全,需對I/O操作進行安全管理。 [4] 

安全內核設計方法

安全內核的設計有如下兩種方法:
1.在操作系統內核中增加安全防護功能。系統的安全防護功能,如訪問控制、監視、審計等,·般都與內存訪問’、I/0操作、文件或程序存取有關。在模塊化設計的操作系統中,這些功能都是由不同的模塊來處理的。在這些模塊中增加安全功能,使之形成操作系統的安全內核。
如果將所有安全功能增加到原有的內核中,會破壞操作系統的模塊化特性,降低其原有的功能。因此,有些功能可放在操作系統的外層或應用層去完成,內核中只保留最基本的安全功能。而形成安全內核。
2.先設計安全內核。合理的設計應是先設計安全內核,然後圍繞安全內核設計操作系統。在基於安全的設計中,安全內核為接口層,它完成操作系統的所有硬件訪問保護功能、安全內核依賴於支持的硬件。它應該是小而有效,如比較成熟的安全操作系統的實際安全內核僅有10000行原程序左右。 [4] 
參考資料
  • 1.    劉清堂,章光瓊著.標準化教育資源的版權保護機制研究:中華師範大學出版社,2013.12
  • 2.    莫瑞·加瑟.計算機安全的技術與方法:電子工業出版社,1992年04月
  • 3.    卿斯漢 劉文清 温紅子 劉海峯編著.高等院校信息安全專業系列教材 操作系統安全:清華大學出版社,2004年08月
  • 4.    周景學.商務網站安全與控制:中國商業出版社,2001年