一、模型背景與定義
BLP(Bell-LaPadula)模型是由David Bell和Len Adula在1973年提出的強制訪問控制(MAC)模型,是最早的計算機安全模型之一,主要用于解決多用戶系統中的信息機密性保護問題,尤其適用于軍事和政府等高安全需求領域。
二、核心安全屬性與原則
BLP模型基于兩種核心安全屬性和三大安全原則構建:
(一)安全屬性
- 安全級別(Security Levels)
- 系統中每個主體(如用戶、進程)和客體(如文件、數據庫)都被分配一個安全級別,形成嚴格的層次結構,常見級別如:絕密(Top Secret)>秘密(Secret)>機密(Confidential)>公開(Unclassified)。
- 范疇(Categories)
- 在同一安全級別下,通過范疇(如項目組、部門)進一步細分,確保信息僅在特定范圍內共享,例如“絕密”級別可包含“核武器項目”“衛星計劃”等范疇。
(二)三大安全原則
- 簡單安全特性(Simple Security Property)——下讀(No Read Up)
- 主體只能讀取安全級別小于或等于自身級別的客體信息。例如,秘密級用戶不能讀取絕密級文件,但可以讀取機密級或公開級文件。
- *-特性(Star Property)——上寫(No Write Down)
- 主體只能向安全級別大于或等于自身級別的客體寫入信息。例如,秘密級用戶不能向公開級文件寫入內容,但可以向秘密級或絕密級文件寫入。
- 自主安全特性(Discretionary Security Property)
- 基于訪問控制列表(ACL)實現,作為強制訪問控制的補充,允許主體在滿足強制規則的前提下,自主管理其擁有客體的訪問權限。
三、數學模型與形式化定義
BLP模型通過形式化語言嚴格定義安全規則,核心元素包括:
- 主體集合(S):用戶、進程等主動實體
- 客體集合(O):文件、數據庫等被動實體
- 安全級別函數(f):f(s)表示主體s的安全級別,f(o)表示客體o的安全級別
- 范疇集合(C):每個安全級別包含的范疇集合
- 訪問模式集合(A):{讀(R)、寫(W)、執行(X)、追加(A)、控制(C)}
安全條件形式化表達:
- 簡單安全特性:對于主體s和客體o,若s能讀o,則f(o) ≤ f(s)且范疇(o) ? 范疇(s)
- *-特性:對于主體s和客體o,若s能寫o,則f(o) ≥ f(s)且范疇(s) ? 范疇(o)
四、模型優缺點分析
優點 | 缺點 |
---|---|
1. 嚴格保障信息機密性,防止高密級信息向低級別泄露 | 1. 僅關注機密性,未考慮完整性和可用性(與Biba模型形成互補) |
2. 形式化定義清晰,便于理論驗證和系統設計 | 2. 靈活性不足,主體和客體的安全級別變更復雜,難以適應動態環境 |
3. 適用于對安全性要求極高的靜態系統 | 3. 不支持主體權限的動態調整,如臨時授權場景 |
五、與其他訪問控制模型的對比
- 與DAC(自主訪問控制)對比:DAC基于用戶自主設置權限(如Windows文件權限),而BLP通過系統強制規則控制,用戶無法繞過安全級別限制。
- 與RBAC(角色-based訪問控制)對比:RBAC基于角色分配權限(如“管理員”“普通用戶”),適合企業場景;BLP則基于密級和范疇,更適合分級保密場景。
- 與Biba模型對比:Biba模型關注信息完整性,遵循“向上讀、向下寫”原則,與BLP形成機密性-完整性的互補關系。
六、隱蔽信道
這是隱蔽通道的例子 。隱蔽通道是一種在安全模型下,被設計用于違反安全策略傳輸信息的通信信道。以下是圖中流程解析:
- 創建文件(/data):絕密進程A創建文件/data ,這是信息傳輸的基礎載體。
- 公開進程B創建并寫入 /control:公開進程B創建文件/control并寫入內容,/control在這里起到控制信號傳遞的作用。
- 絕密進程A觀察 /control文件長度:絕密進程A通過觀察/control文件長度增長獲取同步信號,以此知曉公開進程B已完成相關操作,為后續信息傳遞做準備。
- 絕密進程A鎖定和解鎖 /data文件傳遞信息:絕密進程A利用鎖定和解鎖/data文件來編碼信息,如解鎖代表發送1,鎖定代表發送0 。
- 公開進程B嘗試寫入 /data判斷接收信息:公開進程B嘗試寫入/data文件,根據寫入成功(接收1)或失敗(接收0)來解讀絕密進程A傳遞的信息。
在假定場景中,絕密進程A被植入惡意代碼(如特洛伊木馬),惡意代碼可利用這種隱蔽通道繞過安全策略,將絕密信息以看似正常文件操作的方式傳遞給公開進程B,從而造成信息泄露。