随着物联网和云计算技术的兴起,人类社会已经到了机遇和风险并重的时代。无论如何 是人们日常使用的终端应用程序,还是各种传感器检测数据不生成数据,据统计人 类每年产生250亿字节的数据,这超过了自从人类开始使用计算机后,所产生的数据之和。
面对这样的挑战,这样的机概念的提出和新技术的出现,如果好好利用新的的技术,将会创造巨大价值,但如果不使用,当或被犯罪分子乱用,将会造成巨大灾难,所以大数据安全问题也是我们能否在这个时代产生和保护价值的众矢之的。
与传统数据相比,大数据有4一个非常明显和特殊的特点,体积特别大,处理速度快,数量多 根据各种类型,低密度度值但价值特别大。因为它的独特性。传统的数据安全保护技术不能直接对应大数据环境,这对大数据安全研究提出了巨大的挑战。
根据大数据安全标准皮书中提岀的大数据安全标准化体大数据应用安全可用从数据和技术的角度来看大数据架数据架构划分:大数据生命周期和大数据平台
大数据生命周期包括收集、传输、发布、存储、挖掘、使用和销毁的所有方面。通过大数据平台存储 通过平台分析从探针和应用程序中收集的数据 处理挖掘数据的内在价值,然后共享数据的分析结果,使其价值化,最后删除数据。因此,大数据的生命周期是一个将巨大的不相关数据转化为巨大相关价值的过程。
大数据平台是数据的底层架构和基本支持,为存储、处理和分析数据提供技术支持。
大数据处理一般通过收集->预处理和导入-> 统计与分析->挖掘->共亨->收集,这个循环过程 来一次又一第二次进行。它还包括删除不再需要的东西 综合大数据应用的数据处理需要数据 收集、传输、发布、储存、挖掘、使用和销毁7个环节, 每个环节都会遇到不同的风险,针对每一步 实施相应的安全技术,使数据生命周期成完整的数据生命周期安全。
1) 安全采集和传输数据
在数据采集过程中,可能存在数据损坏、数据丢失、数据泄露、数据窃取等安全威胁,因此需要使用 确保身份认证、数据加密、完整性保护等安全机制 收集过程的安全性。
一般来说,数据传输安全要求如下:
①身份认证:数据接收者需要确认数据发送给自己的数据 是他想和他沟通的一方,防止别人冒充沟通伙伴 通信。
②机密性:数据到达,只到预期端,防止第三方接触到通信数据的明确内容。
③完整性:本地缓 存储丢失,信息在传输过程中不受未经授权的损坏 和修改。
④真实性:数据源真实可靠。
为了避免传输过程中的各种风险,如数据伪造,可以加密传输内容,然后通过安全传输协会 传来传输。
2)数据加密传输
保密性是数据传输在网络安全中非常重要的组成部分。目前,确保数据传输安全的技术方法包括虚拟专用网络技术(VPN)、HTTPS安全传输协议等技术。
① 虚拟专用网络将隧道技术、协议包装技术、密码技术和配置管理技术相结合,利用安全渠道技术在源端和目的端建立安全数据渠道,将待传输的原始数据加密并包装在另一个协议的数据报纸中,然后像普通数据报纸一样在网络中传输。经过这样的处理,只有源端和目的端用户才能解释和处理通道中的嵌套信息,而对其他用户来说只是毫无意义的信息。因此,采用VPN该技术可以在数据节点和管理节点之间布置VPN满足安全传输的需要。
多年来IPSec协议一直被认为是建立的VPN最好的选择,从理论上来讲IPSec该协议提供了网络层以上所有协议的安全性。然而,因为IPSec协议的复杂性使其难以满足构建要求VPN所需的灵活性和可扩展性属性。SSL VPN凭借其简单、灵活、安全的特点,得到了迅速的发展,尤其在大数据环境下的远程接入访问应用方面,SSL VPN具有很明显的优势。
② SSL VPN采用标准的安全套接层协议,基于X.509证书,支持多种加密算法。可以提供基于应用层的访问控制,具有数据加密、完整性检测和认证机制,而且客户端无需特定软件的安装,更加容易配置和管理,从而降低用户的总成本并增加远程用户的工作效率。
SSL协议是Nctscape公司1995年推出的一种安全通信协议。SSL协议建立在可靠的TCP传输协议之上,并且与上层协议无关,各种应用层协议(如:HTTP/FTP/TELNET等)能通过SSL协议进行透明传输。
SSL协议提供的安全连接具有以下3个基本特点:
- 连接是保密的:对于每个连接都有一个唯一的会话密钥,采用对称密码体质(如:DES、RC4等)来加密数据。
- 连接是可靠的:消息的传输采用MAC算法(如:MD5、SHA等)进行完整性校验。
- 对端实体的鉴别采用非对称秘密体制(如:RSA、DSS等)进行认证。
SSL VPN系统的组成按功能可分为SSL VPN服务器和SSL VPN客户端。SSL VPN服务器是公共网络访问私有局域网的桥梁,它保护了局域网内的拓扑结构信息。SSL VPN客户端是运行在远程计算机上的程序,它为远程计算机通过公共网络访问私有局域网提供一个安全通道,使得远程计算机可以安全地访问私有局域网内的资源。SSL VPN服务器的作用相当于一个网关,它拥有两种IP地址:一种IP地址的网段和私有局域网在同一个网段,并且相应的网卡直接连在局域网上;另一种IP地址是合法申请的互联网地址,并且相应的网卡连接到公共网络上。
在SSL VPN客户端,需要针对其他应用实现SSL VPN客户端程序,这种程序需要在远程计算机安装和配置。SSL VPN客户端程序的角色相当于一个代理客户端,当应用程序需要访问局域网内的资源时,它就向SSL VPN客户端程序发出请求,SSL VPN客户端再与SSL VPN服务器建立安全通道,然后转发应用程序并在局域网内进行通信。
3)后端采集
后端采集数据(如后端日志的集合)说到底就是将数据采集的传输和加密任务转移 给系统本身,并且系统本身的后端数据被认为是可以值得信任的。后端数据通过内网(Intranet)收集 到分析系统中。同时,由于内网安全性高的原因,传输基本上不会丢失数据,因此传输的数据可以有非常高的真实性来反应系统中用户的行为。
4)数据发布安全保护
数据源具有多样性,数据发布具有的动态性,同一用户的数据可能有众多来源,数据参差不齐,在发布数据之前,数据需要匿名化。使用户数据更加难 以分辨,同时保证数据的价值损失最小是当前数据匿名化处理的核心问题。所以在保护中关键是要 以数据可用为前提,更要可靠、高效的去除可能泄漏信息的数据。由此为前提诞生了数据重发布匿名技术、基于角色构成的匿名技术等。
k 匿名规则,l 多样性模型和,t 接近模型等可以解决数据分发中的隐私泄漏问题。
为了更高的安全性,各种特点鲜明的匿名模型被提出。此外还有基于时间序列的多样模式的(k,P)匿名模型、 基于嫡分类的,一匿名隐私保护算法等。
5)数据存储安全技术
大数据储存的安全根本目标是要确保存储数据的安全性。可以通过固件来提高安全性,或者也可 以通过软件设计来改进安全性,包括传统的存储加密、受隐私保护的数据脱敏和数据的完整性校验。
① 隐私保护
一般来说,从隐私所有者的角度而言,隐私可以分为两类:
- 个人隐私:任何可以确认特定个人或可确认的个人相关、但个人不愿被暴露的信息,都叫个人隐私,如:身份证号、就诊记录等。
- 共同隐私:共同隐私不仅包含个人的隐私,还包含所有个人共同表现出但不愿被暴露的信息,如:公司员工的平均薪资、薪资分布等信息。
隐私保护技术主要保护以下两个方面的内容:
- 如何保证数据应用过程中不泄露隐私;
- 如何更有利于数据的应用;
隐私保护技术可以分为以下3类:
1、基于数据交换的隐私保护技术
所谓数据变换,简单的讲就是对敏感属性进行转换,使原始数据部分失真,但是同时保持某些数据或数据属性不变的保护方法,数据失真技术通过干扰原始数据来实现隐私保护。
2、基于数据加密的隐私保护技术
采用对称或非对称加密技术在数据挖掘过程中隐藏敏感数据,多用于分布式应用环境中,如分布式数据挖掘、分布式安全查询、几何计算、科学计算等。分布式应用一般采用两种模式存储数据:垂直划分和水平划分的数据模式。垂直划分数据是指分布式环境中每个站点只存储部分属性的数据,所有站点存储的数据不重复。水平划分数据是将数据记录存储到分布式环境中的多个站点,所有站点存储的数据不重复。
3、基于匿名化的隐私保护技术
匿名化是指根据具体情况有条件地发布数据。如不发布数据的某些域值、数据泛化等。限制发布即有选择的发布原始数据、不发布或者发布精度较低的敏感数据,以实现隐私保护。数据匿名化一般采用两种基本操作:
- 抑制:抑制某数据项,即不发布该数据项。
- 泛化:泛化是对数据进行概况、抽象的描述。譬如,对整数5的一种泛化形式是[3,6],W为5在区间[3,6]内。
② 数据加密技术
使用SSL VPN可以保证数据传输的安全,但存储系统要先解密数据,然后进行存储,当数据以明文的方式存储在系统中时,面对未被授权入侵者的破坏、修改和重放攻击显得很脆弱,对重要数据的存储加密是必须采取的技术手段。
传统的DES、AES等对称加密手段对大数据来说,密钥管理太复杂;对RSA 等的数据非对称加密手段来说其算法计算开销太大,分布式存储的大数据的共享使用容易受限,大数据的本身的特性优势会大打折扣。为此各大学者正在研究各种加密算法。新晋的加密技术主要有同态加密、可搜索加密(对称可搜索加密技术和非对称 可搜索加密技术)、代理重加密等。
大数据环境下,数据可以分为两类:静态数据和动态数据。
静态数据是指:文档、报表、资料等不参与计算的数据;
动态数据是指需要检索或参与计算的数据。
静态数据加密机制
1、数据加密算法
数据加密算法分为两类,对称加密和非对称加密算法。实际工程中常用的解决办法是对称和非对称加密算法结合起来,利用非对称密钥体系进行密钥分配,利用对称密钥加密算法进行数据的加密,尤其是在大数据环境下,加密大量的数据时,这种结合尤其重要。
2、加密范围
根据数据敏感性,对数据进行有选择的加密,仅对敏感数据进行按需加密存储,而免除对不敏感数据的加密,可以减小加密存储对系统性能造成的损失,对维持系统的高性能有着积极的意义。
3、密钥管理方案
密钥管理方案主要包括:密钥粒度的选择、密钥管理体系以及密钥分发机制。密钥是数据加密不可或缺的部分,密钥数据的多少与密钥的粒度直接相关。密钥粒度较大时,方便用户管理,但不适合于细粒度的访问控制。密钥粒度小时,可实现细粒度的控制,安全性更高,但产生的密钥数量大难于管理。
适合大数据存储的密钥管理办法主要是分层密钥管理,即"金字塔"式密钥管理体系。这种密钥管理体系就是将密钥以金字塔的方式存放,上层密钥用来加/解密下层密钥,只需将顶层密钥分发给数据节点,其他层密钥均可直接存放于系统中。考虑到安全性,大数据存储系统需要采用中等或细粒度的密钥,因此密钥数量多,而采用分层密钥管理时,数据节点只需保管少数密钥就可对大量密钥加以管理,效率更高。
可以使用基于PKI体系的密钥分发方式对顶层密钥进行分发,用每个数据节点的公钥加密对称密钥,发送给相应的数据节点,数据节点接收到密文的密钥后,使用私钥解密获得密钥明文。
动态数据加密机制
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理的得到一个输出,将这一输出进行解密,其结果与用统一方法处理未加密的原始数据得到的输出结果是一样的。记录加密操作为E,明文为m,加密得e,即e=E(m),m=E'(e)。已知针对明文有操作f,针对E可以构造F,使得F(e)=E(f(m)),这样E就是一个针对f的同态加密算法。
同态加密技术是密码学领域的一个重要课题,目前尚没有真正可用于实际的全同态加密算法,同态技术使得在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。其意义在于,真正从根本上解决将大数据机器操作的保密问题。
数据同态加密在不解密数据的时候就可以对数据进行各种操作,例如检索、比较等。这可以将数据 及其操作委托给第三方时暴露出来的机密问题等解 决。因此,同态加密可以广泛运用在各种云计算中。
可搜索加密技术可以用来解决如何对存储在云端的密文进行有效检索和査询的问题。该技术主要是数 据拥有者先后将加密数据和可搜索索引上传至云, 然后数据使用者便可以向云端提出检索请求,最后 由云端安全地返回搜索结果。其中对称可搜索加密 技术与非对称可搜索加密技术主要区别在于对称加密密钥只有一个而非对称加密通过一对公钥和私钥来加密和解密,非对称加密也因此而得名。代理重加密允许第三方更改数据拥有者加密过的密文,数据接收方可以解密,但第三方接触不到原始数据。
③ 数据脱敏技术
数据脱敏,也被称之为数据漂白,是指大数据中的某些敏感内容的变形和隐藏,以及对敏感隐私内容的保护。如何脱敏或者说脱敏规则,以及需要脱敏的敏感数据和数据的使用环境这三方面是特别重要的。其中脱敏规则有可恢复类(脱敏后利用一定方法可恢复敏感数据),这种一般就是加解密算法。
还有一类是不可恢复类(脱敏 后部分敏感数据无法恢复)。敏感数据主要是私人信息,如姓名、身份证号码、银行帐号、电话号码等, 如果泄露可能会产生不利影响。使用环境主要是数据脱敏后的使用环境。数据脱敏中一般可以采用替换法,用虚构的不真实数据替换真实数据,比如建立大型的字典数据表,每一个真实值记录都产生一个 随机值,并与字典表内容进行替换。
④ 完 整 性 校 验
大 数 据 存 储 在 云 端 ,用 户 将 失 去 对 数 据 的 控 制 。 如 果 云 服 务 商 是 不 可 信 的 ,则 存 储 的 文 件 是 否 被 篡 改 、丢 弃 ,在 传 输 过 程 中 是 否 存 在 误 差 都 是 特 别 突 出 的 安 全 问 题 。 解 决 此 问 题 最 简 单 方 法 就 是 将 其 全 部 收 回 ,然 后 检 查 ,但 这 种 方 法 并 不 可 取 ,尤 其 是 当 云 中 数 据 量 非 常 大 时 ,就 需 要 大 量 的 网 络 带 宽 。 云 端 数 据 的 完 整 性 校 验 主 要 由 第 三 方 来 完 成 。 根 据 是 否 允 许 恢 复 原 始 数 据 ,完 整 性 校 验 协 议 主 要 分 为 两 类 :
只 验 证 数 据 完 整 性 的 PDP (provable data possession) 协 议 和 允 许 恢 复 数 据 的 POR (Proof of retrievability) 协 议 。
PDP 协 议 基 于 RSA 问 题 ,该 协 议 从 服 务 器 上 随 机 采 样 相 应 的 数 据 块 ,继 而 生 成 持 有 数 据 的 概 率 证 据 ,客 户 端 维 持 着 一 定 的 元 数 据 ,并 使 用 他 们 对 证 据 进 行 验 证 ;POR 协 议 利 用 纠 错 码 技 术 来 保 证 数 据 的 完 整 性 和 消 息 认 证 机 制 来 保 证 远 程 数 据 的 可 恢 复 性 ,先 南 纠 错 码 编 码 原 数 据 并 产 生 标 签 .然 后 将 数 据 和 标 签 存 储 在 服 务 器 上 ,且 可 使 用 纠 错 解 码 来 恢 复 原 始 数 据 。
6) 数 据 挖 掘 安 全 技 术
数 据 挖 掘 技 术 可 能 通 过 关 联 分 析 来 披 露 个 人 敏 感 信 息 ,为 解 决 这 个 问 题 ,数 据 扰 动 技 术 和 隐 私 保 护 关 联 规 则 挖 掘 方 法 等 安 全 保 护 技 术 相 应 产 生 。
数 据 扰 动 技 术 的 核 心 思 想 是 :对 数 据 进 行 变 换 , 以便 隐 藏 敏 感 信 息 ,使 其 仅 仅 能 呈 现 出 数 据 的 统 计 学 属 性 。Oliveira等 提 出 了 使 用 平 移 、缩 放 等 更 加 复 杂 的 数 据 变 换 方 式 。 张 鹏 等 提 出 隐 私 保 护 关 联 规 则 挖 掘 方 法 ,其 核 心 思 想 是 将 数 据 干 扰 技 术 与 查 询 限 制 技 术 相 结 合 ,由 此 来 保 护 数 据 之 间 的 关 联 规 则 。
7)数 据 使 用 安 全
虚 拟 化 技 术 的 负 面 影 响 之 一 是 削 弱 数 据 之 间 的 物 理 隔 离 ,导 致 数 据 之 间 的 界 限 变 得 模 糊 。 每 个 用 户 都 有 可 能 成 为 攻 击 节 点 ,对 数 据 的 安 全 性 构 成 巨 大 威 胁 。 基 于 云 计 算 平 台 的 软 件 系 统 大 多 使 用 多 租 户 架 构 ,其 中 所 有 用 户 的 数 据 共 享 软 件 系 统 实 例 。 虽 然 云 计 算 服 务 变 得 越 来 越 专 业 化 ,但 由 于 服 务 的 多 层 转 包 和 过 度 忽 视 监 控 。将 出 现 数 据 安 全 问 题 。 必 须 开 发 面 向 安 全 的 数 据 隔 离 机 制 ,以 确 保 用 户 之 间 的 数 据 不 可 见 。 目 前 ,更 成 熟 的 数 据 隔 离 技 术 是 共 享 表 架 构 ,独 立 的 数 据 库 架 构 和 独 立 的 表 架 构 。
① 共 享 表 架 构 (shared schema multi— tenancy)
此 系 统 架 构 通 过 某 些 特 定 字 段 指 示 数 据 的 从 属 关 系 ,并 且 所 有 软 件 系 统 共 享 相 同 的 数 据 实 例 和 数 据 库 表 。 它 的 优 点 是 充 分 利 用 数 据 实 例 的 存 储 容 量 .可 大 大 降 低 硬 件 成 本 ;缺 点 是 它 极 大 地 增 加 了业 务 逻 辑 的 复 杂 性 也 此 相 应 地 增 加 了 恢 复 备 份 的 成 本 。
② 分 离 数 据 库 架 构 (separated database)
此系 统 架 构 与 共 享 表 架 构 恰 恰 相 反 。 该 架 构 下 每 个 软 件 系 统 拥 有 自 己 单 独 的 数 据 库 .能 够 高 效 实 现 数 据 隔 离 和 恢 复 备 份 ,但 其 硬 件 成 本 也 不 低 。
③ 分 享 数 据 库 分 离 架 构 ( shared database separated Schema)
该 架 构 是 一 种 折 中 方 案 ,即 每 个 客 户 都 拥 有自己 的 一 系 列 数 据 库 表 ,软 件 系 统 只 共 享 相 同 的 数 据 实 例 。 实 现 数 据 隔 离 和 容 灾 备 份 与 共 享 表 架 构 相 比要 容 易 一 些 ,与 分 离 数 据 库 架 构 相 比 硬 件 成 本 要 低 一 些 。 此 体 系 架 构 是 平 衡 了 以 上 两 种 架 构 的 方 案 ,其 中 每 个 客 户 都 有 自 己 的 一 组 数 据 库 表 ,并 且 软 件 系 统 只 共 享 相 同 的 数 据 实 例 。 实 现 数 据 隔 离 和 恢 复 备 份 比共 享 表 架 构 更 容 易 ,硬 件 成 本 比单 独 的 数 据 库 体 系 架 构 更 低 。
8)数 据 销 毁 安 全
数 据 在 分 析 使 用 后 一 应 该 将 其 中 没 有 利 用 价 值 的 数 据 和 已 经 利 用 过 的 数 据 进 行 删 除 销 毁 。 若 销 毁 过 程 出 现 问 题 .或 销 毁 的 不 彻 底 均 有 可 能 引 发 安 全 问 题 。 其 中 成 熟 的 相 关 安 全 技 术 有 重 复 数 据 删 除 、 数 据 可 信 删 除 等 。
① 重 复 数 据 删 除
存 储 在 云 端 数 据 许 多 是 重 复 且 冗 余 的 。 为 了 节 省 存 储 空 间 并 降 低 成 本 .重 复 数 据 删 除 技 术 应 用 而 生 。 在 云 环 境 中 .数 据 明 文 一 般 是 被 加 密 成 密 文 来 存 储 的 ,由 于 数 据 被 加 密 后 生 成 的 密 文 不 同 。 因 此 ,很 难 根 据 数 据 内 容 来 删 除 重 复 的 数 据 。 密 文 数 据 的 去 重 技 术 是 近 年 来 的 一 个 非 常 受 关 注 的 研 究 热 点 ,它 可 以 节 省 大 量 的 存 储 空 间 , 还 可 以 节 省 网 络 带 宽 的 开 销 ,随 着 大 数 据 时 代 的 来 临 其 应 用 价 值 越 来 越 高 ,范 围 越 来 越 广 。
其 中 收 敛 加 密 保 证 了 相 同 数 据 文 件 一 定 产 生 相 同 的 密 文 。即 使 数 据 由 不 同 用 户 共 享 也 是 如 此 ;Storer 等 在 此 基 础 上 提 出 了 重 复 密 文 数 据 删 除 技 术 ,该 技 术 可 使 用 传 统 重 复 数 据 删 除 技 术 来 删 除 冗 余 数 据 。李 等 提 出 的 支 持 数 据 块 级 去 重 的 密 钥 外 包 存 储 方 案 可 有 效 降 低 用 户 端 密 钥 存 储 开 销 。
② 数 据 可 信 删 除
大 数 据 存 储 在 云 端 时 ,由 于 对 数 据 的 控 制 权 转 移 到 云 服 务 方 ,当 用 户 发 出 删 除 指 令 后 ,可 能 会 被 云 服 务 恶 意 保 留 ,面 对 此 信 息 泄 露 的 风 险 ,传 统 的 保 护 手 段 是 在 数 据 传输 之 前 就 对 其 进 行 加 密 ,只 要 用 户 安 全 的 销 毁 密 钥 。就 可 以 保 护 数 据 秘 文 无 法 在 多 项 式 时 间 内 被 破 解 ,进 而 保 护 数 据 安 全 。 很 多存 储 系 统 通 过 覆 盖 的 机 制 来 删 除 数 据 ,但 这 种 方 法 以 物 理 存 储 介 质 的 性 质 为 前 提 ,但 凡 数 据 所 有 者 不 能 在 对 数 据 存 储 位 置 进 行 物 理 控 制 ,那 么 ,此 方 法 便 失 效 。 此 时 ,这 种 方 法 就 不 能 满 足 大 数 据 需 求 。
9)数据备份与恢复
数据存储系统应提供完备的数据备份和恢复机制来保障数据的可用性和完整性,一旦发生数据丢失或破坏,可以利用备份来恢复数据,从而保证在故障发生后数据不丢失。
下面是几种常见的备份与恢复机制:
1 异地备份
异地备份是保护数据最安全的方式。在发生火灾、地震等重大灾难的情况,在其他保护数据的手段都不起作用时,异地容灾的优势就体现出来了。困扰异地容灾的问题在于速度和成本,这要求拥有足够带宽的网络连接和优秀的数据复制管理软件。
2 RAID
RAID(独立磁盘冗余阵列)可以减少磁盘部件的损坏;RAID系统使用许多小容量磁盘驱动器来存储大量数据,并且使可靠性和冗余性得到增强;所有的RAID系统共同的特点是"热交换"能力,即用户可以取出一个存在缺陷的驱动器,并插入一个新的予以更换。对大多数类型的RAID来说,不必中断服务器或系统,就可以自动重建某个出现故障磁盘上的数据。
3 数据镜像
数据镜像就是保留两个或两个以上在线数据的拷贝。以两个镜像磁盘为例,所有写操作在两个独立的磁盘上同时进行;当两个磁盘都正常工作时,数据可以从任一磁盘读取;如果一个磁盘失效,则数据还可以从另外一个正常工作的磁盘读出。远程镜像根据采用的写协议不同可划分为两种方式,即同步镜像和异步镜像。本地社保遇到不可恢复的硬件损坏时,仍可以启动异地与此相同环境和内容的镜像设备,以保障服务不间断。
4 快照
快照可以是其所表示数据的一个副本,也可以是数据的一个复制品。快照可以迅速恢复遭破坏的数据。快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用时间点的状态。
数据量比较小的时候,备份和恢复数据比较简单,随着数据量达到PB级别,备份和恢复如此庞大的数据成为棘手的问题。目前Hadoop是应用最广泛的大数据软件架构,Hadoop分布式文件系统HDFS可以利用其自身的数据备份和恢复机制来实现数据可靠保护。
大数据环境下,数据的存储一般都使用HDFS自身的备份与恢复机制,但对于核心的数据,远程的容灾备份仍然是必须的。其他额外的数据备份和恢复策略需要根据实际需求来制定。
在 数 据 生 命 周 期 中 ,大 数 据 需 要 大 数 据 平 台 支 撑 ,以 支 持 其 数 据 的 传 输 ,存 储 和 数 据 分 析 算 法 的 功 能 。 由 于 采 用 分 布 式 和 虚 拟 化 架 构 ,用 户 与 许 多 不 同 的 数 据 节 点 同 时 通 信 ,使 得 更 多 数 据 在 网 络 上 传 输 , 传 统 的 “围 栏 ”保 护 在 大 规 模 分 散 和 高 度 移 动 的 数 据 洪 流 中 不 再 强 大 有 效 。 目 前 ,构 建 大 数 据 平 台 有 3 种 主 要 方 式 :
① 免 费 开 源 产 品 。 使 用 Hadoop、spark、 MongoDB 等 窗 口构 建 大 数 据 平 台 ;
② 开 源 产 品 的 二 次 封 装 。 围 内 大 数 据 供 应 商 基 于 开 源 软 件 的 二 次 开 发 ,或 者 通 过 与 外 国 大 数 据 供 应 商 的 合 作 开 发 ,以 形 成 新 产 品 ;
③ 国 外 产 品 和 服 务 。 购 买 围 外 大 数 据 供 应 商 Cloudera、亚 马 逊 、谷 歌 等 提 供 的 大 数 据 产 品 和 服 务 “ 。 以上 3 种 方 法 都 依 赖 于 国 外 技 术 。 在 分 布 式 数 据 中 ,很 难 验 证 异 构 平 台 的 安 全 性 和 一 致 性 。 与 传 统 的 集 中 式 数 据 安 全 模 型 不 同 ,存 储 的 数 据 流 在 集 群 内 部 ,并 且 可 能 存 在 单 个 数 据 的 多 个 副 本 。 南 于 它 们 在 多 个 节 点 之 间 移 动 以 确 保 冗 余 ,这 使 得 及 时 准 确 地 定 位 数 据 变 的 很 难 。 不 知 道 数 据 备 份 的 数 量 会 增 加 设 计 复 制 安 全 保 护 机 制 的 难 度 。 访 问 数 据 时 ,访 问 控 制 的 最 精 细 粒 度 通 常 是 schema 级 别 ,尽 管 在 大 量 数 据 环 境 中 可 以 使 用 安 全 标 记 和 其 他 高 级 属 性 ,但 这 些 在 没 计 应 用 程 序 和 数 据 存 储 时 就 需 要 考 虑 。
结 合 大 数 据 生 命 周 期 的 安 全 特 性 以 及 大 数 据 平 台 的 特 性 的 在 实 践 大 数 据 平 台 安 全 化 时 ,需 要 有 更 详 细 的 架 构 安 全 设 计 ,主 要 涉 及 的 安 全 保 护 相 关 技 术 有 身 份 认 证 、用 户 访 问 控 制 和 操 作 审 计 。
1) 身 份 认 证
身 份 认 证 是 确 认 访 问 者 身 份 的 过 程 ,也 是 数 据 访 问 控 制 的 基 础 。
身份认证技术分为:
- 基于秘密信息等身份认证技术
- 基于信物的身份认证技术
- 基于生物特征的身份认证技术
常见等认证机制有如下:
- Kerberos认证
- 基于公钥的认证机制(PKI)
- 基于动态口令的认证机制
-
基于生物识别技术等认证技术
-
Kerberos认证是基于对称密码机制的,运算效率高,因此对于只要求数据机密性,不需要完整性和不可否认性需求的场合,可使用Kerberos认证。
- 基于PKI的身份认证机制相对完善复杂,因此,对于既要求数据机密性,又要求完整性和不可否认性的场合,需要采用基于PKI体系的认证机制来进行用户身份认证。
- 随着身份管理技术的发展,融合生物识别技术的强用户认证和基于Web应用的单点登录技术被广泛的应用。基于用户的生物特征身份认证比传统输入用户名和密码的方式更安全。用户可以利用终端配备中的生物特征采集设备(如:摄像头、MIC、指纹扫描器等)输入自身具有唯一性的生物特征(如:人脸图像、掌纹图像、指纹和声纹等)进行用户登录。多因素认证则将生物认证与密码技术相结合,提供给用户更高安全性的用户登录服务。
其中动态口令机制是为了解决静态口令等不安全问题而提出的,基本思想是用动态口令代替静态口令,其基本原理是:在客户端登录过程中,基于用户等秘密通行短语(SPP,Secure Pass Phrase)加入不确定因素,SSP和不确定因素进行交换(如:使用md5消息摘要),所得的结果作为认证数据(即动态口令)提交给认证服务器。由于客户端每次认证数据都采用不同的不确定因素值,保证了客户端每次提交的认证数据都不相同,因此动态口令机制有效地提高了身份认证的安全性。
其 中 单 点 登 录 是 解 决 复 杂 的 云 计 算 环 境 中 统 一 身 份 认 证 和 管 理 的 一 种 非 常 有 效 的 方 案 ,Apache Knox Gateway 就 是 一 种 单 点 登 录 方 案 。其 中 分 布 式 账 户 链 接 技 术 、组 织 内 云 间 单 点 登 录 身 份 认 证 的 等 技 术 方 案 的 出 现 都 用 于 解 决 单 点 登 陆 的 问 题 。
目前 ,流 行 的 大 数 据 平 台 Hadoop 在 身 份 认 证 “方 面 主 要 有 3种 方 式 :
① 简 单 认 证 方 式 。
② 基 于 Kerberos 的 强 认 证 方 式 。
③ 基 于 LDAP 轻 量 目 录 访 问 协 议 的 弱 认 证 方 式 。
对 于 简 单 认 证 方 式 ,只 能 用 于 避 免 内部 人 员 的 误 操 作 ,无 法 提 供 其 他 更 加 多 方 面 的 身 份 认 证 服 务 ,保 证 其 安 全 性 很 难 。 它 在 早 期 被 广 泛 使 用 。 Kerberos认 证 方 式 是 H adoop 开 源 软 件 中 目前 唯 一 可 选 的 强 安 全 认 证 方 式 。 它 的 认 证 基 于 对 称 秘 钥 算 法 ,适 于 用 户 和 服 务 之 间 的 相 互 认 证 。 与 Kerberos一 起 ,还 有 代 理 令 牌 方 式 ,其 可 大 大 节 省 了 资 源 开 销 ,并 可 提 高 运 行 效 率 和 可 用 性 。 LDAP 轻 量 目 录 访 问 协 议 的 认 证 方 式 仅 对 部 分 组 件 适 用 ,由 此 其 应 用 范 围 较 窄 ,市 场 上 使 用 率 不 高 。 由 于 第 二 种 方 式 认 证 方 式 有 很 强 的 安 全 性 以 及 较 高 的 效 率 ,因 此 目前 Kerberos认 证 是 Hadoop平 台 最 主 流 的 认 证 方 式 。
2)用 户 访 问 控 制
大数据跨平台传输功能与用户访问控制密切相关 ,可以为大数据和其使用者设 定不同的且更为详细的权限等级和更加严格的控制访问权限 ,以此加强用户权限管理 。 大数据是由多个用户共享的资源 。 现有技术对大数据的访问控制要求主要是基于属性的访问控制 ,即使用用户属性,环境属性 ,资源属性等来构建访问权限和基于角色的访问控制技术,即为用户分配角色 。
访问控制是指主体根据某些控制策略或权限对客体或其资源进行的不同授权访问,限制对关键资源的访问,防止非法用户进入系统及合法用户对资源的非法使用。访问控制是进行数据安全保护的核心策略,为有效控制用户访问数据存储系统,保证数据资源的安全,可授予每个系统访问者不同的访问级别,并设置相应的策略保证合法用户获得数据的访问权。访问控制一般可以是自主或者非自主的。
最常见的访问控制模式有如下4种:
① 自主访问控制
自主访问控制是指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并在随后的任何时刻将这些权限回收。这种控制是自主的,也就是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限等某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。自主访问控制中,用户可以针对被保护对象制定自己的保护策略。
② 强制访问控制
强制访问控制是指计算机系统根据使用系统的机构事先确定的安全策略,对用户的访问权限进行强制性的控制。也就是说,系统独立于用户行为强制执行访问控制,用户不能改变他们的安全级别或对象的安全属性。强制访问控制进行了很强的等级划分,所以经常用于军事用途。强制访问控制在自主访问控制的基础上,增加了对网络资源的属性划分,规定不同属性下的访问权限。这种机制的优点是安全性比自主访问控制的安全性有了提高,缺点是灵活性要差一些。
③ 基 于 属 性 加 密 的 访 问 控 制
基 于 属 性 加 密 的 访 问 控 制 使 用 了 数 据 加 密 技 术 的 密 义 机 制 。 一 般 分 为 两 种 :密 钥 策 略 的 属 性 加 密 和 密 义 策 略 的 属 性 加 密 。 密 钥 策 略 的 属 性 加 密 主 要 用 于 访 问 静 态 数 据 ,密 文 策 略 的 属 性 加 密 主 要 川 于 访 问 动 态 数 据 。 前 者 的 密 文 与 属 性 策 略 相 关 ,只 有 用 户 提 供 的 属 性 集 可 以 到 达 密 钥 的 访 问 结 构 时 才 能 解 密 。 后 者 的 密 钥 是 用 户 的 属 性 集 合 。当 用 户 的 属 性 与 秘 文 访 问 结 构 相 配 时 就 能 解 密 该 段 密 文 。
④ 基 于 角 色 的 访 问 控 制 。
基于角色的访问控制的基本思想是建立一个独立于用户集与权限集的角色集合,每个角色对应一组相应的权限。在分配了适当的角色后 ,用户将具有对该角色的完全访问权限 。随着安全要求的提高,各种数据安全存储方案被提出,如将角色的访问控制与加密技术相结合。该方案下只有用户角色才能解密。在云环境下的基于角色的访问控制方案将角色分为用户角色和所有者角色,用户从所有者获取凭证,与服务提供商通信,并获得对资源的访问。这都大大提高了安全性。 在Hadoop平台中主流使用的是基于角色的访问控制。它主要用于文件需要细粒度访问控制的情况例如基于列的访问控制 。
数据库系统可以采用基于角色的访问控制策略,建立角色、权限与账号管理机制。基于角色的访问控制方法的基本思想在用户和访问权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问。这种方法可根据用户的工作职责设置若干角色,不同的用户可以具有相同的角色,在系统中享受相同的权利,同一个用户又可以具有多个不同的角色,在系统中行使多个角色的权利。
RBAC(Role-Based Access Control)的基本概念包括:
- 许可也叫权限,就是允许对一个或多个客体执行操作;
- 角色,就是许可的集合;
- 会话,一次会话是用户的一个活跃进程,它代表用户与系统交互。标准上说,每个session是一个映射,一个用户到多role的映射。当一个用户激活他所有所有角色的一个子集的时候,建立一个session;
- 活跃角色(active role),一个会话构成一个用户到多个角色的映射,即会话激活了用户授权角色的某个子集,这个子集成为活跃角色集。
基于RBAC模型的权限管理, 可以分为三级
(1)一级权限:应用访问权限,也就是用户可以访问哪些应用
(2)二级权限:菜单访问权限,用户可以访问一个应用中的哪些菜单和按钮的权限
(3)三级权限:数据访问权限,用户可以访问某个菜单下的哪些数据的权限
3)安全审计
安全审计技术是记录用户访问过程和各种行为以形成审计数据并对其进行分析的过程。
安全审计是指在记录一切(或部分)与系统安全有关活动的基础上,对其进行分析处理、评估审查,查找安全隐患,对系统安全进行审核、稽查和计算,追查事故的原因,并作出进一步的处理。
其主要目的是实时监控整个系统和应用程序的运行状态,不间断地检测系统中的可疑、非法或危险行为。提醒并采取阻止措施,留下这些行动的记录。
① 基于日志的审计技术
SQL数据库和NoSQL数据库均具有日志审计的功能,通过配置数据库的自审计功能,即可实现对大数据的审计,其部署方式如下图所示:
目前 ,大数据平台中所有数据操作主要通过审计日记来记录。Hadoop平台生态系统各组件均提供日志和审计文件记录数据访问过程,且日志审计文件内容不可更改为追踪数据流向和发现违规数据操作提供原始依据。
可以通过配置HDFS,MapReduce,Hive等组件来启用审计日志功能。
此外 ,访问控制和身份验证项目(如 Apache Knox Gateway,Apache Sentry 和 Apache Ranger) 提供了审计功能,可记录用户访问行为,并管理组件之间的安全交互。
日志审计能够对网络操作及本地操作数据的行为进行审计,由于依托于现有的数据存储系统,兼容性很好。但这种审计技术的缺点也比较明显,首先在数据存储系统上开启自身日志审计对数据存储系统的性能有影响,特别是在大流量情况下损耗较大;其次日志审计在记录的细粒度上较差,缺少一些关键信息,如:源IP、SQL语句等,审计溯源效果不好;最后就是日志审计需要到每一台被审计主机上进行配置和查看,较难进行统一的审计策略配置和日志分析。
② 基于网络监听的审计技术
基于网络监听的审计技术是通过将对数据存储系统的访问流量镜像到交换机某一个端口,然后通过专用硬件设备对该端口流量进行分析和还原,从而实现对数据访问的审计。
基于网络监听的审计技术最大的优点就是与现有数据存储系统无关,部署过程不会给数据库系统带来性能上的负担,即使是出现故障也不会影响数据库系统的正常运行,具备易部署、无风险的特点;但是,其部署的实现原理决定了网络监听技术在针对加密协议时,只能实现到会话级别审计,即可以审计到时间、源IP、源端口、目的IP、目的端口等信息,而无法对内容进行审计。
③ 基于网关的审计技术
基于网关的审计技术通过在数据存储系统在部署网关设备,在线截获并转发到数据存储系统的流量而实现审计。
④ 基于代理的审计技术
基于代理的审计技术是通过在数据存储系统中安装相应的审计Agent(代理),在Agent上实现审计策略的配置和日志的采集,该技术与日志审计技术比较类似,最大的不同就是需要在被审计主机上安装代理程序。代理审计技术从审计粒度上要优于日志审计技术。在大数据环境下,数据存储于多种数据库系统中,需要同时审计多种存储架构的数据,原存储系统的稳定性、可靠性、性能或多或少都会有一些影响,因此基于代理的审计技术实际的应用面较窄。
通过对比以上4种技术的分析,在进行大数据输出安全审计技术方案的选择时,需要从稳定性、可靠性、可用性等多方面进行考虑,特别是技术方案的选择不应对现有系统造成影响,可以优先选用网络监听审计技术来实现对大数据输出的安全审计。
4) 数据溯源
数据溯源是一个新兴的研究领域,起源于20世纪90年代,普遍理解为追踪数据的起源和重现数据的历史状态,目前还没有公认的定义。在大数据应用领域,数据溯源就是对大数据应用周期的各个环节的操作进行标记和定位,在发生数据安全问题时,可以及时准确地定位到出现问题的环节和责任者,以便于对数据安全问题的解决。
目前学术界对数据溯源的理论研究主要基于数据集溯源的模型和方法展开,主要的方法有标注法和反向查询法,这些防范都是基于对数据操作记录的,对于恶意窃取、非法访问者来说,很容易破坏数据溯源信息,在应用方面,包括数据库应用、工作流应用和其他方面的应用,目前都处在研究节点,没有成熟的应用模式。大多数溯源系统都是在一个独立的系统内部实现溯源管理,数据如何在多个分布式系统之间转换或传播,没有统一的业界标准,随着云计算和大数据环境的不断发展,数据溯源问题变得越来越重要,逐渐成为研究的热点。
将信息安全领域的数字水印技术用于溯源
数字水印是将一些标识信息(即数字水印)直接嵌入数字载体(包括:多媒体、文档、软件)中,但不影响原载体的使用价值,也不容易被人的知觉系统(如:视觉或听觉系统)觉察或注意到。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改的目的。数字水印的主要特征有如下几个方面:
- 不可感知性:也包括视觉上的不可见性和水印算法的不可推断性。
- 强壮性:嵌入水印难以被一般算法清除,抵抗各种对数据的破坏。
- 可证明性:对嵌入水印信息的图像,可以通过水印检测器证明嵌入水印的存在。
- 自恢复性:含有水印的图像在经受一系列攻击后,水印信息也经过了各种操作或变换,但可以通过一定的算法从剩余的图像片段中恢复出水印信息,而不需要整改原始图像的特征。
- 安全保密性:睡姿水印系统使用一个或多个密钥以确保安全,防止修改和擦除。
数字水印利用数据隐藏原理使水印标志不可见,既不损害原数据,又达到了对数据进行标记的目的。利用这种隐藏标识的方法,标识信息在原始数据上是看不到,只有通过特殊的阅读程序才可以读取,基于数字水印的篡改提示是解决数据篡改问题的理想技术途径。
基于数字水印技术的以上性质,可以将数字水印引入大数据应用领域,解决数据溯源问题。在数据发布出口,可以建立数字水印加载机制,在进行数据发布时,针对重要数据,为每个访问者获得的数据加载唯一的数字水印。当发生机密泄露或隐私问题时,可以通过水印提取的方式,检查发生问题的数据是发布给哪个数据访问者的,从而确定数据泄露的源头,及时进行处理。
关系型数据库都设置了相对完备的安全机制,在这种情况下,大数据存储可以依赖于数据库的安全机制,安全风险大大降低。例如SQL Server安全机制如下:
- 身份验证(Windows NT认证模式,混合认证模式)
- 访问控制(对每个用户定义存取权限)
- 审计功能
- 数据库加密(通过将数据用密文形式存储或传输的手段保证高敏感数据的安全)
- 完整性机制(实体完整性、参照完整性、用户自定义完整性)
- 触发器机制
- 视图和存储过程机制
- 备份、恢复和并发控制机制
越来越多的企业采用非关系型数据库存储大数据,非关系型数据库存储的安全问题的探讨十分必要。关系型数据库主要通过事务支持来实现数据存取的原子性、一致性、隔离性和持久性,保证数据的完整性和正确性,同时对数据库表、行、字段等提供基于用户级别的权限访问控制及加密机制。
NoSQL数据库为大数据处理提供了高可用、高可扩展的大规模数据存储方案,但缺乏足够的安全保证。如:NoSQL数据库缺少Schema,因此不能对数据库进行较好的完整性验证。同时,多数NoSQL数据库为了提高处理效率,采用最终同步而并非每次交易同步,影响了数据的正确性。目前多数的NoSQL数据库没有提供内建的安全机制,这在一定程度上限制了应用的领域及范围,但随着NoSQL的发展,越来越多的人开始意识到安全的重要性,部分NoSQL产品逐渐开始提供一些安全方面的支持,下面以Hadoop为例,介绍其安全机制。Hadoop的安全机制主要包括4个内容:基于ACL的服务级权限控制、基于令牌的认证机制、HDFS数据存储的完整性一致性保证与数据传输的完整性验证。
① 基于ACL的权限控制
Hadoop支持的权限控制分为两级:服务级授权(service level authorization)以及上层的HDFS文件权限控制和MapReduce队列权限控制,服务级授权为系统级,用于控制Hadoop服务的访问,是最基础的访问控制,优先于HDFS文件权限和MapReduce队列权限验证。
Hadoop通过访问控制列表来管理服务级的访问权限,类似于UNIX系统中的用户权限管理,Hadoop通过用户名和组来管理权限,每个服务可以配置为被所有用户访问,也可以被限制为仅被某些组的某些用户访问。Hadoop有9个可配置的ACL属性,每个属性可指定拥有相应访问权限的用户或者用户组。
ACL属性 | 说明 |
---|---|
Security.client.protocol.acl | ACL for ClientProtocol,用户HDFS客户端对KDFS访问的权限控制 |
Security.client.datanode.prtocol.acl | ACL for ClientDataNodeProtocol,client到DataNode的访问权限控制,用于block恢复 |
Security.datanode.protocol.acl | ACL for DataNodeProtocol,用于DataNode与NameNode之间通信的访问控制 |
Security.inter.datanode.protocol.acl | ACL for InterDataNodeProtocol,用于DataNode之间更新timestamp |
Security.namenode.protocol.acl | ACL for NameNodeProtocol,用于SecondNameNode与NameNode间通信的访问控制 |
Security.inter.tracker.protocol.acl | ACL for InterTrackerProtocol,用于tasktracker与jobtracker之间通信的访问控制 |
Security.job.submission.protocol.acl | ACL for JobSubmissionProtocol,用于job客户端提交作业与查询作业的访问控制 |
Security.task.unbilical.protocol.acl | ACL for TaskUmbilicalProtocol,用于task与其tasktracker的访问控制 |
Security.refresh.policy.protocol.acl | ACL for RefreshAuthorizationPolicyProtocol,用于dfsadmin和mradmin更新其安全配置的访问控制 |
通过ACL权限控制,Hadoop能保证数据库底层HDFS文件系统的服务级安全访问,通过用户和组的限制,防止非法用户对数据进行操作。文件的权限主要由NameNode管理。
② 基于令牌的认证机制
HDFS的服务间交互基本都是通过远程调用协议(RPC,remote procedurecall protocol)交互,但是HDFS客户端获取数据时却不完全依靠RPC机制。当HDFS客户端访问数据时,主要包括2个过程:
- 客户端访问NameNode,获取数据的数据块信息,此过程通过RPC交互;
- 客户端获取到数据位置后,直接访问DataNode,根据数据块位置信息直接通过SOCKET读取数据。Hadoop的RPC消息机制在SASL(Simple Authentication and Security Layer)的基础上实现了两种认证机制:基于GSSAPI的Kerberos认证机制和基于DIGEST-MD5de令牌认证机制,令牌认证包括HDFS中的授权令牌(delegation token)、块访问令牌(block access token),以及MapReduce框架中的任务令牌(job token)。令牌机制的本质就是客户端和服务端节点共享密钥,服务端与客户端可以相互认证,服务端将响应客户端的访问。令牌由NameNode管理,DataNode不参与令牌的管理。
NameNode端保存了一个随机产生的masterKey,用来产生和识别令牌,所有的令牌都保存在内存中,并且每个令牌都有一个过期时间,过期的令牌将被删除。初始状态时,客户端必须与NameNode建立个经过Kerberos认证的连接,从而获得一个授权令牌,而后就可以通过令牌与NameNode进行交互。已经获得令牌的客户端访问NameNode时,将TokenID发送到NameNode,NameNode通过TokenID可以在内存中找到对应的令牌,并且根据masterKey与TokenID可以计算出共享密钥TokenAuthenticator和Delegation Token。在授权令牌能被认证的基础上,令牌还需要周期性地从NameNode更新,以保证私密性,NameNode也会周期性的更新masterKey以产生新的授权令牌。
对于块访问令牌来说,如何在NameNode产生并且能被DataNode识别是一个问题,HDFS中,这个问题通过NameNode与所有的DataNode之间共享新的一套密钥来解决。当HDFS集群启动时,经过Kerberos认证的DataNode向NameNode注册,并且从NameNode中获取密钥key。当客户端访问NameNode时,返回DataNode中数据的block ID和块访问令牌,然后客户端将令牌发送到DataNode,DataNode根据TokenID中的key ID确定需要用哪个密钥key,并通过Key和TokenID重新计算TokenAuthenticator,并且和块访问令牌中的TokenAuthenticator进行比较就可以确定是否能够通过认证,客户端会将所有的DataNode令牌都保存在缓存中重复使用,直到过期才会从新从NameNode获取。由于块访问令牌都是轻量级的和临时的,因此DataNode中的令牌不需要周期性地更新,只需要保存在缓存中,一过期才进行更新。
③ 数据完整性与一致性
HDFS的数据完整性分为两个部分:数据访问的完整性和数据传输的完整性。
- 数据访问的完整性:HDFS主要实现了CRC32校验。HDFS客户端在访问DataNode数据块时,是通过socket的方式获取数据流,Hadoop在FSInputStream和FSoutputStream的基础上,实现两个支持校验和的类和文件系统,FSInputStream和FSoutputStream使用数据流支持校验和。在客户端写入一个新的HDFS文件时,会计算这个文件中包括的所有数据块的校验和,并将校验和作为一个单独的.crc文件格式的隐藏文件,与数据文件保存在同一命名空间。
- 数据传输的完整性:HDFS数据块的存储支持完整性验证,主要通过核心类DataBlockScanner类实现,它通过在DataNode的后台执行一个独立的扫描线程的方式,周期性地对DataNode所管理的数据块进行CRC校验和检查。当它扫描发现数据块的校验和和原先不一致,将对数据块进行其他辅助操作,例如:删除失效的数据块等。