Needham-Schroeder协议解释
这篇文章将是理解我们的kerberos文档的主要前提。
在这篇文章中,我们将集中讨论在Kerberos中用于安全身份验证的Needham-Schroeder协议。
我们不会在本文中讨论kerberos,但将讨论了解kerberos基础结构的主要前提。
因为Kerberos基础结构依赖Needham-Schroeder协议。
Needham-Schroeder协议引用用于保护不安全网络的通信协议。
该协议的名称来自创建者Roger Needham和Michael Schroeder。
Needham-Schroeder协议有两种类型。
- 具有对称密钥的Needham-Schroeder协议
- 具有非对称密钥的Needham-Schroeder协议
现在,让我们来了解一下使用对称密钥加密的Needham-Schroeder协议,因为它是kerberos基础结构中使用的一种协议。
Needham-Schroeder协议可以证明最终用户进行通信的身份,还可以防止中间人窃听。
我们将在本文档中使用一些需要首先理解的术语。
Nonce:Nonce是随机生成的字符串,仅在一段时间内有效,该字符串在加密协议中用于防止重放攻击。
例如,如果有人在我和购物之间的通信期间捕获了一个数据包,则他可以重新发送该数据包而不解密它,并且服务器可以接受该数据包并对其进行操作。
为了避免这种情况,将随机数(生成的随机值)添加到数据中,以便服务器可以检查该随机数是否有效或者已过期。
让我们以称为机器A和机器B的两台机器之间的通信为例来了解此协议。
该协议的主要内容是有一个受信任的中间人或者称他为仲裁人。
这个值得信赖的中间人是一台服务器。
如果X机器想要与Y机器进行通信,则X必须联系中间人服务器,说有兴趣与Y进行通信。
让我们看看它是如何工作的。
A =机器A
B =机器B
SK(AS)=这是机器A和名为“ S”的中间人服务器已知的对称密钥
SK(BS)=这是机器B和名为“ S”的中间人服务器已知的对称密钥
NON(A)=机器A产生的随机数
NON(B)=机器B产生的随机数
SK(S)=这是服务器为机器A和机器B生成的对称密钥/会话密钥。
让我们了解上述所有消息。
首先,在继续进行说明之前,请先弄清楚,机器A和机器B的对称密钥已经与中间人服务器共享。
同样,网络中的任何其他计算机也与中间人服务器共享其各自的对称密钥。
消息1:机器1向服务器S发送一条消息,说我想与机器B通信。
A-> S :(此消息包含A和B以及NON(A))
消息2:服务器S将消息2发送回包含SK(S)的机器A,以及另外一个用SK(BS)加密的SK(S)副本,该副本将由机器A发送到机器B。
消息3:机器A将SK(S)的副本转发给机器B,后者可以使用它拥有的密钥对其进行解密,因为它是由中间人服务器使用机器B的对称密钥SK(BS)加密的。
消息4:机器B将由SK(S)加密的现时值发送回机器A。
确认他具有中间人服务器提供的对称密钥或者会话密钥。
消息5:机器A对机器B提供的随机数执行简单的操作,然后将其重新发送回机器B,以验证机器A是否具有密钥
重播攻击此协议中仍然存在一些漏洞,当该漏洞被kerberos使用时,该漏洞已通过此时间戳的实现得以修复。