物聯網安全:訪問控制
在物聯網系統中,訪問控制(Access Control)是對用戶合法使用資源的認證和控制,簡單說就是根據相關授權,控制對特定資源的訪問,從而防止一些非法用戶的非法訪問或者合法用戶的不正當使用,以確保整個系統資源能夠被合理正當地利用。由于物聯網應用系統是多用戶、多任務的工作環境,這為非法使用系統資源打開了方便之門,因此,迫切要求我們對計算機及其網絡系統采取有效的安全防范措施,以防止非法用戶進入系統以及合法用戶對系統資源的非法使用。這就需要采用訪問控制系統。
訪問控制包含3方面的含義。
① 合法性:阻止沒有得到正式授權的用戶違法訪問以及非法用戶的違法訪問。
② 完整性:在包含收集數據、傳輸信息、儲存信息等一系列的步驟中,保證數據信息的完好無損,不可以隨意增刪與改動。
③ 時效性:在一定時效內,保證系統資源不能被非法用戶篡改使用,保障系統在時效內的完整。
通過訪問控制,系統可以預防和阻礙未經授權的非法用戶訪問和操作系統資源。
1、訪問控制的基本概念
(1)訪問控制的功能
訪問控制應具備身份認證、授權、文件保護和審計等主要功能。
1)認證
認證就是證實用戶的身份。認證必須和標識符共同起作用。認證過程首先需要用戶輸入賬戶名、用戶標志或者注冊標志以表明身份。賬戶名應該是秘密的,任何其他用戶不得擁有。但為了防止賬戶名或用戶標志泄露而出現非法用戶訪問,還需要進一步用認證技術證實用戶的合法身份。口令是一種簡單易行的認證手段,但是因為容易被猜測而比較脆弱,所以易被非法用戶利用。生物技術是一種嚴格且有前途的認證方法,如指紋識別、視網膜識別、虹膜識別等,但因技術復雜,目前還沒有被廣泛采用。
2)授權
系統正確認證用戶后,根據不同的用戶標志分配給其不同的使用資源,這項任務稱為授權。授權的實現是靠訪問控制完成的。訪問控制是一項特殊的任務,它將標志符ID作為關鍵字來控制用戶訪問的程序和數據。訪問控制主要用在關鍵節點、主機和服務器,一般節點使用較少。但如果要在一般節點上增加訪問控制功能,則系統應該安裝相應的授權軟件。在實際應用中,通常需要從用戶類型、應用資源以及訪問規則3個方面來明確用戶的訪問權限。
① 用戶類型。對于一個已經被系統識別和認證了的用戶,系統還要對他的訪問操作實施一定的限制。對于一個通用計算機系統來講,用戶范圍廣,層次與權限也不同。用戶類型一般有系統管理員、一般用戶、審計用戶和非法用戶。系統管理員權限最高,可以對系統中的任何資源進行訪問,并具有所有類型的訪問操作權利。一般用戶的訪問操作要受到一定的限制,系統管理員會根據需要給這類用戶分配不同的訪問操作權利。審計用戶負責對整個系統的安全控制與資源使用情況進行審計。非法用戶則是被取消訪問權利或者被拒絕訪問系統的用戶。
② 應用資源。應用資源是指系統中的每個用戶可共同分享的系統資源。系統內需要保護的是系統資源,因此需要對保護的資源定義一個訪問控制包(Access Control Packet,ACP),訪問控制包會給每一個資源或資源組勾畫出一個訪問控制列表(Access Control List,ACL),列表中會描述哪個用戶可以使用哪個資源以及如何使用。
③ 訪問規則。訪問規則定義了若干條件,在這些條件下可準許訪問一個資源。一般來講,規則可使用戶與資源配對,然后指定該用戶可以在該資源上執行哪些操作,如只讀、不允許執行或不允許訪問等。這些規則是由負責實施安全政策的系統管理人員根據最小特權原則來確定的,即在授予用戶訪問某種資源的權限時,只給予該資源的最小權限。例如,用戶需要讀權限時,不應該授予讀寫權限。
3)文件保護
文件保護是指對文件提供的附加保護,其可使非授權用戶不可讀取文件。一般采用對文件加密的附加保護。
4)審計
審計是記錄用戶系統所進行的所有活動的過程,即記錄用戶違反安全規定使用系統的時間、日期以及用戶活動。因為可能收集的數據量非常大,所以,良好的審計系統應具有進行數據篩選并報告審計記錄的工具,此外,還應容許工具對審計記錄做進一步的分析和處理。
(2)訪問控制的關鍵要素
訪問控制是指主體依據某些控制策略對客體本身或其他資源進行不同權限的訪問。訪問控制包括3個要素:主體、客體和控制策略。
1)主體
主體是可以在信息客體間流動的一種實體。主體通常指的是訪問用戶,但是作業或設備也可以成為主體。所以,對文件進行操作的用戶是一種主體,用戶調度并運行的某個作業也是一種主體,檢測電源故障的設備還是一個主體。大多數交互式系統的工作過程是:用戶首先在系統中注冊,然后啟動某一進程以完成某項任務,該進程繼承了啟動它的用戶的訪問權限。在這種情況下,進程也是一個主體。一般來講,審計機制應能對主體涉及的某一客體進行的與安全有關的所有操作都做相應的記錄和跟蹤。
2)客體
客體本身是一種信息實體,或者是從其他主體或客體接收信息的載體。客體不受它所依存的系統的限制,其可以是記錄、數據塊、存儲頁、存儲段、文件、目錄、目錄樹、郵箱、信息、程序等,也可以是位、字節、字、域、處理器、通信線路、時鐘、網絡節點等。主體有時也可以被當作客體,例如,一個進程可能包含多個子進程,這些子進程就可以被認為是一種客體。在一個系統中,作為一個處理單位的最小信息集合就稱為一個文件,每一個文件都是一個客體。但是,如果文件可以分成許多小塊,并且每個小塊又可以單獨處理,那么每個小塊也都是一個客體。另外,如果文件系統被組織成了一個樹形結構,那么這種文件目錄也是客體。
在有些系統中,邏輯上所有的客體都作為文件處理。每種硬件設備都作為一種客體來處理,因而,每種硬件設備都具有相應的訪問控制信息。如果一個主體準備訪問某個設備,則該主體必須具有適當的訪問權,而對設備的安全校驗機制將對訪問權進行校驗。例如,某主體想對終端進行寫操作,則需要將想寫入的信息先寫入相應的文件中,安全機制將根據該文件的訪問信息來決定是否允許該主體對終端進行寫操作。
3)控制策略
控制策略是主體對客體的操作行為集和約束條件集,也是主體對客體的控制規則集。這個規則集直接定義了主體對客體可以進行的作用行為和客體對主體的條件約束。控制策略體現了一種授權行為,即客體對主體的權限允許,這種允許不可超越規則集。
訪問控制系統的3個要素可以使用三元組(S、O、P)來表示,其中S表示主體,O表示客體,P表示許可。當主體提出一系列正常請求信息I1,I2,…,In時,請求信息會通過物聯網系統的入口到達控制規則集監視的監控器,由控制規則集來判斷允許或拒絕請求。在這種情況下,必須先確認主體是合法的,而不是假冒的,也就是必須對主體進行認證。主體通過認證后才能訪問客體,但并不保證其有權限對客體進行操作。客體對主體的具體約束由訪問控制表來控制實現,對主體的驗證一般都是通過鑒別用戶標志和用戶密碼來實現的。用戶標志是一個用來鑒別用戶身份的字符串,每個用戶有且只能有唯一的一個用戶標志,以便與其他用戶有所區別。當一個用戶在注冊系統時,他必須提供其用戶標志,然后系統才會執行一個可靠的審查來確認當前用戶就是對應用戶標志的那個用戶。
當前訪問控制實現的模型普遍采用了主體、客體、授權的定義和這3個定義之間的關系的方法來描述。訪問控制模型能夠對計算機系統中的存儲元素進行抽象表達。訪問控制要解決的一個基本問題便是主動對象(如進程)如何對被動的受保護對象(如被訪問的文件等)進行訪問,并且按照安全策略進行控制。主動對象稱為主體,被動對象稱為客體。
針對一個安全的系統,或者是將要在其上實施訪問控制的系統,一個訪問可以對被訪問的對象產生以下作用:一是對信息的抽取;二是對信息的插入。對于被訪問對象來說,可以有“只讀不修改”“只讀修改”“只修改不讀”“既讀又修改”4種訪問方式。
訪問控制模型可以根據具體的安全策略的配置來決定一個主體對客體的訪問屬于以上4種訪問方式中的哪一種,并且可以根據相應的安全策略來決定是否給予主體相應的訪問權限。
(3)訪問控制策略的實施
訪問控制策略是物聯網信息安全的核心策略之一,其任務是保證物聯網信息不被非法使用和非法訪問,為保證信息基礎的安全性提供一個框架,提供管理和訪問物聯網資源的安全方法,規定各要素需要遵守的規范與應負的責任,為物聯網系統安全提供可靠依據。
1)訪問控制策略的基本原則
訪問控制策略的制定與實施必須圍繞主體、客體和控制規則集三者之間的關系展開。具體原則如下。
① 最小特權原則。最小特權原則指主體執行操作時,按照主體所需權利的最小化原則分配給主體權利。最小特權原則的優點是最大限度地限制了主體實施授權行為,可以避免來自突發事件、錯誤和未授權用戶主體的危險,即為了達到一定的目的,主體必須執行一定的操作,但主體只能做允許范圍內的操作。
② 最小泄露原則。最小泄露原則指主體執行任務時,按照主體所需要知道的信息最小化的原則分配給主體權利。
③ 多級安全原則。多級安全原則指主體和客體間的數據流向和權限控制按照安全級別進行劃分,包括絕密、秘密、機密、限制和無級別5級。多級安全原則的優點是可避免敏感信息擴散。對于具有安全級別的信息資源,只有安全級別比它高的主體才能夠訪問它。
2)訪問控制策略的實現方式
訪問控制的安全策略有:基于身份的安全策略和基于規則的安全策略。目前使用這兩種安全策略的基礎都是授權行為。
① 基于身份的安全策略。
基于身份的安全策略與鑒別行為一致,其目的是過濾對數據或資源的訪問,只有能通過認證的主體才有可能正常使用客體的資源。基于身份的安全策略包括基于個人的安全策略和基于組的安全策略。
基于個人的安全策略是指以用戶為中心建立的一種策略。這種策略由一些列表組成,這些列表限定了針對特定的客體,哪些用戶可以實現何種策略操作行為。
基于組的安全策略是基于個人的安全策略的擴充,指一些用戶被允許使用同樣的訪問控制規則訪問同樣的客體。
基于身份的安全策略有兩種基本的實現方法:訪問能力表和訪問控制列表。訪問能力表提供了針對主體的訪問控制結構,訪問控制列表提供了針對客體的訪問控制結構。
② 基于規則的安全策略
基于規則的安全策略中的授權通常依賴于敏感性。在一個安全系統中,對數據或資源應該標注安全標記。代表用戶進行活動的進程可以得到與其原發者相應的安全標記。
基于規則的安全策略在實現時,由系統通過比較用戶的安全級別和客體資源的安全級別來判斷是否允許用戶進行訪問。
2、訪問控制的分類
訪問控制可以限制用戶對應用中關鍵資源的訪問,防止非法用戶進入系統及合法用戶對系統資源的非法使用。在傳統的訪問控制中,一般采用自主訪問控制和強制訪問控制。隨著分布式應用環境的出現,又發展出了基于對象的訪問控制、基于任務的訪問控制、基于角色的訪問控制、基于屬性的訪問控制等多種訪問控制技術。
1)自主訪問控制
自主訪問控制(Discreytionary Access Control,DAC)是指用戶有權對自身所創建的訪問對象(如文件、數據表等)進行訪問,并可將對這些對象的訪問權授予其他用戶和從授予權限的用戶處收回其訪問權限。
2)強制訪問控制
強制訪問控制(Mandatory Access Control,MAC)是指由系統(通過專門設置的系統安全員)對用戶所創建的對象進行統一的強制性控制,按照規定的規則決定哪些用戶可以對哪些對象進行什么樣的操作系統類型的訪問,即使是創建者用戶,其在創建一個對象后,也可能無權訪問該對象。
3)基于對象的訪問控制
DAC或MAC模型的主要任務都是對系統中的訪問主體和受控對象進行一維的權限管理。當用戶數量多、處理的信息數據量巨大時,用戶權限的管理任務將變得十分繁重且難以維護,這就會降低系統的安全性和可靠性。
對于海量的數據和差異較大的數據類型,需要用專門的系統和專門的人員加以處理,如果采用基于角色的訪問控制模型,安全管理員除了需要維護用戶和角色的關聯關系外,還需要將龐大的信息資源訪問權限賦予有限個角色。
當信息資源的種類增加或減少時,安全管理員必須更新所有角色的訪問權限設置,如果受控對象的屬性發生變化,以及需要將受控對象不同屬性的數據分配給不同的訪問主體進行處理時,則安全管理員將不得不增加新的角色,還必須更新原來所有角色的訪問權限設置以及訪問主體的角色分配設置。
這樣的訪問控制需求變化往往是不可預知的,這會導致訪問控制管理難度增加工作量變大。因此,在這種情況下,有必要引入基于受控對象的訪問控制模型。
控制策略和控制規則是基于對象的訪問控制(Object-based Access Control,OBAC)系統的核心所在。在基于受控對象的訪問控制模型中,會將訪問控制列表與受控對象或受控對象的屬性相關聯,并會將訪問控制選項設計成為用戶、組或角色及其對應權限的集合;同時允許對策略和規則進行重用、繼承和派生操作。這樣,不僅可以對受控對象本身進行訪問控制,也可以對受控對象的屬性進行訪問控制,而且派生對象可以繼承父對象的訪問控制設置,這對于信息量巨大、信息內容更新變化頻繁的信息管理系統非常有益,可以減輕由信息資源的派生、演化和重組等帶來的分配、設定角色權限等工作量。
OBAC系統從信息系統的數據差異變化和用戶需求出發,有效地解決了信息數據量大、數據種類繁多、數據更新變化頻繁的大型信息管理系統的安全管理問題。同時,從受控對象的角度出發,將訪問主體的訪問權限直接與受控對象相關聯。一方面,定義對象的訪問控制列表,使增、刪、修改訪問控制項易于操作;另一方面,當受控對象的屬性發生改變,或者受控對象發生繼承和派生行為時,無須更新訪問主體的權限,只須修改受控對象的相應訪問控制項即可,從而減少了訪問主體的權限管理,降低了授權數據管理的復雜性。
4)基于任務的訪問控制
基于任務的訪問控制(Task-based Access Control,TBAC)是從應用和企業層面來解決安全問題的,從任務(活動)的角度來建立安全模型和實現安全機制,在任務處理的過程中提供動態、實時的安全管理。
在TBAC模型中,對象的訪問權限控制并不是靜止不變的,而是會隨著執行任務的上下文環境發生變化。TBAC首要考慮的是在工作流的環境中對信息的保護問題:在工作流環境中,數據的處理與上一次的處理相關聯,相應的訪問控制也是如此,因此TBAC是一種上下文相關的訪問控制模型。其次,TBAC不僅能對不同的工作流實行不同的訪問控制策略,還能對同一工作流的不同任務實例實行不同的訪問控制策略。從這個意義上說,TBAC是基于任務的,這也表明,TBAC是一種基于實例(instance-based)的訪問控制模型。
TBAC模型由工作流、授權結構體、受托人集、許可集這4部分組成。
任務(task)是工作流中的一個邏輯單元,是一個可區分的動作,與多個用戶相關,也可能包括幾個子任務。授權結構體(authorization unit)是任務在計算機中進行控制的一個實例。任務中的子任務對應于授權結構體中的授權步。
授權結構體是由一個或多個授權步(authorization step)組成的結構體,它們在邏輯上是聯系在一起的。授權結構體分為一般授權結構體和原子授權結構體。一般授權結構體內的授權步依次執行,原子授權結構體內的每個授權步緊密聯系,其中任何一個授權步失敗都會導致整個結構體的失敗。
授權步表示一個原始授權處理步,是指在一個工作流中對處理對象的一次處理過程。授權步是訪問控制所能控制的最小單元,由受托人集(trustee-set)和多個許可集(permissions-set)組成。
受托人集是可被授予執行授權步的用戶的集合,許可集則是受托集的成員被授予授權步時擁有的訪問許可。在授權步初始化以后,一個來自受托人集中的成員將被授予授權步,我們稱這個受托人為授權步的執行委托者,該受托者執行授權步過程中所須許可的集合稱為執行者許可集。授權步之間或授權結構體之間的相互關系稱為依賴(dependency),依賴反映了基于任務的訪問控制的原則。授權步的狀態變化一般由自身管理,即依據執行的條件自動變遷狀態,但有時也可以由管理員進行調配。
一個工作流的業務流程由多個任務構成,而一個任務對應于一個授權結構體,每個授權結構體由特定的授權步組成。授權結構體之間以及授權步之間通過依賴關系聯系在一起。在TBAC中,一個授權步的處理可以決定后續授權步對處理對象的操作許可,這些許可的集合稱為激活許可集。執行者許可集和激活許可集一起稱為授權步的保護態。
TBAC模型一般用五元組(S,O,P,L,AS)表示,其中S表示主體,O表示客體,P表示許可,L表示生命期(lifecycle),AS表示授權步。由于任務都是有時效性的,所以在基于任務的訪問控制中,用戶對于授予他的權限的使用也是有時效性的。因此,若P是授權步AS所激活的權限,那么L就是授權步AS的存活期限。在授權步AS被激活之前,它的保護態是無效的,其中包含的許可不可使用。當授權步AS被觸發時,它的執行委托者開始擁有執行者許可集中的權限,同時它的生命期開始倒記時。在其生命期間,五元組(S,O,P,L,AS)有效;生命期終止時,五元組(S,O,P,L,AS)無效,執行委托者所擁有的權限被回收。
TBAC的訪問政策及其內部組件關系一般由系統管理員直接配置。通過授權步的動態權限管理。TBAC支持最小特權原則和最小泄露原則,在執行任務時只給用戶分配所需的權限,未執行任務或任務終止后用戶不再擁有所分配的權限;而且在執行任務過程中,當某一權限不再被使用時,授權步會自動將該權限回收;另外,對于敏感的任務需要不同的用戶執行,可以通過授權步之間的分權依賴加以實現。
TBAC從工作流中的任務角度建模,可以依據任務和任務狀態的不同,對權限進行動態管理。因此,TBAC非常適合分布式計算和多點訪問控制的信息處理控制以及在工作流、分布式處理和事務管理系統中的決策制定。
5)基于角色的訪問控制
基于角色的訪問控制(Role-based Access Control,RBAC)的基本思想是將訪問許可權分配給一定的角色,用戶通過飾演不同的角色來獲得角色所擁有的訪問許可權。這是因為在很多實際應用中,用戶并不是可以訪問的客體信息資源的所有者(這些信息屬于企業或公司)。因此,訪問控制應該基于員工的職務而不是基于員工在哪個組或誰是信息的所有者,即訪問控制是由各個用戶在部門中所擔任的角色來確定的。例如,一個學校可以有老師、學生和其他管理人員等角色。
RBAC從控制主體的角度出發,根據管理中相對穩定的職權和責任來劃分角色,將訪問權限與角色相聯系,這點與傳統的MAC和DAC將權限直接授予用戶的方式不同。RBAC通過給用戶分配合適的角色,讓用戶與訪問權限相聯系。角色成為了訪問控制中訪問主體和受控對象之間的一座橋梁。
角色可以被看作一組操作的集合,不同的角色具有不同的操作集,這些操作集是由系統管理員分配給角色的。在下面的實例中,我們假設Tch1,Tch2,Tch3,…,Tchi是老師,Stud1,Stud2,Stud3,…,Studj是學生,Mng1,Mng2,Mng3,…,Mngk是教務處管理人員,那么老師的權限為TchMN={查詢成績、上傳所教課程的成績};學生的權限為Stud MN={查詢成績、反映意見};教務處管理人員的權限為MngMN={查詢成績、修改成績、打印成績清單}。
依據角色的不同,每個主體只能執行自己所制定的訪問功能。用戶在一定的部門中具有一定的角色,其所執行的操作與其所扮演的角色的職能相匹配,這正是基于角色的訪問控制(RBAC)的根本特征:依據RBAC策略,系統定義了各種角色,每種角色可以完成一定的職能,不同的用戶根據其職能和責任被賦予相應的角色,一旦某個用戶成為某角色的成員,則該用戶就可以完成該角色所具有的職能。
因為企業擔心冗長而復雜的實施過程,并且雇員訪問權要發生變化,所以許多企業往往不愿意實施基于角色的訪問控制。完成基于角色的矩陣可能是一個需要企業花費幾年時間的復雜過程。有一些新方法可以縮短這個過程,例如,企業可以將人力資源系統作為數據源,收集所有雇員的部門、職位以及企業的層次結構等信息,并將這些信息用于創建每個訪問級別的角色,從活動目錄等位置獲得當前的權利,實現不同角色的雇員的數據共享。
6)基于屬性的訪問控制
基于屬性的訪問控制(Attribute-based Access Control,ABAC)主要針對面向服務的體系結構和開放式網絡環境,在這種環境中,能夠基于訪問的上下文建立訪問控制策略,處理主體和客體的異構性和變化性。RBAC已不能適應這樣的環境。RBAC不能直接在主體和客體之間定義授權,而是需要將他們關聯的屬性作為授權決策的基礎,并利用屬性表達式描述訪問策略。ABAC能夠根據相關實體屬性的變化,適時更新訪問控制決策,從而提供一種更細粒度的、更加靈活的訪問控制方法。
屬性雖然是一個變量,但是相對而言它的規則策略是穩定且不易改變的。ABAC之所以能運用于用戶動態變化的訪問控制中,就是因為它利用了策略的固定性所產生的作用。
3、訪問控制的基本原則
訪問控制機制是用來實施對資源訪問加以限制的策略的機制,這種策略把對資源的訪問權限只授于了那些被授權用戶。應該建立起申請、建立、發出和關閉用戶授權的嚴格的制度,以及管理和監督用戶操作責任的機制。
為了獲取系統的安全,授權應該遵守訪問控制的3個基本原則。
1)最小特權原則
最小特權原則是系統安全中最基本的原則之一。最小特權(Least Privilege)指的是“在完成某種操作時所賦予網絡中每個主體(用戶或進程)必不可少的特權”。最小特權原則是指“應限定網絡中每個主體所需的最小特權,以確保可能的事故、錯誤、網絡部件的篡改等原因造成的損失最小”。
最小特權原則使用戶所擁有的權力不能超過它執行工作時所需的權限。最小特權原則一方面給予主體“必不可少”的特權,保證了所有的主體都能在所賦予的特權之下完成所需要完成的任務或操作;另一方面,它只給予主體“必不可少”的特權,這也限制了每個主體所能進行的操作。
2)多人負責原則
多人負責即授權分散化,在功能上劃分關鍵的任務由多人來共同承擔,以保證沒有任何個人具有完成任務的全部授權或信息,如將責任做分解以確保沒有一個人具有完整的密鑰。
3)職責分離原則
職責分離是保障安全的一個基本原則。職責分離是指將不同的責任分派給不同的人員以期達到互相牽制的作用,消除一個人執行兩項不相容的工作的風險,如收款員、出納員、審計員應由不同的人擔任。計算機環境下也要有職責分離,為避免安全上的漏洞,有些許可不能同時被同一用戶獲得。
4、BLP訪問控制
BLP模型是由戴維和萊納德于1973年提出并于1976年整合、完善的安全模型。BLP模型的基本安全策略是“下讀上寫”,即主體對客體向下讀、向上寫。主體可以讀安全級別比它低或相等的客體,可以寫安全級別比它高或相等的客體。“下讀上寫”的安全策略保證了數據庫中的所有數據只能按照安全級別從低到高流動,從而保證了敏感數據不泄露。
(1)BLP安全模型
BLP安全模型是一種訪問控制模型,它通過制定主體對客體的訪問規則和操作權限來保證系統信息的安全性。BLP模型中基本的安全控制方法有2種。
1)強制訪問控制(MAC)
MAC主要是通過“安全級”來進行的。訪問控制通過引入“安全級”“組集”和“格”的概念,為每個主體規定了一系列的操作權限和范圍。“安全級”通常由“普通、秘密、機密、絕密”4個不同的等級構成,用以表示主體的訪問能力和客體的訪問要求。“組集”就是主體能訪問客體所從屬的區域的集合,如“部門”“科室”“院系”等。通過“格”定義一種比較規則,只有在這種規則下,主體控制客體時才允許主體訪問客體。MAC是BLP模型實現控制手段的主要方法。
作為實施強制型安全控制的依據,主體和客體均要求被賦予一定的 “安全級”。其中,人作為安全主體,其部門集表示它可以涉獵哪些范圍內的信息,而一個信息的部門集則表示該信息所涉及的范圍,這里有3點要求:
① 主體的安全級高于客體,當且僅當主體的密級高于客體的密級,且主體的部門集包含客體的部門集;
② 主體可以讀客體,當且僅當主體的安全級高于或等于客體的安全級;
③ 主體可以寫客體,當且僅當主體的安全級低于或等于客體的安全級。
BLP模型給每個用戶及文件賦予一個訪問級別,如最高秘密級(Top Secret)、秘密級(Secret)、機密級(Confidential)及無級別級(Unclassified)。其級別由高到低為T>S>C>U,系統根據主體和客體的敏感標記來決定訪問模式。訪問模式包括以下4種。
下讀(read down):用戶級別大于文件級別的讀操作。
上寫(write up):用戶級別小于文件級別的寫操作。
下寫(write down):用戶級別大于文件級別的寫操作。
上讀(read up):用戶級別小于文件級別的讀操作。
2)自主訪問控制(DAC)
DAC也是BLP模型中非常重要的實現控制的方法。DAC通過客體的屬主自行決定其訪問范圍和方式,實現對不同客體的訪問控制。在BLP模型中,DAC是MAC的重要補充和完善。
主體對其擁有的客體有權決定自己和他人對該客體應具有怎樣的訪問權限。最終的結果是,在BLP模型的控制下,主體要獲取對客體的訪問,必須同時通過MAC和DAC這兩種安全控制設施。
依據BLP模型所制定的原則是利用不上讀或不下寫來保證數據的保密性,如圖1所示,既不允許低信任級別的用戶讀高敏感度的信息,也不允許高敏感度的信息寫入低敏感度區域,禁止信息從高級別流向低級別。MAC通過這種梯度安全標簽實現信息的單向流通。
圖1 BLP模型
(2)BLP模型的優缺點
BLP模型的優點如下。
① BLP模型是一種嚴格的形式化描述。
② BLP模型控制信息只能由低向高流動,這能滿足軍事部門這一類對數據保密性要求特別高的機構的需求。
BLP模型的缺點如下。
① 上級對下級發文受到限制。
② 部門之間信息的橫向流動被禁止。
③ 缺乏靈活、安全的授權機制。
5、基于角色的訪問控制
基于角色的訪問控制(Role-based Access Control,RBAC)是美國NIST提出的一種新的訪問控制技術。該技術的基本思想是將用戶劃分成與其所在組織結構體系相一致的角色,并將權限授予角色而不是直接授予主體,主體通過角色分派來得到客體操作權限從而實現授權。由于角色在系統中具有相對于主體的穩定性,更便于直觀地理解,因此可以大大降低系統授權管理的復雜性,減少安全管理員的工作量。
在RBAC的發展過程中,最早出現的是RBAC96模型和ARBAC模型,此處只對RBAC96模型進行介紹。RBAC96模型的成員包括RBAC0、RBAC1、RBAC2和RBAC3。RBAC0是基于角色訪問控制模型的基本模型,規定了RBAC模型的最小需求;RBAC1為角色層次模型,在RBAC0的基礎上加入了角色繼承關系,可以根據組織內部職責和權利來構造角色與角色之間的層次關系;RBAC2為角色的限制模型,在RBAC0的基礎上加入了各種用戶與角色之間、權限與角色之間以及角色與角色之間的限制關系,如角色互斥、角色最大成員數、前提角色和前提權限等;RBAC3為統一模型,它不僅包括角色的繼承關系,還包括限制關系,是RBAC1和RBAC2的集成。
基于角色訪問控制的要素包括用戶、角色、許可等基本定義。在RBAC中,用戶就是一個可以獨立訪問計算機系統中的數據或者用數據表示的其他資源的主體。角色是指一個組織或任務中的工作或者位置,它代表了一種權利、資格和責任。許可(特權)就是允許對一個或多個客體執行操作。一個用戶可經授權而擁有多個角色,一個角色可由多個用戶構成;每個角色可擁有多種許可,每個許可也可授權給多個不同的角色。每個操作可施加于多個客體(受控對象),每個客體也可以接受多個操作。上述要素的實現形式介紹如下。
① 用戶表(USERS)包括用戶標志、用戶姓名、用戶登錄密碼。用戶表是系統中的個體用戶集,會隨用戶的添加與刪除動態變化。
② 角色表(ROLES)包括角色標識、角色名稱、角色基數、角色可用標識。角色表是系統角色集,角色是由系統管理員來定義的。
③ 客體表(OBJECTS)包括對象標志、對象名稱。客體表是系統中所有受控對象的集合。
④ 操作算子表(OPERATIONS)包括操作標志、操作算子名稱。系統中所有受控對象的操作算子構成了操作算子表。
⑤ 許可表(PERMISSIONS)包括許可標志、許可名稱、受控對象、操作標志。許可表給出了受控對象與操作算子的對應關系。
RBAC系統由RBAC數據庫、身份認證模塊、系統管理模塊和會話管理模塊組成。RBAC數據庫與各模塊的對應關系如圖2所示。
圖2 RBAC數據庫與各模塊的對應關系
身份認證模塊通過用戶標志和用戶口令來確認用戶身份。此模塊僅使用RBAC數據庫中的USERS表。
系統管理模塊主要完成用戶增減(使用USERS表)、角色增減(使用ROLES表)、用戶/角色的分配(使用USERS表、ROLES表、用戶/角色分配表、用戶/角色授權表)、角色/許可的分配(使用ROLES表、PERMISSIONS表、角色/許可授權表)、角色間關系的定義(使用ROLES表、角色層次表、靜態互斥角色表、動態互斥角色表),其中每個操作都帶有參數,也都有一定的前提條件。操作可使RBAC數據庫發生動態變化。系統管理員可使用該模塊來初始化和維護RBAC數據庫。
系統管理模塊的操作包括添加用戶、刪除用戶、添加角色、刪除角色、設置角色可用性、為角色增加許可、取消角色的某個許可、為用戶分配角色、取消用戶的某個角色、設置用戶授權角色的可用性、添加角色繼承關系、取消角色繼承、添加一個靜態角色互斥關系、刪除一個靜態角色互斥關系、添加一個動態角色互斥關系、刪除一個動態角色互斥關系、設置角色基數等。
會話管理模塊會結合RBAC數據庫來管理會話,包括會話的創建與取消以及對活躍角色的管理。此模塊會使用USERS表、ROLES表、動態互斥角色表、會話表和活躍角色表來執行操作。
RBAC系統的運行步驟如下。
① 用戶登錄時向身份認證模塊發送用戶標志、用戶口令,確認用戶身份。
② 會話管理模塊在RBAC數據庫中檢索該用戶的授權角色集并將其送回用戶。
③ 用戶從中選擇本次會話的活躍角色集,在此過程中會話管理模塊維持動態角色互斥。
④ 會話創建成功,本次會話的授權許可體現在菜單與按扭上,若不可用,則顯示為灰色。
⑤ 在此會話過程中,系統管理員若要更改角色或許可,則可在此會話結束后進行,或者在終止此會話后立即進行。
圖3給出了基于RBAC的用戶集合、角色集合和資源集合之間的多對多的關系。理論上,一個用戶可以通過多個角色訪問不同資源。但是,在實際應用系統中,通常給一個用戶授予一個角色,只允許其訪問一種資源,這樣就可以更好地保證資源的安全性。
圖3 RBAC中用戶集合、角色集合和資源集合的關系
6、基于信任評估的動態訪問控制
在物聯網環境中,用戶可以自由地加入或退出網絡,而且用戶數量可能相當龐大,為每個用戶定義訪問控制策略并不現實,因此,需要提出一種新的機制來解決物聯網環境的動態訪問控制問題。
(1)基于信任評估的動態訪問控制模型
我們在對用戶信任度進行評估的基礎上,根據用戶的信任度對用戶進行分組,對用戶集合進行角色的分配和訪問控制,提出了基于信任評估的動態訪問控制(Trust Evaluation-based Dynamic Role Access Control,TE-DAC)模型。該模型將信任度與訪問控制相結合,可以體現系統的動態性。
TE-DAC模型綜合了信任管理和訪問控制的優勢,通過對用戶進行信任評估,確定用戶的信任度,進而即可根據其信任度和獲得的角色對用戶進行訪問授權。TE-DAC模型擴展了RBAC模型,增加了上下文監測、用戶會話監控、用戶信任度評估、根據用戶信任度對用戶角色進行權限指派等功能;同時通過將角色分為禁止狀態(disable)、允許狀態(enable)和激活狀態(active),使得模型具有了更好的靈活性,方便用戶的職責分離(Separation of Duty,SoD)。TE-DAC模型如圖4所示。
圖4 TE-DAC模型
TE-DAC模型的一個重要的特征是區分了角色的允許狀態和激活狀態。在該模型中,角色可以有3種狀態:禁止狀態、允許狀態和激活狀態。若角色處于禁止狀態,則該角色不可以在任何用戶會話的過程中使用,例如,用戶不能獲得分配給該角色的任何權限。允許狀態表示在滿足條件時用戶可以激活該角色,即如果一個用戶激活了某個角色,該角色就變為了激活狀態。處于激活狀態的角色表示至少一個用戶激活了該角色,若只有一個用戶使用該角色,則執行一次休眠操作后,該角色就會轉變為允許狀態;若有N個用戶使用該角色,則執行N次休眠操作后,該角色才會轉變為允許狀態,否則,其仍是激活狀態。角色處于激活狀態時,重復激活不改變其狀態。若有禁止事件發生,則角色會轉變為禁止狀態,不管其原來處于允許狀態還是激活狀態。
(2)基于信任評估的動態訪問控制過程
TE-DAC系統與傳統的訪問控制系統的一個重要區別是可以在一個適當的粒度下控制訪問請求和計算資源。信任作為一個計算參數,反映了用戶行為的可信度。在物聯網系統中,用戶的每次訪問請求,都由訪問認證中心(Access Authorization Center,AAC)進行信任度檢查,以判斷用戶是否滿足允許訪問的條件。在該模型中,信任度被作為用戶的一個屬性而進行綜合認證。認證模塊由策略執行點和策略決策點組成。
用戶登錄系統后,根據用戶的身份為其分配相應的角色,此時的角色沒有被指派任何屬性,角色無任何權限,處于禁止狀態,因此,用戶不能進行任何操作。通過信任評估模塊獲得用戶的信任度后,將其和其他屬性作為角色屬性賦予角色,然后查詢策略庫中的角色權限表,為角色分配相應的操作權限,此時,角色的狀態轉變為允許狀態,可被激活,用戶可通過事件激活角色以進行相應的操作。TE-DAC模型的訪問控制過程如圖5所示。
圖5 TE-DAC模型的訪問控制過程
訪問控制過程包含6個步驟。
① 用戶(User)將訪問請求發送給安全管理中心(Security Management Engine,SME),訪問請求中包含用戶ID、密碼等認證信息。
② SME通過對用戶進行身份認證和信任評估,根據訪問控制策略生成用戶的訪問授權策略并將其返回給用戶。該步驟更詳細的介紹如下:
a. 用戶的計算請求提交給策略執行點(Policy Enforcement Point,PEP);
b. PEP向策略決策點(Policy Decision Point,PDP)發出訪問決策請求,該請求包括用戶的身份信息及服務類型信息;
c. PDP向身份認證系統提交用戶的安全憑證,以驗證用戶身份是否合法。如果認證失敗,則生成終止訪問的信息并執行步驟h;
d. 若用戶通過了身份認證,則PDP會根據用戶身份為該用戶分配相應的角色,此時的角色處于禁止狀態;
e. PDP向信任評估引擎(Trust Evaluation Engine,TEE)發出信任評估請求,TEE通過查詢信任數據庫評估用戶的行為信任度,并將評估結果返回給PDP,同時用新的信任度更新信任數據庫;
f. PDP查詢策略庫中的角色屬性表;
g. PDP將步驟e中獲得的用戶信任度和步驟f中獲得的角色屬性指派給該用戶的角色,然后查詢策略庫中的權限分配表(Permissions Assignment Table,PAT),獲取角色當前對應的權限。PDP檢查該權限與用戶請求的權限,若二者相同或該權限包含用戶請求的權限,則允許該次訪問請求,并生成允許訪問的信息;若該權限小于用戶請求的權限,則拒絕該次訪問請求,并生成拒絕訪問的信息;
h. PEP執行PDP的決定,如果收到允許訪問的信息,則激活用戶的角色;如果收到拒絕訪問的信息,則將其返回給用戶;更新策略庫。
③ 用戶向資源管理器(Resource Manager,RM)提交資源請求服務。
④ RM啟動資源調度算法,為用戶分配相應的服務提供者,然后使用分發程序將用戶任務分發到相應的服務提供者進行執行。調度時,將服務提供者的信任作為調度算法的參數可以更有效地進行資源調度控制,提高資源利用率。
⑤ 在此次交互結束時,用戶可以基于資源的性能等特性計算服務提供者的信任度,并將計算結果發送給SME以進行服務提供者的信任更新。
⑥ 同時,服務提供者也會對用戶進行同樣的信任更新。
7、基于信任關系的動態服務授權
對于服務(資源)提供者來說,其可根據服務請求者的不同OTD,把服務請求者分別映射到不同的角色。同時,服務提供者在接到多個服務請求者請求的情況下,也需要按照不同的策略來分配資源,授權用戶訪問資源。
(1)形式化描述
下面從服務提供者的角度給出一種基于信任關系的動態服務授權策略的形式化描述。
設實體Pj向服務提供者Pi請求某種服務,Pi對Pj的總體信任度Γ(Pi,Pj)有P個評估等級c1,c2,…,cP,其中0≤cp≤1(p=1,2,…,P)。評估等級空間記作U,表示為U={c1,c2,…,cP},若評估等級空間U具有如下性質:ci∩cj=ϕ(i≠j),且c1<c2<…<cP,即ck+1比ck強,則稱U={c1,c2,…,cP}為一個有序分割類。
設實體Pi可提供P個級別的服務S={s1,s2,…,sP},且S是一個有序分割類,S和總體信任度Γ(Pi,Pj)之間的映射函數Ψ表示為:
分界點c1,c2,…,cP可以根據信任度的實數空間的邊界點確定,實體Pj向服務提供者Pi請求某種服務,Pi首先要根據Pj的信任度級別Γ(Pi,Pj)決定它所能得到的服務質量,這樣既可以分級對不同的實體提供不同的服務,又有利于降低系統可能存在的風險。
(2)基于信任關系的動態服務選擇
在物聯網系統中,服務雙方通過身份認證和訪問控制后,為對方提供多少資源也是一個非常重要的問題。如果交易一方提供虛假計算或存儲資源,則預先確定的任務可能會被延期執行;如果交易一方惡意撤銷計算或存儲資源,則預先確定的任務將無法完成。針對這些問題,需要從信任評估的角度來實現交易雙方的服務資源選擇。
下面是從服務請求者的角度給出的一種基于信任度的資源選擇方法。
令∀Pi∈S為計算市場中的服務請求者,O={Pj,j∈[1,M]}為服務提供者(資源的集合),∀Pi∈S向∃Pj∈O請求服務的過程定義為Pi和Pj的交易,而交易回饋信息則包含了Pi對Pj的信任評分及相關認證信息。
設ΓD(Pi,Pj)為Pi對Pj的直接信任度,表示Pi根據其與Pj的直接交易回饋信息而得到的信任關系。設ΓI(Pi,Pj)表示Pi根據其他節點的反饋而得到的其對Pj的信任,即反饋信任度。設Γ(Pi,Pj)為由ΓD(Pi,Pj)和ΓI(Pi,Pj)聚合而得到的Pi對Pj的總體信任評價(OTD)。
物聯網系統中基于信任的資源選擇算法步驟如下。
① 從資源信息中心獲取可用資源的列表O={Pj,j∈[1,M]};
② 根據操作系統、體系結構和CPU個數等硬性需求,過濾掉不滿足條件的計算資源;
③ 根據相關算法計算每一個資源的總體信任度Γ(Pi,Pj),根據用戶作業的信任需求閾值,過濾掉信任度低于該閾值的資源;
④ 根據計算得到的每一個資源的OTD,對可選資源進行排序;
⑤ 根據排序結果,選擇OTD值最大的資源,并提交作業到該資源;
⑥ 等待作業結果,如果作業被按時成功執行,則進行后續工作,如支付報酬、下載結果文件等,然后回饋正面的評價,并根據相關算法增加直接信任度;
⑦ 如果執行作業超時或失敗,則回饋較低的評價,根據相關算法降低直接信任度,并從排序列表中刪除該資源。
⑧ 跳轉到步驟③,直到作業完成。
現在分析這個算法的優缺點。假設每個服務請求者都是自私的,希望自己獲得的服務是最好的。如果對某個服務請求者來說,能夠為其提供服務的提供者有很多,那么他將選擇信任度高的提供者來為自己服務。然而,這種方式對于信任度高的服務提供者來說卻有兩點不利:
① 信任度越高的服務提供者,其提供服務所消耗的資源越多;
② 信任度高的服務提供者和信任度低的服務提供者在這種方式下會獲得相同的利益。
因此,在一個實際應用系統中,需要對這一不利因素進行改進,例如,可以對多個服務提供者的OTD進行排名,然后設定OTD的閾值,挑選出比閾值高的所有服務提供者,從中隨機選擇一個作為目標,向其請求服務。這樣就在一定程度上減輕了信譽高的域節點的負載。又如,除了服務提供者的OTD因素外,還可以考慮服務請求者在價格和風險方面的偏好等因素。
(3)面向FTP的動態資源訪問控制
設有一個提供文件共享服務的站點P,為了保證網絡系統的安全性,該FTP站點引入了信任評估機制,對所有的服務請求者節點進行信任度的評估,根據信任度的評估結果,對不同信任度的節點提供不同類別的服務質量。假設站點P可以提供3個等級的服務質量,設服務類別的等級用集合S表示,站點P的S可以定義為:S={s1, s2, s3,},其中s1表示拒絕服務,s2表示只讀,s3表示既可以讀也可以寫。則可以定義如下的服務決策函數:
設節點P通過本書的計算方法得到某實體Pj的總體信任度為Γ(P,Pj)=0.19,則根據決策函數Ψ可得決策過程為Ψ(Γ(P,Pj))=Ψ(0.19)=s1,這說明節點Pj的信任級別較低,站點P將拒絕為Pj提供服務。若Γ(P,Pj)=0.40,則Ψ(Γ(P,Pj))=Ψ(0.40)=s2,表示節點Pj可以讀節點P的資源。若Γ(Pi,Pj)=0.90,則Ψ(Γ(P,Pj))=Ψ(0.90)=s3,表示節點Pj既可以讀節點P的資源,也可以將數據保存(上傳)到P的存儲器中。