大数据的安全管理 -- Kerberos

1. 前言

前一段时间一直在做大数据集群下面的安全环境(Kerberos)的配置与分析,其中有许多误解,这里记录下来。当然kerbeos本身也比较复杂,这里只从一个使用者的角度进行记录

2. 安全基础 – Kerberos

一提到Hadoop集群安全,我们就会想到Kerberos,对于kerberos解释,有很多。下面是我对于kerberos的一个理解

2.1 什么是kerberos

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

这是百度百科上面的一种解释,很官方也很正确(不是说这样不好),但是比较不好理解,但我们只要记住两点即可:
1. Kerberos是一种协议。
2. 这个协议应该是包括三个方面:客户端、服务端、认证中心

2.2 Kerberos 如何工作

Kerberos的认证过程,与我们的医院看病的过程比较类似。我们来看一下我们的一般看病过程
1. 病人首先会拿着自己的身份证或医疗卡去挂号中心去挂号,病人在挂号的时候,这时病人会提供如下信息:医生姓名 + 科室
2. 挂号中心接收到病人的申请后,会检查病人的基本信息,然后返回一个挂号单,在这个挂号单位中,会包含如下住处
生病之后,我们一般都会需要先预约,预约完成之后,就去挂号中心进行挂号。挂号中心就是给一个挂号的单。这个单一般有如下信息:
坐诊医生| 科室 | 病人信息 | 看病时间
3. 病人拿到挂号单后,就去找相应的医生,并将这个挂号单递给医生
4. 医生在给病人诊治之前,首先就是检查一下挂号单,一般就是看:医生 + 科室 + 诊治时间这几项是否正确,如果不正确,就把病人抛出(抛出异常)。如果都正确,就开始诊治了。
这里写图片描述

而我们Kerberos的认证过程也是这样的:
1. 当一个客户端需要访问一个服务端的时候,它也首先去向KDC申请票据
2. KDC会校验这个客户端信息,即我们输入的客户端对应的princal信息与密码,比对成功之后,就会返回一个票据。在这个票据会有: 服务端princal信息 | 客户端princal信息 | 票据有效期
3. 客户端拿到票据之后,会拿到这个票据去访问服务端。
4. 服务端接收到客户端访问请求之后,也会首先查看一下这个票据信息,它也是查看自己的princal信息与票据的princal信息是否对应上,票据是否在有效期之内。如果完全对应,则会完成交互过程,否则就抛出异常。
(事实上,kerberos的认证比较复杂,可以阅读:http://blog.csdn.net/wulantian/article/details/42418231)

有一点我们需要注意的是:病人在拿到挂叫单之后,病人和医生都不会再与挂号中心交互。而Kerberos认证也是一样,当客户端拿到了票据之后,客户端与服务端都不再与服务端进行交互了。

我们总结一下病人在整个诊疗过程中,一共有两个部分:
1. 病人在挂号中心挂号,挂号中心根据病人提供的身份证验证身份,并返回一个挂号单
2. 病人将挂号单递给医生,医生校验这个挂号单。

对应到kerbos的访问过程,我们又可以将它分为两部分,这两部分又分别对应于我们的两种协议JaaS 与GSS-API
1. 客户端向KDC请求,KDC验证身份,并返回票据 – JaaS
2. 客户端将票据发送服务端,服务端进行票据校验 – GSS-API

在下一章中,将会对于这两者进行展开

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值