C和C++安全编码(原书第2版)
上QQ阅读APP看书,第一时间看更新

2.7.2 Kerberos

Kerberos是一个网络验证协议,它利用密钥加密算法为客户端/服务器应用提供强验证机制。麻省理工学院(Massachusetts Institute of Technology,MIT)提供了该协议的一个免费实现。很多商业产品也提供了Kerberos实现 [1]

在MIT的Kerberos5的源代码发布版中,与Kerberos4兼容的代码包含一个漏洞。在krb_rd_req()函数中存在一个缓冲区溢出漏洞,所有使用Kerberos4进行鉴别的Kerberos鉴别服务都会用到这个函数。该漏洞在以下材料中有深入的描述:

·“Buffer Overrun Vulnerabilities in Kerberos”(Kerberos 中的缓冲区溢出漏洞):http://web.mit.edu/kerberos/www/advisories/krb4buf.txt

·CERT 公告CA-2000-06:“Multiple Buffer Overflows in Kerberos Authenticated Services”(Kerberos验证服务中的多个缓冲区溢出漏洞)www.cert.org/advisories/CA-2000-06.html

攻击者可以利用该漏洞通过网络获得root访问权限。该漏洞之所以值得注意,不仅仅因为其影响和严重性,更是因为它象征着所有司空见惯的安全漏洞都出现在那些致力于改善系统安全性的产品中。

[1] 参见http://web.mit.edu/kerberos/www/。