hadoop安全保护机制(kerberos + ldap)

news2024/11/28 8:34:20

信息安全理论:

CIA模型:机密性、完整性和可用性

  CIA模型能够帮助建议一些信息安全原则,但该模型并不是一个需要严格遵守的规则

  hadoop平台可能设计多个CIA模型组件,也kennel一个也不涉及

机密性:

   信息只应该被期望的接收者看到

   身份标识:唯一标识消息传递者

   身份验证:证明自己的身份

   加密:将数学算法应用于信息片段,使加密后输出内容对于非预期接收者不可读

   解密:只有期望的接收者能对加密消息进行解密,从而得到原始信息

完整性:

  保证发送方发送的信息和接收分接收的完全一致

可用性:

   数据能够被准确送达,不会丢失

验证、授权和审计(AAA):

   指计算机安全领域的一个架构模式,在该模式中,使用服务的用户要证明自己的身份,然后规则规则被授予权限,同时其操作被记录下来留待审计。

身份:指系统如何将不同的实体、用户和服务区分开来

  linux系统:

验证:/etc/passwd

授权:/etc/sudoers、/etc/group

审计:/var/log/secure

统一身份认证管理:

     在开源大数据平台中,用户可能需要同时使用很多开源组件,因此会涉及到每个组件的身份认证和访问权限等问题。利用统一的认证服务能够更好的管理用户的身份认证及会话管理等。

     在大数据平台中通过统一用户管理系统,可以实现平台中的各种开源组件应用系统的用户、角色和组织机构统一化管理,实现各种应用系统间跨域的单点登录登出和统一的身份认证功能。

统一身份认证系统的主要功能特性如下:

用户管理

用户认证

单点登录

分级管理

权限管理

会话管理

兼容多种操作系统

目前,绝大多数厂商的统一认证管理系统都是由统一认证管理模块、统一身份认证服务、身份信息存储服务器三大部分组成。

 在华为大数据解决方案中,我们通过基于开源的OpenLDAP的身份认证的管理和存储技术以及Kerberos统一身份认证技术,实现了一种能够通过WebUI进行集群中的数据与资源访问控制权限管理

kerberos:

kerberod是麻省理工学院开发的一个认证机制,该系统设计上采用客户端/服务器结构与DES,AES等加密技术,并且能够进行互相认证,即客户短和服务端均对对方进行身份认证。客户端需要确认即将访问的网络服务就是自己所想要访问的服务而不是一个伪造的服务器,而服务端需要确认这个客户端是一个身份真实,安全可靠的客户端,而不是一个想要进行恶意网络攻击的用户

Kerberos核心三要素:

krbServer认证机制的核心工作是使用一种能够证明用户身份的票据(密钥),保护集群免受窃听和攻击。

kerberos client: 发送请求的一方

kerberos kdc server: 接收请求的一方

kdc(key distribution center):  有两个部分,分别是:

AS(Authentication Server):认证服务器,专门用来认证客户端的身份并发放客户用于访问TGS的TGT(授予票据)

TGS(Ticket Granting ticket): 票据授予服务器,用来发放整个认证过程以及客户端访问服务端时所需的服务授予票据。

kerberos 术语:

主体(principal):

kerberos中的身份标识,每个参与kerberos认证协议的用户和服务都需要一个主体来唯一地表示自己。

用户主体(UPN)

代表常规用户,类似于操作系统中的用户名

 <短名称><@域>

<短名称>/admin@<域>

服务主体<SPN>:

代表用户需要访问的服务,例如特定服务器上的数据库

<短名称>/<主机名>@<域>

域(realm):

就是一个身份验证管理区域,所有主体都被分配到特定的kerberos域,域确定了边界,使得管理更为容易。

密钥分发中心(KDC):

      kerberos数据库:存储主体及其所属域的所有相关信息

     认证服务(AS):当客户端向AS发起请求时,向客户端发放票据授予票据TGT用于请求访问其他服务

   票据授予服务(TGS):负责验证票据许可票据(TGT), 并授予服务票据(ST)。服务票据允许认证过的主体使用应用服务器提高的服务,该服务通过SPN进行标识。

EXAMPLE.COM:Kerberos域

zph:一个系统用户,其UPN为zph@EXAMPLE.COM

myservice:server1.example.com上运行的一个服务,其SPN为myservice/server1.example.com@EXAMPLE.COM

kdc.example.com:Kerberos域EXAMPLE.COM的KDC

kerberos工作流程:

简化流程:

在这里插入图片描述

