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

MongoDB的RBAC訪問控制技術研究

2017-03-14 02:24:23李曄鋒
網絡安全技術與應用 2017年2期
關鍵詞:數據庫用戶模型

◆李曄鋒

MongoDB的RBAC訪問控制技術研究

◆李曄鋒1,2

(1.北京工業大學計算機學院 北京 100124;2.寧波工程學院電信學院 浙江 315211)

作為一種開源的NoSQL數據庫,MongoDB被廣泛應用于大數據處理與分析中,因此它的安全性顯得至關重要。MongoDB使用基于角色的訪問控制(RBAC)方式來控制屬于不同角色的用戶對數據庫資源的訪問。本文針對MongoDB以文檔形式存儲數據和非SQL形式訪問數據的特點,分析了該訪問控制模型中的各組成部分以及它們之間的關系,從而總結出這種訪問控制方式的優缺點。

NoSQL;MongoDB;RBAC

0 前言

MongoDB是開源的文檔型NoSQL數據庫,它擺脫了關系模型的限制,具有靈活的存儲結構,并且支持分布式部署,使得它的查詢性能遠高于關系數據庫[1],因此被廣泛應用于云計算和大數據環境[2]。但是NoSQL的安全性普遍相對薄弱,Zahid在他的學術論文[3]中對各種分片式的NoSQL數據庫進行了比較,其中對MongoDB的評論如下:“數據庫的安全配置等級非常低,完全依賴于數據庫管理員”。因此,在學術界和企業界有不少提高MongoDB安全性的研究,例如Sathyadevan等人提出了一種提升MongoDB數據級別安全的解決方案[4],Hou等人對MongoDB的注入情況進行了檢測和分析[5],師德清把MongoDB應用到CRP系統中,并對它的安全認證機制進行分析[6],宋志毅等人實現了基于MongoDB的數據加密技術[7]。本文從訪問控制的角度分析MongoDB的安全性,首先在第一章介紹MongoDB的存儲和訪問特性,然后在第二章闡述現有的一些訪問控制技術,接著在第三章重點分析MongoDB中RBAC模型的各組成部分以及它們之間的關系,最后在第四章總結全文。

1 MongoDB概述

1.1 MongoDB的數據存儲方式

MongoDB只有三種存儲對象:數據庫(Database)、集合(Collection)和文檔(Document),它們被統稱為資源(Resource)。數據庫是最高級存儲對象,由多個集合組成;集合相當于關系數據庫的表,每個集合包含多個文檔;文檔是MongoDB的最小存儲單元,它采用了BSON結構,每個文檔包含多個“字段”和“取值”對。

BSON是一種類似json的二進制存儲格式,它的優點在于支持內嵌的文檔對象和數據對象,與關系數據庫相比存儲結構更加靈活,能夠更好地描述數據之間的聯系。例如,某個學生李明的語文和數學兩門課成績可以表示如下:

如果使用關系數據庫存儲這些信息,則需要把學生信息和課程信息分別存儲在兩張表中,而MongoDB通過這種文檔內嵌的方式,能夠有效減少集合的數目,規避了連接操作,從而提高了查詢性能。此外,MongoDB還會為每個文檔對象生成全局唯一的ObjectID作為主鍵,它不但能夠用于區分不同的文檔,而且能夠用于排序、引用和創建索引,以達到更快的查詢速度。

1.2 MongoDB的數據訪問方式

作為一種NoSQL的數據庫,MongoDB使用了一種交互式的命令對數據庫進行操作訪問。絕大多數的數據庫命令使用函數的方式實現,例如,假設需要在1.1節定義的student集合中需要查找學生“李明”的語文課成績,則可用如下的find命令實現

db.student.find({“姓名”:”李明”},

{“課程”:{$elemMatch:”語文”},”_id”:0,”課程.成績”:1})

命令返回的查詢結果也是BSON格式的文檔類型,它能夠作為中間結果保存在某一個變量中,為下一個查詢命令所使用。這種數據訪問方式雖然更加靈活,但是對數據庫管理員有更高的技術要求。

2 訪問控制技術

在20世紀60年代末,科研工作者提出了訪問控制技術,其主要目的是防止信息和資源被非常用戶訪問使用,或被合法用戶進行非授權的使用。經過40多年的發展,一些訪問控制模型已被廣泛應用到各種應用中,包括自主訪問控制(DAC)、強制訪問控制(MAC)和基于角色的訪問控制(RBAC)等。

自主訪問控制使用關聯表實現主體對客體的訪問。關聯表可以基于主體或者基于客體,前者以主體為核心,為每個主體創建一個可被它訪問的客體以及訪問權限的明細表,后者以客體為核心,存儲可以對它訪問的主體以及訪問權限的明細表。這種訪問控制技術的優點在于靈活性較好,實現簡單,缺點在于關聯表占用大量的存儲空間,并且對權限的傳遞以及客體的副本管理相當困難。

強制訪問控制為每個主體和客體分配安全標簽,每種標簽以不同的取值來表示安全等級,這樣主體對客體的訪問權限取決于安全標簽的等級組合。這處訪問控制技術同樣實現簡單,并且數據只能根據標簽等級從一級流向一級,具有較強的機密性,缺點在于靈活性不夠,而且犧牲了數據的完整性。

