Kerberos提供一种较好的解决方案,它是由MIT发明的,Kerberos建立了一个安全的、可信任的密钥分发中心(KDC, Key Distribution Center)。
Kerberos是一种认证标准,通过使用一台中央服务器来提供“票据”,供其他在网络上提供资源的服务器进行识别。
密码学中的密钥分发中心(KDC)是密钥体系的一部分,旨在减少密钥体制所固有的交换密钥时所面临的风险。
KDC应用在这样的系统中:系统内一些用户能够使用某些服务,而其他人不能使用那些服务。
(linux)定义: key distribution center (KDC): 在网络会话和应用程序的使用中为分配管理公钥与私钥提供认证的系统.
(windows)Key Distribution Center: Key Distribution Center (KDC) 作为一个域服务来使用.它使用Active Directory作为数据库,使用GlobalCatalog传输数据到其他的域。http://msdn.microsoft.com/en-us/library/windows/desktop/aa378170(v=vs.85).aspx
KDC在kerberos中通常提供两种服务:
1.Authentication Service (AS):认证服务
2.Ticket-Granting Service (TGS):授予票据服务
认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。证书的构成为: 1) 服务器 “ticket” ; 2) 一个临时加密密钥(又称为会话密钥 “session key”) 。客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。
即:用户A要想申请与用户B对话,他必须按照以下几个步骤进行:
①、A向KDC申请与B对话;
②、KDC用KDC与B之间的公钥加密随机生成一个标签;
③、KDC将这个标签再用KDC与A之间的公钥加密并传给A;
④、A用私钥解密得到标签;
⑤、A将这个标签传给B
⑥、B用私钥解开标签,从而确认A、B之间的信任关系