1、客户端向KDC请求获取想要访问的目标服务的服务授予票据(Ticket);

2、客户端拿着从KDC获取的服务授予票据(Ticket)访问相应的网络服务

上面简化了kerberos的认证流程,大致分为两步,虽然只有两步,但是其中还是有一些问题问题:

(1)    KDC怎么知道你(客户端)就是真正的客户端?凭什么给你发放服务授予票据(Ticket)呢?
(2)    服务端怎么知道你带来的服务授予票据(ticket)就是一张真正的票据呢?

kerberos认证过程中的第一步做了两件事,这两件事解决了上述问题中的问题1,然后第二部解决了问题2,最终结束认证过程建立通信。

因此kerberos认证流程可以细化为三个阶段,也可以理解为三次通信,接下来从三个阶段三次通信角度细说认证过程。


Kerberos认证流程:

在这里插入图片描述

kerberos认证前提条件:

1、kerberos协议是一个”限权“的认证协议,kerberos中会自带一个数据库,数据库会由创建kerberos的运维人员提前在库中添加好整个系统中拥有使用kerberos认证权限的用户和网络服务。在后续的认证中也是根据数据库中是否存在该用户和服务来判断该对象是否能够通过认证服务的。

2、所有使用kerberos协议的用户和网络服务,在他们添加到kerberos系统时,都会根据自己当前的密码生成一把密钥存储在kerberos数据库红,且kerberos数据库也会同时保存用户的基本信息(用户名,用户ip地址)和网络服务的基本信息(ip)

3、kerberos中存在的三个角色,只要发生两两之间的通信,那都需要先进行身份认证。

第一次通信:

在这里插入图片描述

 为了获得能够用来访问服务端服务的票据,客户端首先需要来到KDC获得服务授予票据(Ticket)。由于客户端是第一次访问KDC,此时KDC也不确定该客户端的身份,所以第一次通信的目的为KDC认证客户端身份,确认客户端是一个可靠且拥有访问KDC权限的客户端,过程如下:

1、客户端用户向kdc以明文的方式发起请求,该请求携带自己的用户名、主机ip和当前时间戳

2、kdc中的AS接收请求后去kerberos认证数据库中根据用户名查找是否存在该用户,此时只会查找是否有相同用户名的用户,并不会判断身份的可靠性。(AS是KDC中专门用来认证客户端身份的认证服务器)

3、如果没有用户名,认证失败,服务结束,如果存在该用户名,则AS认证中心认为用户存在,此时便返回客户端,其中包含两部分内容:

第一部分为TGT,票据授予票据,客户端需要使用TGT去kdc中的TGS获取访问网络服务所需的Ticker(服务授予票据),TGT中包含的内容有kerberos数据库中存在的该客户端name、ip、当前时间戳、客户端即将访问的TGS的name,TGT的有效时间以及一把用户客户端和TGS间进行通信的session_key(CT_SK)。整个TGT使用TGS密钥加密,客户端解密不了,由于密钥没有在网络中传输过,所以不存在密钥被劫持破解的情况。

第二部分是使用客户端密钥加密的一段内容,其中包括用户将客户端和TGS间通信的CT_SK,客户端即将访问的TGS的name以及TGT的有效时间、当前时间戳。该部门内容使用客户端密钥加密,所以客户端难道该部门内容可以通过密钥解密。如果是一个假的客户端,那么他不会拥有真正客户端的密钥,因为密钥也没有在网络中传输过。这就认证了客户端的身份,如果是假客户端会犹豫解密失败从而终端认证流程。

至此,第一次通信完成。

第二次通信:

在这里插入图片描述

第三次通信:

kerberos认证时序图:

在这里插入图片描述

LDAP & LdapServer:

目录服务:

目录服务是一个为查询、浏览和搜索而优化的服务,其类似于文件目录一样,以树形结构进行数据存储和遍历。

日常生活中最常用的目录服务就是手机中的通讯录。其中通讯录是由以字母顺序排列的名字、地址和电话号码等组成,用户能够在短时间内查找到相应的用户及其信息

LDAP协议概述:

LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,是一种基于X.500目录访问协议的集中账号管理架构的实现协议标准

Ldap协议的特点如下:

  • Ldap运行在TCP/IP或其他面向连接的传输服务之上。
  • Ldap同时是一个IETF标准跟踪协议,在”轻量级目录访问协议(Ldap )技术规范路线图”RFC4510中被指定

LdapServer作为目录服务系统,实现了对大数据平台的集中账号管理

