大数据开源安全

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

现在,随着市场上“ 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

QuickEncrypt,数据安全小工具,采用托盘图标、悬浮窗、鼠标拖拽、右键菜单的简单操作模式,提供文件、文本的加解密(RC4+AES)、Hash(MD5+SHA1)、安全擦除等功能。独有的“智能压缩”加密模式。 1.功能介绍 对鼠标拖入的文本进行加解密 对剪贴板中的文本进行加解密 对鼠标拖入的文件进行加解密 对鼠标拖入的文件进行擦除 对鼠标拖入的文本进行Hash计算 对剪贴板中的文本进行Hash计算 对鼠标拖入的文件进行Hash计算 针对文本和文件加解密的智能数据压缩技术 支持超过4GB的大文件 2.安全机制 2.1 文件擦除策略 a.修改文件名为随机串; b.以32字节的块向文件写入全0; c.刷新数据,关闭文件; d.修改文件名为随机串; e.以32字节的块向文件写入全1; f.刷新数据,关闭文件; g.截断文件大小为0; h.删除文件。 经测试常用数据恢复软件无法成功恢复原有数据。 2.2 Hash算法 使用OpenSSL 0.98提供的MD5(128位)和SHA1(160位)算法。 2.3 加解密密钥生成 将用户输入的密码明文转换成utf-8字节数组(不包含0结束符),计算MD5和SHA1,将MD5结果用作AES 128位密钥,将SHA1结果用作RC4密钥。 2.4 文本加密策略 a.将明文数据转换成utf-8字节数组(包含0结束符); b.对明文字节数组计算CRC32校验码,用于解密时校验,并将CRC32值放在明文首字节之前; c.尝试压缩步骤b的结果(zlib level9),若获得较小的压缩结果则输出压缩后的编码数组,否则放弃压缩,直接输出步骤b的结果; d.对步骤c的结果进行RC4流加密(OpenSSL 0.98); e.对步骤d的结果进行AES_CFB_128分组加密(OpenSSL 0.98); f.对步骤e的结果进行Base64编码(OpenSSL 0.98); g.将标记"QE:|"附加在步骤f的结果之前,输出结果。 2.5 文件加密策略 a.判断输入文件的扩展名是否是压缩格式,对常见压缩格式和流媒体编码文件不启用数据压缩功能; b.以1MB大小分块,读入明文文件数据; c.对分块的明文数据计算MD5,附加在待加密数据之前,用于解密时校验; d.尝试压缩1MB大小的分块,若获得较小的压缩结果则输出压缩后的编码数据,否则直接输出原文; e.对步骤d的结果进行RC4流加密(OpenSSL 0.98); f.对步骤e的结果进行AES_CFB_128分组加密(OpenSSL 0.98); g.将分块数据依次写入输出文件,输出文件的文件名是在原文件名后加".enc"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值