HDFS的透明加密

news2024/9/22 6:38:47

一、HDFS透明加密原理

Hadoop的透明加密(HDFS Transparent Data Encryption) - TDE

1.HDFS中的数据明文存储

HDFS中的数据会以block的形式保存在各台数据节点的本地磁盘中,但这些block都是明文的。 通过Web UI页面找到Block的ID和副本位于的机器信息 如果在操作系统中直接访问block所在的目录,通过Linux的cat命令是可以直接查看里面的内容的,且是明文。

常见的加密层级:

  1. 应用层加密: 这是最安全和最灵活的方法。加密内容最终由应用程序来控制。并且可以精确的反应用户的需求。但是,编写应用程序来实现加密一般都比较困难。
  2. 数据库层加密: 类似于应用程序级加密。大多数数据库供应商都提供某种形式的加密。但是可能存在性能问题。比如:索引无法加密。
  3. 文件系统层加密: 这种方式对性能影响不大,且对应用程序是透明的,一般也比较容易实施。但是如果需要应对细粒度的要求策略,可能无法完全满足。比如:加密文件系统(EFS)用于在(NTFS)文件系统卷上存储已加密的文件。
  4. 磁盘层加密: 易于部署和高性能,但是相当不灵活,只能防止用户从物理层面盗窃数据。

 

2.HDFS中的透明加密

HDFS透明加密(Transparent Encryption)支持端到端的透明加密,启用以后,对于一些需要加密的HDFS目录里的文件可以实现透明的加密和解密,而不需要修改用户的业务代码。端到端是指加密和解密只能通过客户端。 对于加密区域里的文件,HDFS保存的即是加密后的文件,文件加密的秘钥也是加密的。让非法用户即使从操作系统层面拷走文件,也是密文,无法解密查看文件内容。

HDFS透明加密的特点:

  1. HDFS集群管理和密钥的管理是互相独立的职责,由不同的用户角色(HDFS管理员,密钥管理员)承担
  2. 只有HDFS客户端可以加密或解密数据,密钥管理在HDFS外部,HDFS无法访问未加密的数据或加密密钥
  3. block在操作系统是以加密的形式存储的,从而减轻了操作系统和文件系统级别的安全威胁
  4. HDFS使用AES-CTR(支持128位加密密钥(默认))加密算法

 

3.HDFS中的透明加密技术原理

1)、加密区域

    • HDFS的透明加密有一个新的概念,加密区域(the encryption zone)
    • 加密区域就是HDFS上的一个目录
    • 加密区域里写入文件的时候会被透明加密,读取文件的时候又会被透明解密

2)、密钥

  • 当加密区域被创建时,都会有一个加密区域密钥(EZ密钥,encryption zone key)与之对应,EZ密钥存储在HDFS外部的密钥库中
  • 加密区域里的每个文件都有其自己加密密钥,叫做数据加密密钥(DEK,data encryption key)
  • DEK会使用其各自的加密区域的EZ密钥进行加密,以形成加密数据加密密钥(EDEK)

3)、密钥库(keystore)

存储密钥(key)的叫做密钥库(keystore),将HDFS与外部企业级密钥库(keystore)集成是部署透明加密的第一步。这是因为密钥(key)管理员和HDFS管理员之间的职责分离是此功能的非常重要的。但是,大多数密钥库都不是为Hadoop工作负载所见的加密/解密请求速率而设计的。

4)、KMS(密钥管理服务)

Hadoop密钥管理服务(Key Management Server,简写KMS),用作HDFS客户端与密钥库之间的代理。KMS主要有以下几个职责:

-- 访问加密区域秘钥(EZ key)

-- 生成EDEK,EDEK存储在NameNode上

-- 为HDFS客户端解密EDEK

5)、写入加密文件过程

前提:创建加密区,设置加密区密钥

1、Client向NameNode请求在HDFS某个加密区新建文件

2、NameNode从缓存中取出一个新的EDEK(后台不断从KMS拉取新的EDEK到缓存中)

3、获取到EDEK会被NameNode保存到文件的元数据中

4、然后NameNode将EDEK发送给Client

5、Client发送EDEK给KMS,KMS用对应的EZ key将EDEK解密出DEK发送给Client

6、Client用DEK加密文件内容发送给datanode进行存储

DEK是加解密一个文件的密钥,而KMS里存储的EZ key是用来加解密所有文件的密匙(DEK)的密匙。 所以,EZ Key是更为重要的数据,只在KMS内部使用(DEK的加解密只在KMS内存进行),不会被传递到外面使用;而HDFS服务端只能接触到EDEK。

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

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

相关文章

2024年运营技术与网络安全态势研究报告:遭遇多次网络威胁的比例暴增

随着 OT 组织不断在其业务环境中集成各种数字工具和技术,它们面临的安全挑战也日益变得愈加复杂和多样化。正如 NIST 指出, “虽然安全解决方案旨在解决典型 IT系统中的一些问题,但将这些相同的解决方案引入不同的 OT 环境时,必须…

excel实现图片转文字功能/excel 实现导出图片功能/excel导出图片不失真(解决excel导出图片模糊的问题)

excel实现图片转文字功能 excel实现图片转文字功能:方法1:使用QQ的在线文档进行图片转文字方法2:使用WPS的excel文档进行图片转文字pdf图片转表格 使用excel 导出图片的方法(使用Excel内置的“复制为图片”功能)1. 复制…

Java序列化流和反序列化流

