Kerberos原理
Kerberos 服务是单点登录系统,这意味着您对于每个会话只需向服务进行一次自我验证,即可自动保护该会话过程中所有后续事务的安全。服务对您进行验证后,即无需在每次使用基于 Kerberos 的服务时进行验证。因此,无需在每次使用这些服务时都在网络上发送口令(增强了安全性)。MIT写了一段故事型的对话,比较生动得表述了Kerberos协议的工作原理:
Athena和欧里庇得斯关于地狱之门守护者的对话。简而言之,kerbores V5的工作原理如下:
Kerbores中有三种角色:
KDC:负责分发密钥的密钥分配中心
Client:需要使用kerbores服务的客户端
Service:提供具体服务的服务端
其中,Client需要和KDC和Service都进行通信。协议授权流程分两个部分:
(1) 获取原始票据
首先,Client向KDC发送自己的身份信息,KDC从授予票据服务(Ticket Granting Service)得到可用的票据(ticket-granting ticket),并用协议开始前KDC与Client之间的密钥将票据加密回复给client,client收到KDC回复的加密票据后利用与client先前协议的密钥将票据解密,从而获得票据,此步骤主要是允许client进行Kerberos的验证,是进行访问服务的先决条件。
(2) 获取服务票据以及访问服务
client利用之前获得的票据向KDC请求服务票据,从而通过服务的身份验证。获取服务票据以及访问服务总共有如下四步:
①. client将之前获得的票据和要请求的服务信息发送给KDC,KDC中的授予票据服务将client和service之间生成一个会话密钥(Session Key)用于服务器与client的身份验证。然后KDC将这个会话密钥和用户名,用户地址(IP),服务名,有效期,时间戳一起包装成一个票据(这张票据用于service对client的身份验证)通过client转发给service。
②. 为了让票据对client保密,所以KDC用协议开始之前KDC与服务端之间的密钥将票据加密后再发给client,同时为了让client与service之间共享那个会话密钥,KDC用client与它之间的密钥将会话密钥加密返回给client
③. 为了完成票据的传递,client将刚才收到的票据转发到service,由于client不知道KDC与service的密钥,所以它无法修改票据的信息,同时client将收到的会话密钥解压出来,然后将自己的用户名,用户地址(IP)打包成验证包用会话密钥加密也发给service
④. Service收到票据后利用它与KDC之
Kerberos 服务是单点登录系统,这意味着您对于每个会话只需向服务进行一次自我验证,即可自动保护该会话过程中所有后续事务的安全。服务对您进行验证后,即无需在每次使用基于 Kerberos 的服务时进行验证。因此,无需在每次使用这些服务时都在网络上发送口令(增强了安全性)。MIT写了一段故事型的对话,比较生动得表述了Kerberos协议的工作原理:
Athena和欧里庇得斯关于地狱之门守护者的对话。简而言之,kerbores V5的工作原理如下:
Kerbores中有三种角色:
KDC:负责分发密钥的密钥分配中心
Client:需要使用kerbores服务的客户端
Service:提供具体服务的服务端
其中,Client需要和KDC和Service都进行通信。协议授权流程分两个部分:
(1) 获取原始票据
首先,Client向KDC发送自己的身份信息,KDC从授予票据服务(Ticket Granting Service)得到可用的票据(ticket-granting ticket),并用协议开始前KDC与Client之间的密钥将票据加密回复给client,client收到KDC回复的加密票据后利用与client先前协议的密钥将票据解密,从而获得票据,此步骤主要是允许client进行Kerberos的验证,是进行访问服务的先决条件。
(2) 获取服务票据以及访问服务
client利用之前获得的票据向KDC请求服务票据,从而通过服务的身份验证。获取服务票据以及访问服务总共有如下四步:
①. client将之前获得的票据和要请求的服务信息发送给KDC,KDC中的授予票据服务将client和service之间生成一个会话密钥(Session Key)用于服务器与client的身份验证。然后KDC将这个会话密钥和用户名,用户地址(IP),服务名,有效期,时间戳一起包装成一个票据(这张票据用于service对client的身份验证)通过client转发给service。
②. 为了让票据对client保密,所以KDC用协议开始之前KDC与服务端之间的密钥将票据加密后再发给client,同时为了让client与service之间共享那个会话密钥,KDC用client与它之间的密钥将会话密钥加密返回给client
③. 为了完成票据的传递,client将刚才收到的票据转发到service,由于client不知道KDC与service的密钥,所以它无法修改票据的信息,同时client将收到的会话密钥解压出来,然后将自己的用户名,用户地址(IP)打包成验证包用会话密钥加密也发给service
④. Service收到票据后利用它与KDC之