范文釗,范宇寧,和子郅,范修斌,崔曉風,王福馳
(1.新泰市第一中學,山東 新泰 271200;2.泰山學院 信息科學技術學院,山東 泰安 271000;3.中國科學院軟件研究所青島分部(青島工業軟件研究所),山東 青島 266114;4.青島博文廣成信息安全技術有限公司,山東 青島 266235)
CFL[1-13]是基于標識的證書認證體制,它由陳華平將軍、范修斌教授、呂述望教授三位博導于2009年發明。
BLP模型是Bell-LaPadula模型[14-21]的簡稱,它是D.Elliott Bell和Leonard J.LaPadula于1973年創立的一種模擬軍事安全策略的計算機操作模型,它是最早、也是最常用的一種計算機多級安全模型。
但是,對于該模型中的賦權結果,該模型自身是無法提供完整性保護的,因此,該模型是需要擴充的。本文給出CFL_BLP模型。給出了CFL_BLP模型的八元組、安全公理以及安全規則。該模型保證了用戶的BLP模型的權限的完整性,確保了BLP模型的可信性、安全性。在防范隱蔽信道的基礎上,基于CFL_BLP模型可以實現自主可控等級保護高等級安全的信息系統。
操作系統一般由進程管理、內存管理以及文件管理三部分構成。本文的研究結果對構建自主可控的安全操作系統具有重要的理論和實踐價值。
定義1 CFL_BLP模型即為t∈T={0,1,2,…,t,…}=N時刻計算機系統SYt的一個八元組,即
SYt=(St.Ot,RA,A,D,Mt,BLP(St,Ot),CFL)
①get:
a)在t時刻的主體集合中添加一個主體,并且給該主體安全級賦值。
b)在t時刻的主體集合中添加一個主體,并且給該主體當前安全級賦值。
c)在t時刻的客體集合中添加一個客體,并且給該客體安全級賦值。
②release:
a)從t時刻BLP模型主體中刪除一個主體。
b)從t時刻BLP模型客體中刪除一個客體。
③give:擴充Mt某點集合的元素。
④rescind:刪減Mt某點集合的元素。
⑤change:更改BLP模型客體安全級,或更改BLP模型主體當前安全級。
⑥create:創建一個新客體添加到當前的樹型結構,并給BLP權限賦值。
⑦delete:從樹型結構中刪除一個客體。
(4)A[14-21]A={e,r,a,w,c},即主體訪問客體的訪問方式的集合,其中:
①e:execute,執行(neither observation nor alteration)。
②r:only read,只讀(observation with no alteration)。
③a:append,只寫(alteration with no observation)。
④w:read and write,讀寫(both observation and alteration)。
⑤c:control,是指某特殊主體用來授予或撤銷另一主體對某一客體的訪問權限的能力。自主訪問矩陣,BLP模型偏序關系都涉及該命令。
(5)D[14-21]:D={yes,no,error,?},系統接收到主體對客體的請求訪問操作后,會對請求訪問操作進行判定,其即為判定的結果集合,其中:
①yes:表示請求被執行。
②no:表示請求被拒絕。
③error:表示有多個規則適用于這一請求,并拒絕執行。
④?:表示不能處理此請求。
(6)Mt[14-21]:即t時刻自主訪問控制矩陣。其中的點是某主體對某客體可操作的集合。它是一個超矩陣。
(7)BLP[14-21]:即CFL_BLP模型公理I和公理II。
注1 C[14-21]:C={c1,c2,…,cq},其中c1>c2>…>cq。一個主體或客體的密級一般分為公開文件、內部文件、秘密文件、機密文件、絕密文件等級。K[14-21]:K={k1,k2,…,kr},,即主客體組織機構隸屬關系。例如某單位一處包含一處一科、一處二科、一處三科等。安全級集合定義為F=C×K。
①f(s)=(C(s),K(s)):稱其為主體s的BLP模型一般安全級函數。
②f(o)=(C(o),K(o)):稱其為客體o的BLP模型安全級函數。
③fc(s)=(Cc(s),Kc(s))稱其為主體s的BLP模型當前(current)安全級函數。當前和一般是或者關系,當前、一般與自主訪問控制矩陣Mt是并且關系。
(8)CFL[1-13]:包括CFL簽名驗證,CFL SSL,CFL本地加解密等。CFL數據格式如下:①CFL簽名文件:明文||BLP模型權限||自己的證書||簽名。文件.cfl_sign。
②CFL加密文件:密文||BLP模型權限||自己的證書||簽名。文件.cfl_bcipher。
③CFL信封文件:密文||BLP模型權限||對方的證書||自己的證書||簽名。文件.cfl_pcipher。
CFL={簽名,驗證,公鑰加密,公鑰解密,對稱密碼加密,對密碼解密}
通過CFL證書中BLP模型權限標識,確定訪問主體的訪問權限。這種辦法通過CFL證書簽名支持了BLP模型中的用戶權限的信息安全完整性。
記βt={(st,i,ot,x)},即所有主體和客體可以操作的方式的集合。
記b={(s:x1,x2,…,xn)}為主體s具有訪問權限x1、或者x2、…(1≤i≤n) 的客體集合。
公理1[14-21]BLP模型簡單安全性(Simple-Security Property)。

