大数据开源安全

在安全性方面从未有(恕我直言)已经足够了开源解决方案和布鲁斯已经撰写了有关这几个 时间在过去 ,而且也没有必要再次改写参数。

现在,随着市场上“ 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)数据可用性以及分发系统的安全性。

参考: All Things Hadoop博客上的JCG合作伙伴 Joe Stein提供的大数据开源安全性 。

翻译自: https://www.javacodegeeks.com/2013/07/big-data-open-source-security.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在一个页面添加多个不同的kindeditor编辑器

kindeditor官方下载地址:http://kindeditor.net/down.php (入门必看)kindeditor官方文档:http://kindeditor.net/doc.php (入门必看)Kindeditor编辑器初始化参数文档:http://kindeditor.net/doc…

JSONArray.fromObject不执行且不报错问题的解决

今天在写javaweb工程的时候需要向前台传json格式的数据,用到了json-lib-2.4-jdk15.jar等一系列包,然而却出现如下状况: CityBean是一个javaBean,我们看到,控制台只打印出了list的内容,而下面的两个却没能打…

爬虫-scrapy

阅读目录 一 介绍二 安装三 命令行工具四 项目结构以及爬虫应用简介 五 Spiders六 Selectors七 Items八 Item Pipeline九 Dowloader Middeware十 Spider Middleware十一 settings.py十二 爬取亚马逊商品信息一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取…

swagge php token,swagger在thinkphp6的使用方式

/*** OA\Get(path"/api/article",* tags{"文章管理"},* summary"文章列表",* OA\Parameter(name"token", in"header", description"token", OA\Schema(type"string", default"123456")),* OA…

Java垃圾回收(4)

G1:垃圾优先 G1收集器是热点JVM中要实现的最新收集器。 自Java 7 Update 4以来,它一直是受支持的收集器。OracleGC团队也公开表示,他们对低暂停GC的希望是完全实现的G1。 这篇文章来自我之前的垃圾收集博客文章: 热点GC概述 。 …

Html5 冒泡排序演示

本文通过一个简单的小例子,简述冒泡算法在B/S中的简单使用,仅供学习分享使用,如有不足之处,还请指正。 概述 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访…

Codeforces 765F. Souvenirs

Description 给出长度为 \(n\) 的序列,有 \(Q\) 组询问,问 \(|a_i-a_j|\),\(l<i,j<r\)的最小值是多少?题面 Solution 无删莫队. 把询问按照左端点分块,同一块内按右端点递增排序,类似于莫队 问题在于回溯: 直接删除的话无法更新最小值,但是可以一边插入一边删除 这样我们…

学习六 - Python 函数

Python 学习 - 函数 1.创建和调用函数 创建函数 def function_name(): #无参数函数xxxdef function_name(par1, par2, ...): #带参数函数xxx记住三个关键的东西&#xff1a;def, (), : 调用 function_name() #无参数函数调用function_name(arg1, arg2, ...) #带参数函数…

一种编写测试的好方法

测试。 最近我一直在考虑进行测试。 作为我对各种项目所做的代码审查的一部分&#xff0c;我已经看到了数千行未经测试的代码。 这不仅是测试覆盖率统计数据指出这一点的情况&#xff0c;还更多是该项目中根本没有任何测试的情况 。 我一直听到这种悲惨状况的两个原因&#xff…

rem、px、em之间的区别以及网页响应式设计写法

个人收藏用&#xff0c;转载自&#xff1a;http://www.w3cplus.com/css3/define-font-size-with-css3-rem 在Web中使用什么单位来定义页面的字体大小&#xff0c;至今天为止都还在激烈的争论着&#xff0c;有人说PX做为单位好&#xff0c;有人说EM优点多&#xff0c;还有人在说…

游戏服务器架构图

1&#xff1a;ARPG类型游戏 2:MMORPG 3:MOBA 4:卡牌类 5&#xff1a;棋盘类 转载于:https://www.cnblogs.com/like-minded/p/8297718.html

php 解析http,用PHP手动解析原始HTTP数据

好的&#xff0c;所以Dave和Everts的建议我决定手动解析原始请求数据。搜索约一天后&#xff0c;我没有找到任何其他方式来做到这一点。我从这个thread获得了一些帮助。我没有任何运气篡改原始数据&#xff0c;就像在引用的线程中一样&#xff0c;因为这将破坏正在上传的文件。…

长为N的数组,元素范围是0-N-1,其中只有一个数是重复的,找出这个重复元素...

思路&#xff1a;如果限制空间复杂度为O&#xff08;1&#xff09;&#xff0c;我们就无法采用哈希表的方法去求解。题目中数组中所以数字都在范围[0&#xff0c; N-1]&#xff0c;因此哈希表的大小为N即可。因此我们实际要做的就是对N个范围为0到N-1的数进行哈希&#xff0c;而…

测试Spring的“会话”范围

在基于Spring的Web应用程序中&#xff0c;bean的作用域可以是用户“会话”。 从本质上讲&#xff0c;这意味着对会话范围的Bean的状态更改仅在用户会话范围内可见。 此项的目的是简单地突出显示Spring Test MVC提供的一种方法&#xff0c;以测试将会话范围的bean作为依赖项的组…

Sass学习之路(3)——Sass编译

Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤&#xff0c;因为".sass"和".scss"文件并不能直接使用<link>标签引用&#xff0c;最终其实还是要将他们转换成CSS文件来在项目中使用。 所以要让web页面真正使用到Sass缩写的东西&#xff0…

爬虫练习一(爬取笑话集)

爬取笑话集网页 目标网址为&#xff1a;http://www.jokeji.cn/list.html 感觉这个网站挺简单&#xff0c;不用登陆&#xff0c;没有复杂的功能&#xff0c;好爬~ 可以现在浏览器中访问这个链接看一下效果&#xff0c;你会发现这个页面是个目录&#xff0c;有很多笑话页面的链接…

Huffman树学习

一篇很好的博客 转载于:https://www.cnblogs.com/cjoierljl/p/9319902.html

JAVA第六章第6题,java第六章例题源代码

《JavaWeb 程序设计》 练习题参考答案 第一章:Servlet 基础 1、下列选项中属于...由于 PHP 开放源 代码,并且是免费的,所以非常流行,是当今 Internet 上最为火热......JAVA 编程实例大全及详解答案(50 例) 【程序 1】题目:古典问题:有一对...9、Java 中一个字符占用两个 字节,所…

GlassFish 4带来了Java EE 7

真是惊喜 除了推出新的iOS 7外&#xff0c;苹果在wwdc上什么也没提供。 碰巧的是&#xff0c;在他们的主题演讲后不久&#xff0c;又有7个人正式露面。 GlassFish 4.0已于昨天晚上发布&#xff08;显然是不需要的&#xff09;。 新的Java EE 7参考实现自动成为当今第一个可用的…

bootstrap的栅格布局与两列布局结合使用

在工作中我们常常需要实现响应式布局&#xff0c;这个可以使用bootstrap的栅格系统来实现&#xff0c;我们在列里也需要实现一部分的响应式。比如下面的效果图&#xff0c;需要实现左边图标固定&#xff0c;右边的自适应 &#xff1a; 左边固定宽度&#xff0c;右边自适应&…