2013-02-26 198 views
0

遵循以下邏輯進行身份驗證的主要缺陷是什麼?身份驗證令牌安全

用戶登錄到a.example.com並點擊「登錄到b.example.com」。該鏈接生成一個隨機字符串並將其保存在b.example.com數據庫中。然後它重定向到b.example.com/remotelogin.php?token=therandomstring,它檢查數據庫中的該字符串並將用戶記入日誌中。

我能想到的唯一問題就是它需要的安全性是令牌有效的時間限制,可能是30幾秒鐘什麼的。

+0

我認爲這將是更好的http://security.stackexchange.com/ – Mike 2013-02-26 20:57:53

+0

你讀過關於OAuth嗎?這將是一個更安全的方法 – JamesHalsall 2013-02-26 20:58:43

+0

如果令牌有時間限制,我發現問題的可能性很小。 – deceze 2013-02-26 21:00:04

回答

0

這幾乎不是用戶認證方案。用戶身份驗證是關於用戶是誰。這也不是很實際。

例如如果在30秒內到期並且用戶在40秒內刷新?然後怎樣呢?

惡意用戶發送鏈接並讓用戶登錄該網頁如何?或者惡意用戶用loggins淹沒你的數據庫呢?

您是否打算擁有ssl或在30秒內打開重播攻擊?你提出的方案並不好,還有很多更多的東西可能會出錯。

我猜我說的大多是這樣的(但不嘗試冒犯):

如果你爲什麼要費心鑑別不保留任何用戶相關的信息?反對誰在做什麼?例如,您不能在社交網絡應用程序或銀行應用程序或此類論壇中使用此方案。如果你不做任何安全敏感的話,那麼你的計劃沒有安全流量,但它沒有缺陷,因爲它沒有保存敏感信息。

+0

*「40秒」*:通過選擇適當的超時進行修復; *「惡意用戶發送鏈接」*:由服務器 - 服務器通信在幕後和時間限制內阻止; *「氾濫數據庫」*:請解釋這是如何非常有問題的; *「SSL」*:是的,讓我們假設這是通過SSL,那麼幾乎沒有問題的機會。你的批評似乎有點過於激進,沒有什麼實質可以證明。 – deceze 2013-02-26 21:07:11

+0

30秒到期是針對登錄請求的。一旦發出登錄請求,他們就會爲該網站獲得一個具有自己到期時間的會話,但用於身份驗證的令牌不再有效。 – 2013-02-26 21:31:10

+0

如果我聽起來兇悍,我很抱歉。不是我的意圖。雖然認證是關於誰的用戶不是關於它的(是它的)遵循鏈接的能力。如果認證無法保存用戶相關信息,認證是否有用。另外,如果你使僵屍網絡變得如此簡單,惡意用戶就可以通過簡單地按照數百萬的鏈接填充數據庫中的千兆字節。此外,你的意思是「被幕後的服務器 - 服務器通信阻止」? – idipous 2013-02-26 21:35:37