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