kerberos:介绍

文章目录

  • 一、介绍
  • 二、kerberos框架
    • 1、名词解释
    • 2、框架
  • 三、优缺点
  • 四、其他认证机制
    • 1、SSL
    • 2、OAuth
    • 3、LDAP

一、介绍

Kerberos是一种计算机网络授权协议,主要用于在非安全网络环境中对个人通信进行安全的身份认证。这个协议由麻省理工学院(MIT)开发,作为Athena项目的一部分,首次发布于1988年。Kerberos协议目前已经从v1发展到v5,其中v5在1993年被确定为标准的Kerberos协议(RFC1510)。

Kerberos协议设计思想的核心是引入一个可信任的第三方来实现客户端和服务端的认证。在Kerberos中,这个可信任的第三方被称为密钥分发中心(KDC)。Kerberos软件设计上采用客户端/服务器结构,能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。

Kerberos协议的主要特点是用户只需输入一次身份验证信息,就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即实现单点登录(SSO)。由于Kerberos协议在每个Client和Service之间具有共享密钥,使得该协议具有相当的安全性。

在实际应用中,Kerberos协议可用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。在配置Kerberos服务端时,需要安装相关的软件包,并配置krb5.conf和kdc.conf文件,以定义realm和其他相关参数。

总的来说,Kerberos协议是一种强大且灵活的网络安全协议,能够为计算机网络提供高效、安全的身份认证服务。如需更多信息,建议查阅Kerberos协议的相关文档或咨询网络安全专家。

二、kerberos框架

1、名词解释

  • 客户端:用户或服务的代表,负责发起认证请求并持有相关的票据和会话密钥。

  • 密钥分发中心(KDC):Kerberos协议的核心组件,负责密钥的管理和分发票据, KDC包含两个重要服务:

    • 认证服务器(AS):负责用户信息的认证。当客户端请求访问服务时,AS会验证客户端的身份,并生成一个加密的票据(TGT)和会话密钥。这个TGT是客户端访问票据授予服务器(TGS)的身份凭证。
    • 票据授予服务器(TGS):根据客户端的请求,为其提供访问特定服务的票据(Service Ticket)和会话密钥。客户端使用这个服务票据和会话密钥来访问目标服务。
  • 服务端:提供服务的实体,如web服务器。服务端会验证客户端提供的服务票据的有效性,如果验证通过,就会与客户端建立安全的通信连接。

  • Principal:安全个体,具有唯一命名的客户端或服务器,以便于验证和管理。命名规则:主名称(primary)+实例(instance,可选)+领域(realm),如hive/admin@EXAMPLE.COM。主名称可以是任意的字符串或者就是操作系统下的用户名等;实例用于给某个角色的用户或者服务来创建Principal;而域则概念上类似于DNS上的domain域名,可以用来定义一组相似的对象,或者说realm定义了一组principals。

  • Ticket:票据,一条包含客户端标识信息、会话密钥和时间戳的记录,客户端用它来向服务器认证自己,Kerberos协议中的票据主要有两种类型:TGT(Ticket-Granting Ticket)和服务票据(Service Ticket)。

    • TGT(Ticket-Granting Ticket):
      • 是一种临时凭证,用于客户端从认证服务器(AS)获取,用以访问票据授予服务器(TGS)。
      • 客户端首次登录时,向AS发送请求,AS验证客户端身份后发放TGT。
      • TGT中包含客户端的身份信息和会话密钥,用于后续的认证和票据获取。
    • 服务票据(Service Ticket)
      • 是客户端从TGS获取,用于访问特定服务的凭证。
      • 客户端携带TGT向TGS请求访问某个服务的票据,TGS验证TGT的有效性后发放服务票据。
      • 服务票据包含客户端的身份信息、服务的身份信息和会话密钥,用于客户端和服务端之间的安全通信。。

2、框架

在这里插入图片描述
Kerberos协议的工作流程主要涉及到三个主要的参与者:客户端、认证服务器(AS)和票据授予服务器(TGS)。以下是Kerberos协议工作的基本步骤:

  • 认证阶段:

    • 客户端向AS发送身份请求,并提供用户名和口令。
    • AS验证客户端的身份,如果验证通过,AS会生成一个加密的票据(Ticket-Granting Ticket,TGT)和会话密钥。这个TGT包含了客户端访问TGS所需的身份认证信息,会话密钥则是用于客户端和TGS之间的安全通信。
  • 获取服务票据:

    • 客户端使用之前从AS获取的会话密钥对TGT进行解密,然后携带解密后的TGT向TGS发送请求,请求访问特定服务的票据。
    • TGS验证客户端的TGT的有效性,如果验证通过,TGS会生成一个用于访问特定服务的票据(Service Ticket)和另一个会话密钥。这个服务票据包含了客户端访问特定服务所需的身份认证信息。
  • 客户端访问服务:

    • 客户端使用从TGS获取的服务票据和会话密钥,向目标服务发送请求。
    • 服务验证客户端的服务票据的有效性,如果验证通过,服务会与客户端使用共享的会话密钥进行通信。

