SlideShare a Scribd company logo
1 of 14
Nomura Research Institute
#osw17
Future Proofing the OAuth 2.0 Authorization
Code Grant Protocol by the application of BCM
Principles
July 14, 2017
Nat Sakimura
Nomura Research Institute
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
Nat Sakimura
(Co-)Author of:
 OpenID Connect Core 1.0
 JSON Web Token [RFC7519]
 JSON Web Signature [7515]
 OAuth PKCE [RFC7636]
 OAuth JAR [forthcoming]
 Etc.
(Co-)Editor of:
 ISO/IEC 29184 Guidelines for online notice and consent
 ISO/IEC 29100 AMD: Privacy Framework
 ISO/IEC 27551 Requirements for attribute based
unlinkable entity authentication
 Etc.
• Research Fellow,
Nomura Research Institute
• Chairman of the Board,
OpenID Foundation
• Chair, Financial API WG
• Head of Japanese delegation to
ISO/IEC JTC 1/SC 27/WG5
• Liaison Officer SC 27/WG5 --
OECD/SPDE
• https://nat.Sakimura.org
• @_nat_en (English)
• @_nat (Japanese)
• Linked.in/natsakimura
• https://www.linkedin.co
m/in/natsakimura
• https://ja.wikipedia.org/
wiki/崎村夏彦
.. and an amateur flutist
(https://youtu.be/3gTCQhTcXL0)
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
BCM Principles
P1 Positional tagging. Cryptographic
message components should contain
information that uniquely identities
their origin. In particular, the
information should identify the
protocol, the protocol variant, the
message number, and the particular
position within the message, from
which the component was sent.
P2 Inclusion of identities and their roles.
Each cryptographic message
component should include information
about the identities of all the agents
involved in the protocol run and their
roles, unless there is a compelling
reason to do otherwise.
3 Criteria
(a)Unique Source
Identifier
(b)Protocol + version +
msg identifier
(c)Full list of actor/roles
Basin, D., Cremers, C., Meier, S.: Provably Repairing the ISO/IEC 9798
Standard for Entity Authentication. Journal of Computer Security - Security and Trust
Principles archive Volume 21 Issue 6, 817-846 (2013)
(a)
(b)
(c)
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
Let’s apply!
4
Let’s Play!
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
RFC6749 OAuth – code grant protocol msgs
Authorization Request
Authorization Response
Token Request
Token Response
Assume:
 a network attacker as (e.g. Browser malware)
the crypto & TLS are not broken
pure RFC6749 – Three parties static OAuth 2.0
5
UA
Clien
t
AS
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
So, how is RFC6749 (Naïve implementation) doing?
Message Parameters (a) Unique
Source Identifier
(b) Protocol +
version identifier
(c) Full list of
actor/roles
Authorization
Request
response type
client id
redirect uri
scope
state
Authorization
Response
code
state
other extension
parameters
Token Request grant type
code
redirect uri
client
credential/client id
.
Token Response access token
token_type
expires_in
refresh_token
others
6
Combination of
parameters are unique
for each message type =
(b) Good!
Legend
Required Parameter
Optional Parameter
Recommended Parameter
But the good ends here.
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
So, how is RFC6749 (Naïve implementation) doing?
Message Parameters (a) Unique
Source Identifier
(b) Protocol +
version identifier
(c) Full list of
actor/roles
Authorization
Request
response type
client id
redirect uri
scope
state
Client ID is not
globally unique.
Tampering
possible
List of params as
identifier, but it is
not integrity
protected
No.
Authorization
Response
code
state
other extension
parameters
No source
identifier
As above No
Token Request grant type
code
redirect uri
client
credential/client id
Client ID is not
globally unique.
OK (as long as
there is no OAuth
3.0)
No.
Token Response access token
token_type
expires_in
refresh_token
others
No source
identifier
As above No.
7
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
8
It’s a sad
state.
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
Could be tightened up
Message Parameters (a) Unique
Source Identifier
(b) Protocol +
version identifier
(c) Full list of
actor/roles
Authorization
Request
response type
client id
redirect uri
scope
state
Unique redirect
URI + Client ID
Request signing (a) + state as the
UA identifier /
TBID as UA
identifier
Authorization
Response
code
state
other extension
parameters
Unique redirect
URI
Response signing (a) + client_id +
state as the UA
identifier / TBID as
UA identifier
Token Request grant type
code
redirect uri
client
credential/client id
Unique redirect
URI + Client ID
OK (as long as
there is no OAuth
3.0)
(a) + state as the
UA identifier /
TBID as UA
identifier
Token Response access token
token_type
expires_in
refresh_token
others
Unique redirect
URI
As above (a) + client_id +
state as the UA
identifier / TBID as
UA identifier
9
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
Integrity protect the AuthZ Request/Response
• draft-ietf-oauth-jwsreq aka
OAuth JAR
AuthZ
Request
• Use ID Token as a
dethatched signature.
• Include new parameter
`s_hash` in the ID Token.
AuthZ
Response
10
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
Comparison
Message Original
Parameters
Modified Parameters Original Integrity
Protection
Modified Integrity
Protection
Authorization
Request
response type
client id
redirect uri
scope
state
response type
client id
redirect uri (uniqeue)
scope
state/tbid
None JAR
Authorization
Response
code
state
extension
params
code
state
redirect uri (uniqeue)
client id
state/tbid
extension params
None ID Token + s_hash
Token Request grant type
code
redirect uri
client cred/id
grant type
code
redirect uri (uniqeue)
client cred/id
state/tbid
TLS TLS
Token Response access token
token_type
expires_in
refresh_token
others
access token
token_type
expires_in
refresh_token
others
TLS TLS
11
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
BCM Principles Satisfied!
12
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
13
© 2016 by Nomura Research Institute. All rights reserved.
Nomura Research Institute
14
Science
needed!

More Related Content

What's hot

Double Server Public Key Encryption with Keyword Search for Secure Cloud Storage
Double Server Public Key Encryption with Keyword Search for Secure Cloud StorageDouble Server Public Key Encryption with Keyword Search for Secure Cloud Storage
Double Server Public Key Encryption with Keyword Search for Secure Cloud Storage
ijtsrd
 

What's hot (13)

Code on the chain! An introduction in writing smart contracts and tooling for...
Code on the chain! An introduction in writing smart contracts and tooling for...Code on the chain! An introduction in writing smart contracts and tooling for...
Code on the chain! An introduction in writing smart contracts and tooling for...
 
OAuth 2.0 Updates #technight
OAuth 2.0 Updates #technightOAuth 2.0 Updates #technight
OAuth 2.0 Updates #technight
 
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
 
Double Server Public Key Encryption with Keyword Search for Secure Cloud Storage
Double Server Public Key Encryption with Keyword Search for Secure Cloud StorageDouble Server Public Key Encryption with Keyword Search for Secure Cloud Storage
Double Server Public Key Encryption with Keyword Search for Secure Cloud Storage
 
The JSON-based Identity Protocol Suite
The JSON-based Identity Protocol SuiteThe JSON-based Identity Protocol Suite
The JSON-based Identity Protocol Suite
 
OAuth and OpenID Connect for Microservices
OAuth and OpenID Connect for MicroservicesOAuth and OpenID Connect for Microservices
OAuth and OpenID Connect for Microservices
 
Identity and the quest for Self-Sovereign Identity - Daniel Hardman
Identity and the quest for Self-Sovereign Identity - Daniel HardmanIdentity and the quest for Self-Sovereign Identity - Daniel Hardman
Identity and the quest for Self-Sovereign Identity - Daniel Hardman
 
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
 
Modern Authentication with OpenID Connect and IdentityServer 4 (umBristol - J...
Modern Authentication with OpenID Connect and IdentityServer 4 (umBristol - J...Modern Authentication with OpenID Connect and IdentityServer 4 (umBristol - J...
Modern Authentication with OpenID Connect and IdentityServer 4 (umBristol - J...
 
Verifiable Credentials 101 for SSI and Decentralized Digital Identity - Tyler...
Verifiable Credentials 101 for SSI and Decentralized Digital Identity - Tyler...Verifiable Credentials 101 for SSI and Decentralized Digital Identity - Tyler...
Verifiable Credentials 101 for SSI and Decentralized Digital Identity - Tyler...
 
Apache con@home 2021_sha
Apache con@home 2021_shaApache con@home 2021_sha
Apache con@home 2021_sha
 
Nordic APIs - Building a Secure API
Nordic APIs - Building a Secure APINordic APIs - Building a Secure API
Nordic APIs - Building a Secure API
 
Incorporating OAuth: How to integrate OAuth into your mobile app
Incorporating OAuth: How to integrate OAuth into your mobile appIncorporating OAuth: How to integrate OAuth into your mobile app
Incorporating OAuth: How to integrate OAuth into your mobile app
 

Similar to Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the application of BCM Principles

Similar to Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the application of BCM Principles (20)

An Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices WorldAn Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices World
 
How Secure is Your API?
How Secure is Your API?How Secure is Your API?
How Secure is Your API?
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocation
 
Launching a Successful and Secure API
Launching a Successful and Secure APILaunching a Successful and Secure API
Launching a Successful and Secure API
 
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
 
FIDO Technical Overview at FIDO KWG Hackathon
FIDO Technical Overview at FIDO KWG HackathonFIDO Technical Overview at FIDO KWG Hackathon
FIDO Technical Overview at FIDO KWG Hackathon
 
IoT Wonderland: Understanding the Magic of OAuth2 Device Registration Flow
IoT Wonderland: Understanding the Magic of OAuth2 Device Registration FlowIoT Wonderland: Understanding the Magic of OAuth2 Device Registration Flow
IoT Wonderland: Understanding the Magic of OAuth2 Device Registration Flow
 
Open APIs - Risks and Rewards (Øredev 2013)
Open APIs - Risks and Rewards (Øredev 2013)Open APIs - Risks and Rewards (Øredev 2013)
Open APIs - Risks and Rewards (Øredev 2013)
 
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
 
What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017
 
WebRTC Identity in SAML Federations
WebRTC Identity in SAML FederationsWebRTC Identity in SAML Federations
WebRTC Identity in SAML Federations
 
KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdfKubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
 
Neo-security Stack
Neo-security StackNeo-security Stack
Neo-security Stack
 
Diameter Presentation
Diameter PresentationDiameter Presentation
Diameter Presentation
 
OAuth in the Real World featuring Webshell
OAuth in the Real World featuring WebshellOAuth in the Real World featuring Webshell
OAuth in the Real World featuring Webshell
 
Financial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectFinancial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID Connect
 
FIWARE Global Summit - Identity Management and Access Control
FIWARE Global Summit - Identity Management and Access ControlFIWARE Global Summit - Identity Management and Access Control
FIWARE Global Summit - Identity Management and Access Control
 
Internet of Things Security & Privacy
Internet of Things Security & PrivacyInternet of Things Security & Privacy
Internet of Things Security & Privacy
 
LAS16-306: Exploring the Open Trusted Protocol
LAS16-306: Exploring the Open Trusted ProtocolLAS16-306: Exploring the Open Trusted Protocol
LAS16-306: Exploring the Open Trusted Protocol
 

More from Nat Sakimura

車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
Nat Sakimura
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problems
Nat Sakimura
 
Transient client secret extension
Transient client secret extensionTransient client secret extension
Transient client secret extension
Nat Sakimura
 
Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604
Nat Sakimura
 
Open idとcyber空間
Open idとcyber空間Open idとcyber空間
Open idとcyber空間
Nat Sakimura
 
Open id specifications_work_update-tokyo_2011
Open id specifications_work_update-tokyo_2011Open id specifications_work_update-tokyo_2011
Open id specifications_work_update-tokyo_2011
Nat Sakimura
 

More from Nat Sakimura (20)

FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
 
OpenID in the Digital ID Landscape: A Perspective From the Past to the Future
OpenID in the Digital ID Landscape: A Perspective From the Past to the FutureOpenID in the Digital ID Landscape: A Perspective From the Past to the Future
OpenID in the Digital ID Landscape: A Perspective From the Past to the Future
 
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
 
ブロックチェーン〜信頼の源泉の民主化のもたらす変革
ブロックチェーン〜信頼の源泉の民主化のもたらす変革ブロックチェーン〜信頼の源泉の民主化のもたらす変革
ブロックチェーン〜信頼の源泉の民主化のもたらす変革
 
API Days 2016 Day 1: OpenID Financial API WG
API Days 2016 Day 1: OpenID Financial API WGAPI Days 2016 Day 1: OpenID Financial API WG
API Days 2016 Day 1: OpenID Financial API WG
 
OpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WGOpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WG
 
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
 
OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problems
 
Transient client secret extension
Transient client secret extensionTransient client secret extension
Transient client secret extension
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect
 
Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604
 
Smartphone Native Application OP
Smartphone Native Application OPSmartphone Native Application OP
Smartphone Native Application OP
 
Open idとcyber空間
Open idとcyber空間Open idとcyber空間
Open idとcyber空間
 
サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済
 
Closing Note
Closing NoteClosing Note
Closing Note
 
20110706 PIDSプロジェクト中間報告
20110706 PIDSプロジェクト中間報告20110706 PIDSプロジェクト中間報告
20110706 PIDSプロジェクト中間報告
 
Open id specifications_work_update-tokyo_2011
Open id specifications_work_update-tokyo_2011Open id specifications_work_update-tokyo_2011
Open id specifications_work_update-tokyo_2011
 
国民ID制度とトラスト・フレームワーク
国民ID制度とトラスト・フレームワーク国民ID制度とトラスト・フレームワーク
国民ID制度とトラスト・フレームワーク
 
Introduction to OpenID TX proposed extension
Introduction to OpenID TX proposed extensionIntroduction to OpenID TX proposed extension
Introduction to OpenID TX proposed extension
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the application of BCM Principles

  • 1. Nomura Research Institute #osw17 Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the application of BCM Principles July 14, 2017 Nat Sakimura Nomura Research Institute
  • 2. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute Nat Sakimura (Co-)Author of:  OpenID Connect Core 1.0  JSON Web Token [RFC7519]  JSON Web Signature [7515]  OAuth PKCE [RFC7636]  OAuth JAR [forthcoming]  Etc. (Co-)Editor of:  ISO/IEC 29184 Guidelines for online notice and consent  ISO/IEC 29100 AMD: Privacy Framework  ISO/IEC 27551 Requirements for attribute based unlinkable entity authentication  Etc. • Research Fellow, Nomura Research Institute • Chairman of the Board, OpenID Foundation • Chair, Financial API WG • Head of Japanese delegation to ISO/IEC JTC 1/SC 27/WG5 • Liaison Officer SC 27/WG5 -- OECD/SPDE • https://nat.Sakimura.org • @_nat_en (English) • @_nat (Japanese) • Linked.in/natsakimura • https://www.linkedin.co m/in/natsakimura • https://ja.wikipedia.org/ wiki/崎村夏彦 .. and an amateur flutist (https://youtu.be/3gTCQhTcXL0)
  • 3. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute BCM Principles P1 Positional tagging. Cryptographic message components should contain information that uniquely identities their origin. In particular, the information should identify the protocol, the protocol variant, the message number, and the particular position within the message, from which the component was sent. P2 Inclusion of identities and their roles. Each cryptographic message component should include information about the identities of all the agents involved in the protocol run and their roles, unless there is a compelling reason to do otherwise. 3 Criteria (a)Unique Source Identifier (b)Protocol + version + msg identifier (c)Full list of actor/roles Basin, D., Cremers, C., Meier, S.: Provably Repairing the ISO/IEC 9798 Standard for Entity Authentication. Journal of Computer Security - Security and Trust Principles archive Volume 21 Issue 6, 817-846 (2013) (a) (b) (c)
  • 4. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute Let’s apply! 4 Let’s Play!
  • 5. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute RFC6749 OAuth – code grant protocol msgs Authorization Request Authorization Response Token Request Token Response Assume:  a network attacker as (e.g. Browser malware) the crypto & TLS are not broken pure RFC6749 – Three parties static OAuth 2.0 5 UA Clien t AS
  • 6. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute So, how is RFC6749 (Naïve implementation) doing? Message Parameters (a) Unique Source Identifier (b) Protocol + version identifier (c) Full list of actor/roles Authorization Request response type client id redirect uri scope state Authorization Response code state other extension parameters Token Request grant type code redirect uri client credential/client id . Token Response access token token_type expires_in refresh_token others 6 Combination of parameters are unique for each message type = (b) Good! Legend Required Parameter Optional Parameter Recommended Parameter But the good ends here.
  • 7. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute So, how is RFC6749 (Naïve implementation) doing? Message Parameters (a) Unique Source Identifier (b) Protocol + version identifier (c) Full list of actor/roles Authorization Request response type client id redirect uri scope state Client ID is not globally unique. Tampering possible List of params as identifier, but it is not integrity protected No. Authorization Response code state other extension parameters No source identifier As above No Token Request grant type code redirect uri client credential/client id Client ID is not globally unique. OK (as long as there is no OAuth 3.0) No. Token Response access token token_type expires_in refresh_token others No source identifier As above No. 7
  • 8. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute 8 It’s a sad state.
  • 9. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute Could be tightened up Message Parameters (a) Unique Source Identifier (b) Protocol + version identifier (c) Full list of actor/roles Authorization Request response type client id redirect uri scope state Unique redirect URI + Client ID Request signing (a) + state as the UA identifier / TBID as UA identifier Authorization Response code state other extension parameters Unique redirect URI Response signing (a) + client_id + state as the UA identifier / TBID as UA identifier Token Request grant type code redirect uri client credential/client id Unique redirect URI + Client ID OK (as long as there is no OAuth 3.0) (a) + state as the UA identifier / TBID as UA identifier Token Response access token token_type expires_in refresh_token others Unique redirect URI As above (a) + client_id + state as the UA identifier / TBID as UA identifier 9
  • 10. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute Integrity protect the AuthZ Request/Response • draft-ietf-oauth-jwsreq aka OAuth JAR AuthZ Request • Use ID Token as a dethatched signature. • Include new parameter `s_hash` in the ID Token. AuthZ Response 10
  • 11. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute Comparison Message Original Parameters Modified Parameters Original Integrity Protection Modified Integrity Protection Authorization Request response type client id redirect uri scope state response type client id redirect uri (uniqeue) scope state/tbid None JAR Authorization Response code state extension params code state redirect uri (uniqeue) client id state/tbid extension params None ID Token + s_hash Token Request grant type code redirect uri client cred/id grant type code redirect uri (uniqeue) client cred/id state/tbid TLS TLS Token Response access token token_type expires_in refresh_token others access token token_type expires_in refresh_token others TLS TLS 11
  • 12. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute BCM Principles Satisfied! 12
  • 13. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute 13
  • 14. © 2016 by Nomura Research Institute. All rights reserved. Nomura Research Institute 14 Science needed!