Security 我们需要kerberos中的重播缓存吗

Security 我们需要kerberos中的重播缓存吗,security,networking,kerberos,Security,Networking,Kerberos,既然kerberos在身份验证过程中已经有时间戳,为什么我们需要重播缓存? 时间戳不是请求的唯一标识符。请求是票证+验证器,其中每个请求的验证器都是唯一的。没有什么能阻止客户机使用单独的身份验证器创建两个单独的请求,而是保持相同的时间戳并将它们发送到服务 事实上,这在多线程或高速操作或会话刚刚启动的情况下非常常见。事实上,这几乎可以保证经常发生在你身上,因为时间的精确性并不特别高 因此,您使用验证器作为重播检查,它包含一个唯一的每请求nonce(以及可选的会话密钥)。如果您以前见过此验证器,则绝

既然kerberos在身份验证过程中已经有时间戳,为什么我们需要重播缓存?
时间戳不是请求的唯一标识符。请求是票证+验证器,其中每个请求的验证器都是唯一的。没有什么能阻止客户机使用单独的身份验证器创建两个单独的请求,而是保持相同的时间戳并将它们发送到服务

事实上,这在多线程或高速操作或会话刚刚启动的情况下非常常见。事实上,这几乎可以保证经常发生在你身上,因为时间的精确性并不特别高

因此,您使用验证器作为重播检查,它包含一个唯一的每请求nonce(以及可选的会话密钥)。如果您以前见过此验证器,则绝对必须将该请求视为重播

第二个问题是多个[负载平衡]服务器的问题。如果您向服务器(a)发出请求,然后向服务器(B)发出相同的请求,则第二个请求是重播。如果您有意这样做,那么您可能会要求两个请求,一个接一个,这可能与单独的验证器具有相同的时间戳,并发送到单独的服务器

理想情况下,服务器之间应该有一个共享缓存,这样它们就可以进行检查,但实际上从来没有人这样做过


所以简而言之,是否应该缓存它是一个函数,取决于您是否绝对需要保证防止重播。如果您没有,那么时间戳就足够了。如果需要,则需要适当的缓存,最好在服务器之间共享。

这不是编程问题。请签出并在搜索框中填写“kerberos”和“缓存”。如果你想问这个问题,请包括Kerberos版本号。不可否认,如果你使用的不是Kerb 5,那么你就犯了一个可怕的错误,所以版本号有点多余。