匡 宏, 趙恩來(lái), 郝文寧, 黃 亞, 穆新國(guó)
(解放軍理工大學(xué)工程兵工程學(xué)院,江蘇南京210007)
網(wǎng)絡(luò)信息安全問(wèn)題已經(jīng)越來(lái)越重要[1],其中權(quán)限管理[2-3]和訪(fǎng)問(wèn)控制[4-5]技術(shù)是實(shí)現(xiàn)信息系統(tǒng)安全的重要機(jī)制。權(quán)限管理和訪(fǎng)問(wèn)控制是信息安全保障機(jī)制的核心內(nèi)容,它是實(shí)現(xiàn)數(shù)據(jù)保密性和完整性的主要手段,限制訪(fǎng)問(wèn)主體(如用戶(hù),進(jìn)程,服務(wù)等)對(duì)訪(fǎng)問(wèn)客體(需要保護(hù)的資源)的訪(fǎng)問(wèn)限制,從而使計(jì)算機(jī)系統(tǒng)在合法范圍內(nèi)使用[6]。
訪(fǎng)問(wèn)控制是根據(jù)一定的策略,限制主體對(duì)客體的訪(fǎng)問(wèn)權(quán)限,目的是保證系統(tǒng)訪(fǎng)問(wèn)資源的安全性[7]。傳統(tǒng)的自由訪(fǎng)問(wèn)控制方法(DAC)[8]和強(qiáng)制訪(fǎng)問(wèn)控制方法(MAC)[9]是由主體和訪(fǎng)問(wèn)權(quán)限直接發(fā)生關(guān)系,根據(jù)主體/客體的安全級(jí)別來(lái)決定對(duì)客體的訪(fǎng)問(wèn)權(quán)限。隨著信息管理系統(tǒng)向著多用戶(hù)、多應(yīng)用發(fā)展,用戶(hù)可訪(fǎng)問(wèn)的數(shù)據(jù)資源的結(jié)構(gòu)日益復(fù)雜,規(guī)模日益增大,利用傳統(tǒng)的訪(fǎng)問(wèn)控制方法來(lái)進(jìn)行權(quán)限管理變得相當(dāng)繁瑣[10-11]。
本文結(jié)合具體研發(fā)的某部門(mén)權(quán)限管理及訪(fǎng)問(wèn)控制系統(tǒng),采用PKI/PMI技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了滿(mǎn)足某部門(mén)安全需求的權(quán)限管理及訪(fǎng)問(wèn)控制系統(tǒng),很好的實(shí)現(xiàn)了用戶(hù)和權(quán)限的分離,便于擴(kuò)展和變通,支持崗位、權(quán)限多變的需求,易于實(shí)現(xiàn)復(fù)雜安全控制。
PKI(public key infrastructure,公鑰基礎(chǔ)設(shè)施)[12-15]是通過(guò)使用公開(kāi)密鑰技術(shù)和數(shù)字證書(shū)來(lái)確保系統(tǒng)信息安全并負(fù)責(zé)驗(yàn)證數(shù)字證書(shū)持有者身份的一種體系。PKI技術(shù)采用證書(shū)管理公鑰,通過(guò)第三方的可信任機(jī)構(gòu)認(rèn)證中心CA(Certificate Authority),把用戶(hù)的公鑰和用戶(hù)的其他標(biāo)識(shí)信息(如名稱(chēng)、E-mail、身份證號(hào)等)捆綁在一起,在網(wǎng)上驗(yàn)證用戶(hù)的身份。
授權(quán)管理基礎(chǔ)設(shè)施 (privilege management infrastructure,PMI)[16]是國(guó)家信息安全基礎(chǔ)設(shè)施的一個(gè)重要組成部分。PMI的目標(biāo)是向用戶(hù)和應(yīng)用程序提供授權(quán)管理服務(wù),提供用戶(hù)身份到應(yīng)用授權(quán)的映射功能,提供與實(shí)際應(yīng)用處理模式相對(duì)應(yīng)的、與具體應(yīng)用系統(tǒng)開(kāi)發(fā)和管理無(wú)關(guān)的授權(quán)機(jī)制,簡(jiǎn)化具體應(yīng)用系統(tǒng)的開(kāi)發(fā)與維護(hù),減少管理成本和復(fù)雜性。
PMI提出了一個(gè)新的信息保護(hù)基礎(chǔ)設(shè)施,它能夠與PKI和目錄服務(wù)緊密地集成,并系統(tǒng)地建立起對(duì)認(rèn)可用戶(hù)的特定授權(quán),對(duì)權(quán)限管理進(jìn)行了系統(tǒng)的定義和描述,完整地提供了授權(quán)服務(wù)所需過(guò)程。PKI和PMI的結(jié)合能為用戶(hù)提供強(qiáng)大的服務(wù)功能。用戶(hù)的信息合理地分成了兩類(lèi):基本身份信息存放在屬性證書(shū)中,易于改變的屬性信息存放在屬性證書(shū)中,這兩類(lèi)證書(shū)的發(fā)放權(quán)限可以由不同的部門(mén)來(lái)管理和執(zhí)行。PKI證明用戶(hù)是誰(shuí),為用戶(hù)頒發(fā)公鑰證書(shū);PMI證明這個(gè)用戶(hù)有什么權(quán)限、什么屬性,為用戶(hù)頒發(fā)屬性證書(shū)。
省某某部門(mén)的權(quán)限管理及訪(fǎng)問(wèn)控制系統(tǒng)基于PKI/PMI技術(shù)來(lái)構(gòu)建,實(shí)現(xiàn)了用戶(hù)屬性(即權(quán)限)的分級(jí)管理、訪(fǎng)問(wèn)控制的分級(jí)管理以及權(quán)限管理和應(yīng)用訪(fǎng)問(wèn)控制的分離管理,確保誰(shuí)的資源誰(shuí)授權(quán)、誰(shuí)的用戶(hù)誰(shuí)管理;確保用戶(hù)權(quán)限管理獨(dú)立于應(yīng)用訪(fǎng)問(wèn)策略的設(shè)定及實(shí)施;實(shí)現(xiàn)了嚴(yán)格的兩級(jí)訪(fǎng)問(wèn)控制機(jī)制,上級(jí)管理員可以授權(quán)下級(jí)管理員負(fù)責(zé)具體應(yīng)用系統(tǒng)的管理,但各級(jí)管理員只能設(shè)定本級(jí)系統(tǒng)的訪(fǎng)問(wèn)控制策略,不能越權(quán)管理。系統(tǒng)建設(shè)還考慮了用戶(hù)星型網(wǎng)絡(luò)結(jié)構(gòu)出現(xiàn)單點(diǎn)故障時(shí)可能引發(fā)的問(wèn)題,采用鏡像等技術(shù)措施確保廣域網(wǎng)絡(luò)的故障不影響本地用戶(hù)對(duì)本地應(yīng)用的訪(fǎng)問(wèn),滿(mǎn)足了系統(tǒng)的可用性要求。該系統(tǒng)的總體功能框架如圖1所示。
圖1 系統(tǒng)總體功能框架
詳細(xì)分析系統(tǒng)的整個(gè)流程:以大單位訪(fǎng)問(wèn)控制建設(shè)為重點(diǎn),以下詳細(xì)列出某某小單位用戶(hù)USER1訪(fǎng)問(wèn)某某小單位應(yīng)用系統(tǒng)NJAPP1中的功能模塊MODULE1的完整實(shí)現(xiàn)流程。
(1)系統(tǒng)準(zhǔn)備
建立省CA、省RA、省AA、省ARA、省LDAP、小單位LDAP(注:小單位LDAP是省LDAP的鏡像)。
(2)用戶(hù)身份管理(注冊(cè)用戶(hù))
在 PKI系統(tǒng)中注冊(cè) USER1,得到 USER1的 PKI證書(shū)USER1-Pcert。
(3)分級(jí)的用戶(hù)屬性管理
省AA管理員AA-Province-Manager負(fù)責(zé)本系統(tǒng)內(nèi)所有屬性類(lèi)(地域,部門(mén),職務(wù),方向)的設(shè)置,并為屬性類(lèi)設(shè)定取值范圍;AA-Province-Manager為省ARA管理員ARA-Province-Manager限定其可管理的用戶(hù)集(即限于管理本省用戶(hù))以及限定其可為用戶(hù)分配的屬性集 (如不能注冊(cè)出一個(gè)部長(zhǎng)用戶(hù)來(lái));ARA-Province-Manager指定13個(gè)小單位 ARA管理員 ARACity-Manager(某某小單位ARA管理員為ARA-NJCity-Manager),賦予他們登錄省ARA管理本局用戶(hù)屬性的權(quán)力,同時(shí)限定ARA-City-Manager可設(shè)置的屬性集合 (如不能注冊(cè)出一個(gè)部長(zhǎng)用戶(hù)來(lái))。
ARA-NJCity-Manager登錄到省ARA上為USER1分配屬性,例如地域:某某小單位;部門(mén):財(cái)務(wù);職務(wù):處長(zhǎng);方向:方向A,方向 B,方向C。
省AA簽發(fā)USER1的唯一的屬性證書(shū)USER1-Acert,并將其發(fā)布到省LDAP上。該證書(shū)包含USER1所有的屬性信息。
各小單位LDAP與省LDAP同步。
(4)分級(jí)的訪(fǎng)問(wèn)控制策略制定
ARA-NJCity-Manager為某某小單位門(mén)戶(hù)PORTAL-NJCity指定門(mén)戶(hù)管理員ACL1-NJCity-Manager。
ACL1-NJCity-Manager設(shè)置某某小單位門(mén)戶(hù) PORTALNJCity的訪(fǎng)問(wèn)控制策略庫(kù) ACLPolicyDB-NJCity(例如資源:NJAPP1;屬性集:部門(mén)=財(cái)務(wù)且地域是大單位;角色:合法用戶(hù))。在某某小單位門(mén)戶(hù) PORTAL-NJCity上添加應(yīng)用系統(tǒng)NJAPP1,同時(shí)指定NJAPP1的ACL管理員為ACL2-NJAPP1-Manager。
ACL2-NJAPP1-Manager設(shè)置 NJAPP1的訪(fǎng)問(wèn)控制策略庫(kù)ACLPolicyDB-NJAPP1(例如資源:MODULE1;屬性集:部門(mén)是財(cái)務(wù)地域是大單位且方向包含方向A;角色:管理員)。
(5)身份驗(yàn)證和安全連接
代理服務(wù)器驗(yàn)證用戶(hù)身份,建立安全客戶(hù)端和應(yīng)用的安全SSL連接,并將用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求提交給PORTAL-NJCity。
(6)分級(jí)的訪(fǎng)問(wèn)控制策略實(shí)施
PORTAL-NJCity收到用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求及屬性Cookies,根據(jù)某某門(mén)戶(hù)PORTAL-NJCity的訪(fǎng)問(wèn)控制策略庫(kù)ACLPolicyDBNJCity得知USER1為合法用戶(hù),于是允許用戶(hù)進(jìn)入NJAPP1。于是USER1可以在門(mén)戶(hù)主頁(yè)上看到NJAPP1。
NJAPP1收到USER1的訪(fǎng)問(wèn)請(qǐng)求及屬性Cookies后,根據(jù)NJAPP1的訪(fǎng)問(wèn)控制策略庫(kù) ACLPolicyDB-NJAPP1,得知USER1是MODULE1的管理員。
系統(tǒng)允許USER1進(jìn)行MODULE1管理員的操作。
(7)流程結(jié)束
如圖2所示,分級(jí)的用戶(hù)屬性管理子系統(tǒng)包括以下組件:
省屬性證書(shū)簽發(fā)中心AA:負(fù)責(zé)簽發(fā)用戶(hù)屬性證書(shū);
省屬性管理中心ARA:為省一級(jí)用戶(hù)屬性分配點(diǎn)及小單位ARA管理員分配點(diǎn);
目錄服務(wù)系統(tǒng):用于發(fā)布用戶(hù)的PKI證書(shū)和屬性證書(shū),同時(shí)提供驗(yàn)證用戶(hù)PKI證書(shū)和屬性證書(shū)所需的信息。
圖2 分級(jí)的權(quán)限管理子系統(tǒng)
分級(jí)的用戶(hù)屬性管理子系統(tǒng)包括以下管理員:
(1)AA管理員:負(fù)責(zé)簽發(fā)用戶(hù)屬性證書(shū);指定省級(jí)ARA管理員;設(shè)定省級(jí)ARA管理員可以分配的屬性類(lèi)及屬性值全集;管理全系統(tǒng)內(nèi)屬性類(lèi)和屬性值(層層下發(fā));
(2)省ARA管理員:負(fù)責(zé)管理大單位用戶(hù)的屬性,指定小單位ARA管理員,并限定小單位ARA管理員可分配的用戶(hù)集和屬性集;指定大單位門(mén)戶(hù)ACL管理員;
(3)小單位ARA管理員:負(fù)責(zé)管理本小單位用戶(hù)的屬性;指定小單位門(mén)戶(hù)的ACL管理員;
(4)目錄服務(wù)系統(tǒng)管理員:發(fā)布證書(shū)。
如圖3所示,分級(jí)的訪(fǎng)問(wèn)控制策略制定子系統(tǒng)包括以下組件:第一級(jí)ACL策略庫(kù):包括門(mén)戶(hù)的訪(fǎng)問(wèn)控制策略表,提供第一級(jí)訪(fǎng)問(wèn)控制策略;第二級(jí)ACL策略庫(kù):包括各具體應(yīng)用系統(tǒng)的訪(fǎng)問(wèn)控制策略表,提供第二級(jí)的訪(fǎng)問(wèn)控制策略。
圖3 分級(jí)的訪(fǎng)問(wèn)控制策略制定子系統(tǒng)
分級(jí)的訪(fǎng)問(wèn)控制策略制定子系統(tǒng)包括以下管理員:
(1)大單位ARA管理員:負(fù)責(zé)分配大單位的門(mén)戶(hù)管理員;超級(jí)管理員由ARA管理員擔(dān)任或指定;
(2)小單位ARA管理員:負(fù)責(zé)分配各小單位的門(mén)戶(hù)管理員;
(3)大單位及各小單位門(mén)戶(hù)管理員:負(fù)責(zé)管理各自門(mén)戶(hù)的訪(fǎng)問(wèn)控制策略,負(fù)責(zé)指定各具體應(yīng)用系統(tǒng)管理員;負(fù)責(zé)添加應(yīng)用;負(fù)責(zé)添加第一級(jí)訪(fǎng)問(wèn)控制的角色;
(4)各具體應(yīng)用系統(tǒng)管理員:負(fù)責(zé)管理各自應(yīng)用系統(tǒng)的訪(fǎng)問(wèn)控制策略;負(fù)責(zé)添加第二級(jí)訪(fǎng)問(wèn)控制的角色。
分級(jí)的訪(fǎng)問(wèn)控制策略實(shí)施子系統(tǒng)包括以下組件:
(1)代理服務(wù)器:為安全客戶(hù)端和應(yīng)用建立SSL安全連接,向應(yīng)用提交安全客戶(hù)端的訪(fǎng)問(wèn)請(qǐng)求;
(2)第一級(jí)ACL策略庫(kù):是第一級(jí)訪(fǎng)問(wèn)控制決策點(diǎn),包括門(mén)戶(hù)的訪(fǎng)問(wèn)控制策略,提供第一級(jí)訪(fǎng)問(wèn)控制決策;
(3)門(mén)戶(hù):是第一級(jí)訪(fǎng)問(wèn)控制實(shí)施點(diǎn),它根據(jù)第一級(jí)ACL策略庫(kù)提供的訪(fǎng)問(wèn)控制決策結(jié)果進(jìn)行第一級(jí)的訪(fǎng)問(wèn)控制;
(4)第二級(jí)ACL策略庫(kù):是第二級(jí)訪(fǎng)問(wèn)控制決策點(diǎn),包括各具體應(yīng)用系統(tǒng)的訪(fǎng)問(wèn)控制策略,提供第二級(jí)訪(fǎng)問(wèn)控制決策;
(5)具體應(yīng)用系統(tǒng):是第二級(jí)訪(fǎng)問(wèn)控制實(shí)施點(diǎn),它根據(jù)第二級(jí)ACL策略庫(kù)中該應(yīng)用系統(tǒng)的ACL策略表提供的訪(fǎng)問(wèn)控制決策結(jié)果進(jìn)行第二級(jí)的訪(fǎng)問(wèn)控制。
本文以“分級(jí)的訪(fǎng)問(wèn)控制策略實(shí)施子系統(tǒng)”為例,分析系統(tǒng)的安全性能。分級(jí)的訪(fǎng)問(wèn)控制策略實(shí)施具體流程如圖4所示。
圖4 分級(jí)的訪(fǎng)問(wèn)控制策略實(shí)施的流程
(1)安全客戶(hù)端請(qǐng)求訪(fǎng)問(wèn)代理服務(wù)器;
(2)代理服務(wù)器與用戶(hù)進(jìn)行身份認(rèn)證;
(3)在安全客戶(hù)端和代理服務(wù)器之間建立安全SSL連接;
(4)代理服務(wù)器獲取用戶(hù)的屬性證書(shū)并驗(yàn)證其合法性;
(5)代理服務(wù)器將用戶(hù)對(duì)應(yīng)用系統(tǒng)的訪(fǎng)問(wèn)請(qǐng)求提交給門(mén)戶(hù);
(6)門(mén)戶(hù)根據(jù)第一級(jí)ACL策略庫(kù)提供的訪(fǎng)問(wèn)控制決策結(jié)果決定是否允許用戶(hù)進(jìn)入他想訪(fǎng)問(wèn)的應(yīng)用系統(tǒng);
(7)門(mén)戶(hù)將用戶(hù)對(duì)應(yīng)用系統(tǒng)具體功能模塊的訪(fǎng)問(wèn)請(qǐng)求提交給具體的應(yīng)用系統(tǒng);
(8)具體的應(yīng)用系統(tǒng)根據(jù)第二級(jí)ACL策略庫(kù)提供的訪(fǎng)問(wèn)控制決策結(jié)果決定是否允許用戶(hù)訪(fǎng)問(wèn)他想訪(fǎng)問(wèn)的功能模塊。
權(quán)限管理和訪(fǎng)問(wèn)控制是確保信息化時(shí)代復(fù)雜信息系統(tǒng)安全的重要基石。本文介紹了基于PKI/PMI技術(shù)的權(quán)限管理及訪(fǎng)問(wèn)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),該系統(tǒng)具有權(quán)限分配靈活、便于使用、安全性高;權(quán)限的分級(jí)管理、訪(fǎng)問(wèn)控制的分級(jí)管理以及權(quán)限管理和應(yīng)用訪(fǎng)問(wèn)控制的分離管理。實(shí)現(xiàn)了嚴(yán)格的兩級(jí)訪(fǎng)問(wèn)控制機(jī)制,有效的防止了非法用戶(hù)的訪(fǎng)問(wèn),保護(hù)了信息和資源的安全。該系統(tǒng)已成功應(yīng)用于某部門(mén)權(quán)限管理及訪(fǎng)問(wèn)控制系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)實(shí)踐,并能與其他應(yīng)用系統(tǒng)很好的集成。如何將Acegi安全框架應(yīng)用到本系統(tǒng)中,進(jìn)一步提高信息系統(tǒng)的安全性,是作者研究的下一個(gè)方向。
[1]劉偉,劉嘉勇.一種基于擴(kuò)展角色的訪(fǎng)問(wèn)控制模型和方法[J].信息與電子工程,2009,7(1):76-80.
[2]范明虎,樊紅,伍孝金.ASP.net中基于RBAC的通用權(quán)限管理系統(tǒng)[J].計(jì)算機(jī)工程,2010,36(1):143-146.
[3]林尤舜,鐘聲.基于RBAC的權(quán)限管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2009,29(3):59-61.
[4]楊天怡,董紅林,黃勤.應(yīng)用角色和任務(wù)訪(fǎng)問(wèn)控制的工作流動(dòng)動(dòng)態(tài)授權(quán)模型[J].計(jì)算機(jī)應(yīng)用研究,2010,27(4):1511-1544.
[5]郭曉凱,衛(wèi)文學(xué),黃海明.基于角色的代理訪(fǎng)問(wèn)控制模型及其實(shí)現(xiàn)[J].山東科技大學(xué)學(xué)報(bào)自然科學(xué)版,2009,28(1):89-92.
[6]劉鵬遠(yuǎn),李彤.基于角色的權(quán)限管理的總體解決方案[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(24):6033-6036.
[7]陳泉冰,王會(huì)進(jìn).一種改進(jìn)的基于任務(wù)-角色的訪(fǎng)問(wèn)控制模型[J].暨南大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,31(1):29-35.
[8]康麗珠,黃青松,劉利軍.一種改進(jìn)的基于角色的分級(jí)授權(quán)訪(fǎng)問(wèn)控制模型[J].昆明理工大學(xué)學(xué)報(bào)(理工版),2009,34(1):39-42.
[9]平震宇.擴(kuò)展RBAC的安全約束實(shí)現(xiàn)強(qiáng)制訪(fǎng)問(wèn)控制[J].綿陽(yáng)師范學(xué)院學(xué)報(bào),2009,28(2):86-88.
[10]饒文碧,陳丹丹,王闖.基于RBAC的權(quán)限管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2008,36(5):100-103.
[11]覃章榮,王強(qiáng),歐鑌進(jìn),等.基于角色的權(quán)限管理方法的改進(jìn)與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(6):1282-1285.
[12]田仲富.公鑰基礎(chǔ)設(shè)施(PKI)安全性研究[J].中國(guó)安全科學(xué)學(xué)報(bào),2009,19(2):116-120.
[13]田曉菲.基于PKI/PMI的工作流訪(fǎng)問(wèn)控制模型研究[D].成都:西南交通大學(xué),2008:1-50.
[14]寧紅宙,華剛,金端峰.公鑰基礎(chǔ)設(shè)施(PKI)應(yīng)用中的信任問(wèn)題與安全解決方案[J].中國(guó)安全科學(xué)學(xué)報(bào),2007,17(10):140-144.
[15]謝慧,嚴(yán)承華,聶峰.一種分層PKI系統(tǒng)在園區(qū)網(wǎng)上的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(3):85-88.
[16]張基溫,裴浩.基于PMI的安全匿名授權(quán)體系[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(3):547-550.