本章知识点:

  • Kerberos体系
    • 理解单点登录概念及其特点
    • 了解Kerberos体系架构及其基本认证过程
  • 了解AAA的概念及radius、tacacs+协议特点

一、什么是Kerberos协议

  1. 目前使用最广泛的单点登录协议
  2. 历史:1985年美国麻省理工学院开发,用于通信实体间的身份认证;
    1994年V5版本作为internet标准草案公布
  3. 特性:
    1. 基于对称密码算法为用户提供安全的单点登录服务
    2. 需要时钟同步的环境
    3. 包含可信第三方认证服务
  4. 优点:
    1. 避免本地保存密码及会话中传输密码
    2. 客户端和服务器可实现互认(双向认证)

二、什么是单点登录

  1. 单点登录概念(SSO,single sign-on)
    1. 单一身份认证身份信息集中管理一次认证就可以访问授权的所有网络资源
    2. 单点登录实质是安全凭证在多个应用系统之间的传递或共享
  2. 单点登录的安全优势
    1. 方便用户
    2. 方便管理员
    3. 简化应用系统开发

三、Kerberos协议体系构成

  1. 运行环境构成
    1. 密钥分发中心(KDC:Key Distribution Center
      1. 系统核心,负责维护所有用户的账户西溪难
      2. AS和TGS两个部分构成
        1. 认证服务器——AS(authentication server)
        2. 票据授权服务器——TGS(ticket granting server,也称会话授权服务
    2. 应用服务器
    3. 客户端
  2. 其他概念
    1. 票据许可票据(TGT)
    2. 服务许可票据(SGT)
  3. Kerberos认证过程-三次通信
    1. 认证过程由三个阶段组成,例如需要访问OA系统
      1. 第一次:获得票据许可票据(TGT)
      2. 第二次:获得服务许可票据(SGT)
      3. 第三次:获得服务

image.png

  1. Kerberos系统架构和通信过程

    1. 符号名词定义: | C(client) | 客户端 | | —- | —- | | S(server) | 服务器 | | K | 密钥 | | T | 凭据 | | N | 一次性随机数 | | KDC | 密钥分配中心 |

    2. 第一次:获得TGT(票据许可票据/会话许可票据)

      1. 客户机向AS(认证服务器)发送访问TGS(票据授权服务器)的请求
        1. 请求信息:用户名、IP地址、时间戳、随机数等,表示为:C->AS:C,TGS,N
        2. AS进行验证用户(只验证用户是否存在)
      2. AS给予应答
        1. AS验证用户后,随机生成一个密钥KC,TGS
        2. 生成TGT(包含TGS会话密钥、客户机、开始和失效时间等),使用TGS的密钥进行加密,反馈给客户机
        3. 将会话密钥KC,TGS和随机数N,使用客户机的密码KC加密,反馈给客户机

image.png

  1. 第二次:获得SGT(服务许可票据)
    1. 客户机向TGS(票据授权服务器)发送访问应用服务请求
      1. 请求信息使用TGS会话密钥加密
      2. 包含访问应用服务名称(HTTP)
    2. TGS验证认证信息(包含用户名等)后,给予应答
      1. SGT(服务许可票据)
      2. 客户机与应用服务器之间的会话密钥

image.png

  1. 第三次:获得服务
    1. 客户机向应用服务器请求服务
      1. SGT(服务许可票据,使用http服务器密码加密)
      2. 认证信息
    2. 应用服务器(验证认证信息)
      1. 提供服务器验证信息(如果需要验证服务器)

image.png

  1. 总结:(上面看不懂的请移步这里)
    1. 第一次:客户机需要向AS请求访问TGS的密钥AS接收到客户机的请求后,验证用户是否存在
      验证通过后返回TGT+K**c,tgs**TGS的会话密钥
    2. 第二次:客户机TGT+K**c,tgs**发给TGS进行验证TGS将TGT+K**c,tgs**进行解密
      验证通过后生成请求服务许可票据SGT;
      随机生成客户端访问服务器的密钥K**c,s,以及一次性随机数N,然后把N和Kc,s使用Kc,tgs加密后,与SGT一起发送给客户端(SGT+Kc,s)**
    3. 第三次:客户机把SGT和发给K**c,s**服务器,服务器验证通过后允许访问服务。

四、Kerberos认证协议的特点

  1. 优点
    1. 单点登录,只要用户拿到了TGT并且该TGT没有过期,就可以使用该TGT通过TGS,完成到任何一个服务器的认证而不必重新输入密码。
    2. 与授权机制相结合
    3. 支持双向的身份认证
    4. 通过交换“跨域密钥”实现分布式网络环境下的认证
  2. 缺点
    1. AS和TGS是集中式管理,容易形成瓶颈,系统的性能和安全,也严重依赖于AS和TGS本身的性能和安全
    2. 时钟同步问题
    3. 身份认证采用的是对称加密机制,随用户数量增加,密钥管理复杂

一、