Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。

Kerberos协议分为两个部分:

Client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT(ticket-granting ticket), 并用协议开始前Client与KDC之间的密钥将TGT加密回复给Client。此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。(此过程避免了Client直接向KDC发送密码,以求通过验证的不安全方式)

Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别。

Kerberos协议的重点在于第二部分,简介如下:

Client将之前获得TGT和要请求的服务信息(服务名等)发送给KDC,KDC中的Ticket Granting Service将为Client和Service之间生成一个Session Key用于Service对Client的身份鉴别。然后KDC将这个Session Key和用户名,用户地址(IP),服务名,有效期, 时间戳一起包装成一个Ticket(这些信息最终用于Service对Client的身份鉴别)发送给Service, 不过Kerberos协议并没有直接将Ticket发送给Service,而是通过Client转发给Service.

此时KDC将刚才的Ticket转发给Client。由于这个Ticket是要给Service的,不能让Client看到,所以KDC用协议开始前KDC与Service之间的密钥将Ticket加密后再发送给Client。同时为了让Client和Service之间共享那个秘密(KDC在第一步为它们创建的Session Key), KDC用Client与它之间的密钥将Session Key加密随加密的Ticket一起返回给Client。

为了完成Ticket的传递,Client将刚才收到的Ticket转发到Service. 由于Client不知道KDC与Service之间的密钥,所以它无法算改Ticket中的信息。同时Client将收到的Session Key解密出来,然后将自己的用户名,用户地址(IP)打包成Authenticator用Session Key加密也发送给Service。

Service 收到Ticket后利用它与KDC之间的密钥将Ticket中的信息解密出来,从而获得Session Key和用户名,用户地址(IP),服务名,有效期。然后再用Session Key将Authenticator解密从而获得用户名,用户地址(IP)将其与之前Ticket中解密出来的用户名,用户地址(IP)做比较从而验证Client的身份。

如果Service有返回结果,将其返回给Client。

Kerberos协议主要做了两件事

Ticket的安全传递。

Session Key的安全发布。再加上时间戳的使用就很大程度上的保证了用户鉴别的安全性。并且利用Session Key,在通过鉴别之后Client和Service之间传递的消息也可以获得Confidentiality(机密性), Integrity(完整性)的保证。不过由于没有使用非对称密钥自然也就无法具有抗否认性,这也限制了它的应用。不过相对而言它比X.509 PKI的身份鉴别方式实施起来要简单多了。

Kerberos简介:http://wenku.baidu.com/link?url=IYeplxob8jJo7LtZzIV60v7aTsDI1VhzdTca91vCHgKm0BahlC7V6J_kh2cCi7cjORYv06XZyAo4Y_d5PULiclCB37n8uKZsSSyCqrrANoi

Kerberos统一认证实验配置:http://blog.chinaunix.net/uid-93477-id-76248.html

安全知识:关于Kerberos认证原理的对话:http://biz.chinabyte.com/189/2038189.shtml

Krb5安装于配置:http://wenku.baidu.com/link?url=zDdRXWn1okG4uKPLw1HcOQlcnwKW13jMSNgJYL3P25ia8FXn6hEHeucwDmnQ2bD7jcod0l9CgN-il3kyMV1NFw8dQXnPCGTqFeEmImSQ4u3

