大数据开源安全
在安全性方面從未有(恕我直言)已經足夠了開源解決方案和布魯斯已經撰寫了有關這幾個 時間在過去 ,而且也沒有必要再次改寫參數。
現在,隨著市場上“ NoSQL”和“大數據”開源趨勢的發展,安全終于有了交集……如果我愿意的話,可以找到解決困擾我們社會的新解決方案的聯合會終于開始興起(并且已經在許多領域情況)。 由于大數據和開源,現在可以使用新的安全解決方案來解決欺詐,惡意軟件,網絡釣魚,垃圾郵件等所有問題。
最重要的是Apache Accumulo ,它是一個運行在Apache Hadoop之上的大數據,開源和安全NoSQL數據庫。 它最初是由美國國家安全局開發的,并于2011年作為開放源代碼提交給Apache基金會,已經進行了3年的開發和生產運營。
Accumulo擴展了BigTable數據模型,以實現稱為單元級安全性的安全性機制。 每個鍵值對都有自己的安全標簽,存儲在鍵的列可見性元素下,該標簽用于確定給定用戶是否滿足讀取該值的安全要求。 這使各種安全級別的數據可以存儲在同一行中,并且具有不同訪問權限的用戶可以查詢同一張表,同時保留數據的機密性。
安全標簽表達
應用突變后,用戶可以為每個值指定一個安全標簽。 這是通過將ColumnVisibility對象傳遞給put()方法來創建Mutation時完成的:
Text rowID = new Text("row1"); Text colFam = new Text("myColFam"); Text colQual = new Text("myColQual"); ColumnVisibility colVis = new ColumnVisibility("public"); long timestamp = System.currentTimeMillis();Value value = new Value("myValue");Mutation mutation = new Mutation(rowID); mutation.put(colFam, colQual, colVis, timestamp, value);安全標簽表達語法
安全標簽由一組用戶定義的令牌組成,這些標簽是讀取與標簽關聯的值所必需的。 可以使用支持標記的邏輯AND和OR組合以及將標記組嵌套在一起的語法來指定所需的標記集。
例如,假設在我們的組織內,我們希望使用根據用戶角色定義的安全性標簽來標記我們的數據值。 我們可能有以下令牌:
admin audit system These can be specified alone or combined using logical operators:// Users must have admin privileges: admin// Users must have admin and audit privileges admin&audit// Users with either admin or audit privileges admin|audit// Users must have audit and one or both of admin or system (admin|system)&audit當兩者 使用&和運算符時,必須使用括號指定運算符的優先級。
授權
當客戶端嘗試從Accumulo讀取數據時,在創建Scanner或BatchScanner時,將根據客戶端代碼傳遞的一組授權檢查存在的所有安全標簽。 如果確定授權不足以滿足安全標簽,那么將從發送回客戶端的結果集中抑制該值。
授權被指定為用戶擁有的令牌的逗號分隔列表:
// user possess both admin and system level access Authorization auths = new Authorization("admin","system");Scanner s = connector.createScanner("table", auths);用戶授權
每個累積用戶都有一組關聯的安全標簽。 要在shell中操作這些命令,請使用setuaths和getauths命令。 這些也可以使用java安全操作API進行修改。
用戶創建掃描儀時,會傳遞一組授權。 如果傳遞給掃描儀的授權不是用戶授權的子集,則將引發異常。
為了防止用戶寫入他們無法讀取的數據,請將可見性約束添加到表中。 在createtable shell命令中使用-evc選項可以啟用此約束。 對于現有表,請使用以下shell命令啟用可見性約束。 確保約束編號不與任何現有約束沖突。
config -t table -s table.constraint.1=org.apache.accumulo.core.security.VisibilityConstraint具有alter table權限的任何用戶都可以添加或刪除此約束。 如果存在此問題,則此約束不適用于批量導入的數據,然后禁用批量導入權限。
安全授權處理
對于為許多用戶提供服務的應用程序,預計不會為每個應用程序用戶創建一個累積用戶。 在這種情況下,必須創建具有任何應用程序用戶所需的所有授權的累積用戶。 為了提供查詢服務,應用程序應創建具有應用程序用戶授權的掃描程序。 這些授權可以從受信任的第三方獲得。
通常,生產系統將與公鑰基礎結構(PKI)集成在一起,并在查詢層中指定客戶端代碼,以與PKI服務器進行協商,以便對用戶進行身份驗證并檢索其授權令牌(憑證)。 這要求用戶僅指定對系統進行身份驗證所需的信息。 一旦建立了用戶身份,客戶端代碼即可訪問其憑據,并將其傳遞到用戶無法訪問的Accumulo中。
查詢服務層
由于與Accumulo進行交互的主要方法是通過Java API,因此生產環境通常要求實現查詢層。 可以使用Web服務在諸如Apache Tomcat之類的容器中完成此操作,但這不是必需的。 查詢服務層提供了一種機制,該機制提供了一個平臺,可以在該平臺上構建面向用戶的應用程序。 這使應用程序設計人員可以隔離潛在的復雜查詢邏輯,并可以方便地執行基本的安全功能。
幾種生產環境選擇在此層實施身份驗證,其中用戶標識符用于檢索其訪問憑據,然后將其緩存在查詢層中,并通過授權機制提供給Accumulo。
通常,查詢服務層位于Accumulo和用戶工作站之間。
Apache Accumulo 1.5版剛剛隨文檔一起發布下載
新的軟件即服務解決方案將與新興的開源解決方案一起涌入市場。 無論我們是試圖防止醫療保健欺詐,還是保護個人免遭盜竊,還是公司不受入侵的侵害,都不會損害(C)機密性,(I)完整性和(A)數據可用性以及分發系統的安全性。
翻譯自: https://www.javacodegeeks.com/2013/07/big-data-open-source-security.html
總結
- 上一篇: 动态初音桌面壁纸电脑(初音电脑壁纸动态壁
- 下一篇: 资金流是什么意思 资金流介绍