999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

物聯網中訪問控制策略的翻譯與優化

2016-12-29 06:49:43湯偉強郭云川
桂林電子科技大學學報 2016年6期
關鍵詞:控制策略規則優化

湯偉強,郭云川,,李 超

(1.桂林電子科技大學 廣西可信軟件重點實驗室,廣西 桂林 541004;2.中國科學院 信息工程研究所,北京 100093)

物聯網中訪問控制策略的翻譯與優化

湯偉強1,郭云川1,2,李 超2

(1.桂林電子科技大學 廣西可信軟件重點實驗室,廣西 桂林 541004;2.中國科學院 信息工程研究所,北京 100093)

為了解決不同訪問控制策略語言所帶來的交互授權問題,提出了一種將物聯網第三方機構數據庫中基于角色的訪問控制策略翻譯為物聯網中基于屬性的XACML訪問控制策略的方法,將數據庫策略翻譯到哈希表中,再對哈希表進一步翻譯生成XACML策略,在翻譯的過程中檢測角色多重繼承所產生的重復授權,避免策略重復生成。并對翻譯后的訪問控制策略進行優化,將2條規則屬性對比以檢查這2條規則是否可以合并,通過策略中規則的合并減少策略的規模。實驗證明了翻譯與優化方法的有效性。

物聯網;訪問控制策略翻譯;策略優化;XACML

物聯網(internet of things,簡稱IOT)是建立在互聯網、無線網、傳感網等網絡設施上的泛在網絡,實現物與人,物與物及物與網絡之間的連接,達到智能識別、定位、跟蹤、控制和管理的目的[1]。然而物聯網也面臨著許多安全問題,加強物聯網安全技術的研發工作是物聯網安全技術研究的主要方向。在各種安全機制中,訪問控制技術是一種基礎性的重要組成部分,由于物聯網中許多機構所用的訪問控制策略描述語言各不相同,現有情況下實現相互之間的交互授權十分困難。例如,物聯網中A機構使用的是關系數據庫中基于角色的訪問控制策略描述語言,B機構使用的是可擴展的訪問控制標識語言(eXtensible access control markup language,簡稱XACML)作為基于屬性的訪問控制策略描述語言,當A、B兩個機構需要進行交互授權時,不同訪問控制策略語言描述的訪問控制策略使交互授權變得十分困難。因此,對訪問控制策略的翻譯研究具有重要意義。目前已有一些學者對訪問控制策略翻譯進行了研究[2-4],如Shanmugasundaram等[2]提出一種將關系數據庫數據轉換成XML的方法,通過內部引擎和外部引擎查詢關系數據庫,實現了關系數據庫數據與XML之間的轉換,但該方法無法保證在并行情況下的正確性;Leighton等[3]提出一種將自主訪問控制策略翻譯為基于屬性的XACML訪問控制策略的方法,將原數據庫自主訪問控制策略數據轉化為二進制串,再進一步轉換為XACML,從而實現轉換,但未給出實驗驗證方案。鑒于此,提出一種物聯網中訪問控制策略翻譯方法,將數據庫中基于角色的訪問控制策略翻譯為XACML描述的基于屬性的訪問控制策略,并對翻譯后的訪問控制策略進行優化,通過實驗驗證該訪問控制策略翻譯方法的可行性。

1 訪問控制策略的翻譯

為了使物聯網中采用不同訪問控制語言的機構間能夠交互授權,采用統一的訪問控制語言是一種很好的解決方案。本研究采用將關系數據庫中基于角色的訪問控制策略翻譯為XACML所描述的基于屬性的訪問控制策略。

1.1 XACML策略規則及翻譯

關系數據庫中的基于角色的訪問控制策略[5]一般由用戶表、角色表、用戶角色映射表、角色權限映射表等構成。用戶角色表存儲了所有用戶與角色的映射關系;角色權限表記錄了每個角色對應的資源的權限;用戶表、角色表保存了所有的用戶和角色信息。XACML是由OASIS組織制定的一種基于屬性訪問控制模型的策略描述語言及協議棧[6]。XACML訪問控制策略的最小單位為規則;1條或者數條XACML規則可以構成一個XACML訪問控制策略;一個或數個XACML策略可以構成一個XACML策略集。XACML實際策略規則如下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〉

