一文搞懂Kerberos

简介: 一文搞懂Kerberos


Kerberos一词来源于古希腊神话中的Cerberus——守护地狱之门的三头犬,Kerberos是为TCP/IP 网络设计的可信第三方鉴别协议,最初是在麻省理工学院(MIT)为Athena 项目而开发的。Kerberos服务起着可信仲裁者的作用,可提供安全的网络鉴别,允许个人访问网络中不同的机器。

1. Kerberos 模型

Kerberos模型基于Needham-Schroeder的可信第三方协议,采用DES加密(也可用其他算法替代),它与网络上的每个实体分别共享一个不同的秘密密钥,知道该秘密密钥就是身份的证明。

首先以吃饭为例,阐述Client与Kerbros、TGS及Server之间的关系如下:

Kerberos有一个所有客户和秘密密钥的数据库,由于Kerberos知道每个人的秘密密钥,所以它能产生一个实体证实另一个实体身份的消息。Kerberos还能产生会话密钥,只供一个客户机和一个服务器(或两个客户机)使用。会话密钥用来加密双方间的通信消息,通信完毕,即销毁会话密钥。

Kerberos 协议如下:

  • 客户从Kerberos 请求一张票据许可票据(TGT,Ticket Granting Ticket)作为票据许可服务(TGS,Ticket-Granting Service),该票据用用户的秘密密钥加密后发送给用户;
  • 为了使用特定的服务器,客户需要从TGS中请求一张票据,TGS 将票据发回给客户;
  • 客户将此票据提交给服务器和鉴别器,如果客户的身份没有问题,服务器就会让客户访问该服务。

(1) 请求票据许可票据

客户到Kerberos:c cc,tgs。

(2)票据许可票据

Kerberos到客户:{ K c , t g s } K c \{K_{c,tgs}\}K_c{Kc,tgs}Kc{ T c , t g s } K t g s \{T_{c,tgs}\}K_{tgs}{Tc,tgs}Ktgs

(3)请求服务器票据

客户到TGS:{ A c , s } K c , t g s \{A_{c,s}\}K_{c,tgs}{Ac,s}Kc,tgs{ T c , t g s } K t g s \{T_{c,tgs}\}K_{tgs}{Tc,tgs}Ktgs

(4)服务器票据

TGS到客户:{ K c , s } K c , t g s \{K_{c,s}\}K_{c,tgs}{Kc,s}Kc,tgs{ T c , s } K s \{T_{c,s}\}K_s{Tc,s}Ks

(5)请求服务

客户到服务器:{ A c , s } K c , s \{A_{c,s}\}K_{c,s}{Ac,s}Kc,s{ T c , s } K s \{T_{c,s}\}K_s{Tc,s}Ks,

相关缩写表示如下

c cc 客户(机)
s ss 服务器
a aa 客户的网络地址
v vv 票据的有效起止时间
t tt 时间标记
K x K_xKx x xx的秘密密钥
K x , y K_{x,y}Kx,y x xxy yy的会话密钥
{ m } K x \{m\}K_x{m}Kx x xx的秘密密钥加密的m mm
T x , y T_{x,y}Tx,y 使用y yyx xx的票据
A x , y A_{x,y}Ax,y x xxy yy的鉴别码

2. 凭证

Kerberos使用两类凭证:票据(ticket)和鉴别码(authenticator)。

(1)票据

票据用于秘密地向服务器发送持有票据用户的身份识别,票据中还包括有一些信息,服务器能够用这些信息来确认使用票据的客户与发给票据的客户是同一个客户。

Kerberos票据的格式如下:T c , s = s , { c , a , v , K c , s } K s T_{c,s} = s,\{c,a,v,K_{c,s}\} K_sTc,s=s,{c,a,v,Kc,s}Ks对单个的服务器和客户而言,票据很有用。它包括客户名、服务器名、网络地址、时间标记和会话密钥。这些信息用服务器的秘密密钥加密。

客户一旦获得该票据,他便可以多次使用它来访问服务器,直到票据过期。客户无法解密票据(她不知道服务器的秘密密钥),但她可以以其加密的形式呈递给服务器。票据在网络上传送时,任何在网上窃听的人都无法阅读或修改它。

(2)鉴别码

Kerberos鉴别码的格式如下:A c , s = { c , t , k e y } K c , s A_{c,s}=\{c,t,key\}K_{c,s}Ac,s={c,t,key}Kc,s客户在每次需要使用服务器上的服务时,都要产生一个鉴别码。该鉴别码包括用户名、时间际记和一个可选的附加会话密钥,它们用服务器与客户共享的会话密钥加密。与票据不同的是,鉴别码只能使用一次。客户可以根据需要产生鉴别码(它知道共享的秘密密钥)。