在整个过程中,Kerberos使用了加密技术来保护用户身份和通信数据的安全,有效抵御中间人攻击和数据泄露。同时,Kerberos协议的设计使得用户只需在初次认证时输入身份验证信息,之后就可以凭借票据访问多个服务,实现了单点登录的便利性。

值得注意的是,Kerberos协议的安全性建立在密钥的安全管理和分发上,因此在实际应用中需要确保KDC(包括AS和TGS)的安全性,防止密钥被非法获取或篡改。同时,Kerberos协议也需要配合其他安全措施,如防火墙、入侵检测系统等,共同构建网络安全防线。

三、优缺点

四、其他认证机制

1、SSL

2、OAuth

OAuth(全称Open Authorization)是一个开放授权协议,它允许第三方服务在用户授权的前提下,访问用户在另一服务提供者上存储的资源,而无需获取用户的用户名和密码。

OAuth的工作原理大致如下:

  • 用户请求授权:用户在第三方应用程序中请求访问受保护资源,这些资源由于敏感性或隐私性而受到保护,因此需要进行授权。
  • 授权服务器认证:第三方应用程序将用户重定向到授权服务器。授权服务器要求用户进行身份验证,以确保其身份的真实性。
  • 用户授权:一旦用户通过身份验证,授权服务器会要求用户授权第三方应用程序访问其受保护的资源。
  • 授权颁发:在用户同意授权后,授权服务器会向第三方应用程序颁发一个访问令牌(Access Token)。这个令牌是临时的,具有时效性,并且只允许访问特定的账户信息。
  • 访问受保护资源:第三方应用程序使用这个访问令牌向资源服务器请求访问受保护资源。资源服务器会验证令牌的有效性,如果有效,则允许第三方应用程序访问相应的资源。

OAuth的应用场景非常广泛,包括但不限于:

  • 第三方登录:当自己的系统需要引入微信、QQ、支付宝等第三方登录时,可以使用OAuth协议。用户可以使用这些第三方应用进行登录,无需在新系统中重新注册账号。
  • 开放平台:当自己的系统需要开放一些接口供第三方应用查询使用相关信息时,OAuth协议同样适用。第三方应用通过OAuth协议获取到开放平台的接口访问权限,从而可以查询和使用相关信息。
  • SSO单点登录:在微服务环境下,OAuth协议可以实现单点登录功能。用户只需在一个系统中登录,就可以直接访问其他系统,无需再次登录。

此外,OAuth还有不同的授权模式,每种模式都有其特定的使用场景和安全性考虑。总的来说,OAuth协议不仅增强了用户对其数据的控制权,也提供了安全的授权机制,使得第三方应用程序可以在用户授权的情况下访问受保护的资源。

3、LDAP

LDAP认证是一种通过LDAP(轻量目录访问协议)实现的身份认证方式。它通常基于LDAP服务器进行,用户数据被存储在LDAP服务器上,服务器则根据这些数据对用户进行认证处理。

LDAP认证的工作原理主要包括以下几个步骤:

  • LDAP客户端与LDAP服务器建立连接,这个连接可以是基于TCP/IP的,也可以是基于TLS/SSL的加密连接。
  • 连接建立后,LDAP客户端需要进行身份验证,以证明自己的身份,这一步通常使用用户名和密码进行。
  • 验证通过后,LDAP客户端可以发送不同类型的请求给LDAP服务器,常见的请求包括搜索请求、添加请求、修改请求和删除请求等。
  • LDAP服务器会根据请求进行相应的处理,并返回结果给LDAP客户端。

LDAP认证方式被广泛应用于多种场景,例如统一身份认证、公司内部员工目录、电子邮件服务器、VPN认证、Web应用单点登录(SSO)、Wi-Fi认证以及多租户环境管理等。

请注意,尽管LDAP认证提供了许多便利,但也需要考虑数据安全和隐私保护的问题。确保LDAP服务器的安全性,防止数据泄露和非法访问,是使用LDAP认证时的重要任务。

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

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

相关文章

C语言 | Leetcode C语言题解之第40题组合总和II

题目: 题解: int** ans; int* ansColumnSizes; int ansSize;int* sequence; int sequenceSize;int** freq; int freqSize;void dfs(int pos, int rest) {if (rest 0) {int* tmp malloc(sizeof(int) * sequenceSize);memcpy(tmp, sequence, sizeof(int…

【QT学习】9.绘图,三种贴图,贴图的转换,不规则贴图(透明泡泡)

一。绘图的解释 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDev…

Jmeter04:关联

1 Jmeter组件:关联 概括:2个请求之间不是独立的,一个请求响应的结果是作为另一个请求提交的数据,存在数据交互 1.1 是什么? 就是一个请求的结果是另一个请求提交的数据,二者不再是独立 1.2 为什么&#x…

docker容器内彻底移除iptables服务的实现方法

背景 我创建的容器使用的是centos6的标准镜像,所以内置了iptables服务。容器启动后iptables服务默认就启动了。iptables设置的规则默认是所有流量都无法通行。而对于服务器的管理使用的是宿主机的防火墙。这样就导致在实现用iptables动态给容器添加端口映射时不成功…

RocketMQ快速入门:group、topic、queue、tag等基本概念(四)

0. 引言 上一节,我们说明了rocketmq中的4个核心组成以及他们之间的工作关系。但其中穿插的topic, queue等概念,如果未接触过mq的同学可能会有些迷糊,所以本节,我们重点针对rocketmq中的基本概念进行讲解,之前学习过其…

中北大学软件学院操作系统实验二进程调度算法

实验时间 2024年 4 月13日14时至16时 学时数 2 1.实验名称 实验二进程调度算法 2.实验目的 (1)加深对进程的概念及进程调度算法的理解; (2)在了解和掌握进程调度算法的基础上,编制进程调度算法通用程序,将调试结果显示在计算机屏幕上&am…

第九章 进程和计划任务管理【☆】

一个进程可以创建多个子进程,子进程之间相互独立,速度较慢,但是互不影响。线程是共享资源,速度快,但一个线程崩掉其他线程同时崩掉。 一、查看进程信息 1. 查看静态的进程统计信息——ps命令 主要进程状态 R(runnin…

在控制台实现贪吃蛇

在控制台实现贪吃蛇 前备知识Win32APICOORD这个结构体的声明如下:GetStdHandle 函数GetConsoleCursorInfo 函数SetConsoleCursorInfo 函数 SetConsoleCursorPosition 函数getAsyncKeyState 函数 控制台窗口的大小以及字符打印介绍控制台中的坐标宽字符及本地化介绍s…

BBS前后端混合项目--03

展示 static/bootstrp # bootstrap.min.css /*!* Bootstrap v3.4.1 (https://getbootstrap.com/)* Copyright 2011-2019 Twitter, Inc.* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)*//*! normalize.css v3.0.3 | MIT License | github.com/n…

OSPF大型实验

OSPF大型实验 实验拓扑图 实验思路 1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP; 2、R3-R5、R6、R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分;除了R12有两…

2013-2021年各省经济韧性相关测度指标面板数据

2013-2021年各省经济韧性相关测度指标面板数据 1、时间:2013-2021年 2、指标:城镇化率 %、财政科学技术支出(亿元)、万人高等教育在校人数(万人)、财政教育支出(亿元)、第三产业占…

[SWPUCTF 2021 新生赛]re2(不同字符加密相同,逆向修改范围)

无壳 直接看ida 完整exp&#xff1a; resultlist(ylqq]aycqyp{) for i in range(len(result)):if (ord(result[i])<94 or ord(result[i])>96) and (ord(result[i])<62 or ord(result[i])>64):result[i]chr(ord(result[i])2)else:result[i]chr(ord(result[i])-24)…

Linux-进程间通信:System V消息队列

目录 System V IPC概述标识符与IPC Key System V消息队列创建或打开一个消息队列发送消息接收消息控制消息队列1、IPC_STAT2、IPC_SET3、IPC_RMID 查看系统当前的消息队列代码示例 System V IPC&#xff08;Inter-Process Communication&#xff09;是一组用于在 Unix-like 操作…

Redis底层数据结构之Dict

目录 一、概述二、Dict结构三、Dictht结构四、DictEntry结构五、核心特性 上一篇文章 reids底层数据结构之quicklist 一、概述 Redis 的 Dict 是一个高效的键值对映射数据结构&#xff0c;采用双哈希表实现以支持无锁的渐进式 Rehash&#xff0c;确保扩容或缩容时的高效性能。…

react引入iconfont的svg图标

react引入iconfont的svg图标 本文目录 react引入iconfont的svg图标普通图标通过link引入css组件内引入css使用 svg图标通过script引入js组件内引入js使用 通过封装组件自定义封装组件中调用 通过antd封装使用 普通图标 通过link引入css <link rel"stylesheet" h…

ROS学习笔记(13)坐标变换(TF和TF2)

0.前提 我翻了一下我以前的教程发现我居然没有讲过TF坐标转换&#xff0c;那现在补上。在机器人学中坐标转换是一个极为重要的概念、内容&#xff0c;在大量的科技公司招聘机器人岗位的人才时掌握机器人运动学正解和逆解等都是加分项。机器人在实际应用当中会涉及到大量的位置…

0 transformers入门,HuggingFace!

目录 1 了解 2 文本分类 1 了解 1 依赖安装 !pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 2 了解transformers 能做什么 from transformers.pipelines import SUPPORTED_TASKS SUPPORTED_TASKS.items()2 文本分类 我没外网所以…

CSS特效---环形进度条

1、演示 2、一切尽在代码中 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"w…

MATLAB将多张小图整合到一张大图形成模板图

MATLAB将多张小图整合到一张大图形成模板图 代码如下: clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;foldername字符模板; [datacell,filenamecell,filenameAllcell]readfun_1n(foldername); K2length(filenamecell);% …

互联网大佬座位排排坐:马化腾第一,雷军第二

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 这是马化腾、雷军、张朝阳、周鸿祎的座位&#xff0c;我觉得是按照互联网地位排序的。 马化腾坐头把交椅&#xff0c;这个没毛病&#xff0c;有他在的地方&#xff0c;其他几位都得喊声“大哥”。雷军坐第二把交椅…