訪問控制策略的翻譯過程由翻譯器實現,最終生成XML形式的XACML訪問控制策略。翻譯器的翻譯步驟如下:

1)檢索關系數據庫中的訪問控制策略,讀取所有用戶信息,并由用戶角色表、角色權限表獲取用戶對應的角色、權限,若該角色繼承于其它角色,則翻譯器會進一步解析,以獲得所繼承角色的權限。隨后這些訪問控制數據(如角色,權限等)會被存儲到如下的哈希表中。

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的標準,讀取哈希表中的屬性,生成多條XACML規則,并將其添加到XACML策略中。例如,在數據庫有一組訪問控制數據,用戶tom角色為manager,可以訪問資源www.iot.com/factory/。翻譯器先在用戶角色表中獲得其角色為manager,在角色權限表中查詢到其對資源www.iot.com/factory/的權限select為允許,然后將該組數據存儲于哈希表中,翻譯器根據哈希表中的數據進一步生成XACML規則和策略。

1.2 關系數據庫數據轉換

翻譯器的目的是將數據庫中基于角色的訪問控制策略遍歷,檢索具有繼承關系的角色,去除繼承的多個角色重復授權的訪問控制策略,并將轉換后的策略數據存于哈希表中。

算法1 關系數據庫策略轉換算法。

輸入:用戶角色映射表M、角色權限映射表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首先創建一個空哈希表H,該哈希表以基于角色的訪問控制策略中的用戶為主鍵,值為屬性列表attList,包含將要生成XACML規則的每組屬性。遍歷所有用戶(第2行代碼),通過用戶角色映射表M獲取用戶的所有角色,并檢查每個角色是否繼承其他角色,若繼承其他角色,則進一步獲取其他角色(第5~7行代碼)。翻譯器檢索角色權限映射表以獲得每個角色的權限和約束條件,先由角色權限表獲得角色對應的每個資源對象,并獲得相應資源對象的權限,如select、update等;檢查是否有約束條件(第12~13行代碼),約束條件是用戶對資源訪問的額外限制,如地理位置、年齡范圍等。將角色、資源、權限、條件作為一組屬性存于att,并將att放入用戶的屬性列表attList。最后,用戶作為主鍵、attrList作為值被存入到哈希表中(第19行代碼)。

在角色繼承時,若一個角色繼承多個角色,這些角色產生的權限重復,則在生成XACML時產生大量的重復規則。用哈希表緩存基于角色的訪問控制策略轉換后的各種屬性(如用戶、角色、資源等)。在存放轉換后的屬性到哈希表時,會檢查哈希表是否有重復,使得生成XACML策略規則時不會產生重復規則。

1.3 XACML訪問控制策略生成

算法1對數據庫中的訪問控制策略進行解析并進行哈希表的映射,將基于角色的訪問控制策略轉換到哈希表中。將哈希表中的數據進行遍歷,按照XACML訪問控制策略的標準,生成以XML為表示形式的XACML訪問控制策略。

算法2 XACML訪問控制策略生成。

輸入:用戶角色映射表M、角色權限映射表P。

輸出:XACML訪問控制策略rs。

2 H←prarseTable(M,P);/*算法1*/

3 foreach user∈traverseHashTable(H) do

4 userListt←getTableValue(user);/*獲得規則屬性*/

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先創建一個無規則的訪問控制策略rs,通過算法1獲得哈希表H,遍歷哈希表獲得每個用戶及其對應的屬性列表userList,再從userList中獲得用戶的每組屬性userAttr,這些屬性包括了角色、資源、權限、效果、條件等(第5~10行代碼)。每組屬性生成一條XACML規則rule,該rule被添加到XACML策略rs中。例如,在哈希表結構示例中,由tom可得到manager、www.iot.com/factory/、select、permit等4個屬性和一個為空的條件屬性,通過這些屬性可構建一條XACML訪問控制策略規則〈tom,manager,www.iot.com/factory/,select,permit,〉。為便于表述,將XACML規則形式化定義為一個6元組〈subject,role,resource,action,effect,condition〉。其中:subject為訪問控制主體;role為角色;resource為訪問控制對象;action為操作,如select;effect為結果permit或deny;condition為條件。同樣地,bill可以構成3條XACML規則,william可以構成2條XACML規則,該哈希表最終會生成一個具有6條規則的XACML訪問控制策略。