鉴别码可达到两个目的:

  • 首先,它包括一些以会话密钥加密的明文,这表明鉴别码的发送者也知道密钥。
  • 更重要的是,加封的明文包括时间标记,即使记录票据和鉴别码的窃听者无法重放它们。

3. 协议

(1)初始票据获取

  • 客户给Kerberos 鉴别服务器发送一个消息,该消息包括客户名c cc及其TGS服务器名。实际中,客户一般只是将其名字输人系统,注册程序发送该请求。
  • Kerberos鉴别服务器在其数据库中查找客户。如果客户在数据库中,Kerberos便产生一个在客户和TGS之间使用的会话密钥({ K c , t g s } \{K_{c,tgs}\}{Kc,tgs}),这叫做票据许可票据。
  • Kerberos 利用客户的秘密密钥加密会话密钥{ K c , t g s } K c \{K_{c,tgs}\}K_c{Kc,tgs}Kc。然后为客户产生一个TGT向TGS证她的身份,并用TGS的秘密密钥对其加密{ T c , t g s } K t g s \{T_{c,tgs}\}K_{tgs}{Tc,tgs}Ktgs。鉴别服务器将这两种加密的消息发送给客户。
  • 客户解密第一个消息,并恢复会话密钥。客户现在可在TGT的有效期内向TGS证实她的身份。

(2)服务器票据的获取

  • 客户必须为他想使用的每一项业务获得不同的票据,TGS给每个服务器分配票据。客户向TGS发送一个请求。
  • TGS接收到请求后,用自己的秘密密钥解密此TGT,然后再用TGT中的会话密钥解密密鉴别码。
  • TGS比较鉴别码中的信息与票据中的信息、客户的网络地址与发送的求地址,以及时间标记与当前时间。如果每一项都匹配,便允许处理该请求。
  • TGS通过将客户有效的票据返回给服务器的方式来响应一个有效请求{ T c , s } K s \{T_{c,s}\}K_s{Tc,s}Ks。TGS 还为客户和服务器产生一个新的会话密钥{ K c , s } \{K_{c,s}\}{Kc,s},此密钥由客户和TGS共享的会话密钥加密{ K c , s } K c , t g s \{K_{c,s}\}K_{c,tgs}{Kc,s}Kc,tgs。然后将这两种消息返回给客户。
  • 客户解密消息,同时得到会话密钥{ K c , s } \{K_{c,s}\}{Kc,s}

(3)服务请求

  • 客户向服务器鉴别自己的身份。客户产生一个鉴别码,鉴别码由客户名、客户网络地址和时间标记组成,用TGS为客户和服务器产生的会话密钥加密得到{ A c , s } K c , s \{A_{c,s}\}K_{c,s}{Ac,s}Kc,s
  • 客户的服务请求由从Kerberos接收到的票据{ T c , s } K s \{T_{c,s}\}K_s{Tc,s}Ks和加密的鉴别码{ A c , s } K c , s \{A_{c,s}\}K_{c,s}{Ac,s}Kc,s组成。
  • 服务器解密并检查票据和鉴别码,以及客户地址和时间标记。需要相互鉴别的应用中,服务器给客户返回一个包含时间标记的消息,该消息由会话密钥加密。这证明服务器知道客户的秘密密钥而且能解密票据和鉴别码。
  • 客户和服务器可以用共享的密钥加密信息。
相关文章
|
7天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1922 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
5天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
652 111
|
15天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2556 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
7天前
|
人工智能 弹性计算 数据库
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
2026年阿里云构建了覆盖全用户的七类优惠券,本文逐一拆解了每类优惠券的核心规则、适用人群与使用技巧:大促限定的阶梯满减券分个人、企业双通道,最高可减800元;学生专属300元无门槛券支持全品类通用;按量付费用户可参与消费达标返券形成循环优惠;新用户有低门槛专享满减券尝鲜;老用户可领取系统自动发放的随机福利券;中大型企业迁云可申请最高100万元的专项补贴;云产品通用券还能在活动价基础上实现折上折。不同身份、不同采购场景的用户均可通过精准匹配对应优惠券,最大化享受优惠力度。
462 110
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
|
13天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
1624 2
|
15天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1428 2
|
17天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
1500 55
|
2天前
Qoder 一周年 × Qwen3.8-Max 正式上线,多重好礼限时领
8月3日,Qwen3.8-Max 正式上线Qoder,迎来Qoder一周年。新老用户可领800次免费调用,下单再赠2000次;夜间(22:00–08:00)调用5折;邀请好友双方得积分与调用额度。
250 0