【网络安全】图解 Kerberos:身份认证

这篇具有很好参考价值的文章主要介绍了【网络安全】图解 Kerberos:身份认证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kerberos 是一种身份认证协议,被广泛运用在大数据生态中,甚至可以说是大数据身份认证的事实标准。本文将详细说明 Kerberos 原理。

1.什么是 Kerberos ?

Kerberos 一词来源于古希腊神话中的 Cerberus —— 守护地狱之门的三头犬。下图是 Kerberos 的 LOGO。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
一句话来说,Kerberos 是一种基于加密 Ticket 的身份认证协议。Kerberos 主要由三个部分组成:Key Distribution Center(KDC)ClientService。 大致关系如下图所示:

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
客户端会先访问两次 KDC,然后再访问目标 Service,如:HTTP 服务。

2.Kerberos 基本概念

2.1 基本概念

(1)Principal:大致可以认为是 Kerberos 世界的用户名,用于标识身份。Principal 主要由三部分构成:primaryinstance(可选)和 realm

  • 包含 instancePrincipal,一般会作为 Server 端的 Principal,如:NameNode,HiverServer2,Presto Coordinator 等。
  • 不含有 instancePrincipal,一般会作为 Client 端的 Principal,用于身份认证。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
(2)Keytab:密码本。包含了多个 principal 与密码的文件,用户可以利用该文件进行身份认证。

(3)Ticket Cache:客户端与 KDC 交互完成后,包含身份认证信息的文件,短期有效,需要不断 renew

(4)Realm:Kerberos 系统中的一个 namespace。不同 Kerberos 环境,可以通过 realm 进行区分。

2.2 KDC

Key Distribution Center(KDC),是 Kerberos 的核心组件,主要由三个部分组成:

  • Kerberos Database:包含了一个 Realm 中所有的 Principal、密码与其他信息。(默认:Berkeley DB)
  • Authentication Service(AS):进行用户信息认证,为客户端提供 Ticket Granting TicketsTGT)。
  • Ticket Granting Service(TGS):验证 TGT 与 Authenticator,为客户端提供 Service Tickets

3.Kerberos 原理

在深入了解 Kerberos 原理之前,先介绍一下 Kerberos 协议的几个大前提,帮助大家理解:

  • Kerberos 基于 Ticket 实现身份认证,而非密码。如果客户端无法利用本地密钥,解密出 KDC 返回的加密 Ticket,认证将无法通过。
  • 客户端将依次与 Authentication Service,Ticket Granting Service 以及目标 Service 进行交互,共三次交互。
  • 客户端与其他组件交互都将获取到两条信息,其中一条可以通过本地密钥解密出,另外一条将无法解密出。
  • 户端想要访问的目标服务,将不会直接与 KDC 交互,而是通过能否正确解密出客户端的请求来进行认证。
  • KDC Database 包含有所有 Principal 对应的密码。
  • Kerberos 中信息加密方式一般是对称加密(可配置成非对称加密)。

下面,我们将以客户端访问 HTTP 服务为例,解释整个认证过程。

3.1 客户端与 Authentication Service

第一步,客户端通过 kinit USERNAME 或其他方式,将 客户端 ID目标 HTTP 服务 ID网络地址(可能是多个机器的 IP 地址列表,如果想在任何机器上使用,则可能为空),以及 TGT 有效期的寿命 等信息发送给 Authentication Service。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
第二步,Authentication Server 将检查客户端 ID 是否在 KDC 数据库中。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
如果 Authentication Server 检查操作没有异常,那么 KDC 将随机生成一个 Key,用于客户端与 Ticket Granting Service(TGS)通信。这个 Key,一般被称为 TGS Session Key。随后 Authentication Server 将发送 两条信息 给客户端。示意图如下:

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
其中一条信息被称为 TGT,由 TGS 的密钥加密,客户端无法解密,包含 客户端 IDTGS Session Key 等信息。

另一条信息由客户端密钥加密,客户端可以正常解密,包含 目标 HTTP 服务 IDTGS Session Key 等信息。

第三步,客户端利用本地的密钥解密出第二条信息。如果本地密钥无法解密出信息,那么认证失败。示意图如下:

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全