2 XACML訪問控制策略優化

XACML訪問控制策略是XACML訪問控制程序對請求進行判定的依據,規則的數量和順序決定了匹配運算的規模和評估效率,數以千計的XACML策略中可能存在若干條對訪問控制請求不產生實際判定影響的冗余規則[7],而對訪問控制策略進行優化,可以縮減策略的規模,是一種有效提高訪問控制速度的方案。

算法3 策略規則優化算法。

輸入:XACML訪問控制策略rs。

輸出:最小化的XACML訪問控制策略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/*策略優化*/

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訪問

,分別對每2條規則的用戶、角色、資源等進行檢查(第3行代碼)。若2條規則中被檢查的屬性可以合并,其他屬性相同,則對這2條策略進行合并(第4~8行代碼),若2條規則都相同,則刪除其中一條(第9~11行代碼)。如規則〈tom,manager,res1,select,permit,

〉與〈tom,manager,res2,select,permit,

〉中,res1、res2可以合并,其他屬性相同,則將這2條規則合并為〈tom,manager,{res1,res2},select,permit,

〉。經過合并,可減少XACML訪問控制策略規則數目,提高規則的檢索效率。

3 實驗結果和性能分析

通過仿真實驗對訪問控制策略的翻譯和優化程序進行性能分析。實驗環境采用MySql作為數據庫服務器,Balana XACML作為XACML訪問控制系統的訪問控制引擎,該引擎支持XACML3.0標準,在Sun XACML的基礎上進行擴展[8-10]。

首先進行翻譯的正確性驗證測試。依據上述算法實現一個翻譯器程序,對數據庫中的1000條訪問控制策略進行測試,每條策略為數據庫中一個用戶的訪問控制權限。然后模擬每個用戶不同角色對不同資源的訪問請求,用Balana XACML訪問控制引擎對翻譯后的XACML策略進行測試。通過對XACML策略進行遍歷測試,XACML策略對每個訪問控制請求均能夠做出正確的響應,驗證了該翻譯方法的正確性。

通過A、B、C、D四組樣本對翻譯性能進行測試,每組樣本分別用100、250、500、750、1000條關系數據庫策略進行測試。樣本A中一條數據庫策略可以生成一條XACML規則,在策略優化后仍為一條XACML規則,樣本B數據庫策略數∶生成XACML規則數∶優化后XACML規則數為1∶1.5∶1,樣本C為1∶5∶5,樣本D為1∶5∶1。圖1為訪問控制策略翻譯的時間對比。從圖1可看出,當數據庫策略數相同時,4組樣本所生成的XACML策略的關系為A

圖1 訪問控制策略翻譯時間比較Fig.1 Comparison of translation time

圖2為訪問控制策略優化程序的優化時間對比。從圖2可看出,樣本A、B生成的XACML策略較少,優化時間也較少,而C、D優化時間則提高幅度較大;同時,在C無優化效果、D優化效果非常高時,其訪問控制的策略優化時間幾乎相同,因此策略優化的性能較為穩定,只隨優化前XACML策略規模的增加而增長,不隨XACML策略壓縮后規模的大小而改變。從各組實驗的時間來看,翻譯和優化所需的時間在可接受范圍之內。

圖2 訪問控制策略優化時間比較Fig.2 Comparison of optimization time

利用Balana XACML訪問控制引擎,對優化前后的XACML訪問控制策略進行測試。圖3為樣本B、D優化前后的XACML訪問控制策略對訪問請求的響應時間。樣本A、C優化前后的XACML策略未變,其響應時間也未發生任何改變,未在圖3中標示樣本A、C。從圖3可看出,訪問控制請求的響應時間與優化效果有關,當訪問控制策略優化較多時,其響應時間會大幅度減少。樣本B的策略優化效果為33%,其請求響應時間平均減少了16%;樣本D的策略優化效果為80%,其請求響應時間平均減少了56%。由此可見,XACML策略的規模是影響訪問控制響應時間的主要因素。

圖3 策略優化前后請求響應時間比較Fig.3 Response time of optimized and un-optimized policies

4 結束語

