目录

1 Kerberos概述

1.1 Kerberos是什么

1.2 为什么是3个脑袋

1.3 不同类型的加密技术

1.4 Kerberos的好处

1.5 Kerberos局限

1.6 Kerberos实现

1.7 Kerberos术语

2 Kerberos工作原理

2.1 Kerberos是如何组织的

2.2 KDC介绍

2.3 Kerberos principal

2.4 Kerberos认证过程

2.5 Kerberos工作流

Kerberos工作流通俗解释

课后扩展


1 Kerberos概述

1.1 Kerberos是什么

1. Kerberos是一个长着三个脑袋的狗

Kerberos来自希腊语Cerberus,意思是一只守护在地狱入口的长着三个脑袋的巨
犬,确保没有人在进入地狱后能够离开。相当于守在地狱入口的希腊版藏獒或者
二郎神,保证参观地狱的人只进不出,都买的是单程票。

哈利波特里的原型:

2. Kerberos是麻省理工学院(MIT)为Athena项目开发的一个网络认证 协议,为计算机系统提供强认证标准,它提供多种不同实现。

网址:https://web.mit.edu/kerberos/
3. 它使用私钥加密为开放网络提供认证。
4. 在Kerberos开发出来之前,流行使用的都是公钥加密和类似SSL这样
的系统

1.2 为什么是3个脑袋

