大部分人都不会意识到,他们登陆到电脑的时候会使用Kerberos。
Kerberos是目前应用最广泛的认证方法之一,它是20世纪80年代在Athena项目的领导的MTT开发的。计算机科学家兼Kerberos专家Brian Tung在他的“Kerberos的详细应用指南”中说,它的目的是使用户和服务互相认证身份。
Kerberos的名字来源于希腊神话中地狱门口的三个头的狗。Kerberos基于Needham-Schroeder协议,依靠可信赖的第三方或者关键的分布中心分为两个独立的部分:一个认证服务器和票据准入服务。这项合作计划开始于1938年,合作者有马萨诸塞州科技研究院(Massachusetts Institute of Technology ,MIT)、IBM和Digital Equipment公司。Kerberos在1987年秋天问世。
这个协议确实存在缺陷。
关于这个题目,最值得关注的论文是专家Steven M. Bellovin 和 Michael Merritt合著的“Kerberos认证系统的局限性”,这篇文章发表于20世纪90年代早期,那时,两人都在AT&T Bell实验室工作。
其中一个缺点是Kerberos需要一个持续可用的中央服务器。没有Kerberos服务器,就不能登录计算机。这个情况可以通过使用Kerberos多重服务器缓解。这项技术对时间设置非常敏感,如果和主机的时间不同步,就不能正常工作。默认配置要求时间误差不超过10分钟。
同时,协议管理不标准,因服务器而不同。因为所有用户的秘密关键都存储在中央服务器上,服务器的损坏将导致所有用户的秘密关键都会遭到破坏。
MIT Kerberos Consortium的首席技术官,Sam Hartman承认这些缺陷,他说:“除非使用智能卡,不然,一旦本地的机器遭到攻击并且恶意软件获得了密码,Kerberos就会很脆弱。”这种情况的解决方法是把密码改造成和智能卡一样。他说,另外一种解决方案是,使Kerberos成为造作系统中可信任的组件之一,但是相对于其他组件,又比较独立,这一点微软在一点程度上已经做到了。
资深安全专家Dan Geer是 Athena项目中开发Kerberos的关键人物,他说,尽管有缺陷,Kerberos的发明者仍然可以为它自傲。他是在1985年参与进来的,Kerberos开发的大部分是在他的监督之下展开的。
Geer说:“Kerberos的优势之一是它名副其实。了解执行是否正确非常重要,它做到了。”