Protocol-Design
HOTP 中的計數器同步
在HOTP協議中如何實現計數器值的同步?
據我了解,只有在找到匹配項(OTP 值)時,伺服器才會增加其計數器值。客戶端會發生什麼?
假設伺服器驗證來自客戶端的 50 次成功嘗試,這意味著伺服器上的計數器值為 50。如果新請求來自計數器值為 0 的不同客戶端怎麼辦?如果視窗大小為 3,伺服器只能檢查計數器值 50、51、52,如果視窗大小為 50,伺服器只能檢查計數器值 50-100。在這兩種情況下,客戶端計數器值為 0 時將不匹配。
HOTP 沒有“新鮮客戶”。整個櫃檯業務基於這樣的想法:有一個客戶,他維護他的櫃檯,該櫃檯或多或少與伺服器櫃檯同步。同步視窗只是處理來自現實情況的小不同步事件的一種方式(例如,您 3 歲的孩子玩您的車鑰匙並按下“解鎖按鈕”幾十次)。
如果需要多個客戶端,每個客戶端都有自己的計數器,伺服器必須為每個客戶端維護一個計數器。