2012-01-04 45 views
3

將OAuth2用於移動平臺的User-agent流時,授權服務器無法驗證應用程序的client_id。client_id的OAuth2安全注意事項

所以,任何人都可以通過複製CLIENT_ID冒充我的應用程序(並因此獲得代表我所有的訪問令牌),這是適用於臉譜,四方,...

這不是由管理的OAuth2?或者我錯過了什麼?

對於Web應用程序(Web服務器流程),訪問令牌存儲在服務器端,客戶端使用密鑰進行身份驗證。

回答

4

沒有好的答案。本地應用程序回調通常通過自定義註冊URI方案發生(例如:回調重定向URI類似於:myapp:// oauth?code = xyz123)。不幸的是,任何應用都可以聲明給定協議方案的所有權並接收回調。

此問題與嘗試鎖定任何使用「可信客戶端」協議的代名詞非常相似。想想即時通信網絡的戰鬥,鎖定第三方客戶端(在2000年初)。最終他們放棄了 - 因爲任何客戶端協議端點的部署都可能由第三方開發者反向設計。

注:也有關於這一主題的一些積極討論的OAuth的工作組郵件列表上:http://www.ietf.org/mail-archive/web/oauth/current/msg08177.html

+0

感謝您的鏈接和解釋,這在當前的草稿中清楚地注意到:http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-1.3.2。希望這會改變,否則我們別無選擇,只能信任授權服務器來檢測(是否有可能?)任何惡意使用client_id .... – davecon 2012-01-06 12:12:26

+0

沒錯。實際上,檢測資源服務器(RS--目標OAuth安全RESful API)的異常事務之外的惡意使用client_id會非常棘手。 – 2012-01-06 16:16:49

2

通常,client_id與網站的網址相關聯 - OAuth回覆/重定向只會發送到註冊網址。因此,攻擊者將無法在自己的站點上收到請求的結果(除非您的攻擊者頁面和攻擊者頁面位於同一個域中)。

+0

這適用於網頁只應用,怎麼樣的設備? – davecon 2012-01-04 18:28:42