基于角色的訪問控制模型由喬治梅森大學的Sandhu等人于1996年首次提出,經過不斷的完善形成了RBAC96模型簇[8],它的核心思想是在用戶和權限之間引入了角色(Role)的概念,如圖1所示,通過用戶分配(UA)和權限分配(PA)為用戶(主體)和權限之間的關聯。相比DAC和MAC,它更具靈活性和安全性,但是缺乏操作順序的控制機制。

圖1 RBAC模型核心結構

2004年,Sandhu等人又提出了一種使用控制模型(UCON)[9],被學術界命名為“下一代訪問控制模型”。該模型對傳統的存取控制進行了一定的擴展,定義了授權(Authorization)、義務(Obligation)和條件(Condition)三個新的因素,以及存取控制的連續性(Continuity)和可變性(Mutability)兩個新的屬性,具有更高的安全性、靈活性和有效性,但是模型的定義也更加抽象,不利于具體實現,因此并沒有在信息安全領域得到廣泛應用。

3 MongoDB的RBAC模型分析

MongoDB使用RBAC管理用戶的訪問控制,它的核心結構與圖1類似,只不過它把具體的操作行為(Action)與被操作的對象放在一起統稱為權限(Previlege)。

3.1 MongoDB的用戶

MongoDB在安裝完成后沒有任何用戶,不用登錄即可任意創建數據庫和集合,也可以對元數據庫admin中的部分集合進行操作,因此不具有任何安全性,必須手動創建用戶才能激活驗證功能。

MongoDB使用db.createUser命令創建用戶,所有的用戶信息被存儲在admin數據庫下的system.users集合中。默認情況下,用戶屬于創建時所在的數據庫,并只能對該數據庫進行操作。但是在admin數據庫下創建的用戶可以被賦予相應的角色訪問多個數據庫。例如,使用下面的命令即可創建一個超級用戶sa,它被賦予root角色,可以對整個數據庫執行任何操作。

use admin

db.createUser({user:”sa”,pwd:”123456”,roles:[“root”]})

此后,重新啟動Mongd服務并加上--auth參數,然后再啟動Mongo控制臺,需要先切換到admin數據庫下,再使用db.auth命令進行登錄驗證才可以進一步的操作。

3.2 MongoDB的權限

MongoDB的權限由操作行為和被操作的對象組成,用BSON結構可以表示如下:

其中resource字段表示被操作的對象,可以是數據庫或集合,也可以是分布式模式下的集群。另一個字段actions表示行為,它們可以是操作性的,例如1.2節所述的數據查找find命令,以及數據插入insert操作等,也可以是控制性的,例如3.1節所述的createUser命令,以及修改密碼changePassword等等。

每個權限定義中只能指定一個資源,但是可以有多個訪問行為,表示可以對某個資源進行哪些操作。因此,MongoDB中的權限不再拘泥于傳統的“讀”、“寫”和“執行”等操作,更加靈活機動以適應用戶的各種需要。

3.3 MongoDB的角色

角色是MongoDB訪問控制模型中的核心組件,也是連接用戶和權限的紐帶。MongoDB中已經自帶了一些系統定義的角色,此外用戶還可以通過組合權限自定義角色。MongoDB中角色的BSON描述形式如下:

其中的privileges字段中以數組的形式包含了該角色擁有的權限,每個權限的構造如3.2節所述;roles字段中包含了該角色繼承的其它角色,每個被繼承的角色表現形式為:{role:“<角色名>”,db:“<數據庫名>”}。角色繼承是MongoDB的重大特點,例如3.1節中定義超級用戶sa時用到的root角色就是由多個基本角色中繼承而來。

在系統自帶的角色中,包含同一類型行為的權限被放在了一起,例如read角色擁有一些只讀行為如find、listCollections、 listIndex等的權限,而userAdmin角色中包含了一些管理級的行為如createRole、createUser、changePassword等。行為跟角色之間是多對多關系,即一個角色可以有多個行為,而某個行為可以出現在不同的角色中。類似,用戶跟角色之間也是多對多關系,即一個用戶可以擁有多個角色,而某個角色可以屬于不同的用戶(比如有多名系統管理員角色)。

用戶的自定義角色通過createRole命令創建,并存放在admin數據庫的system.roles集合中。對于在admin數據庫中創建的角色,它可以擁有操作任意數據庫的權限,并且能夠繼承在任意數據庫中創建的其它角色;對于在普通數據庫中創建的角色,只能擁有操作本數據庫的權限,并且只能繼承在本數據庫中創建的其它角色。

3.4 MongoDB的RBAC模型安全隱患

盡管MongoDB的RBAC的模型具有較強的靈活性,但由于它的角色并沒有等級劃分,導致一些低端角色可以分配高端角色。在3.3節中提到的userAdmin角色無法對數據庫進行find、update等訪問行為,但它可以執行createRole、createUser等數據庫管理行為,從而能夠創建具有root角色的用戶來獲取數據庫中的具體內容。由于MongoDB的角色具有繼承的特性,因此一旦與該角色相關的賬戶信息被遺失,對數據庫的安全將造成極大的威脅。

