我已经certificateUNIX / AD Kerberosvalidation在没有keytab文件的情况下工作,所以我想知道我是否应该担心它(因为我需要为每个服务器提供一个单独的keytab,以便提供ADvalidation服务)。
在本地身份validation期间,本地密钥表的主要用途是防止KDC欺骗。
Kerberoslogin身份validation通过从Kerberos KDC请求TGT,然后使用由本地input的密码形成的密钥对其进行解密来工作。 如果解密工作,login被认为是成功的(如果没有密钥表)。 这种方法的问题在于攻击者可能同时利用攻击者select的密码encryption的TGT欺骗KDC应答。 如果系统在真实回复之前得到回复,它将用攻击者的密码高兴地解密,然后考虑authentication成功。 考虑到Kerberos是一个UDP协议,如果在同一个本地networking上有一个系统,这很容易实现。
如果存在本地密钥表,则login过程需要多一步:向KDC请求存储在本地密钥表中的主体的服务票证,然后通过使用密钥表中的密钥对票证进行解密来validation该票证。 攻击者的KDC不知道系统上的密钥表的私钥,因此将失败这一步。 (当然,这意味着系统密钥表需要被locking,只能被root用户访问,因为任何可以访问密钥表的人都可以成功地攻击系统。)
(资格:我是Debian和Ubuntu中使用的Kerberos PAM模块的作者。)