2017.W42 - OAuth 2 - 資安
By Andrew
at 2017-10-17T23:43
at 2017-10-17T23:43
Table of Contents
2017.W42 - OAuth 2
> 感謝師 (ㄏㄞˋ) 傅 (ㄎㄜˋ) 賜我吃穿
## 前言 ##
認證系統真的很多 每個服務都需要記帳號密碼實在是很煩惱
既擔心 EYNY 論壇的密碼洩漏 影響 gmail 的安全性
又擔心密碼太多 會忘記 FC2 的登入密碼
## 認證 ##
OAuth 2[1] 是一個繼承 OAuth[1] 的一種認證標準
主要讓用戶 (Client) 透過受使用者信任的第三方 (OAuth Provider) 提供認證的服務
在 OAuth 的腳色可以分為三種
- 使用者 (End User)
- 用戶 (Client)
- 服務提供者 (OAuth Provider)
藉由使用者先向提供者認證之後 透過轉址導回到用戶的服務網站
詳細的流程 (Code Grant) [3] 可以分解成以下幾種步驟
而最終用戶透過從使用者獲得的一次性 Code 來跟服務提供者換 Access Token
這個 Access Token 則是代表使用者在服務提供者的一個 Token
可以透過這個 Token 獲得使用者的相關資料
使用者 用戶 服務提供者
登入
---------------->
重導向:登入
------------------>
重導向:Code
<------------------------------------------
重導向:Code
---------------->
背景: Code
------------------->
背景:Access Token
<-------------------
Code Grant 是四種 OAuth 2 定義中換取 Access Token 的方式之一
也是大多數之名 OAuth 2 provider 提供的方式之一
像是 Facebook[4]、Google[5]、GitHub[6] 等
使用 OAuth 2 對於三方面來說都是擁有好處
但在使用 OAuth 2 的過程中需要注意潛在的安全性風險:
過多的資訊請求 與 釣魚網站
過多的資訊請求 代表在用戶跟服務提供者要求過多的權限
正常的權限請求大致包含:名稱、e-mail 等
而過多的請求則是包含發文權限、歷史紀錄查詢等絕大多數不需要的權限
[1]: https://tools.ietf.org/html/rfc6749
[2]: https://zh.wikipedia.org/wiki/OAuth
[3]: https://tools.ietf.org/html/rfc6749#section-4.1
[4]: https://developers.facebook.com/docs/facebook-login/
[5]: https://developers.google.com/identity/protocols/OAuth2
[6]: https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/
--
> 感謝師 (ㄏㄞˋ) 傅 (ㄎㄜˋ) 賜我吃穿
## 前言 ##
認證系統真的很多 每個服務都需要記帳號密碼實在是很煩惱
既擔心 EYNY 論壇的密碼洩漏 影響 gmail 的安全性
又擔心密碼太多 會忘記 FC2 的登入密碼
## 認證 ##
OAuth 2[1] 是一個繼承 OAuth[1] 的一種認證標準
主要讓用戶 (Client) 透過受使用者信任的第三方 (OAuth Provider) 提供認證的服務
在 OAuth 的腳色可以分為三種
- 使用者 (End User)
- 用戶 (Client)
- 服務提供者 (OAuth Provider)
藉由使用者先向提供者認證之後 透過轉址導回到用戶的服務網站
詳細的流程 (Code Grant) [3] 可以分解成以下幾種步驟
而最終用戶透過從使用者獲得的一次性 Code 來跟服務提供者換 Access Token
這個 Access Token 則是代表使用者在服務提供者的一個 Token
可以透過這個 Token 獲得使用者的相關資料
使用者 用戶 服務提供者
登入
---------------->
重導向:登入
------------------>
重導向:Code
<------------------------------------------
重導向:Code
---------------->
背景: Code
------------------->
背景:Access Token
<-------------------
Code Grant 是四種 OAuth 2 定義中換取 Access Token 的方式之一
也是大多數之名 OAuth 2 provider 提供的方式之一
像是 Facebook[4]、Google[5]、GitHub[6] 等
使用 OAuth 2 對於三方面來說都是擁有好處
但在使用 OAuth 2 的過程中需要注意潛在的安全性風險:
過多的資訊請求 與 釣魚網站
過多的資訊請求 代表在用戶跟服務提供者要求過多的權限
正常的權限請求大致包含:名稱、e-mail 等
而過多的請求則是包含發文權限、歷史紀錄查詢等絕大多數不需要的權限
[1]: https://tools.ietf.org/html/rfc6749
[2]: https://zh.wikipedia.org/wiki/OAuth
[3]: https://tools.ietf.org/html/rfc6749#section-4.1
[4]: https://developers.facebook.com/docs/facebook-login/
[5]: https://developers.google.com/identity/protocols/OAuth2
[6]: https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/
--
Tags:
資安
All Comments
By Rachel
at 2017-10-19T13:06
at 2017-10-19T13:06
Related Posts
2017.W41 - Bounty Program (賞金計畫)
By Ingrid
at 2017-10-10T20:56
at 2017-10-10T20:56
google傳來警訊,這是被駭了嗎?
By Isla
at 2017-10-09T16:57
at 2017-10-09T16:57
看電影學資安-CSI Cyber S01E05
By Jessica
at 2017-10-06T14:30
at 2017-10-06T14:30
2017.W40 - SUID (Set User ID)
By Skylar DavisLinda
at 2017-10-04T11:32
at 2017-10-04T11:32
2017.W39 - SIEM (資安事件管理平台)
By Annie
at 2017-09-27T00:31
at 2017-09-27T00:31