Security 关于李约瑟的两个问题&x2013;Schroeder(Kerberos)对称协议

Security 关于李约瑟的两个问题&x2013;Schroeder(Kerberos)对称协议,security,authentication,encryption,kerberos,Security,Authentication,Encryption,Kerberos,我使用了其他来源来了解该协议的工作原理,并提出了两个问题: 1) Alice向服务器发出初始查询后,作为响应的一部分,她会收到: (新会话密钥+Alice的ID)-使用Bob的安全密钥加密 由于这个特定协议中的安全密钥是对称的,Alice知道这个“包”的全部内容,她现在难道不能去找出Bob的安全密钥吗 2) wiki文章将此协议的致命弱点解释为重播攻击,“如果攻击者对会话密钥使用旧的、已泄露的值”,他们可以将其重新打包为: (会话密钥+Alice的ID)-使用Bob的安全密钥加密 然后用它来启动

我使用了其他来源来了解该协议的工作原理,并提出了两个问题:

1) Alice向服务器发出初始查询后,作为响应的一部分,她会收到:

(新会话密钥+Alice的ID)-使用Bob的安全密钥加密

由于这个特定协议中的安全密钥是对称的,Alice知道这个“包”的全部内容,她现在难道不能去找出Bob的安全密钥吗

2) wiki文章将此协议的致命弱点解释为重播攻击,“如果攻击者对会话密钥使用旧的、已泄露的值”,他们可以将其重新打包为:

(会话密钥+Alice的ID)-使用Bob的安全密钥加密

然后用它来启动与Bob的会话


也许我遗漏了什么,但仅仅因为攻击者拥有会话密钥并不意味着他们拥有Bob的安全密钥。那么他们是如何生成上述数据包的呢?

您所指的是一种已知的明文攻击。在Kerberos 5中,使用的加密协议是AES,通常认为它对KP攻击具有“抵抗力”。请参阅此处:有关AES被认为具有抵抗力的方式/原因的讨论。

攻击者(M)不需要使用K_B重新打包任何东西,它只记录从a到B的所有以前的通信。稍后,它将{K_AB,a}K_B重新发送到B。如果不使用nonce,B不知道此会话密钥不新鲜。它将与a启动一个新会话。由于a不希望B有任何数据包,因此此会话中来自B的所有数据包都将被丢弃。但是M一直在回答B,让它认为A在回答

请注意,此会话中的其余通信不需要K_B,只需要K_AB。新的nonce B发送使用K_AB加密(M已经知道并可以使用K_AB解密新的nonce)。M可以解密从A到B的旧消息,更新nonce值(根据此会话的新nonce)并使用K_AB重新打包。这样M可以让B重做它在上一个会话中执行的操作序列


这有什么帮助?比如说,B是一家银行,a在上一次会话中使用B向M发送了10美元。M可以在以后反复重播上一次通信,以重复从a向M的转账。

这个问题似乎离题了,因为应该在security.stackexchange.com或crypto.stackexchange.com上询问。