LdapServer作为目录服务系统是由目录数据库和一套访问协议组成的系统:

  • LdapServer基于OpenLDAP开源技术实现。

  • LdapServer以Berkeley DB作为默认的后端数据库。

  • LdapServer是基于LDAP标准协议的一种具体开源实现

LdapServer组织模型:

ldapserver组织模型又叫做Ldapserver目录树或者LdapServer命名模型,特点如下:

Ldapserver目录信息是基于树形结构来组织和存储的

LdapServer目录树中的每一个极点都被称作条目,并且拥有自己的唯一颗区别的名称DN(distinguished name)

LdapServer目录树的树根一般定义域名dc(domain  component)

域名下可以自由定义组织单位ou(organization unit), 组织单位可以包含其他的各种对象,在目录服务系统中,组织单位包含该组织下的所有用户账户相关信息,组织单位下可以定义具体对象,在定义组织对象时可以指定组织对象的名称cn(common nbame)和用户uid(user id)

LdapServer功能模型:

LdapServer有10种不同的操作,分为4类操作:

查询类:信息搜索、信息比对

更新类:添加条目、删除条目、修改条目、修改条目名

认证类:认证绑定,接触认证绑定

其他操作:放弃服务操作,扩展服务操作

LdapServer集成设计:

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

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

相关文章

高压放大器的增益和偏压是什么意思

高压放大器是一种广泛应用的电子元器件&#xff0c;主要用于放大高压信号和驱动负载等方面。在实际应用中&#xff0c;了解高压放大器的增益和偏压是非常重要的&#xff0c;下面安泰电子将详细介绍它们的意义和作用。 高压放大器的增益 增益是指放大器输入信号与输出信号之间的…

iClient3D for CesiumWebGL入门之使用vscode以服务方式运行调试

作者&#xff1a;超图研究院技术支持中心-于丁 iClient3D for Cesium&WebGL入门之使用vscode以服务方式运行调试 相信大家第一次使用SuperMap iClient3D for Cesium或SuperMap iClient3D for WebGL的时候&#xff0c;都遇到过和我一样的事情&#xff1a; 在文件夹中直接打…

二极管钳位电路的原理与实际应用

写在前面 本文参考了什么是二极管钳位的作用及原理&#xff1f; - 知乎 针对一些文章讲述错误的地方进行了更正&#xff0c;在讲述不清楚的地方进行了详细的解释&#xff0c;还请各位两篇文章结合而看&#xff0c;效果更佳。 钳位电路说明 1.我们都知道二极管具有单向导电性&a…

【Ajax】笔记-Ajax重复发送请求

问题的产生 用户频繁地点击一个发送请求的按钮&#xff0c;服务器就会频繁地处理请求&#xff0c;而且处理的内容是一样的&#xff0c;这样会导致服务器的压力很大。 这种情况下服务器就没有必要处理每一个请求。 解决方案 发送请求的时候先查看有没有正在请求的相同请求&am…

docker - prometheus+grafana监控与集成到spring boot 服务

一、Prometheus 介绍 1.数据收集器&#xff0c;它以配置的时间间隔定期通过HTTP提取指标数据。 2.一个时间序列数据库&#xff0c;用于存储所有指标数据。 3.一个简单的用户界面&#xff0c;您可以在其中可视化&#xff0c;查询和监视所有指标。二、Grafana 介绍 Grafana 是一…

