Kerberos票据

wen IT资讯 32

本文目录导读:

Kerberos票据

  1. 核心概念:两种关键票据
  2. 票据的结构与内容
  3. 工作流程:三步舞

Kerberos票据是Kerberos认证协议中的核心凭证,用于在非安全网络中安全地证明用户或服务的身份,它本质上是一个加密的数据包,包含了用户身份、网络地址、有效期等信息。

Kerberos协议主要使用两种票据:票据授权票据服务票据


核心概念:两种关键票据

可以把Kerberos想象成一个安全的音乐会或酒店系统:

  1. 票据授权票据 (Ticket Granting Ticket, TGT)

    • 类比:相当于酒店房卡VIP通行证,它证明你是一个经过验证的合法客户,但本身不能直接开门。
    • 作用:用于向票据授权服务证明你的身份,以便申请访问特定服务的票据。
    • 生命周期:通常有效期较短(如8-24小时),由密钥分发中心的认证服务颁发。
    • 获取方式:用户在登录时,通过输入密码(经哈希处理)向KDC请求TGT,KDC验证密码正确后,会颁发一个TGT(用KDC自己的密钥加密,用户无法解开,只能整体使用)。
  2. 服务票据 (Service Ticket, ST)

    • 类比具体某个酒店的房门钥匙,它只能打开对应的一扇门。
    • 作用:用于直接向某个特定服务(如文件服务器、邮件服务器)证明你有权访问它。
    • 生命周期:通常比TGT更短(如几分钟到几小时),由票据授权服务颁发。
    • 获取方式:用户持有TGT后,当需要访问某个服务时,将TGT发送给KDC的票据授权服务,TGS验证TGT有效后,生成一个ST,并用目标服务的密钥加密,然后发送给用户,用户将这个ST出示给目标服务。

票据的结构与内容

一个典型的Kerberos票据(无论是TGT还是ST)包含以下两部分:

票据主体

这部分是被目标服务器(或KDC自身)的密钥加密的,只有目标才能解密查看,内容包括:

  • 会话密钥 (Session Key):一个临时生成的、只有客户端和服务器知道的对称密钥,用于后续通信加密。
  • 客户端名称 (Client Name):认证的用户或服务名。
  • 客户端网络地址 (Client Network Address):客户端的IP地址(可选)。
  • 票据有效期 (Validity Period):开始时间和结束时间。
  • 授权数据 (Authorization Data):包含用户的组成员信息、权限等。

票据头

这部分是未加密的,用于网络传输,包含:

  • 目标服务器名称 (Server Name):票据是发给谁的(fileserver.domain.com)。
  • 时间戳:用于防止重放攻击。

工作流程:三步舞

一个简单的客户端访问服务器的完整流程如下(省略了KDC内部的AS和TGS细节):

  1. 身份验证票:客户端向KDC发送请求,KDC验证客户端身份后,返回一个TGT(用KDC密钥加密)和一个会话密钥A(用客户端密码加密)。
  2. 申请服务票:客户端持有TGT,向KDC请求访问服务A,KDC验证TGT有效后,返回一个服务票据ST(用服务A的密钥加密)和会话密钥B(用会话密钥A加密)。
  3. 访问服务:客户端将ST一个用会话密钥B加密的认证信息(包含时间戳)发送给服务A,服务A用自己的密钥解密ST,获得会话密钥B,然后用它解密客户端的认证信息,核对时间戳,验证通过后,服务A相信客户端就是它声称的用户,允许访问。
特性 票据授权票据 服务票据
颁发者 认证服务 票据授权服务
用途 申请服务票据 访问特定服务
加密密钥 KDC自身的密钥 目标服务的密钥
生命周期 较长(几小时到一天) 较短(几分钟到几小时)
安全凭证 类似通行证 类似房门钥匙

关键点:

  • 密码不传输:密码验证只发生在第一步,之后的通信都依靠票据和会话密钥。
  • 单点登录:一旦获得TGT,就可以用它请求任意服务的ST,无需反复输入密码。
  • 防重放:票据中的时间戳和序列号机制确保了即使票据被截获,也无法重放使用。
  • 信任模型:KDC是核心信任点,因为它持有所有用户和服务的密钥。

抱歉,评论功能暂时关闭!