序列化流: 序列化:将一个对象转换成网络中传输的流 对象输出流:ObjectOutputStream 反序列化:将网络中传输的流还原成一个对象 对象输入流:ObjectInputStream 一个类对象将来…

轻松上手MYSQL:MYSQL权限配置全攻略,打造安全的数据库环境

​ 🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索MYSQL权限配置之旅✨ 👋 大家好!文本学习和…

【秋招笔试】8.14联想(算法岗)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

Cortex-A7的GIC(全局中断控制器)使用方法(6):基于stm32MP135的IRQ初始化及处理流程分析

0 参考资料 STM32MP13xx参考手册.pdf(RM0475) ARM Generic Interrupt Controller Architecture version 2.0 - Architecture Specification.pdf 1 基于Cortex-A7的STM32MP135的IRQ初始化及处理流程分析 熟悉基于Cortex-M内核的stm32系列MCU的一定对中断…

RabbitMQ练习(Hello World)

1、RabbitMQ教程 《RabbitMQ Tutorials》https://www.rabbitmq.com/tutorials RabbitMQ是一个消息代理,它接受并转发消息。你可以将其想象成一个邮局:当你将需要邮寄的信件放入邮筒时,你可以确信邮递员最终会将邮件投递给你的收件人。在这个…

LDR6500-type-c 接口小封装PD取电协议芯片

LDR6500 Type-C PD取电芯片是一种基于Type-C接口的电源传输的协议芯片,它通过Type-C接口中的CC(Configuration Channel)线进行通信,协商电压、电流及供电方向。当设备连接时,双方会进行握手通信,以确定彼此…

在AMD GPU上进行Grok-1模型的推理

Inferencing with Grok-1 on AMD GPUs — ROCm Blogs 我们展示了如何通过利用ROCm软件平台,能在AMD MI300X GPU加速器上无缝运行xAI公司的Grok-1模型。 介绍 xAI公司在2023年11月发布了Grok-1模型,允许任何人使用、实验和基于它构建。Grok-1的不同之处…

Java学习Day29:查漏补缺

1.只创建对象不创建文件 2.过滤器 使用匿名内部类实现FileFilter接口,实现过滤; 递归实现遍历目录及子目录下的后缀为。txt文件 public class ioRee {public static void main(String[] args) throws IOException {File file new File("D:\\A&quo…

pywebview 入门

pywebview 入门 文档地址 地址 https://pywebview.flowrl.com/guide/ 一、pywebview 简介 1. 什么是 pywebview? pywebview 是一个轻量级的 python 库,旨在简化桌面应用程序的开发。它利用系统的 WebView 组件,使得开发人员可以使用现代 …

web过滤器,前后端同步异步交互,跨域问题,json等知识点

一.过滤器 (1)什么是过滤器 过滤器(Filter):是web服务器管理所有的web资源例如servlet,例如实现权限访问控制、过滤敏感词汇、压缩响应信息等。 (2)过滤器的作用 通过过滤器可以实现对服务器web资源的拦截,例如编码过滤器通过对web资源的过滤拦截可以实…

python-素数回文(赛氪OJ)

[题目描述] 现在给出一个素数,这个素数满足两点: 1、 只由 1∼9 组成,并且每个数只出现一次,如 13,23,1289 。 2、 位数从高到低为递减或递增,如 2459,87631 。 请你判断一下,这个素数的回文数是否为素数&a…

python之matplotlib (1 介绍及基本用法)

介绍 matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。 同样matplotlib的安…

day23-测试自动化之Appium的滑动和拖拽事件、高级手势ActionChains、手机操作API

目录 一、滑动和拖拽事件 1.1.应用场景 1.2.swipe滑动事件 1.3.scroll滑动事件 1.4.drag_and_drop拖拽事件 1.5.滑动和拖拽事件的选择 二、高级手势ActionChains 2.1.应用场景 2.2.使用步骤 2.3.注意点 2.4.方法 1).手指轻敲操作 (掌握) 2).手势按下和抬起操作(掌握&#xff0…

【Win/Mac】InDesign 2024(id2024排版和设计软件)中文安装版

目录 一、软件概述 二、下载 三、主要特点 系统要求(Windows 系统) 一、最低系统要求 二、推荐系统要求 三、图形处理器要求 系统要求(Mac 系统) 一、最低系统要求 二、推荐系统要求 三、图形处理器要求 使用方法 一、…

【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】

💌 所属专栏:【单片机开发软件技巧】 😀 作  者: 于晓超 🚀 个人简介:嵌入式工程师,专注嵌入式领域基础和实战分享 ,欢迎咨询! 💖 欢迎大家&#xff1…

缓存学习

缓存基本概念 概念 对于缓存,最普遍的理解是能让打开某些页面速度更快的工具。从技术角度来看,其本质上是因为缓存是基于内存建立的,而内存的读写速度相比之于硬盘快了xx倍,因此用内存来代替硬盘作为读写的介质当然能大大提高访…

亲测解决OneDrive: Proxy Authentication Error - 2606

这个问题由网络配置有误引起,解决方法是换网络或者关闭代理。 解决方法 换一个网络,比如手机wifi。如果开了代理可以把代理关了。 原版笔记 use vanilla network

RK3588——Linux系统烧录(以Firefly的Core-3588L为例)

Firefly的Core-3588L官网 1. 硬件连接 首先先用Type-C 一端数据线板子的OTG,另一端连接电脑的USB。 按住设备上的 RECOVERY (恢复)键并保持,连接电源,保持2秒左右,松开RECOVERY (恢复&#xff…