Third Party Authentication/Authorization

Slides:



Advertisements
Similar presentations
云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
Advertisements

动态网站开发 【HTTP与网络基础】 李博杰
Security Checking Systems for Mobile Devices
Rfc3315 Dynamic Host Configuration Protocol for IPv6 (DHCPv6) 組員: 蔡承翰 A 陳鈺璋 A 翁菘㠙 A 指導老師 吳俊興.
網站「開外掛」 優化營業人員的戰鬥力 介紹 Web365行動展售網站系統的10大特色
GCA/XCA附卡授權服務 推廣及教育訓練
分享叽歪de 开放的融合Web应用实践 杜嵩 2008年1月.
實驗 9: 無線安全網路之建設.
BOTNET Detection and Prevention
人工智能 Artificial Intelligence 第十一章
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
计算机网络安全概述.
Lab312.
SIP 体系架构.
CJLR PDM&SRM 单点登录指南 场景一:在CJLR公司网络中(CJLR办公室/由VPN拨入),使用CJLR公司电脑登录:
Activity Management System User Manual
指導教授:陳偉業 老師 碩專資管二甲 N 林士淵 富強鑫公司 資訊工程師 2006/12/23
第 19 章 遠端管理.
利用 ISA Server 2004 建置應用層防護機制
Windows Vista 操作系统最新安全特性
Web-based cooperation + Data Intelligence for Malaysian SME
WIN220 Identity and Access Management 微软统一身份管理和访问控制 解决方案(IAM)和产品路线介绍
IGMP Snooping / Proxy / Server
(C) Active Network CO., Ltd
从企业即时通讯到统一消息 GoCom Instant Messaging 企业即时通讯
Basis基本操作、使用者 管理與權限設定
电子邮件系统基本协议介绍 北京春笛信息技术有限公司.
國立中央大學、資訊管理系 范錚強 (update)
Draft Amendment to STANDARD FOR Information Technology -Telecommunications and Information Exchange Between Systems - LAN/: R: Fast BSS.
Cloud Computing(雲端運算) 技術的現況與應用
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
XML期末報告 XML and Instant Messaging: XMPP
主講人:黃鎮榮 東方設計學院觀光與休閒事業管理系
授課老師: 林娟娟 教授 報告人 : 黃聖峯 黃崑源
第九單元 Classes and data abstraction I
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
大學專題介紹 M-Kaigo老人心靈介護系統
Introduction to Opensocial
教育體系單一簽入服務維運計畫執行小組 臺中市 吳嘉祥
服務於中國研究的網絡基礎設施 A Cyberinfrastructure for Historical China Studies
AZR303 雲端整合企業識別 進行單一簽入 張書源 資深開發技術經理 台灣微軟.
Study for Specification of EPG EPG规范研究
Microsoft SQL Server 2008 報表服務_設計
實用郵政英文對話.
Web Server 王宏瑾.
Breaking and Fixing Authentication over TLS
A standard for developing secure mobile applications
Microsoft TechNet 技術講座--資料庫技術升級系列三 精誠公司恆逸資訊 楊先民
Guide to a successful PowerPoint design – simple is best
Ericsson Innovation Award 2018 爱立信创新大赛 2018
Mailto: 9 eB 中的金流問題 國立中央大學.資訊管理系 范錚強 Tel: (03) mailto: Updated
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
Source: Journal of Network and Computer Applications, Vol. 125, No
本學期資訊系統開發專案之技術架構.
期未報告:公眾無線網路的架構,比較 通訊所 鍾國麟 主要的內容還是S.Y.
模式与实践:Windows Mobile 5.0应用程序架构
Checking in 入住模块.
Outline Overview of this paper Motivation and Initialization
2.1 高職與私立學校註冊操作說明 (2015/9/15上線)
Chapter 10 Mobile IP TCP/IP Protocol Suite
Resources Planning for Applied Research
蔺华 ISV开发合作经理 平台及开发技术部 微软(中国)有限公司
案例分析: THE NEXTGEN POS SYSTEM
Introduction to Computer Security and Cryptography
Computer Security and Cryptography
第7章 Internet的应用.
Website: 第1章 密码学概论 Website: 年10月27日.
《现代密码学》导入内容 方贤进
变化的新环境,变化的图书馆 Changing Landscape, Changing Libraries
Presentation transcript:

Third Party Authentication/Authorization Hao-Lun Hsu Taiwan Evolutionary Intelligence Laboratory 2016/12/7 Group Meeting Presentation

Outline OpenID OAuth 1.0 OAuth 2.0 Other Third Party Authentication/Authorization Conclusion