提出了一種訪問控制策略的翻譯和優化方法,將數據庫中基于角色的訪問控制策略翻譯為基于屬性的訪問控制策略,并在生成XACML策略之后對其進行優化。通過實驗分析和比較,驗證了訪問控制策略翻譯和優化方法的有效性。

[1] 方濱興,賈焰,李愛平,等.網絡空間大搜索研究范疇與發展趨勢[J].通信學報,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].軟件學報,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] 王雅哲,馮登國,張立武,等.基于多層次優化技術的XACML策略評估引擎[J].軟件學報,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

廣西自然科學基金(2014GXNSFAA118365)

郭云川(1977-),男,四川營山人,副研究員,博士,研究方向為物聯網安全。E-mail:guoyunchuan@nelmail.iie.ac.cn

湯偉強,郭云川,李超.物聯網中訪問控制策略的翻譯與優化[J].桂林電子科技大學學報,2016,36(6):495-499.

TP309

A

1673-808X(2016)06-0495-05

猜你喜歡
控制策略規則優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
撐竿跳規則的制定
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
數獨的規則和演變
一道優化題的幾何解法
考慮虛擬慣性的VSC-MTDC改進下垂控制策略
能源工程(2020年6期)2021-01-26 00:55:22
工程造價控制策略
山東冶金(2019年3期)2019-07-10 00:54:04
現代企業會計的內部控制策略探討
消費導刊(2018年10期)2018-08-20 02:57:02
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
主站蜘蛛池模板: 最新痴汉在线无码AV| 国产裸舞福利在线视频合集| 亚洲区欧美区| 手机在线国产精品| 国产福利在线观看精品| 亚洲国产中文在线二区三区免| 午夜限制老子影院888| 国产乱人伦偷精品视频AAA| 欧美a级在线| 日本不卡在线播放| 国产成+人+综合+亚洲欧美| 国产精品一区二区不卡的视频| 四虎永久免费地址| 曰韩免费无码AV一区二区| 综合久久五月天| 中文精品久久久久国产网址 | 日韩国产另类| 国产成人亚洲精品蜜芽影院| 97se亚洲综合在线| 午夜在线不卡| 国产亚洲美日韩AV中文字幕无码成人| 欧美国产日韩在线观看| 国产情精品嫩草影院88av| 国产欧美日韩资源在线观看| 国产精品夜夜嗨视频免费视频| 成人无码区免费视频网站蜜臀| 2020精品极品国产色在线观看| 99热这里只有精品在线观看| 国产视频a| av一区二区无码在线| 精品少妇人妻无码久久| 国产欧美又粗又猛又爽老| 色婷婷丁香| 精品黑人一区二区三区| 成人毛片免费在线观看| 国产在线观看一区精品| 国产精品久久久精品三级| 中文纯内无码H| 亚洲精品黄| 狠狠久久综合伊人不卡| 色综合国产| 九色视频一区| 香蕉久人久人青草青草| 国产欧美一区二区三区视频在线观看| 久久精品中文字幕少妇| 国产精品欧美亚洲韩国日本不卡| 免费国产黄线在线观看| 久久中文字幕av不卡一区二区| 丁香五月激情图片| 国产精品妖精视频| 亚洲AV无码乱码在线观看代蜜桃 | 黄色片中文字幕| 91视频首页| 中文字幕在线永久在线视频2020| 91在线视频福利| 亚洲欧美日韩天堂| 乱人伦中文视频在线观看免费| 久久精品亚洲中文字幕乱码| 国产精品亚洲专区一区| JIZZ亚洲国产| 不卡午夜视频| 国产精品成人一区二区不卡| 精品免费在线视频| 自拍偷拍欧美日韩| 18禁黄无遮挡网站| 毛片久久网站小视频| 亚洲av无码片一区二区三区| 中文成人无码国产亚洲| 免费一级毛片在线观看| 中文成人无码国产亚洲| 极品av一区二区| 91免费在线看| 亚洲码在线中文在线观看| 色婷婷视频在线| 久草视频精品| 色婷婷狠狠干| 亚洲AV无码乱码在线观看代蜜桃 | 亚洲成a人在线观看| 91亚洲精品国产自在现线| 日韩a在线观看免费观看| 免费国产高清精品一区在线| 国产精品福利社|