1. 认证(Authentication ) :确认请求服务的用户是一个有效的用户
2. 授权(Authorization ) :基于对用户的认证,它们所请求的服务以及当前系统状态,将特定类
型的服务授予用户
3. 统计(Accounting :跟踪用户的网络资源消耗

1.3 不同类型的加密技术

1. 对称密钥 :
        同样的密钥用于加密和解密 。比如:DES、3DES,AES
2. 公钥 :
        使用两个密钥用于加密和解密,私钥用于加密,公钥用于解密 。比如:RSA
3. 当前很多吸引使用公钥加密技术进行认证,Kerberos使用对称密钥加密技术

1.4 Kerberos的好处

  1. 基于强认证标准
  2. 支持各种操作系统
  3. 具备单点登录的能力(SSO,single sign-on)
  4. 决不在网络上传递密码
  5. 窃取的认证凭证很难再次使用

1.5 Kerberos局限

  1. Kerberos仅提供认证,在授权时,其他协议(比如NIS,LDAP)仍旧是需要的
  2. 不能将已有密码迁移到Kerberos数据库
  3. 假设网络主机是相对安全的。
  4. 应用必须Kerberos化:
  • Kerberos提供了标准API来实现这一点
  • 也有一些针对Kerberos认证的PAM(注1)模块
1
Linux pam源于著名厂商后来被甲骨文收购的SUN公司的软件DCE-RFC的 开源实现。PAM全称为Pluggable Authentication Modules,可插入认证模块。可以动态引入认证各种认证模块和插件,而无需重新加载系统。具 有高度灵活性,随配随生效

1.6 Kerberos实现

1. Kerberos 5协议遵循RFC1510(http://www.ietf.org/rfc/rfc1510.txt )
2. 主要实现
  • MIT Kerberos(http://web.mit.edu/kerberos/www/)
  • Keimdal Kerberos(http://www.pdc.kth.se/heimdal/ )
  • Sun的SEAM Kerberos
3. 所有实现命令和接口都相似
  • 认证是兼容的
  • 管理接口不完全兼容

1.7 Kerberos术语

  • Kerberos是一种客户端/服务端架构。
  • 主体(principal):Kerberos中的身份标识称为主体。
  • 每个参与Kerberos认证协议的用户和服务都需要一个主体来唯一标识自己。
  • 用户主体名称(user principal nameUPN):代表常规用户,类似于用户名或者账号。
  • 服务主体名称(service principal nameSPN):代表用户需要访问的服务
  • 领域(realm):身份验证管理域,领域确定了管理边界,所有主体均属于特定的Kerberos域。
  • 密钥分发中心(Key distribution CenterKDC)由三部分构成:Kerberos数据库、认证服务、(Authentication service,AS)和票证授予服务(ticket-granting service,TGS)。
  • 主体和域的信息存储在Kerberos数据库中
Kerberos术语表:

2 Kerberos工作原理

2.1 Kerberos是如何组织的

1、Kerberos管理域是“realm” :Realm名通常是DNS名的大写(比如:dns是foo.com,realm会命名为 FOO.COM)

2、认证是由叫做KDC(密钥分发中心,Key Distribution Center )的中央服务器来完成

  • 每个用户和服务都和KDC分享密钥KDC生成和分发session key
  • 各个参与者之间通过它们知道的session key彼此证明和通讯

2.2 KDC介绍

Kerberos KDC包含两个部分:
  1. AS(Authentication Server),发行TGT(Ticket-Granting Tickets )
  2. TGS(Ticket Granting Server),发行服务凭证

2.3 Kerberos principal

  1. 客户端(用户或者服务)是由principal标识的
  2. principal格式:primary/instance@realm
  • Primary:用户或服务名
  • Instance:对于user principal来说是可选的,对于service
  • principal来说是必须的
  • realm:kerberos realm
例子:
  • 用户:jerry@FOO.COM
  • 服务:imap/bar.foo.com@FOO.COM

2.4 Kerberos认证过程

  • 客户端向KDC发送一个用户名和一个服务名
  • KDC发回一个使用用户密码加密的ticket(凭证)和session key作为响应
    • 这个ticket被称为TGT(Ticket Granting Ticket),它可以用于授权其他ticket
    • 客户端使用用户的密码加密TGT
  • 然后客户端使用TGT和KDC交互获取服务ticket。

2.5 Kerberos工作流

通过工作流,我们可以知道Kerberos是如何工作的。
1、首先定义所有组件:
MYTRAIN.DOMAIN:Kerberos域(域名一般为大写)
Jerry:一个系统用户,UPN为jerry@MYTRAIN.DOMAIN
myservice:server1.mytrain.domain上运行的一个服务,SPN为:myservice/server1.mytrain.com@MYTRAIN.DOMAIN
kdc.mytrain.com:Kerberos域MYTRAIN.COM的KDC。

Jerry想要使用myservice,需要向myservice提供一个有效的服务票据,以下是工作流程:

  1. Jerry需要获取一个TGT。他需要向kdc.mytrain.com上的AS发起一个请求,并表明自己是主体:jerry@MYTRAIN.DOMAIN
  2. AS为主体jerry@MYTRAIN.DOMAIN提供一个使用密钥加密的TGT。
  3. 接收到加密信息后,Jerry需要输入主体jerry@MYTRAIN.DOMAIN的密码来解密信息
  4. 解密TGT信息后,Jerry向kdc.mytrain.domain上的TGS请求myservice/server1.mytrain.com@MYTRAIN.DOMAIN服务的一个服务票据,并且在请求中提供TGT信息。
  5. TGS对TGT进行验证,并为Jerry提供使用 myervice/servier1.mytrain.com@MYTRAIN.DOMAIN的密钥加密的服务票据。
  6. Jerry将服务票据提供给myservice,myservice使用myservice/server1.mytrain.com@MYTRAIN.DOMAIN的密钥进行解密,验证票据有效性
  7. Jerry身份验证通过,允许使用myservice服务。

工作流时序图:

Kerberos工作流通俗解释

比如说,你在深圳漂泊了多年,想把户口干脆调到深圳来,这时你需要深圳南山派出所给你提供一个落户的服务,但是,按照Kerberos的流程来说,你不能直接请求这个服务,因为南山派出所不知道你是谁,你从哪里来,你需要有人帮你证明,这个证明人就是你老家的派出所,比如叫吉林省公主岭派出所,这时你拿着你老家派出所给你的身份证回老家,说我就是少小离家的阿蒙啊,然后,老家派出所的认证窗口给你开一个加密的证明,证明你的身份,但是要提供密码去解密,就相当于派出所问你一个问题:你家门前那条河叫什么名字,你回答:它的名字叫长江,然后,你把这个解密的凭证交给老家派出所开准迁的部门,告诉它,你要开准迁证明(准许迁出户口),开准迁的部门会先验证你的凭证,然后给你开出准迁(加密的服务票据)。这时候,你才能拿着这个加密的准迁交给深圳南山派出所申请落户服务,深圳南山派出所对你的准迁进行解密,然后打电话给你老家的派出所核实准迁是不是你老家派出所签发的,如果合法,就给你提供落户服务。
  • 这里你的身份证就是UPN
  • 你老家派出所就是KDC
  • 老家派出所核实你身份证的部门就是AS
  • 给你开准迁的部门就是TGS
  • 准迁就是Ticket
  • 深圳南山派出所就是提供落户服务的服务端SPN

课后扩展

1. 为KDC添加从服务器
参考官网:
http://web.mit.edu/~kerberos/krb5-latest/doc/admin/install_kdc.html#install-and-configure-the-master-kdc
中的Install the replica KDCs一节

Kerberos基础及KDC服务(理论知识)相关推荐

  1. 分布式/微服务理论知识

    分布式系统和微服务架构越来越流行,特意卖了一本<SpringCloud微服务与分布式系统实战>来给自己充充电,也是掌握技术的必经之路. 一.分布式系统 大数据.高并发和快响应已经成为互联网 ...

  2. [Kerberos基础]-- kdc集群主从搭建(kerberos相关)

    主机规划 10.10.100.94   master 10.10.100.93   slave 10.10.100.92   client (一)环境: 名称            版本 CentOS ...

  3. SpringCloud一、前提概述、相关微服务和微服务架构理论知识、微服务技术栈有哪些、

    ①前提概述.微服务架构springcloud的相关学习. 前提知识+相关说明 1.目前,我们学习到最后的微服务架构SpringCloud,基本上需要熟悉以前的学习内容和知识:springmvc.spr ...

  4. 图像处理方向就业前景(转我根据《浅谈图像处理方向的就业前景》和自己找工作的一些经验简单介绍一下图像处理方向就业前景, 希望能对后来者有所帮助! 1、请学好图像基本理论知识,笔试会遇到很多基础的题)

    我根据<浅谈图像处理方向的就业前景>和自己找工作的一些经验简单介绍一下图像处理方向就业前景, 希望能对后来者有所帮助! 转载自:https://blog.csdn.net/xujx09/a ...

  5. 视频相关的理论知识与基础概念

    本文将视频相关的理论知识与基础概念划分为 11 个知识点,如下: 视频 分辨率 比特率 采样率 帧率 视频编码 编码标准 视频封装格式 视频解码 视频播放原理 视频与流媒体 1.视频 根据人眼视觉暂留 ...

  6. oracle rac理论知识

    oracle数据库高可靠性高性能的特性是很多企业需要的,这些年一直给各大政府企业做oracle咨询与规划,实施安装以及维护,回头看看,自己已经忘记大部分oracle rac的整体具体架构理论知识,现在 ...

  7. 从理论知识到落地能力,你欠缺了什么?

    转载自   从理论知识到落地能力,你欠缺了什么? 本文是一个理论过度到实践的典型案例,借助程序员经常遇到的一个问题--网络为什么不通,来具体说明怎么将书本上的死知识真正变成我们解决问题的能力. 大学学 ...

  8. 《深入理解分布式事务》第四章 分布式事务的基本概念和理论知识

    <深入理解分布式事务>第四章 分布式事务的基本概念和理论知识 文章目录 <深入理解分布式事务>第四章 分布式事务的基本概念和理论知识 一.分布式系统架构 1.简介 2.分布式事 ...

  9. FFmpeg学习(音视频理论知识)

    文章目录 1. 音视频理论知识 1.1 基本概念 1.1.1 音视频必备的基本概念 常用的视频封装格式 常用的视频编码器 常用的音频编程器: 视频流 裸数据YUV 1.1.2 音视频常见处理 采集 处 ...

  10. 数据库入门理论知识介绍以及编译安装MySql

    数据库入门理论知识介绍以及编译安装MySql 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1&g ...

最新文章

  1. 无序列表属性 隐藏方式 JS简介
  2. rss 阅读源_如何使用RSS更有效地阅读
  3. SharePoint中的权限体系
  4. 计算机课设容易挂吗,数学差的学生避开这4大专业,挂科是常态,每年都有学生不能毕业...
  5. 邂逅StringIndexOutOfBoundsException
  6. 第五章:【UCHome二次开发】模板解析
  7. 按键精灵post教程_掌控POST(1)
  8. 深度学习(一)神经网络中的池化与反池化原理
  9. 浏览器安装fehelper插件,亲测可行
  10. usb万能驱动win7_我!Win7!还能接着续!Z490 B460 H410 Win7 保姆教程
  11. 计算机网络:从入门到放弃
  12. 因子分析——流程与实现stata
  13. python基础语法及知识点总结
  14. GDAL+Python实现栅格影像处理之栅格矢量化及矢量栅格化
  15. 微信小程序利息计算器
  16. 校园地图设计——任意两点间的算法优化流程与while搭配switch语句的bug解读
  17. Easyui后台管理界面设计
  18. Kubernetes全栈架构师(资源调度下)--学习笔记
  19. 如何更改计算机的用户信息,如何更改电脑的账户信息
  20. 京东涉足B2B 叫板阿里巴巴

热门文章

  1. delta pi sigma_数学符号π (Pi)、Σ(Capital Sigma)、μ (Mu) 、σ(sigma)、∏(capital pi), ∫(Integral Symbol)的来历...
  2. BMZ-MISC-可乐加冰
  3. 医院私有云架构统一灾备中心建设最佳实践
  4. linux设置北京时区
  5. 2022年虎年新春致地球上全体读者朋友们的一封书信
  6. 鲁大师7月新机性能/流畅榜:性能跑分突破123万!
  7. 用JS实现万年历效果,精!
  8. Android - 跳转系统网络设置
  9. 激情巴布部落畅快一日游
  10. C语言读取GPT分区信息