Hadoop 安全问题:
早起版本的HDFS和HADOOP集群运行在安全环境中,由一组相互合作的用户所操作,因而访问控制措施的目标是防止偶然的数据丢失,而非阻止非授权的数据访问。
例如,HDFS中的文件许可模块回阻止用户由于程序漏洞而毁坏整个文件系统,也会阻止运行不小心输入的hadoop fs -rmr /指令,但却无法阻止某个恶意用户假冒root身份,来访问或删除集群中的某些数据。
从安全角度分析,Hadoop缺乏一个安全的认证机制,以确保正在操作集群的用户恰是所声称的安全用户。
雅虎公司在2009年遇到了该难题,因此组织了一个工程师团队来实现Hadoop的安全认证:用Kerberos(一个成熟的开源网络认证协议)。
Kerberos工作原理介绍
基本概念
Princal(安全个体):被认证的个体,有一个名字和口令
KDC(key distribution center ) : 是一个网络服务,提供ticket 和临时会话密钥
Ticket:一个记录,客户用它来向服务器证明自己的身份,包括客户标识、会话密钥、时间戳。
AS (Authentication Server): 认证服务器
TSG(Ticket Granting Server): 许可证服务器
kerberos 工作原理
Kerberos协议
Kerberos可以分为两个部分:
- Client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT(ticket-granting ticket), 并用协议开始前Client与KDC之间的密钥将TGT加密回复给Client。此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。(此过程避免了Client直接向KDC发送密码,以求通过验证的不安全方式)
- Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别
Kerberos认证过程
Kerberos协议的重点在于第二部分(即认证过程):
(1)Client将之前获得TGT和要请求的服务信息(服务名等)发送给KDC,KDC中的Ticket Granting Service将为Client和Service之间生成一个Session Key用于Service对Client的身份鉴别。然后KDC将这个Session Key和用户名,用户地址(IP),服务名,有效期, 时间戳一起包装成一个Ticket(这些信息最终用于Service对Client的身份鉴别)发送给Service, 不过Kerberos协议并没有直接将Ticket发送给Service,而是通过Client转发给Service,所以有了第二步。
(2)此时KDC将刚才的Ticket转发给Client。由于这个Ticket是要给Service的,不能让Client看到,所以KDC用协议开始前KDC与Service之间的密钥将Ticket加密后再发送给Client。同时为了让Client和Service之间共享那个密钥(KDC在第一步为它们创建的Session Key),KDC用Client与它之间的密钥将Session Key加密随加密的Ticket一起返回给Client。
(3)为了完成Ticket的传递,Client将刚才收到的Ticket转发到Service. 由于Client不知道KDC与Service之间的密钥,所以它无法算改Ticket中的信息。同时Client将收到的Session Key解密出来,然后将自己的用户名,用户地址(IP)打包成Authenticator用Session Key加密也发送给Service。
(4)Service 收到Ticket后利用它与KDC之间的密钥将Ticket中的信息解密出来,从而获得Session Key和用户名,用户地址(IP),服务名,有效期。然后再用Session Key将Authenticator解密从而获得用户名,用户地址(IP)将其与之前Ticket中解密出来的用户名,用户地址(IP)做比较从而验证Client的身份。
(5)如果Service有返回结果,将其返回给Client。
kerberos在Hadoop上的应用
Hadoop集群内部使用Kerberos进行认证
具体的执行过程可以举例如下:
使用kerberos进行验证的原因
- 可靠 Hadoop 本身并没有认证功能和创建用户组功能,使用依靠外围的认证系统
- 高效 Kerberos使用对称钥匙操作,比SSL的公共密钥快
- 操作简单 用户可以方便进行操作,不需要很复杂的指令。比如废除一个用户只需要从Kerbores的KDC数据库中删除即可。
参考文档:
相关推荐
Hadoop部署和配置Kerberos安全认证全套流程。已经过实测并部署与生产环境。
1、对大数据安全机制方面技术感兴趣的在校生及应届毕业生。 2、Hadoop从业者,希望进一步提升个人技能,拓展职业路线。 3、对大数据行业感兴趣的相关人员。 课程内容 第一章 Kerberos简介 第二章 环境准备 2.1 使用...
Hadoop的安全认证机制,在hadoop的集群中实现对服务器与服务器之间的安全保障
Hadoop和Kerberos简介。
资料-Hadoop集成Kerberos安全技术
kerberos+hadoop搭建
基于Hadoop的云计算平台安全机制研究.pdf
手把手教你配置高效的Hadoop集群,充分利用Hadoop平台的优势。2. 为Hadoop生态系统实现强健的端到端的安全保障。
spark scala认证和代理认证hadoop的kerberos代码示例。
大数据安全-kerberos技术-hadoop安装包,hadoop版本:hadoop-3.3.4.tar.gz
里面包含hadoop快速集成kerberos认证相关脚本与安装包。可以通过脚本直接修改hadoop,zookeeper,hbase关于集成kerberos相关配置,一键修改,一键启动,方便快捷!!!
hadoop_kerberos 配置权限验证.pdf
利用两台云主机(真实环境至少三台)安装hadoop+hbase+sqoop2+phoenix+kerberos的过程笔记,从伪分布式到kerberos认证。
hadoop安全设计,kerberos、MapReduce安全面临的问题以及解决方案
HADOOP集成KEREROS配置,从KERBEROS的安装到HADOOP的配置
搭建kerberos_hadoop
NULL 博文链接:https://wmwork2010.iteye.com/blog/632016
kerberos Hadoop 安装教程, 通过自己亲手实践,得出来的文档
资源名称:Hadoop安全:大数据平台隐私保护内容简介:《Hadoop安全 大数据平台隐私保护》阐述了Hadoop从早期开放的消费互联网时代到现在作为敏感数据可信平台的演变历程,介绍了包括身份验证、加密、密钥管理和商业...
基于Hadoop的电梯安全大数据挖掘算法研究.pdf