解決這個問題的關鍵在于制訂角色的安全等級劃分機制,即低等級的角色無法創建或為用戶分配高等級的角色,保證角色中的權限不被濫用。

4 結束語

本文通過對比傳統的訪問控制技術,研究了MongoDB的RBAC模型。總體而言,MongoDB的這種訪問控制機制具有較高的靈活性和安全性,但由于角色沒有被劃分安全等級,一些低端角色能夠分配高端角色,從而獲取更高的訪問權限。因此,在MongoDB數據庫的使用過程中,必須確保一些關鍵角色的信息不被丟失,以免造成嚴重的安全事故。

[1]Plugge E,Hawkins T,Membrey P.The Definitive Guide to MongoDB:The NoSQL Database for Cloud and Desktop Computing[J].Springer Ebooks,2010.

[2]杜衛華.淺析基于MongoDB的云數據管理技術的研究與應用[J].網絡安全技術與應用,2014.

[3] Zahid A,Masood R,Shibli M A.Security of sharded NoSQL databases:A comparative analysis[C]// Information Assurance and Cyber Security.IEEE,2014.

[4]Sathyadevan S,Muraleedharan N,Rajan S P.Enhancement of Data Level Security in MongoDB[M]// Intelligent Distributed Computing.Springer International Publishing,2015.

[5] Hou B,Qian K,Li L,et al.MongoDB NoSQL Injection Analysis and Detection[C]// IEEE,International Conference on Cyber Security and Cloud Computing.IEEE,2016.

[6]師德清.淺析MongoDB數據庫在CRP系統中的安全認證機制[J].科協論壇,2011.

[7]宋志毅,馬兆豐,黃勤龍.基于保序加密的MongoDB數據加密技術研究與實現[C].中國通信學會學術年會,2014.

[8]Sandhu R.Rationale for the RBAC96 family of access control models[C]// ACM Workshop on Role-Based Access Control.ACM,1996.

[9]Park J,Sandhu R.The UCON ABC,usage control model[J].Acm Transactions on Information & System Security,2004.

猜你喜歡
數據庫用戶模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
3D打印中的模型分割與打包
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 色综合成人| 国产情侣一区| 亚洲Av综合日韩精品久久久| 国产亚洲精品自在线| 亚洲午夜福利精品无码| 久草视频福利在线观看| 中文国产成人精品久久| 中文精品久久久久国产网址 | 欧美午夜视频在线| 中文字幕天无码久久精品视频免费| 欧美色视频网站| 在线亚洲精品福利网址导航| 一区二区三区精品视频在线观看| 国产大全韩国亚洲一区二区三区| 伊人激情久久综合中文字幕| 国内精品久久人妻无码大片高| 日韩在线成年视频人网站观看| 国产成人精品一区二区不卡| 在线精品亚洲一区二区古装| 国产精品无码AⅤ在线观看播放| 亚洲欧美精品日韩欧美| 国产亚洲美日韩AV中文字幕无码成人| 亚洲国产综合自在线另类| 992tv国产人成在线观看| 乱系列中文字幕在线视频| 精品無碼一區在線觀看 | 欧美a在线视频| 日本午夜精品一本在线观看| 在线不卡免费视频| 亚洲欧美激情小说另类| 美女内射视频WWW网站午夜| 国产第二十一页| 在线日韩日本国产亚洲| 91精品网站| 国产精品露脸视频| 久久99热这里只有精品免费看| 国产99视频在线| 91精品久久久无码中文字幕vr| 日本精品αv中文字幕| 91色在线视频| 亚洲香蕉在线| 国产一级精品毛片基地| 四虎综合网| 亚洲男人的天堂在线观看| 国产麻豆aⅴ精品无码| 强奷白丝美女在线观看| 国内精品久久久久鸭| 日韩毛片基地| 国产特一级毛片| 国产第一页第二页| 蜜桃视频一区| 久久国产高清视频| 香蕉99国内自产自拍视频| 男人天堂亚洲天堂| 永久免费av网站可以直接看的 | 国产精品网址在线观看你懂的| 性色在线视频精品| 亚洲成A人V欧美综合| 岛国精品一区免费视频在线观看| 亚洲一级无毛片无码在线免费视频 | 中文字幕啪啪| 欧美一级专区免费大片| 热热久久狠狠偷偷色男同| 色香蕉影院| 亚洲欧洲日韩国产综合在线二区| 九色综合视频网| 夜夜爽免费视频| 波多野结衣二区| 国产在线拍偷自揄拍精品| 国产精品私拍在线爆乳| 99久久亚洲精品影院| 国产精品对白刺激| 亚洲精品国产日韩无码AV永久免费网| 久久精品91麻豆| 99在线国产| 免费看a级毛片| 国产亚洲欧美在线专区| 无码国产偷倩在线播放老年人| 欧美激情综合| 国产成人一区在线播放| 国产成人无码Av在线播放无广告| 无遮挡一级毛片呦女视频|