3.2 客户端与 Ticket Granting Service

这时候,客户端有了 TGT(由于本地没有 TGS 的密钥,导致无法解密出其数据)与 TGS Session Key

第四步,客户端将:

  • 将 AS 发送过来的 TGT(由 TGS 密钥加密)转发给 TGS。
  • 将包含自身信息的 Authenticator (由 TGS Session Key 加密)发送给 TGS。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
第五步,TGS 将利用自身的密钥从 TGT 中解密出 TGS Session Key,然后利用 TGS Session Key 从 Authenticator 中解密出客户端的信息。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
TGS 解密出所有信息后,将进行身份检查,进行认证:

  • 将客户端 ID 与 TGT 的客户端 ID 进行比较。
  • 比较来自 Authenticator 的时间戳和 TGT 的时间戳(典型的 Kerberos 系统的容忍度是 2 2 2 分钟,但也可以另行配置)。
  • 检查 TGT 是否过期。
  • 检查 Authenticator 是否已经在 TGS 的缓存中(为了避免重放攻击)。

当所有检查都通过后, TGS 随机生成一个 Key 用于后续客户端与 HTTP 服务交互时进行通信加密使用,即 HTTP Session Key。同样地,TGS 将发送 两条信息 给客户端:其中一条是 HTTP Ticket,由 HTTP 服务的密钥进行加密;另一条则由 TGS Session Key 加密,包含了客户端信息与时间戳。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
第六步,客户端将利用 TGS Session Key 解密出其中一条信息,另一条信息由于是由目标 HTTP 服务加密,无法解密。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全

3.3 客户端与 HTTP Service

这时候,客户端有了 HTTP Ticket(由于本地没有 HTTP 服务的密钥,导致无法解密出其数据)与 HTTP Service Session Key

第七步,客户端将:

  • 将 TGS 发送过来的 HTTP Ticket(由 HTTP 密钥加密)转发给目标 HTTP 服务。
  • 将包含自身信息的 Authenticator(由 HTTP Service Session Key 加密)发送给 HTTP 服务。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
:上图中 Ticket for HTTP Service 中装的应该是 HTTP Service Session Key,而不是 TGS Session Key,有一点小错误,注意甄别。

第八步,HTTP 服务首先利用自身的密钥解密出 HTTP Ticket 的信息,得到 HTTP Service Session Key;随后,利用 HTTP Service Session Key 解密出用户的 Authenticator 信息。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全

信息解密完成后,HTTP 服务同样需要做一些信息检查:

  • 将 Authenticator 中的客户端 ID 与 HTTP Ticket 中的客户端 ID 进行比较。
  • 比较来自 Authenticator 的时间戳和 HTTP Ticket 的时间戳(典型的 Kerberos 系统对差异的容忍度是 2 2 2 分钟,但也可以另行配置)。
  • 检查 Ticket 是否过期。
  • 检查 Authenticator 是否已经在 HTTP 服务器的缓存中(为了避免重放攻击)。

然后,HTTP 服务会发送包含其 ID 和时间戳的身份验证器消息,以便向您确认其身份,并使用 HTTP Service Session Key 进行加密。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
您的机器通过使用缓存的 HTTP Service Session Key 解密来读取身份验证器消息,并知道它必须接收带有 HTTP 服务 ID 和时间戳的消息。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全
现在,您已通过身份验证,可以使用 HTTP 服务。未来的请求将使用缓存的 HTTP Service Ticket,只要它没有按照生命周期属性中的定义过期即可。

kerberos认证,# 计算机网络,网络安全,身份认证,Kerberos,web安全


参考如下:文章来源地址https://www.toymoban.com/news/detail-735610.html

  • Explain like I’m 5: Kerberos
  • Introduction To Kerberos
  • 一文搞定 Kerberos