Open ID An open standard and decentralized authentication protocol Issued in 2007 傳統上每個網站都要架設自己的帳號密碼系統,對開發 者來說麻煩。 使用者需要記得各個網站的帳號密碼,不方便管理。 Single-Sign On (e.g. NTU SSO) Open ID is an implementation of SSO 去中心化:網絡內容不是由專業網站或特定人群所產生,而是由全體網民共同參與、權級平等的共同創造的結果。任何人,都可以在網絡上表達自己的觀點或創造原創的內容,共同生產信息。

Open ID: Mechanism Terminology: End User: 需要向網站表明身分的人 Identity Provider(IdP): 提供Open ID驗證服務的提供者 e.g. NTU SSO Relying Party(RP): 要對End User的標識進行驗證的網站 e.g. Ceiba

Open ID: Process Flow RP User IdP (A) Access RP (B) Open ID Identifier (C) Discovery (D) Response (E) Redirect to Open ID Provider (E) Access Open ID Provider with Redirect url (F) User Credentials (password) (G) Verify Credentials (I) Allow Access (H) Redirect to RP with IdP Credentials (H) (J) Protected Data

Open ID: Security Issue Authentication bug Phishing Authentication hijacking in unsecured connection

Authentication Bug IdP RP Attacker Fake Request Identity Check Signature (no ask for the user's email address) Identity with Fake Email Address RP Attacker data R. Wang, S. Chen, X.F. Wang, “Signing Me onto Your Accounts through Facebook and Google: a Traffic-Guided Security Study of Commercially Deployed Single-Sign-On Web Services “, 2012

Phishing malicious RP fake IdP Victim Access Request Redirect User Credentials 解決方法: 注意瀏覽器小鎖頭憑證 Victim

Authentication Hijacking in Unsecured Connection IdP Attacker Sniff Authenticate Identity Data Access Data with Identity Sniff the wire RP Victim

Authentication Hijacking in Unsecured Connection Use nonces (an number used once): Only works if the user is the first one to use the URL Use of TLS/SSL in the authentication process nonce is an arbitrary number that may only be used onc OpenID 結束

OAuth 有一個第三方應用程式希望存取你的Facebook中的好 友名單,該如何做到? OAuth is an open standard for authorization Let users authorize some applications to access their information on the other websites without giving them the passwords Issued in 2007 (OAuth 1.0), 2009 (OAuth 1.0a) and 2010 (OAuth 2.0) Blaine Cook Chris Messina Larry Halff

OAuth 1.0: Mechanism Terminology: Service Provider: OAuth服務的提供者 e.g. Facebook Connect User: 在Service Provider上有個帳號的使用者 Consumer: 需要取得User授權,並存取其資源的程式 /網站

OAuth 1.0: Mechanism User (A) Obtaining a Request Token Con-sumer Service Provider (B) Request Token (Unauthorized) (D) Authenticate (with Callback URI) (C) Request Token User (E) Request Token (Authorized) (E) Redirect 讓service provider發行一個access token取代password Client id in header, body, query parameter Request Token in Body (F) Obtaining an Access Token (G) Access Token

OAuth 1.0: Security issue 竄改Callback URI: Attacker先初始化一個合法的Request Token,然後誘 騙Victim向這個Request Token授權。竄改Victim向 Service Provider發起的授權請求中的Callback URI,使得 授權過後的Request Token轉到Attacker指定的網站。 Attacker再將已授權的Request Token送回Consumer完成 授權流程。

OAuth 1.0a: Mechanism Signature Con-summer Service Provider User (A) Obtaining a request token (with callback url) Signature Con-summer Service Provider (B) Request token (Unauthorized) (D) Authenticate (with callback url) (C) Request token User Verify cb url (E) Request token (Authorized) (with verifier) (E) Redirect 缺點: (C) (D) (F)要簽名 (F) Obtaining an access token (with verifier) (G) Access token

OAuth 1.0a: Disadvantage Unfriendly to non-browser based applications 2.0: new ways for an application to get authorization for a user Signature: complicate to developer 2.0: Use SSL/TLS Life of access tokens are too long 2.0: short-lived access token and refresh token 1. User credential

OAuth 2.0 Terminology: Resource Owner: 可以授權別人去存取 Protected Resource Resource Server: 存放 Protected Resource 的伺服器。根據 Access Token 來接受 Protected Resource 的請求。 Client: 代表 Resource Owner 去存取 Protected Resource 的 應用程式。 Authorization Server: 授權服務的提供者。

OAuth 2.0: Abstract Protocol Flow Resource Owner Client Authorization Request Authorization Grant Authorization Server Authorization Grant Access Token Access Token Resource Server Protected Resource

OAuth 2.0: Mechanism There are 4 grant types: Access token: a string Authorization Code Grant Flow Implicit Grant Flow Resource Owner Password Credentials Grant Flow  Client Credentials Grant Flow  Access token: a string identifier, scope, expired time… Refresh token: to obtain a new access token

Authorization Code Grant Flow (B) (A) Client Identifier, Scope, Redirection URI User Agent Authorization Server (B) User authenticates (C) Authorization Code Resource Owner (A) (C) (C) code要短時效(10分鐘)、只能用一次 e.g. https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA &state=xyz (D) 用POST Redirect uri要和(A)一樣 需要跟AS驗證Client的身分 (D) Client ID, Authorization Code, Redirection URI Client (E) Access Token, Refresh Token(optional)

Authorization Code Grant Flow 要向 Authorization Server 先取得 Grant Code 再取得 Access Token (兩步)。 適合 Confidential Clients ,如部署在 Server 上面的應 用程式。 需要 User-Agent Redirection。 Security issue: Authorization Code 被偷: Use TLS Authorization Code 被二度利用: Code要短時效、一次性 竄改 Redirection URI: 事先設定 Redirection URI 並驗證 Confidential Clients: Client 可以自我保密 client 的 credentials(例如跑在 Server 上面,且可以限制 credentials 的存取) public:Client 無法保密 credentials (Native App 或是跑在 Browser 裡面的 App)

Implicit Grand Flow Authorization Server User Agent Client (A) Client Identifier, Scope, Redirection URI User Agent Authorization Server (B) User authenticates (C) Redirection URI with Access Token in Fragment (A) Client Web-Hosted Client Resource (D) Redirection URI without Fragment (C) Access token is in fragment (E) Script (F) Access Token Resource Owner (B)

Implicit Grand Flow Authorization Server 直接向 Client 核發 Access Token (一步)。 適合非常特定的 Public Clients ,例如跑在 Browser 裡 面的應用程式。 Authorization Server 不必(也無法)驗證 Client 的身 份。 禁止核發 Refresh Token。 Public client: 沒有自己的後端處理器,所以仰賴前端、User的 Agent來處理程式碼、轉址等等,故無法守住自己的credential。

Resource Owner Password Credentials Grant Flow Client Resource Owner (A) Resource Owner Password Credential Authorization Server (B) Resource Owner Password Credential (C) Access Token, Refresh Token (optional)

Resource Owner Password Credentials Grant Flow 風險較高,因為會讓Client看到帳號密碼(一個不 必要的行為)。 Resource Owner 沒辦法控制Client要求授權的範 圍。 只適合Resource Owner 高度信賴 Client ,例如 作業系統內建的應用程式。 e.g. HTC sense 存取 Facebook

Client Credentials Grant Flow Authorization Server (A) Client Authenticate (B) Access Token Client 自己就是 Resource Owner ,Client 取用的是自己擁有 的 Protected Resources。

Other Third-Party Authentication/Authorization Open ID Connect (OIDC) 身分認證 + OAuth 2.0 提供RP有關認證者的資料 SAML An XML-based, open-standard data format for exchanging authentication and authorization data between parties 可以跟OpenID 合用 e.g. NTU SSO

(No longer supported since 2015) Open ID OAuth 2.0 Open ID Connect Facebook V (Facebook Connect) Google (No longer supported since 2015) Yahoo Microsoft (Azure AD Connect) IBM (Blue ID) Twitter

Conclusion Open ID and OAuth are widely used nowadays. Understanding these standards helps us figure out how applications which can be signed in with your Facebook/Google accounts work.

Reference Wikipedia: Stackoverflow: https://en.wikipedia.org/wiki/OpenID https://en.wikipedia.org/wiki/OAuth Stackoverflow: http://stackoverflow.com/questions/4113934/how-is-oauth-2-different-from-oauth-1 http://stackoverflow.com/questions/23780909/why-does-the-implicit-authorization-grant-in-oauth-require- a-web-hosted-client http://stackoverflow.com/questions/14574846/client-authentication-on-public-client https://spin.atomicobject.com/2016/05/30/openid-oauth-saml/ http://openid.net/connect/ http://huoding.com/2011/11/08/126 https://blog.yorkxin.org/2013/09/30/oauth2-1-introduction https://tools.ietf.org/html/rfc6749 https://oauth.net/core/1.0/ https://oauth.net/core/1.0a/