Kerberos是怎么工作的?

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。 采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。

关键要素

KDC:Key Distribution Center – Each user and service shares a secret key with the KDC – The KDC generates and distributes session keys – Communicating parties prove to each other that they

KDC 包含两部分:

– Authentication Server (AS) ● Issues “Ticket-Granting Tickets” (TGT) – Ticket Granting Server (TGS) ● Issues service tickets

交互过程

  1. client向KDS发用户名和服务端名称
  2. KDC回应TGT,使用用户密码加密;
  3. client输入密码,解密TGT
  4. 到手的TGT,用来和KDC通信(我已经有TGT了,属于被你信任的列表中,给我我想要的东西吧),进一步获取service tickets. img:k1.jpg
  5. KDC返回用户service tickets,
  6. 用户拿service tickets和Server通信,请求授权;
  7. server端授权完成,建立session;

交互流程图: 

用户命令

  • kinit # 与KDC通信,请求授权
  • klist # 查看已授权列表
[email protected]:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1098
Default principal: [email protected]

Valid starting       Expires              Service principal
06/21/2016 11:43:29  06/22/2016 11:43:26  krbtgt/[email protected] # TGT
06/21/2016 11:43:45  06/22/2016 11:43:26  host/[email protected]       # host service ticket
06/21/2016 11:43:45  06/22/2016 11:43:26  host/[email protected]

Kerberos principals

Clients (users or services) are identified by “principals” Principals look like: primary/[email protected]

– Primary: user or service name – Instance: optional for user principals, but required for service principals – Realm: the Kerberos realm

Examples:

– User: [email protected] – Service: imap/[email protected]

如何搭建一个Kerberos KDC?

准备工作:

  1. Configure NTP (time synchronization) across all machines
  2. Configure DNS
  3. Configuration files

    – /etc/krb5.conf – /etc/kadm5.acl

  4. Prepare the Kerberos database – Initialize the Kerberos database – Add administrator’s principal – Start the KDC and KDC administration processes
  5. Create user principals – Note: service principals are created when configuring your other services to support Kerberos authentication

如何搭建一个Kerberos 客户端?

  • Configuration file /etc/krb5.conf You can just copy this from the KDC
  • Service principals
  • PAM (Pluggable Authentication Modules) (重点是这个,我们需要配置登录到服务器,就配置这个) – Needed if you want to be able to authenticate users logging into this machine via Kerberos

参考

  • http://www.logicprobe.org/~octo/pres/pres_kerberos.pdf
  • http://web.mit.edu/kerberos/krb5-1.12/doc/index.html
时间: 2024-10-12 00:31:40

Kerberos是怎么工作的?的相关文章

循序渐进了解Kerberos认证工作原理

循序渐进了解Kerberos协议的工作过程 本文是我在看了这篇英文说明之后的自我总结,还没有写完... https://technet.microsoft.com/zh-cn/library/cc961976.aspx 是总结,不是翻译,所以是我看后按自己的理解写的,如有问题,请指正! Kerberos这个单词是古希腊神话中一只有三个头的狗,这条狗守护在地狱之门外,防止活人闯入.Kerberos协议以此命名,因为协议的重要组成部分也是三个:client, server, KDC(密钥分发中心).

图解Kerberos认证工作原理

本文是我在看了这篇英文说明之后的总结 https://technet.microsoft.com/zh-cn/library/cc961976.aspx 是总结,不是翻译,所以是我看后按自己的理解写的,如有问题,请指正! Kerberos在古希腊神话中是指:一只有三个头的狗.这条狗守护在地狱之门外,防止活人闯入.Kerberos协议以此命名,因为协议的重要组成部分也是三个:client, server, KDC(密钥分发中心). 要了解Kerberos协议的工作过程,先了解不含KDC的简单相互身

Kerberos的基本概念

1.Princal(安全个体):被认证的个体,有一个名字和口令.(客户端或者服务端) 2.KDC(key  distribution center):是一个网络服务,提供ticket和临时会话密钥. 3.Ticket:一个记录,客户用它来向服务器证明自己的身份,包括客户标识,会话密钥,时间戳. 4.AS(Authentication Server):认证服务器 5.TGS(Ticket Grantion Server):许可证服务器 6.TGT:Ticket-grantion Ticket Ke

kerberos工作原理

最近调研了kerberos.看了网上学多关于kerberos的文章,我认为这篇文章比较好. http://blog.csdn.net/gracexu/article/details/1707032 这篇文章对麻省理工的论文进行翻译.该论文以四幕话剧的形式缓缓道来,有点像<研究之美>,通过两个人的头脑风暴讲解kerberos的原理. 一.使用kerberos进行验证的原因 1. 可靠 Hadoop 本身并没有认证功能和创建用户组功能,使用依靠外围的认证系统 高效 2. Kerberos使用对称钥

Kerberos认证协议中TGS服务器可以去掉吗?

Kerberos协议最早是由MIT提出的,是一种身份认证协议. 应用场景:在一个开放环境中,一个工作站用户想通过网络对分布在网络中的各种服务提出请求,那么希望服务器能够只对授权用户提供服务,并能够鉴别服务请求的种类. Kerberos协议的原理:Kerberos通过提供一个集中的授权服务器来负责用户对服务器的认证和服务器对用户的认证,而不是为每个服务器提供详细的认证协议. Kerberos名词: Client:用户. AS:认证服务器,可以通过查询数据库,判断用户的口令,从而为用户颁发票据授权票

Kerberos安装及使用

2. 安装 Kerberos2.1. 环境配置 安装kerberos前,要确保主机名可以被解析. 主机名 内网IP 角色 Vmw201 172.16.18.201 Master KDC Vmw202 172.16.18.202 Kerberos client Vmw203 172.16.18.203 Kerberos client 2.2 Configuring a Kerberos Server2.2.1 确保环境可用 确保所有的clients与servers之间的时间同步以及DNS正确解析2

工作中我自己总结的hbase文档,供初学者学习。看了这个,就不用去查什么文档了。

HBase配置和使用文档 HBase配置和使用文档...................................................................................................... 1 一. HBase原理和结构说明............................................................................................. 2 二. HBase的

多台服务器联合工作之samba+wordpress

首先安装并配置samba 在日常工作中我们可能经常会遇到在Linux和Windows系统之间相互传递文件的事情,像这种情况我们可以使用类似于FileZila这种软件,但是如果我们有很多的Windows系统,那么就需要在所有的Windows系统中安装这种软件.为了解决这个问题,我们可以在Linux系统中安装samba软件.当然这个软件的功能还有很多,要想详细了解可以到百度百科: https://baike.baidu.com/item/samba/455025?fr=aladdin 一.进行软件安

Kerberos 学习笔记

最近在工作中调试vmware  identity manager 产品的SSO功能,有机会深入了解了一下Kerberos的工作原理,随笔记录一下,以作将来回顾之用. 什么是Kerberos,参看wiki- https://en.wikipedia.org/wiki/Kerberos_(protocol).简单说Kerberos是一种网络认证协议,它是通过使用秘钥加密的方式来提供客户端,服务器程序之间的安全认证.例如,微软Windows2000以后的系统认证过程就是基于Kerberos的. 为什么