注2 可專指不帶參數的命令。滿足BLP模型簡單安全性的主體稱為可信主體。
公理2[14-21]BLP模型*特性(*property)。

注3 當同一個主體執行簡單安全性時是可信主體,執行*特性時是非可信主體。
公理 3[14-21](自主安全性)(Discretionary-Security)。

公理4[14-21](兼容性公理)(Compatibility)。

注4 H(ot,i)是指客體ot,i子節點的集合。
公理5(CFL公理)(CFL)
(1)CFL簽名文件:文件類型標記||明文||BLP模型權限||自己的證書||簽名。文件.cfl_sign。
(2)CFL加密文件:文件類型標記||密文||BLP模型權限||自己的證書||簽名。文件.cfl_bcipher。
(3)CFL信封文件:文件類型標記||密文||BLP模型權限||對方的證書||自己的證書||簽名。文件.cfl_pcipher。
注5時間戳已含在動態CFL證書中。
文獻[14-21]有11個BLP模型轉換規則。在此基礎上,再根據上節五個安全公理,我們給出CFL_BLP模型的轉換規則。
規則1(R1) 主體st,i對客體ot,j請求“讀”訪問:get-read。

條件命題如下:
(1)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflSt,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
r∈mt,i,j,即主體st,i的訪問屬性中有對客體ot,j的“讀”權限;
fc(st,i)?f(ot,j),即主體的一般安全級支配客體ot,j的安全級;
則系統執行主體st,i對客體ot,j“讀”請求。
(2)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflSt,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
r∈mt,i,j,即主體的訪問屬性中有對客體ot,j的“讀”權限;
fc(st,i)?f(ot,j),即主體st,i當前的安全級支配客體ot,j的安全級;
則系統也執行主體st,i對客體ot,j“讀”請求。
規則2(R2) 主體st,j對客體ot,j請求“添加”訪問:get-append.

條件命題如下:
(1)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
a∈mt,i,j,即主體st,i的訪問屬性中有對客體ot,j的“添加”權限;
fc(st,i)?f(ot,j),即主體st,j的一般安全級被客體ot,j的安全級支配;
則系統執行主體st,i對客體ot,j“添加”請求。
(2)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflSt,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
a∈mt,i,j,即主體st,i的訪問屬性中有對客體ot,j的“添加”權限;
fc(st,i)?f(ot,j),即主體st,i當前的安全級被客體ot,j的安全級支配;
則系統也執行主體st,i對客體ot,j“添加”請求。
規則3(R3) 主體st,i對客體ot,j請求“執行”訪問:get-execute。

條件命題如下:
cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
e∈mt,i,j,即主體st,i的訪問屬性中有對客體ot,j的“執行”權限;
則系統執行主體st,i對客體ot,j“執行”請求。
規則4(R4)主體對客體請求“讀寫”訪問:get-write.

條件命題如下:
(1)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,i))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
w∈mt,i,j,即主體st,i的訪問屬性中有對客體ot,j的“讀寫”權限;
f(st,i)?f(ot,j),即主體st,i的一般安全級等于客體ot,j的安全級;
則系統執行主體st,i對客體ot,j“讀寫”請求。
(2)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
w∈mt,i,j,即主體st,i的訪問屬性中有對客體ot,j的“讀寫”權限;
fc(st,i)?f(ot,j),即主體st,i的當前安全級等于客體ot,j的安全級;
則系統執行主體st,i對客體ot,j“讀寫”請求。
規則5(R5) 主體釋放對客體訪問屬性:release-read/execute/write/append。