Android图形系统之ANativeWindow与Surface关系(十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Unity 之 错误的停止协程的方式

相信很多人都会这样开启一个协程 StartCoroutine(Cor_1()); 这样确实没啥毛病&#xff0c;那么怎么关掉这个协程呢&#xff0c;是不是在想也是一样的传cor_1()这个参数&#xff0c;然后start对应stop,试着输入stopCor....诶&#xff0c;代码提示有这个方法喔&#xff0c;然后…

【计算机网络】socket编程基础

文章目录 1. 源IP地址和目的IP地址2. 理解MAC地址和目的MAC地址3. 理解源端口号和目的端口号4. PORT与PID5. 认识TCP协议和UDP协议6. 网络字节序7. socket编程接口7.1 socket常见API7.2 sockaddr结构 1. 源IP地址和目的IP地址 因特网上的每台计算机都有一个唯一的IP地址&#…

windows命令之获取电脑已经连接过的wifi的密码

有时候想连接wifi不知道密码&#xff0c;恰巧电脑此时正连接着能用的wifi&#xff0c;想获取密码吗&#xff0c;使用下面这个指令&#xff1a;这个指令能获取历史连接的wifi的信息&#xff0c;密码也是之前连接的时候保存的密码&#xff0c;并不能获取某个wifi的正确密码 netsh…

Redis进阶(2)——Redis数据的持久化 CAP分布式理论(高可用性) Redis主从搭建 Redis的哨兵机制

目录 引出Redis数据的持久化RDB方式(redis database数据备份文件)RDB工作机制RDB优势和劣势RDB常用参数 AOF的方式&#xff08;命令追加&#xff09;AOF优缺点 Redis集群CAP理论 主从搭建(Master/Slave)主master的redis自定义docker静态网段创建文件上传redis.conf到conf文件夹…

物联网的介绍

目录 1.什么是物联网 2.物联网给人类带来的福利 3.学习物联网需要什么知识 4.物联网未来的发展趋势 5.物联网专业的就业前景 1.什么是物联网 物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;是指连接、交互和共享数据的各种物理设备、传感器、软件和…

你的语言是第几名?

2023年已经过半&#xff0c;最新一期的编程语言排行榜你看了吗&#xff1f;刚刚&#xff0c;全球知名编程语言社区TIOBE公布了7月榜单&#xff0c;一起来看吧&#xff01; TIOBE 7 月 TOP 15 编程语言&#xff1a; 详细榜单可参考官网&#xff1a; https://www.tiobe.com/tio…

进阶C语言——数据的存储

Hello&#xff0c;时间过的好快&#xff0c;从我一开始在csdn写的第一篇文章&#xff0c;距离现在已经过去一个多月了&#xff0c;我也在csdn收获了一些粉丝&#xff0c;你们的点赞就是我的动力&#xff0c;希望大家也越来越强&#xff0c;好了&#xff0c;进入我们的正题 &…

STL中的string类的模拟实现【C++】

文章目录 默认成员函数构造函数拷贝构造函数 赋值运算符重载函数析构函数beginendsizecapacityreserveeraseresizepush_backappendoperatorinsertswapsubstrc_stroperator[ ]findcleargetline>>运算符的重载<<运算符的重载 默认成员函数 构造函数 构造函数设置为…

^(按位异或)操作符详解

因为未知&#xff0c;所以全力以赴 目录 例1.实现两个数的交换 例2.找出单身狗 1.简单版 2.进阶版 大家好&#xff0c;我是纪宁。这篇博客介绍^操作符及使用案例。 位操作符是对操作数的二进制补码进行操作。^就是位操作符的一种&#xff0c;叫按位异或操作符。计算结果是…

【期末课程设计】学生成绩管理系统

因其独特&#xff0c;因其始终如一 文章目录 一、学生成绩管理系统介绍 二、学生成绩管理系统设计思路 三、源代码 1. test.c 2. Student Management System.c 3.Stu_System.c 4.Teacher.c 5.Student Management System.h 前言&#xff1a; 学生成绩管理系统含教师…

C语言每日一题:1.证明尼克彻斯定理。

思路1&#xff1a; 0.输入一个值作为n 1.假设输入的n4计算4^364. 2.因为他们都是连续的奇数可以把它写成另一种方法&#xff0c;每一个数之间相差2。 4^313(132)(134)(136); 3.64-(246)52–>52/4等于13 4.这样的话我们就找到了连续奇数的第一个数字。 //具体代码&#xff1a…

Selenium 修改 HTTP 请求头三种方式

目录 前言&#xff1a; 什么是 HTTP 请求头 需要更改 HTTP 请求请求头 Selenium 修改请求头 Java HTTP 请求框架 代码实战 使用反向代理 使用 Firefox 扩展 下载火狐浏览器扩展 加载火狐扩展 设置扩展首选项 设置所需的功能 完整自动化用例 前言&#xff1a; Sele…

USB转串行通信芯片FT2232

1 FT2232主要特性 1&#xff09;2232表示支持2个RS232。 2&#xff09;FT2232D最高支持full-speed&#xff0c;所以时钟是12MHz&#xff1b;而FT2232H最高支持high-speed&#xff0c;所以时钟是60MHz。 3&#xff09;FT2232的Port A和Port B会在Windows设备管理器的“通用串行总…

九、正则表达式详解:掌握强大的文本处理工具(一)

文章目录 &#x1f340;引言&#x1f340;正则表达式的基本语法&#x1f340;常用操作符&#x1f340;实例应用&#x1f340;具体操作演示 &#x1f340;引言 正则表达式(Regular Expression)是一种强大的文本处理工具&#xff0c;常用于搜索、匹配和替换操作。它使用一种特定的…