簡體   English   中英

我們是否需要在 kerberos 中重放緩存

[英]Do we need replay cache in kerberos

既然kerberos在認證過程中已經有了時間戳,為什么還需要replay cache呢? https://en.wikipedia.org/wiki/File:Kerberos_protocol.svg

時間戳不是請求的唯一標識符。 請求是票證 + 身份驗證器,其中身份驗證器對於每個請求都是唯一的。 沒有什么可以阻止客戶端使用單獨的身份驗證器創建兩個單獨的請求,而是保持相同的時間戳並將它們發送到服務。

這實際上在多線程或高速操作或會話剛剛啟動的情況下很常見。 事實上,它幾乎可以保證定期發生在你身上,因為時間精度並不是特別高,在事物的計划中。

因此,您使用身份驗證器作為重放檢查,其中包含每個請求唯一的隨機數(以及可選的 session 密鑰)。 如果您之前曾見過此身份驗證器,那么您絕對必須將請求視為重放。

第二個問題是多個 [負載平衡] 服務器的問題。 如果您向服務器 (A) 發出請求,然后向服務器 (B) 發出相同的請求,則第二個請求是重放。 如果您有目的地這樣做,那么您可能會一個接一個地請求兩個請求,這些請求可能具有相同的時間戳和不同的身份驗證器,並被觸發到不同的服務器。

理想情況下,您應該在服務器之間擁有一個共享緩存,以便它們可以檢查,但實際上沒有人這樣做。

所以簡而言之你是否應該緩存它是一個function 你是否絕對需要保證防止重放。 如果你不這樣做,那么時間戳足夠了。 如果你這樣做,那么你需要一個適當的緩存,最好在服務器之間共享。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM