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://www.mfbz.cn/a/575776.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软考-系统分析师-精要1

1、什么是软件需求 软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。 软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力…

Leetcode 118 杨辉三角

目录 一、问题描述二、示例及约束三、代码方法一:数学 四、总结 一、问题描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。   在「杨辉三角」中,每个数是它左上方和右上方的数的和。 二、示例及约束 示例 1&#xff1a…

电子防潮柜出厂前要经过哪些测试?

电子防潮柜在发货前应执行一系列质量控制测试以确保其功能正常、性能稳定且能够满足用户存储物品对湿度控制的需求。以下是沐渥电子防潮柜出厂前的测试流程: 1)除湿性能测试:检查并验证防潮柜能否按照设定的湿度目标值准确运行,可…

燃冬之yum、vim和你

了解了很多指令和权限,搞点真枪实弹来瞅瞅 学Linux不是天天就在那掰扯指令玩,也不是就研究那个权限 准备好迎接Linux相关工具的使用了么码农桑~ yum 软件包 什么是软件包呢? 首先来举个生活中常见点的例子:比如我的手机是华为…

盘点数据资产管理十大活动职能 优化企业数据资产管理和应用

在当今的数字化时代,数据已成为企业最宝贵的资产之一,在上篇文章中我们对数据资产管理进行了初步的介绍。 上篇文章指路👉什么是数据资产管理?详谈数据资产管理的难点与发展现状! 有效的数据资产管理不仅能提升企业的…

【JAVA】阿里技术官耗时三个月整理的Java核心知识点

在裁员风波的席卷之下,IT行业弥漫着浓厚的焦虑和不安。面对如此动荡的环境,一个共识日益凸显:提升个人价值至关重要。 这不仅仅是指薪资上的数字增长,更重要的是在职场中、在专业领域、在技术上不断取得突破,并塑造自…

固态继电器:推进可再生能源系统

随着可再生能源系统的发展,太阳能系统日益成为现代能源解决方案的先锋。在这种背景下,固态继电器(SSR),特别是光耦固态继电器的利用变得日益突出。本文旨在深入探讨SSR在可再生能源系统中的多方位应用,重点…

ClickHouse 数据类型、表引擎与TTL

文章目录 数据类型注意事项 表引擎1.TinyLog 引擎2.MergeTree 引擎3.ReplacingMergeTree 引擎4.AggregatingMergeTree 引擎5.SummingMergeTree 引擎6.CollapsingMergeTree 引擎7.Distributed 引擎 TTL列级 TTL表级TTL 数据类型 ClickHouse 数据类型Java 数据类型数据范围UInt8…

基于FaceNet的人脸识别

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计10077字,阅读大概需要10分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#…

Python二进制文件转换为文本文件

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在日常编程中,我们经常会遇到需要将二进制文件转换为文本文件的情况。这可能是因…

最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版 土堆教程

最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 | 土堆教程 Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版 教程大纲如何使用此教程快速开始版本 Windows下判断有无NVIDIA GPU安装Anaconda作用流程下载安装 Anaconda 创建虚拟环境利用conda或者…

谁是存储器市场下一个“宠儿”?

AI浪潮对存储器提出了更高要求,高容量、高性能存储产品重要性正不断凸显,存储产业技术与产能之争也因此愈演愈烈:NAND Flash领域,闪存堆叠层数持续提升;DRAM领域HBM持续扩产,技术不断迭代,同时3…

Github上不去?进来,我教你

目录 一、复制Github的服务器地址 二、打开C盘下的hosts配置文件 三、编辑hosts 四、刷新DNS 五、本教程资源来源 一、复制以下Github的各服务器地址 # GitHub520 Host Start 140.82.112.26 alive.github.com 140.82.113.6 api.github.com…

docker-MySQL 8 主从搭建

一.目录结构: 我是在/home目录下,建立个sql文件夹: 二、配置文件 1.mysql配置 mysql-master下.conf文件配置 ###### [mysqld] server-id1 # 启用二进制日志 log-binmaster-bin # 指定需要复制的数据库 binlog-do-dbtest_db # 指定二进制日…

为什么工业锅炉必须要清洗?-智渍洁

锅炉经过长时间运行,不可避免的出现了水垢、锈蚀问题,锅炉形成水垢的主要原因是给水中带有硬度成分,经过高温、高压的不断蒸发浓缩以后,在炉内发生一系列的物理、化学反应,最终在受热面上形成坚硬、致密的水垢。 水垢是…

【EMQX】使用websocket订阅EMQX数据

需求:某平台希望通过 websocket 来订阅 EMQX平台上的某些 Topic数据进行处理 1、EMQX 服务配置 前提是EMQX服务正常安装运行了,如果EMQX服务未安装的话,详见以下文章关于如何安装部署服务: 搭建自己的MQTT服务器、实现设备上云(W…

windows11编译3dslicer_问题总结

编译前准备 CMake:版本>3.16.3(避免使用3.21.0,3.25.0-3.25.2,这些版本,可能会出现build错误)。Git:版本>1.7.10,安装完git,一定要在cmd里面试一试,是…

网络安全之弱口令与命令爆破(上篇)(技术进阶)

目录 一,什么是弱口令? 二,为什么会产生弱口令呢? 三,字典的生成 四,使用Burpsuite工具弱口令爆破 总结 一,什么是弱口令? 弱口令就是容易被人们所能猜到的密码呗,…

docker部署前端项目(二)遇到的问题

1、docker版本号 只有1.13.1 因为使用 sudo yum install docker (下载到的是旧版) 解决:下载新版 报错一: unable to prepare context: unable to evaluate symlinks in Dockerfile path: Lstat /root/Proiects/dist/Dockerfil…

如何在PostgreSQL中创建并使用窗口函数来进行复杂的分析查询?

文章目录 解决方案1. 了解窗口函数的基本概念2. 常用的窗口函数3. 使用示例示例 1:计算每行销售数据的累计销售额示例 2:计算每行销售数据相对于前一行销售额的增长率 结论 PostgreSQL 提供了一套强大的窗口函数(Window Functions&#xff09…