kerberos是怎样密钥分发的?
发布网友
发布时间:2022-04-20 04:08
我来回答
共1个回答
热心网友
时间:2023-09-11 11:29
Kerberos的认证原理:
Kerberos采用可信赖第三方服务器进行密钥分发和身份确认,包括:
① 对用户认证
② 对应用服务的提供者进行认证。
此外,还可根据用户要求提供客户/服务器间的数据加密与完整性服务。
RFC1510协议文件对V5作了如下说明:
Kerberos提供了在开放型网络中进行身份认证的方法,认证实体可以是用户或用户服务。这种认证不依赖宿主机的操作系统或主机的IP地址,不需要保证网络上所有主机的物理安全性,并且假定数据包在传输中可被随机窃取篡改。
2�Kerberos的主要概念及一个工作
模型
DES:对信息加密的算法。V4只支持这一DES(数据加密标准)算法,V5采用独立的加密模块,可用其它加密算法替换。
主体Principal:用户或服务,具体格式为〈登录名Primary name,实体名lnstance,域名realm〉
许可证Ticket:向Kerberos server认证的凭证。
格式〈Primary name,会话密钥Sessionkey,时间戳Timestamp〉会话密钥Session key:两个主体通信的临时密钥。
KDC(密钥发送中心):包括认证服务器AS(Authenticatin server)
用于用户的初始认证服务。
和TGS(Ticket Granting server)许可证认证服务器。
AS和TGS同驻于一台主机上。
认证符Authenticator.用户创建的令牌。发送给服务器用于证明用户身份
格式〈primary name ,timestamp>
一个Kerberos服务器也称为密钥分发中心KDC,维护着一个数据库.里面保存着所辖域内的用户及服务器的DES密钥。DES密钥基于用户口令而生。用户首次注册时,系统根据用户口令生成密钥。应用服务器向KDC注册也生成密钥,这个密钥既存放在KDC上,也存于该服务器的主机上。
现在假定一用户需要某应用服务器提供服务,工作模型如下:
从此例可以看出,基于Needham-schroeder密钥协议的Kerberos系统保障了网络传输和通信的安全。
但用户的负担十分繁重:用户的目的是得到应用服务器S的服务,却不得不积极地申请许可证!
在KerberosV4版里,为防止“重放”攻击,nonce由时间戳实现,这就带来了时间同步问题。即使利用网络时间协议(Network Time Protocol)或国际标准时间(Coordinated universal time)能在一定程度上解决时间同步问题,用户需要承担的责任也令人忍受。
Kerberos V5 版允许nonce可以是一个数字序列,但要求它唯一。由于服务器无法保证不同用户的nonce不冲突,偶然的冲突可能将合法用户的服务器申请当作重放攻击而拒之门外。
简言之,从没有网络安全知识的用户角度来看,Kerberos以加大用户参与安全保证的力度(而他们并不具备这方面的知识更没有耐心)来保障通信的安全,这种做法并不可行。