湯偉強(qiáng),郭云川,,李 超
(1.桂林電子科技大學(xué) 廣西可信軟件重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;2.中國(guó)科學(xué)院 信息工程研究所,北京 100093)
物聯(lián)網(wǎng)中訪(fǎng)問(wèn)控制策略的翻譯與優(yōu)化
湯偉強(qiáng)1,郭云川1,2,李 超2
(1.桂林電子科技大學(xué) 廣西可信軟件重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;2.中國(guó)科學(xué)院 信息工程研究所,北京 100093)
為了解決不同訪(fǎng)問(wèn)控制策略語(yǔ)言所帶來(lái)的交互授權(quán)問(wèn)題,提出了一種將物聯(lián)網(wǎng)第三方機(jī)構(gòu)數(shù)據(jù)庫(kù)中基于角色的訪(fǎng)問(wèn)控制策略翻譯為物聯(lián)網(wǎng)中基于屬性的XACML訪(fǎng)問(wèn)控制策略的方法,將數(shù)據(jù)庫(kù)策略翻譯到哈希表中,再對(duì)哈希表進(jìn)一步翻譯生成XACML策略,在翻譯的過(guò)程中檢測(cè)角色多重繼承所產(chǎn)生的重復(fù)授權(quán),避免策略重復(fù)生成。并對(duì)翻譯后的訪(fǎng)問(wèn)控制策略進(jìn)行優(yōu)化,將2條規(guī)則屬性對(duì)比以檢查這2條規(guī)則是否可以合并,通過(guò)策略中規(guī)則的合并減少策略的規(guī)模。實(shí)驗(yàn)證明了翻譯與優(yōu)化方法的有效性。
物聯(lián)網(wǎng);訪(fǎng)問(wèn)控制策略翻譯;策略?xún)?yōu)化;XACML
物聯(lián)網(wǎng)(internet of things,簡(jiǎn)稱(chēng)IOT)是建立在互聯(lián)網(wǎng)、無(wú)線(xiàn)網(wǎng)、傳感網(wǎng)等網(wǎng)絡(luò)設(shè)施上的泛在網(wǎng)絡(luò),實(shí)現(xiàn)物與人,物與物及物與網(wǎng)絡(luò)之間的連接,達(dá)到智能識(shí)別、定位、跟蹤、控制和管理的目的[1]。然而物聯(lián)網(wǎng)也面臨著許多安全問(wèn)題,加強(qiáng)物聯(lián)網(wǎng)安全技術(shù)的研發(fā)工作是物聯(lián)網(wǎng)安全技術(shù)研究的主要方向。在各種安全機(jī)制中,訪(fǎng)問(wèn)控制技術(shù)是一種基礎(chǔ)性的重要組成部分,由于物聯(lián)網(wǎng)中許多機(jī)構(gòu)所用的訪(fǎng)問(wèn)控制策略描述語(yǔ)言各不相同,現(xiàn)有情況下實(shí)現(xiàn)相互之間的交互授權(quán)十分困難。例如,物聯(lián)網(wǎng)中A機(jī)構(gòu)使用的是關(guān)系數(shù)據(jù)庫(kù)中基于角色的訪(fǎng)問(wèn)控制策略描述語(yǔ)言,B機(jī)構(gòu)使用的是可擴(kuò)展的訪(fǎng)問(wèn)控制標(biāo)識(shí)語(yǔ)言(eXtensible access control markup language,簡(jiǎn)稱(chēng)XACML)作為基于屬性的訪(fǎng)問(wèn)控制策略描述語(yǔ)言,當(dāng)A、B兩個(gè)機(jī)構(gòu)需要進(jìn)行交互授權(quán)時(shí),不同訪(fǎng)問(wèn)控制策略語(yǔ)言描述的訪(fǎng)問(wèn)控制策略使交互授權(quán)變得十分困難。因此,對(duì)訪(fǎng)問(wèn)控制策略的翻譯研究具有重要意義。目前已有一些學(xué)者對(duì)訪(fǎng)問(wèn)控制策略翻譯進(jìn)行了研究[2-4],如Shanmugasundaram等[2]提出一種將關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)換成XML的方法,通過(guò)內(nèi)部引擎和外部引擎查詢(xún)關(guān)系數(shù)據(jù)庫(kù),實(shí)現(xiàn)了關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)與XML之間的轉(zhuǎn)換,但該方法無(wú)法保證在并行情況下的正確性;Leighton等[3]提出一種將自主訪(fǎng)問(wèn)控制策略翻譯為基于屬性的XACML訪(fǎng)問(wèn)控制策略的方法,將原數(shù)據(jù)庫(kù)自主訪(fǎng)問(wèn)控制策略數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制串,再進(jìn)一步轉(zhuǎn)換為XACML,從而實(shí)現(xiàn)轉(zhuǎn)換,但未給出實(shí)驗(yàn)驗(yàn)證方案。鑒于此,提出一種物聯(lián)網(wǎng)中訪(fǎng)問(wèn)控制策略翻譯方法,將數(shù)據(jù)庫(kù)中基于角色的訪(fǎng)問(wèn)控制策略翻譯為XACML描述的基于屬性的訪(fǎng)問(wèn)控制策略,并對(duì)翻譯后的訪(fǎng)問(wèn)控制策略進(jìn)行優(yōu)化,通過(guò)實(shí)驗(yàn)驗(yàn)證該訪(fǎng)問(wèn)控制策略翻譯方法的可行性。
為了使物聯(lián)網(wǎng)中采用不同訪(fǎng)問(wèn)控制語(yǔ)言的機(jī)構(gòu)間能夠交互授權(quán),采用統(tǒng)一的訪(fǎng)問(wèn)控制語(yǔ)言是一種很好的解決方案。本研究采用將關(guān)系數(shù)據(jù)庫(kù)中基于角色的訪(fǎng)問(wèn)控制策略翻譯為XACML所描述的基于屬性的訪(fǎng)問(wèn)控制策略。
1.1 XACML策略規(guī)則及翻譯
關(guān)系數(shù)據(jù)庫(kù)中的基于角色的訪(fǎng)問(wèn)控制策略[5]一般由用戶(hù)表、角色表、用戶(hù)角色映射表、角色權(quán)限映射表等構(gòu)成。用戶(hù)角色表存儲(chǔ)了所有用戶(hù)與角色的映射關(guān)系;角色權(quán)限表記錄了每個(gè)角色對(duì)應(yīng)的資源的權(quán)限;用戶(hù)表、角色表保存了所有的用戶(hù)和角色信息。XACML是由OASIS組織制定的一種基于屬性訪(fǎng)問(wèn)控制模型的策略描述語(yǔ)言及協(xié)議棧[6]。XACML訪(fǎng)問(wèn)控制策略的最小單位為規(guī)則;1條或者數(shù)條XACML規(guī)則可以構(gòu)成一個(gè)XACML訪(fǎng)問(wèn)控制策略;一個(gè)或數(shù)個(gè)XACML策略可以構(gòu)成一個(gè)XACML策略集。XACML實(shí)際策略規(guī)則如下XML:
〈Rule Effect="Permit" RuleId="permit"〉
〈Target〉
〈Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"〉
〈AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"〉tom〈/AttributeValue〉
〈AttributeDesignator AttributeId="subject" Category="subject-category" DataType="http://www.w3.org/2001/XMLSchema#string"/〉
〈/Match〉
〈Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"〉
〈AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"〉manager〈/AttributeValue〉
〈AttributeDesignator AttributeId="role" Category="role-category" DataType="http://www.w3.org/2001/XMLSchema#string"/〉
〈/Match〉
〈Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"〉
〈AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"〉www.iot.com/factory/〈/AttributeValue〉
〈AttributeDesignator AttributeId="resource" Category="resource-category" DataType="http://www.w3.org/2001/XMLSchema#string"/〉
〈/Match〉
〈Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"〉
〈AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"〉select〈/AttributeValue〉
〈AttributeDesignator AttributeId="action" Category="action-category" DataType="http://www.w3.org/2001/XMLSchema#string"/〉
〈/Match〉
〈/Target〉
〈/Rule〉
訪(fǎng)問(wèn)控制策略的翻譯過(guò)程由翻譯器實(shí)現(xiàn),最終生成XML形式的XACML訪(fǎng)問(wèn)控制策略。翻譯器的翻譯步驟如下:
1)檢索關(guān)系數(shù)據(jù)庫(kù)中的訪(fǎng)問(wèn)控制策略,讀取所有用戶(hù)信息,并由用戶(hù)角色表、角色權(quán)限表獲取用戶(hù)對(duì)應(yīng)的角色、權(quán)限,若該角色繼承于其它角色,則翻譯器會(huì)進(jìn)一步解析,以獲得所繼承角色的權(quán)限。隨后這些訪(fǎng)問(wèn)控制數(shù)據(jù)(如角色,權(quán)限等)會(huì)被存儲(chǔ)到如下的哈希表中。
tom→(〈manager,www.iot.com/factory/,select,permit,〉)
bill→(〈buyer,www.iot.com/factory/buyer/,{select,update},permit,〉,〈buyer,www.iot.com/factory/cashier/,select,deny,〉)
william→(〈cashier,www.iot.com/factory/cashier/,update,permit,〉,〈cashier,www.iot.com/factory/buyer/,select,deny,〉,…)
2)翻譯器以XACML的標(biāo)準(zhǔn),讀取哈希表中的屬性,生成多條XACML規(guī)則,并將其添加到XACML策略中。例如,在數(shù)據(jù)庫(kù)有一組訪(fǎng)問(wèn)控制數(shù)據(jù),用戶(hù)tom角色為manager,可以訪(fǎng)問(wèn)資源www.iot.com/factory/。翻譯器先在用戶(hù)角色表中獲得其角色為manager,在角色權(quán)限表中查詢(xún)到其對(duì)資源www.iot.com/factory/的權(quán)限select為允許,然后將該組數(shù)據(jù)存儲(chǔ)于哈希表中,翻譯器根據(jù)哈希表中的數(shù)據(jù)進(jìn)一步生成XACML規(guī)則和策略。
1.2 關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)換
翻譯器的目的是將數(shù)據(jù)庫(kù)中基于角色的訪(fǎng)問(wèn)控制策略遍歷,檢索具有繼承關(guān)系的角色,去除繼承的多個(gè)角色重復(fù)授權(quán)的訪(fǎng)問(wèn)控制策略,并將轉(zhuǎn)換后的策略數(shù)據(jù)存于哈希表中。
算法1 關(guān)系數(shù)據(jù)庫(kù)策略轉(zhuǎn)換算法。
輸入:用戶(hù)角色映射表M、角色權(quán)限映射表P。
輸出:哈希表H。
2 foreach user∈getAllUsers() do
4 foreach role∈praseUserRoleTable(M) do
6 roles←getFatherRoles(role);
7 roles←roles∪role;
8 foreach ro∈roles do
9 foreach obj∈praseRolePermissionTable(P) do
10 permission←getPermission(obj);
12 if obj.hasConditions() do
13 con←resolveCondition();
14 att←createNewAtt(role,obj,permission,con);
15 attList←attList∪att;
16 end
17 end
18 end
19 H.put(user,attList);
20 end
算法1首先創(chuàng)建一個(gè)空哈希表H,該哈希表以基于角色的訪(fǎng)問(wèn)控制策略中的用戶(hù)為主鍵,值為屬性列表attList,包含將要生成XACML規(guī)則的每組屬性。遍歷所有用戶(hù)(第2行代碼),通過(guò)用戶(hù)角色映射表M獲取用戶(hù)的所有角色,并檢查每個(gè)角色是否繼承其他角色,若繼承其他角色,則進(jìn)一步獲取其他角色(第5~7行代碼)。翻譯器檢索角色權(quán)限映射表以獲得每個(gè)角色的權(quán)限和約束條件,先由角色權(quán)限表獲得角色對(duì)應(yīng)的每個(gè)資源對(duì)象,并獲得相應(yīng)資源對(duì)象的權(quán)限,如select、update等;檢查是否有約束條件(第12~13行代碼),約束條件是用戶(hù)對(duì)資源訪(fǎng)問(wèn)的額外限制,如地理位置、年齡范圍等。將角色、資源、權(quán)限、條件作為一組屬性存于att,并將att放入用戶(hù)的屬性列表attList。最后,用戶(hù)作為主鍵、attrList作為值被存入到哈希表中(第19行代碼)。
在角色繼承時(shí),若一個(gè)角色繼承多個(gè)角色,這些角色產(chǎn)生的權(quán)限重復(fù),則在生成XACML時(shí)產(chǎn)生大量的重復(fù)規(guī)則。用哈希表緩存基于角色的訪(fǎng)問(wèn)控制策略轉(zhuǎn)換后的各種屬性(如用戶(hù)、角色、資源等)。在存放轉(zhuǎn)換后的屬性到哈希表時(shí),會(huì)檢查哈希表是否有重復(fù),使得生成XACML策略規(guī)則時(shí)不會(huì)產(chǎn)生重復(fù)規(guī)則。
1.3 XACML訪(fǎng)問(wèn)控制策略生成
算法1對(duì)數(shù)據(jù)庫(kù)中的訪(fǎng)問(wèn)控制策略進(jìn)行解析并進(jìn)行哈希表的映射,將基于角色的訪(fǎng)問(wèn)控制策略轉(zhuǎn)換到哈希表中。將哈希表中的數(shù)據(jù)進(jìn)行遍歷,按照XACML訪(fǎng)問(wèn)控制策略的標(biāo)準(zhǔn),生成以XML為表示形式的XACML訪(fǎng)問(wèn)控制策略。
算法2 XACML訪(fǎng)問(wèn)控制策略生成。
輸入:用戶(hù)角色映射表M、角色權(quán)限映射表P。
輸出:XACML訪(fǎng)問(wèn)控制策略rs。
2 H←prarseTable(M,P);/*算法1*/
3 foreach user∈traverseHashTable(H) do
4 userListt←getTableValue(user);/*獲得規(guī)則屬性*/
5 foreach userAtt∈userList do
6 userRole←getRole(userAtt);
7 userRes←getRes(userAtt);
8 userPermission←getPermission(userAtt);
9 userEffect←getEffect(userAtt);
10 usercon←getCondition(userAtt);
12 rule←createNewRule(user,userRole,userRes,userPermission,userEffect);
13 else
14 rule←createNewRule(user,userRoe,userRes,userPermission,userEffect,usercon);
15 end
16 rs.addPolicyRule(rule);
17 end
18 end
算法2先創(chuàng)建一個(gè)無(wú)規(guī)則的訪(fǎng)問(wèn)控制策略rs,通過(guò)算法1獲得哈希表H,遍歷哈希表獲得每個(gè)用戶(hù)及其對(duì)應(yīng)的屬性列表userList,再?gòu)膗serList中獲得用戶(hù)的每組屬性u(píng)serAttr,這些屬性包括了角色、資源、權(quán)限、效果、條件等(第5~10行代碼)。每組屬性生成一條XACML規(guī)則rule,該rule被添加到XACML策略rs中。例如,在哈希表結(jié)構(gòu)示例中,由tom可得到manager、www.iot.com/factory/、select、permit等4個(gè)屬性和一個(gè)為空的條件屬性,通過(guò)這些屬性可構(gòu)建一條XACML訪(fǎng)問(wèn)控制策略規(guī)則〈tom,manager,www.iot.com/factory/,select,permit,〉。為便于表述,將XACML規(guī)則形式化定義為一個(gè)6元組〈subject,role,resource,action,effect,condition〉。其中:subject為訪(fǎng)問(wèn)控制主體;role為角色;resource為訪(fǎng)問(wèn)控制對(duì)象;action為操作,如select;effect為結(jié)果permit或deny;condition為條件。同樣地,bill可以構(gòu)成3條XACML規(guī)則,william可以構(gòu)成2條XACML規(guī)則,該哈希表最終會(huì)生成一個(gè)具有6條規(guī)則的XACML訪(fǎng)問(wèn)控制策略。
XACML訪(fǎng)問(wèn)控制策略是XACML訪(fǎng)問(wèn)控制程序?qū)φ?qǐng)求進(jìn)行判定的依據(jù),規(guī)則的數(shù)量和順序決定了匹配運(yùn)算的規(guī)模和評(píng)估效率,數(shù)以千計(jì)的XACML策略中可能存在若干條對(duì)訪(fǎng)問(wèn)控制請(qǐng)求不產(chǎn)生實(shí)際判定影響的冗余規(guī)則[7],而對(duì)訪(fǎng)問(wèn)控制策略進(jìn)行優(yōu)化,可以縮減策略的規(guī)模,是一種有效提高訪(fǎng)問(wèn)控制速度的方案。
算法3 策略規(guī)則優(yōu)化算法。
輸入:XACML訪(fǎng)問(wèn)控制策略rs。
輸出:最小化的XACML訪(fǎng)問(wèn)控制策略rs。
1 foreach rule∈rs do
2 foreach cr∈rs and cr!=rule do
3 foreach attr∈〈user,role,res,act,con〉 do
4 if rule.attr!=cr.attr and Bemerged(rule.attr,cr.attr) then/*策略?xún)?yōu)化*/
5 if compareotherattr(rule,cr,attr) then
6 rule.attr←rule.attr∪cr.attr;
7 delete(cr);
8 end
9 else if rule.attr=cr.attr then
10 delete(cr);
11 end
12 end
13 end
14 end
算法3描述了XACML訪(fǎng)問(wèn)
,分別對(duì)每2條規(guī)則的用戶(hù)、角色、資源等進(jìn)行檢查(第3行代碼)。若2條規(guī)則中被檢查的屬性可以合并,其他屬性相同,則對(duì)這2條策略進(jìn)行合并(第4~8行代碼),若2條規(guī)則都相同,則刪除其中一條(第9~11行代碼)。如規(guī)則〈tom,manager,res1,select,permit,
〉與〈tom,manager,res2,select,permit,
〉中,res1、res2可以合并,其他屬性相同,則將這2條規(guī)則合并為〈tom,manager,{res1,res2},select,permit,
〉。經(jīng)過(guò)合并,可減少XACML訪(fǎng)問(wèn)控制策略規(guī)則數(shù)目,提高規(guī)則的檢索效率。
通過(guò)仿真實(shí)驗(yàn)對(duì)訪(fǎng)問(wèn)控制策略的翻譯和優(yōu)化程序進(jìn)行性能分析。實(shí)驗(yàn)環(huán)境采用MySql作為數(shù)據(jù)庫(kù)服務(wù)器,Balana XACML作為XACML訪(fǎng)問(wèn)控制系統(tǒng)的訪(fǎng)問(wèn)控制引擎,該引擎支持XACML3.0標(biāo)準(zhǔn),在Sun XACML的基礎(chǔ)上進(jìn)行擴(kuò)展[8-10]。
首先進(jìn)行翻譯的正確性驗(yàn)證測(cè)試。依據(jù)上述算法實(shí)現(xiàn)一個(gè)翻譯器程序,對(duì)數(shù)據(jù)庫(kù)中的1000條訪(fǎng)問(wèn)控制策略進(jìn)行測(cè)試,每條策略為數(shù)據(jù)庫(kù)中一個(gè)用戶(hù)的訪(fǎng)問(wèn)控制權(quán)限。然后模擬每個(gè)用戶(hù)不同角色對(duì)不同資源的訪(fǎng)問(wèn)請(qǐng)求,用Balana XACML訪(fǎng)問(wèn)控制引擎對(duì)翻譯后的XACML策略進(jìn)行測(cè)試。通過(guò)對(duì)XACML策略進(jìn)行遍歷測(cè)試,XACML策略對(duì)每個(gè)訪(fǎng)問(wèn)控制請(qǐng)求均能夠做出正確的響應(yīng),驗(yàn)證了該翻譯方法的正確性。
通過(guò)A、B、C、D四組樣本對(duì)翻譯性能進(jìn)行測(cè)試,每組樣本分別用100、250、500、750、1000條關(guān)系數(shù)據(jù)庫(kù)策略進(jìn)行測(cè)試。樣本A中一條數(shù)據(jù)庫(kù)策略可以生成一條XACML規(guī)則,在策略?xún)?yōu)化后仍為一條XACML規(guī)則,樣本B數(shù)據(jù)庫(kù)策略數(shù)∶生成XACML規(guī)則數(shù)∶優(yōu)化后XACML規(guī)則數(shù)為1∶1.5∶1,樣本C為1∶5∶5,樣本D為1∶5∶1。圖1為訪(fǎng)問(wèn)控制策略翻譯的時(shí)間對(duì)比。從圖1可看出,當(dāng)數(shù)據(jù)庫(kù)策略數(shù)相同時(shí),4組樣本所生成的XACML策略的關(guān)系為A
圖1 訪(fǎng)問(wèn)控制策略翻譯時(shí)間比較Fig.1 Comparison of translation time
圖2為訪(fǎng)問(wèn)控制策略?xún)?yōu)化程序的優(yōu)化時(shí)間對(duì)比。從圖2可看出,樣本A、B生成的XACML策略較少,優(yōu)化時(shí)間也較少,而C、D優(yōu)化時(shí)間則提高幅度較大;同時(shí),在C無(wú)優(yōu)化效果、D優(yōu)化效果非常高時(shí),其訪(fǎng)問(wèn)控制的策略?xún)?yōu)化時(shí)間幾乎相同,因此策略?xún)?yōu)化的性能較為穩(wěn)定,只隨優(yōu)化前XACML策略規(guī)模的增加而增長(zhǎng),不隨XACML策略壓縮后規(guī)模的大小而改變。從各組實(shí)驗(yàn)的時(shí)間來(lái)看,翻譯和優(yōu)化所需的時(shí)間在可接受范圍之內(nèi)。
圖2 訪(fǎng)問(wèn)控制策略?xún)?yōu)化時(shí)間比較Fig.2 Comparison of optimization time
利用Balana XACML訪(fǎng)問(wèn)控制引擎,對(duì)優(yōu)化前后的XACML訪(fǎng)問(wèn)控制策略進(jìn)行測(cè)試。圖3為樣本B、D優(yōu)化前后的XACML訪(fǎng)問(wèn)控制策略對(duì)訪(fǎng)問(wèn)請(qǐng)求的響應(yīng)時(shí)間。樣本A、C優(yōu)化前后的XACML策略未變,其響應(yīng)時(shí)間也未發(fā)生任何改變,未在圖3中標(biāo)示樣本A、C。從圖3可看出,訪(fǎng)問(wèn)控制請(qǐng)求的響應(yīng)時(shí)間與優(yōu)化效果有關(guān),當(dāng)訪(fǎng)問(wèn)控制策略?xún)?yōu)化較多時(shí),其響應(yīng)時(shí)間會(huì)大幅度減少。樣本B的策略?xún)?yōu)化效果為33%,其請(qǐng)求響應(yīng)時(shí)間平均減少了16%;樣本D的策略?xún)?yōu)化效果為80%,其請(qǐng)求響應(yīng)時(shí)間平均減少了56%。由此可見(jiàn),XACML策略的規(guī)模是影響訪(fǎng)問(wèn)控制響應(yīng)時(shí)間的主要因素。
圖3 策略?xún)?yōu)化前后請(qǐng)求響應(yīng)時(shí)間比較Fig.3 Response time of optimized and un-optimized policies
提出了一種訪(fǎng)問(wèn)控制策略的翻譯和優(yōu)化方法,將數(shù)據(jù)庫(kù)中基于角色的訪(fǎng)問(wèn)控制策略翻譯為基于屬性的訪(fǎng)問(wèn)控制策略,并在生成XACML策略之后對(duì)其進(jìn)行優(yōu)化。通過(guò)實(shí)驗(yàn)分析和比較,驗(yàn)證了訪(fǎng)問(wèn)控制策略翻譯和優(yōu)化方法的有效性。
[1] 方濱興,賈焰,李?lèi)?ài)平,等.網(wǎng)絡(luò)空間大搜索研究范疇與發(fā)展趨勢(shì)[J].通信學(xué)報(bào),2015,36(12):1-8.
[2] SHANMUGASUNDARAM E J,SHEKITA E,BARR R,et al.Efficiently publishing relational data as XML documents[J].The VLDB Journal,2000,10(2/3):133-154.
[3] LEIGHTON G,BARBOSA D.Access control policy translation,verification,and minimization within heterogeneous data federations[J].ACM Transactions on Information and System Security,2011,14(3):25.
[4] BARBOSA D,FREIRE J,MENDELZON A O.Designing information-preserving mapping schemes for XML[C]// International Conference on Very Large Data Bases,2005:109-120.
[5] 王于丁,楊家海,徐聰,等.云計(jì)算訪(fǎng)問(wèn)控制技術(shù)研究綜述[J].軟件學(xué)報(bào),2015,26(5):1129-1150.
[6] OASIS.XACML3.0[OL].(2013-01-22)[2016-03-10].https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml.
[7] 王雅哲,馮登國(guó),張立武,等.基于多層次優(yōu)化技術(shù)的XACML策略評(píng)估引擎[J].軟件學(xué)報(bào),2011,22(2):323-338.
[8] WSO2.Balana XACML[OL].(2015-12-03)[2016-03-10].Https://github.com/wso2/balana.
[9] LIU A X,CHEN F,HWANG J H,et al.XEngine:a fast and scalable XACML policy evaluation engine[C]//Proceedings of the 2008 ACM SIGMETRICS Int’l Conference on Measurement and Modeling of Computer Systems.New York:ACM Press,2008:265-276.
[10] SUN.Sun XACML[OL].(2006-06-21)[2016-03-10].Http://sunxacml.sourceforge.net.
編輯:張所濱
Access control policy translation and optimization in the internet of things
TANG Weiqiang1, GUO Yunchuan1,2, LI Chao2
(1.Guangxi Key Laboratory of Trusted Software, Guilin University of Electronic Technology, Guilin 541004, China;2.Institute of Information and Engineering, Chinese Academy of Sciences, Beijing 100093, China)
In order to eliminate the problem of interactive authorization caused by different policy languages, a method is proposed to translate the role-based access control policy in the database of the third-party organization into the attribute-based XACML access control policy in the internet of things. The policy in database is first translated into hashtable, and then the hashtable is translated into XACML policy. In the process of translation, the repeat authorization of the role’s multiple inheritance will be checked to avoid generating repetition rule. Then the XACML policy optimization is carried out. The properties of the two rules are compared to check whether the two rules can be combined. The size of policy can be reduced by the combination. The experimental results prove that the method of translation and optimization is effective.
internet of things; access control policy translation; policy optimization; XACML
2016-03-20
廣西自然科學(xué)基金(2014GXNSFAA118365)
郭云川(1977-),男,四川營(yíng)山人,副研究員,博士,研究方向?yàn)槲锫?lián)網(wǎng)安全。E-mail:guoyunchuan@nelmail.iie.ac.cn
湯偉強(qiáng),郭云川,李超.物聯(lián)網(wǎng)中訪(fǎng)問(wèn)控制策略的翻譯與優(yōu)化[J].桂林電子科技大學(xué)學(xué)報(bào),2016,36(6):495-499.
TP309
A
1673-808X(2016)06-0495-05