2011-01-26 26 views
0

好吧,所以基本上這裏是Bodysnatcher OpenId Provider攻擊場景。Bodysnatcher「OpenId Provider」攻擊問題

  1. Bob的谷歌宣稱標識如下, 載荷大小:= AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

  2. 吉英一些如何發現Bob的 「當前」 聲稱//www.google.com/accounts/o8/id ID?標識符。

  3. 她離開並創建了自己的OpenId Provider,www.jane.com/accounts/o8/id,這樣當被問及它會返回Bob的聲明標識符。

  4. 她去了一些嚴重編碼的網站,www.bcs.com,使用開放ID和鮑勃有一個帳戶在。

  5. 她告訴www.bcs.com使用OpenId Provider www.jane.com/accounts/o8/id。

  6. 現在,這是我不知道的部分,並希望知道它是否可能/現實... www.jane.com/id一些如何讓www.bcs.com相信聲稱標識符「字符串」(即網站最終會看到的值)是ttps://www.google.com/accounts/o8/id?id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE。

這是可能的,一些如何,即使主機是www.jane.com?

我們正在努力實現OpenId,我們不希望成爲那種「嚴重編碼的網站」。我們正在使用一些第三方的.NET庫,它爲我們提供了聲明的標識符,因此我們不確定它在哪裏或如何構建它。如果它可能是僞造的,那麼我們正在考慮進行一些檢查,以確認Provider OpenId的url與聲明的標識符中的內容相匹配。

這也引起了我們是否應該採取散列/擾亂我們聲稱的標識符的額外步驟的擔憂。我們認爲是這樣,因爲Google會根據請求OpenId的網站更改其標識符。我的意思是,如果不嘗試和保護其成員,爲什麼還會這樣做呢?

回答

0

你實質上是在問是否可以編寫一個OpenID使用者的實現,該實現違反了足以引入安全漏洞的規範。是的。您可以省略整個驗證過程,並相信您從用戶那裏得到的所有信息。

但是,隨着消費者嚴格遵循OpenID規範,這種攻擊是不可能的。

既然你說你使用.NET庫,你可能使用DotNetOpenAuth。它與stackoverflow使用的是相同的庫,在使用它時可能不必擔心任何漏洞。如果您使用的是其他庫,則可能是切換到DotNetOpenAuth的最佳選擇。

至於Google返回基於領域的標識符的原因:它是爲了保護用戶的隱私,而不是爲了增加安全性。基本上,這可以確保您無法將用戶的帳戶與其Google帳戶相關聯。

+0

好吧,這很好,因爲我們正在使用「DotNetOpenAuth」。 – Thirlan 2011-01-28 05:50:22