本文以嵌入式系統(tǒng)為背景,結合智能卡技術和現(xiàn)有一般的安全操作系統(tǒng)研究方法,提出一種全新的安全控制策略,針對嵌入式系統(tǒng)應用環(huán)境中面臨的問題給出有效解決方法。最后,結合linux操作系統(tǒng),給出一種本質(zhì)安全型集中式控制安全操作系統(tǒng)模型,描述它所具有的安全特性。 關鍵詞:安全操作系統(tǒng) 安全模型 集中式控制 本質(zhì)安全型 強制存取控制引言操作系統(tǒng)作為底層系統(tǒng)軟件,負責為應用程序提供運行環(huán)境和訪問硬件的接口,它的安全性是信息安全的基礎?,F(xiàn)在操作系統(tǒng)面臨的威脅與攻擊多種多樣,安全操作系統(tǒng)已經(jīng)不再局限于僅提供安全的存取控制機制,還要提供安全的網(wǎng)絡平臺、安全的信息處理平臺和安全的進程通信支持。在嵌入式系統(tǒng)中,由于系統(tǒng)軟件和硬件設計的特點,很容易從硬件和軟件直接進行拷貝。操作系統(tǒng)的安全性應有更特殊的考慮。操作系統(tǒng)不但要對保存的數(shù)據(jù)提供安全保證,而且還要考慮自己運行的硬件平臺和系統(tǒng)本身的安全性。在現(xiàn)有操作系統(tǒng)中,有關系統(tǒng)安全控制的代碼是分散到系統(tǒng)中的,這對系統(tǒng)性能的影響降到了最低。但是,如果要添加新的控制機制,必須會引起大量的修改,由此將帶來潛在的不穩(wěn)定性和不一致性。隨著系統(tǒng)硬件性能的成倍增長,人們逐漸將目光轉(zhuǎn)移到集中式控制上來。在操作系統(tǒng)設計初期,安全模塊應該被獨立地提出來,成為操作系統(tǒng)設計需要考慮的一部分。智能卡技術是一種軟硬件結合的安全保護技術,經(jīng)常用于身份驗證和存儲加密信息。由于自身的硬件特性,它可以防止非法讀取和篡改;同時,智能卡本身具有加密的文件系統(tǒng),可以對信息進行安全的保護。在我們研究操作系統(tǒng)安全問題時,首次將智能卡技術引用到安全控制當中,作為整個安全體系結構的保證。智能卡用于對操作系統(tǒng)本身和運行的平臺進行標識,可以對用戶身份、進程的合法性進行嚴格的控制。
1 存取控制和安全模型存取控制是系統(tǒng)安全的核心內(nèi)容。存取控制按照一定的機制,在系統(tǒng)主體對客體進行訪問時,判定訪問請求和訪問的方式是否合法,返回判定結果。一般情況下,有兩種存取控制方式:自主存取控制dac(discretionary access control)和強制存取控制mac(mandatory access control)。(1)自主存取控制dac是安全操作系統(tǒng)最早期的存取控制方式,客體的所有者可以將客體的訪問權限或者訪問權限的子集授予其它主體。在類unix系統(tǒng)當中,系統(tǒng)提供owner/group/other的控制方式,就是一種典型的自主存取控制方式。(2)強制存取控制在自主存取控制當中,由于管理不當或者操作失誤,可能會引起非法的訪問,并且不能有效地防御特洛伊馬病毒的攻擊。在信息保密要求比較高的領域,人們提出了強制的存以控制方式,給系統(tǒng)提供一道不可逾越的訪問控制限制。強制存取控制主要通過安全級的方式實現(xiàn)。安全級含"密級"和"部門集"兩方面。密級又分為無密、秘密、機密、絕密四級。系統(tǒng)中主體和客體按照一定的規(guī)則被賦予最高安全級和當前安全級。系統(tǒng)主體的部門集表示主體可以涉及獵的信息范圍,系統(tǒng)客體的部門集表示該信息涉及的信息范圍。強制存取控制抽象出三條訪問原理:①的主體的安全級高于客體,當且僅當主體的密級高于客體的密級,且主體的部門集包含客體的部門集;②主體對客體具有讀權限,當且僅當主體的安全級高于客體的安全級;③主體對客體具有寫權限,當全僅當主體的安全級低于或者等于客體的安全級。安全模型是系統(tǒng)安全特性的描述,是對安全策略的一種數(shù)學形式化的表示方法。一般的安全操作系統(tǒng)的設計方法,通常是先設計安全模型,對安全模型進行分析,并且給出數(shù)學證明。安全模型的設計是研究安全操作系統(tǒng)的重要成果,可以對安全系統(tǒng)設計提供結構清晰、功能明確的指導。這里主要介紹blp安全模型。blp模型是人們對安全策略的形式化描述。它通過系統(tǒng)安全級的劃分來保證系統(tǒng)存取的合法性。blp模型定義了一系列的安全狀態(tài)和狀態(tài)轉(zhuǎn)換規(guī)則,如果保證系統(tǒng)啟動時處于安全狀態(tài)的話,即可按安全轉(zhuǎn)換規(guī)則,在各個安全狀態(tài)之間轉(zhuǎn)換。下面介紹blp模型的具體規(guī)則。系統(tǒng)的主體和客體均被賦予一定的安全級和部門集。主體安全級包含最高安全級的當前安全級。主體對于客體的訪問方式包括:只讀、只寫、執(zhí)行、讀寫。blp模型定義了兩具安全特性,并且證明了只要系統(tǒng)遵循這兩個模型,便可認為系統(tǒng)處于安全狀態(tài)并可在狀態(tài)之間進行轉(zhuǎn)換,這兩個特性是簡單安全特性和*特性。(1)簡單安全特性(ss-property)如果一個主體對一個客體具有讀的權限,則客體的安全級不能比主體的最大安全級高。(2)*特性(*-property)主體對客體有"只寫"的權限,則客體的安全級至少和主體的最高安全級一樣高。主體對客體有"讀"權限,則客體的安全級不會比主體的當前安全級高。主體對客體有"讀寫"權限,則客體安全級等于主體的當前安全級。人們習慣上將簡單安全特性看成限制"向上讀",將*特性看成限制"向下寫"。blp在多年的研究當中被認為可以有效防止特洛伊馬病毒的攻擊,但是仍然存在兩個問題:①系統(tǒng)具有動態(tài)的信息處理(例如主體的安全級的變化)都是有可信進程來實現(xiàn)的,但是blp模型并沒有對可信進程進行說明,可信進程也不受blp模型的限制;②blp模型不能防止隱通道。2 系統(tǒng)實現(xiàn)原理根據(jù)上面的分析,我們提出了一種本質(zhì)安全型,以進程控制為中心,集中式管理方式的安全控制方法。下面結合linux操作系統(tǒng)說明具體的實現(xiàn)原理,以wolf-linux來指具有這種控制機制的安全操作系統(tǒng)。本質(zhì)安全是指一種建立在特殊的硬件設備上(smart卡),具有特殊的體系結構,可對操作系統(tǒng)本身、進程合法性和運行權利進行驗證的安全機制。系統(tǒng)的安全控制分為六部分:進程管理器、安全服務器、文件系統(tǒng)伺服器、進程通信伺服務器、網(wǎng)絡伺服器和審計模塊??傮w結構如圖1所示:進程管理器、安全服務器wolf-linux安全控制的核心部分,審計模塊負責對系統(tǒng)的安全性事件進行記錄,其它部分是安全控制的執(zhí)行模塊。從圖1中可以看出,sim(subscriber identity module)卡處于系統(tǒng)的安全模塊中,保存系統(tǒng)的關鍵信息,集中式管理主要體現(xiàn)在進程控制器部分,安全判定和安全執(zhí)行的分離使得任何存取操作都不可能繞過安全控制機制。系統(tǒng)中所有的安全事件都通過進程控制器來判定是否可行,安全執(zhí)行模塊負責在訪問操作發(fā)生時抽象主體和客體,提交訪問請求并執(zhí)行訪問結果。下面主要介紹各個模塊的功能原理。(1)安全服務器和sim卡系統(tǒng)的安全服務器負責提供系統(tǒng)支持的安全策略。在系統(tǒng)啟動時,安全服務器初始化系統(tǒng)支持的安全策略。它的初始化過程中重要的一步是讀智能卡中的信息,驗證系統(tǒng)的身份。安全服務器提供的接口有三類:①與智能卡的接口。在智能卡中保存系統(tǒng)的關鍵信息,例如系統(tǒng)的有效使用時間、操作系統(tǒng)身份id。這個id號相當規(guī)模識了一個合法的系統(tǒng)身份和系統(tǒng)用戶身份信息(在系統(tǒng)的安全特性部分還會討論)。安全模塊通過智能卡的驅(qū)動程序,負責與智能卡信息的安全交互,并提供訪問智能卡的操作函數(shù)。②與進程控制器交互的接口。安全服務器只負責實現(xiàn)對安全策略的支持,而不管判定訪問操作是否合法。進程控制器在判定訪問是否合法時,使用安全服務器提供規(guī)則。③提供給系統(tǒng)管理的接口。由于在安全模塊當中實現(xiàn)了策略的獨立性,所以安全模塊可以在實現(xiàn)對多種策略的支持。接口函數(shù)包括安全模塊的初始化接口、安全策略的注冊接口、安全策略的管理接口。通過這些接口函數(shù)可以實現(xiàn)對安全策略的配置,系統(tǒng)安全特性針對不同的工作環(huán)境,可以動態(tài)變化。安全模塊的固化設計保證系統(tǒng)的安全特性不可能被破壞和篡改。
(2)進程控制器進程控制器是系統(tǒng)安全特性的關鍵部分,功能有兩個:①以進程為單位的權限控制;②判定安全執(zhí)行部分提供的訪問請求并返回判定結果;同時為了提高效率,保存最近的訪問判定結果,提供緩存功能。在傳統(tǒng)的unix系統(tǒng)當中,一般提供基于用戶的權限控制方法,系統(tǒng)的控制粒度只能到用戶。