krb5安装包 linux_Linux:krb5相关推荐

  1. krb5安装包 linux_【RedHat Linux】kerberos 服务端配置

    1. 安装软件包 # yum install krb5-server krb5-libs krb5-workstation 2. 修改配置文件 kdc.conf , krb5.conf # vi /v ...

  2. krb5安装包 linux_【RedHat Linux】kerberos 客户端配置

    1. 安装软件 yum install krb5-workstation krb5-libs 2. 配置文件 krb5.conf, 启动服务 复制KDC的配置即可 3. 验证 kinit caya/c ...

  3. 禅道Docker安装包发布

    禅道Docker安装包发布 大家好, 禅道Docker安装包发布. 一.下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https: ...

  4. 解决 win10 pycurl安装出错 Command python setup.py egg_info failed with error code 10 编译安装包 安装万金油...

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yexiaohhjk/article/d ...

  5. Ubuntu 系统安装.deb安装包

    ubuntu 系统使用dpkg 的方法安装 .deb 安装包 比如在ubuntu 系统下 下载了一个 wps 的 .deb 安装包 打开终端 输入 :sudo dpkg -i .deb 安装包的名字 ...

  6. 如何下载flash离线安装包

    如何下载flash离线安装包 CreateTime--2018年4月14日16:02:13 Author:Marydon 1.下载地址 UpdateTime--2018年5月13日16点55分 ppa ...

  7. Ubuntu 中的 dpkg 安装deb、删除deb、显示已安装包列表、解压deb文件、显示deb包内文件列表、配置deb软件包

    1. dpkg 简介 dpkg 即 package manager for Debian ,是 Debian 和基于 Debian 的系统中一个主要的包管理工具,可以用来安装.构建.卸载.管理 deb ...

  8. python安装包_迈出Python学习第一步:Python开发环境的下载与安装

    所谓"磨刀不误砍柴工"."工欲善其事,必先利其器",都在告诉我们一个道理:要做好一个事情,事先做好充分的准备工作是非常重要的.所以在我们正式学习用Python编 ...

  9. 【亲测可用】用Electron和electron-builder打包Vue项目为exe可执行文件安装包(不推荐,个人觉得没有VNISEdit和NW好用,而且有些配置文件还挺脑残!)

    官方帮助文档http://www.electronjs.org/docs 有时候运行安装依赖包会很慢建议在(c)npm config edit之后弹出的.(c)npmrc记事本里面加入 electro ...

  10. [Linux] 029 脚本安装包

    1. 脚本安装包 脚本安装包并不是独立的软件包类型,常见安装的是源码包 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装 非常类似于 Windows 下软件的安装方式 ...

最新文章

  1. 软件架构之美在于简单、好用、稳定、功能定位明确、代码简洁、通俗易懂
  2. python json.loads()中文问题-python中文编码json中文输出问题
  3. Caffe2——cifar10数据集创建lmdb或leveldb类型的数据
  4. win7下搭建nginx+php的开发环境
  5. RHEL修改最大文件打开数,关于epoll socket Too many open files问题的解决
  6. Extjs TextField扩展
  7. 原理简介_消息通信的利器MQTT协议简介及协议原理
  8. 如何在Ubuntu上安装GCC编译器
  9. 【转载保存】WebCollector 2.x 入门教程
  10. 浙大PAT甲级1019. General Palindromic Number (20)
  11. Continue(Java)
  12. 手把手教学暴力破解WIFI密码(仅供学习交流)
  13. Python第三课小节
  14. html-css10 过渡/米兔练习/动画/动画练习/小球动画/平移和小米移动图
  15. Cadence Allegro 如何添加Artwork光绘底片文件?
  16. 计算机网络技术的发展趋势,计算机网络技术发展趋势(原稿)
  17. C# Minitab Sigma 无偏常量
  18. 如何翻译DeepFaceLab(DeepFake)的交互式合成器
  19. \t\tsizeof(char*)几个字节?
  20. 用webbroswer控件自动点击确定按钮

热门文章

  1. (Markdown图片居中)CSDN 验证通过
  2. Linux操作系统中pkg-config用法示例
  3. 如何防止JAVA反射对单例类的攻击?
  4. 读《突然就走到了西藏》 | 保持呼吸,继续向前
  5. js Indexof的用法
  6. [推荐]WebService开发知识介绍
  7. 英语六级修炼记录(不定时更新)
  8. ProcessOn画图
  9. 赛尔译文 | 基础模型的机遇与风险 (四)
  10. 她是北大“一个人的毕业照”主人公,2010 级古生物专业独苗,十年后转行搞起了 NLP...