安全核心

安全核心

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

基本介紹

  • 中文名:安全核心
  • 外文名: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微處理器上運行

設計原則

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

作用

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

設計方法

安全核心的設計有如下兩種方法:
1.在作業系統核心中增加安全防護功能。系統的安全防護功能,如訪問控制、監視、審計等,·般都與記憶體訪問’、I/0操作、檔案或程式存取有關。在模組化設計的作業系統中,這些功能都是由不同的模組來處理的。在這些模組中增加安全功能,使之形成作業系統的安全核心。
如果將所有安全功能增加到原有的核心中,會破壞作業系統的模組化特性,降低其原有的功能。因此,有些功能可放在作業系統的外層或套用層去完成,核心中只保留最基本的安全功能。而形成安全核心。
2.先設計安全核心。合理的設計應是先設計安全核心,然後圍繞安全核心設計作業系統。在基於安全的設計中,安全核心為接口層,它完成作業系統的所有硬體訪問保護功能、安全核心依賴於支持的硬體。它應該是小而有效,如比較成熟的安全作業系統的實際安全核心僅有10000行原程式左右。

相關詞條

熱門詞條

聯絡我們