Authentication

用於身份驗證的雙向秘密共享?

  • December 29, 2018

秘密共享,使用諸如Shamir’s Secret Sharing 之類的方法允許n 個共享中的**t個重新創建一個秘密。

對於身份驗證,秘密可以是使用者 ID。具有登錄使用者的客戶端可以儲存包含使用者 ID 和秘密共享的令牌。伺服器可以為每個使用者 ID 保存另一個秘密共享。

當請求需要身份驗證的內容時,客戶端可以發送使用者 ID 及其“秘密共享”。伺服器可以使用客戶端共享和它自己的使用者共享來重新創建秘密使用者 ID。如果重新創建的使用者 ID 與客戶端聲稱的 ID 匹配,則伺服器可以繼續執行請求。如果不是,則可以拒絕該請求。

這種身份驗證方案安全嗎?如果對手要截取使用者的秘密共享,除了使用者之外的其他任何東西都會受到損害嗎?這種方法有實際用途嗎?

該方案與標準的基於密碼的身份驗證/標準的基於 cookie 的身份驗證沒有什麼不同:

您有一個令牌(稱為“密碼”、“cookie”或“共享”)和一個 ID(稱為“使用者名”),您將其發送到伺服器,伺服器使用僅它知道並提供的附加值進行一些處理您是否通過身份驗證的答案是是/否。

  • 對於經典密碼,這將是使用數據庫儲存的鹽進行密碼散列並與儲存的鹽進行比較。
  • 對於 cookie,這可以是靜態比較,也可以是使用伺服器端靜態密鑰對 cookie 伺服器端進行完整性檢查。
  • 對於給定的方案,這是秘密恢復並驗證恢復的內容是否與特定格式匹配。

這種身份驗證方案安全嗎?

它與發送使用者名和密碼的標準方法一樣安全。所以它通常可以工作,特別是如果您的頻道經過身份驗證,例如使用伺服器身份驗證的 TLS,無論如何。

如果對手要截取使用者的秘密共享,除了使用者之外的其他任何東西都會受到損害嗎?

好吧,如果伺服器端共享依賴於使用者並且這些共享是不相關/獨立的,那麼如果一個共享受到損害,那麼顯然不會對其他共享發生任何事情。當然,如果有問題的使用者可以以管理員或其他身份登錄並且只是讀出或修改共享或收到的共享,則例外。

引用自:https://crypto.stackexchange.com/questions/66142