到了这里,关于【网络安全】图解 Kerberos:身份认证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 指纹统一身份认证系统系统安全设计

    2.10.1 身份认证 系统是为广大工作人员提供服务的,为了区分各个用户以及不同级别的用户,需要对他们的 身份和操作的合法性进行检查。体系应该规定实现身份认证与权限检查的方式、方法以及对 这些用户的管理要求。 2.10.2 权限管理 权限管理系统是保证业务系统安全的一

    2024年02月10日
    浏览(38)
  • 启用skywalking身份安全认证

    目录 1.  Nginx部署 1.1更新系统软件包 1.2安装EPEL存储库 1.3安装Nginx 2.  修改 Nginx 配置文件 2.1.     字段解释 3. 创建存储用户名和密码的文件 3.1 安装htpasswd工具 3.2 验证 4.  验证代理及身份认证 4. 常见报错及解决方法 4.1.     检查监听 4.2. 检查配置文件字段地址 4.3. 检查防

    2024年02月09日
    浏览(37)
  • 零信任身份管理平台,构建下一代网络安全体系

    随着数字化时代的到来,网络安全已成为企业和组织面临的一项重要挑战。传统的网络安全方法已经无法满足不断演变的威胁和技术环境。近期,中国信息通信研究院(简称“中国信通院”)发布了《零信任发展研究报告( 2023 年)》。在报告指出,云计算、大数据等新一代

    2024年02月07日
    浏览(32)
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    随着互联网的发展和各种在线服务的普及,用户在不同的应用和平台上需要进行多次身份验证。为了简化用户的登录和减少重复操作,统一身份认证(Single Sign-On,简称SSO)技术应运而生。本文将简单介绍统一身份认证的概念、原理和实现方法,希望能帮助你更好地理解和应

    2024年02月15日
    浏览(32)
  • 安全开发:身份认证方案之 Google 身份验证器和基于时间的一次性密码 TOTP 算法

    参考资料在文末注明,如本文有错漏欢迎评论区指出👏 目前很多应用都逐步采用了双因子认证或者说MFA认证方案,因此本文介绍一下背后的机制和 TOTP算法 原理。使用TOTP算法,只要满足两个条件:1)基于相同的密钥;2)时钟同步;只需要事先约定好密钥,TOTP算法就可以保

    2024年02月04日
    浏览(40)
  • AI 欺诈事件频出,如何重塑身份认证的安全性?

    据报告表示,生成式人工智能每年可为世界经济注入相当于 4.4 万亿美元的资金。预计到 2030 年,人工智能对全球财政的潜在贡献将达到 15.7 万亿美元。人们惊叹于 AI 强大工作效率,期待能帮忙节省不必要的劳动力,但事实上 AI 出现之后,AI 造假的恐慌也随之不断蔓延。 借

    2024年02月19日
    浏览(29)
  • 【网络安全】防火墙知识点全面图解(一)

    本系列文章包含: 【网络安全】防火墙知识点全面图解(一) 【网络安全】防火墙知识点全面图解(二) 【网络安全】防火墙知识点全面图解(三) 防火墙 ( Firewall )是防止火灾发生时,火势烧到其它区域,使用由防火材料砌的墙。 后来这个词语引入到了网络中,把从外

    2024年02月12日
    浏览(30)
  • 【网络安全】防火墙知识点全面图解(二)

    本系列文章包含: 【网络安全】防火墙知识点全面图解(一) 【网络安全】防火墙知识点全面图解(二) 【网络安全】防火墙知识点全面图解(三) 通常一个规则是由多条 访问控制列表 组成,一条访问控制列表也叫做一个 表项 。一个表项由对象( object )、行为( acti

    2024年02月11日
    浏览(37)
  • 【网络安全】防火墙知识点全面图解(三)

    本系列文章包含: 【网络安全】防火墙知识点全面图解(一) 【网络安全】防火墙知识点全面图解(二) 【网络安全】防火墙知识点全面图解(三) DoS 全称是 Denial of Service ,也就是无法继续提供服务的意思。这里的服务是指服务器的应用程序服务,比如客户端发起 HTTP 请

    2024年02月11日
    浏览(41)
  • 信息安全概论复习笔记 第九章 身份认证(不是重点,做了解吧)

    身份认证(Authentication)的定义: 宣称者向验证方出示证据,证明其身份的交互过程 至少涉及两个参与者,是一种协议 分为双向认证和单向认证 身份认证并不是一种静态的加密,而是一个 协议过程 区分两个概念 身份认证和报文鉴别 区别: ①报文鉴别是静态附加在报文之

    2024年02月02日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包