初学kerberos
https://www.cnblogs.com/swordfall/p/12009716.html
https://cloud.tencent.com/developer/article/2227940
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取修改和插入数据。在以上情况下,Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的
kerberos协议中也存在三个角色,分别是
客户端A(client):发送请求的一方
服务端B(Server):接收请求的一方
密钥分发中心C(Key Distribution Center,而密钥分发中心一般又分为两部分,分别是:
AS(Authentication Server)认证服务器,专门用来认证客户端的身份并发放客户用于访问TGS的TGT(票据授予票据)
TGS (Ticket Granting Ticket)票据授予服务器,用来发放整个认证过程以及客户端访问服务端时所需的服务授予票据(Ticket)
张三想访问web系统中的某些服务,需要先向kdc中的as传递身份信息,AS确认信息后返回TGT,张三拿着TGT再向TGS获取ST,不同的服务需要不同的ST,每访问一个服务都要获取对应的ST
伪造TGT叫黄金票据
伪造ST叫白银票据
用户提供信息给KDC,KDC返回TGT,其中一部分是用用户的密钥加密的,一部分使用KDC的密钥加密的,用户是可以解开上一部分的
用户收到后,会对TGT重新封装,先用自己的密钥解开能部分信息,取出CT_SK,然后再重新加密,并把需要访问的服务名封装在一起,形成新的TGT,然后传递给KDC,KDC返回ST
TGS(ticket granting service)作用:为client生成某个服务的tick
TGT(ticket-granting ticket)作用:用于获取ticket的票据的票据
KRBGTG:密钥分发中心(KDC)的账户名
黄金票据:除了krbgtg无法伪造,其它信息都可以伪造,我们只需要获得krbgtg即可伪造黄金票据
条件