條件命題如下:
cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cfls,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
BLP←(BLP\{(st,i,ot,j,x)})\{(st,i,ot,j,x)c},即將從主體st,i的BLP模型訪問屬性中去除對客體ot,j的x訪問屬性,并保護該集合的完整性。
規則6(R6) 授予另一主體對客體訪問屬性:give-read/execute/write/append。

條件命題如下:
(1)cflsyt((st,λ))=1,即系統對主體st,λCFL證書簽名驗證通過;
cflsy,t((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,λ((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
客體ot,j不是層次樹的根結點;
主體st,λ對ot,j的父結點ot,j有“讀寫”權限,即w ∈ mt,λ,k,ot,k=ot,j,則主體st,λ可以授予另一主體st,i對客體ot,j的訪問權限-x;

(2)cflsyt((st,λ))=1,即系統對主體st,λCFL證書簽名驗證通過;
cflsy,t((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
客體ot,j是層次樹的根結點,并且主體有權授予其他主體對體ot,j的訪問矩陣中的權,即 GLVE(st,λ,ot,j,-x)為真。
規則7(R7) 撤銷另一主體對客體訪問屬性:rescind-read/execute/write/append。

條件命題如下:
(1)cflsyt((st,λ))=1,即系統對主體st,λCFL證書簽名驗證通過;
cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
客體ot,j不是層次樹的根結點,并且主體st,λ的訪問屬性中有對ot,j的父結點ot,j的“讀寫”權限,即∈ mt,λ,k,ot,k=ot,j;
主體st,λ可以撤銷另一主體st,i對客體ot,j的訪問權限;

(2)cflsyt((st,λ))=1,即系統對主體st,λCFL證書簽名驗證通過;
cflsy,t((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
客體ot,j是層次樹的根結點,并且主體st,λ有權撤銷其他主體對ot,j的訪問矩陣中的權,即 RESIND(st,λ,ot,j,-x)為真。
規則8(R8) 創建一客體(保持兼容性):create-object.

條件命題如下:
cflst,i((o′))=1,即主體st,i對客體o'進行CFL簽名;
o′∈b(st,i∶w)或o′∈b(st,i∶a),即主體st,i可以以“讀寫”權限或“添加”權限訪問父結點o′;
并且f(o′)?f(o′);
則主體st,i可以創建子節點o′,即o′∈H(o′)。
注6o′∈b(st,i∶x)是指自主訪問控制矩陣和BLP模型訪問控制權限都具有-x的訪問權限。對于BLP模型的訪問權限,在簡單安全性或*特性中有一個滿足即可。
規則9(R9) 表示刪除一組客體:delete-object-group.

條件命題如下:
cflst,i((o′))=1,即主體st,i對客體o′的CFL簽名驗證通過;
o′∈b(st,i∶w),即主體st,i對客體o′的父結點o′有“讀寫”權限并且客體o′不是根結點;
則主體st,可以刪除客體o′,以及?o∈H(o′),即包括o′下面的所有子節點客體。
規則10(R10) 改變主體當前安全級:change-subject-current-security-level。

條件命題如下:
f(st,i)?l;
則fc(st,i)l。
規則11(R11) 改變客體的安全級:change-object-security-level:

條件命題如下:
(1)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,i((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
st,i是可信主體;
fc(st,i)?f(ot,j);
?st,i∈St,ot,j∈b(st,j∶r,w)?f(st,i)?lu;
ot,j∈H(ot,j),lu?f(ot,j);
CHABGE(st,i,ot,j,lu)為真,即主體st,i有權改變客體ot,j的安全級到lu;

(2)cflsyt((st,i))=1,即系統對主體st,iCFL證書簽名驗證通過;
cflst,j((ot,j))=1,即主體st,i對客體ot,j的CFL簽名驗證通過;
fc(st,i)?f(ot,j);
?st,i∈St,ot,j∈b(st,j∶r,w)?f(st,j)?lu;
0t,j∈H(ot,j),lu?f(ot,j);
CHABGE(st,j,ot,j,lu)為真,即主體st,i有權改變客體ot,j的安全級到lu;

本文在CFL認證體制、BLP模型的基礎上,給出了CFL_BLP模型。該模型保證了用戶的BLP模型的權限的完整性,確保了BLP模型的可信性、安全性。在防范隱蔽信道的基礎上,基于CFL_BLP模型實現自主可控等級保護高等級安全的信息系統。