ietf96 update oauth tokbind
TRANSCRIPT
https://lepidum.co.jp/ Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.
IETF96 BerlinOAUTH関連レポート
株式会社レピダム
前田薫 (@mad_p)
IETF96報告会 2016/09/12
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Agenda
WG
oauth
tokbind
IETF96
Berlin, DE
Jul 17-22, 2016
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
自己紹介
名前 前田薫@mad_p
所属 株式会社レピダムシニアプログラママネージャ
コミュニティー活動 Lightweight Language
Identity Conference
http2study
業務領域 認証・認可、デジタルアイデンティティー、プライバシー
標準化支援
ソフトウェアセキュリティー、脆弱性
IETFとの関わり IETF89 Londonより
ART, SECエリア中心
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
oauth WG Overview
月曜日と水曜日の2コマ開催 Minutes
https://www.ietf.org/proceedings/96/minutes/minutes-96-oauth
サポートドキュメントは順調 Mix-up Attackに対するmitigationとメタデータについて議論
前週にドイツTrierでOAuth Security WS開催 OAuth2プロトコルのFormal Verification結果報告 IETFで仕様化したプロトコルの前段での問題
OAuth2向けToken Bindingでもめる(後半で解説)
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
oauth WG Presentations (1/2)
Brian Campbell: Token exchange すでに得ている認可トークンを利用して権限委譲や偽装を行うトークンを得る
use caseをわかりやすく
William Dennis: OAuth for Native Apps → WGLC スマホなどのネイティブアプリでのOAuth/OpenID Connectフローにおけるベストプラクティス
William Dennis: OAuth Device Flow TVなど入力装置がないが表示装置はあるデバイス。スマホや
PCから表示されたコードを入力して認可を行う
Mike Johns: AMR Values → WGLC 認可に際し、使用した認証手段(パスワード、指紋など)を表現するための語彙
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
oauth WG Presentations (2/2)
Mike Johns: OAuth 2.0 Authorization Server Discovery Metadata IdP Mix-up Attackに対する緩和策として、エンドポイント情報をサーバーメタデータとして提供する形式を定める
Andrey Labunets: Mix-up mitigation IdP Mix-up Attackの緩和手法について、セキュリティープロパティー(Authentication, Containment)とプロバイダ・クライアントでの実装コスト、移行コストから評価
Mike Johns: Token Binding for OAuth and OpenID Connect and Implementations for the Token Binding Protocol tokbind WGの成果に対応し、token bindingのOAuthシナリオでの使い所を議論
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
OAuth for Native Apps
Native AppsのためのBCP WebView (WebView UI element,
UIWebView/WKWebView)でなく、device browser (Chrome Custom Tabs SFSafariViewController)を使う
各プラットフォームでのデモ(cmd窓も) ライブラリ GoogleへのOAuth2リクエストでは、WebViewを近々
deprecateする予定 https://developers.googleblog.com/2016/08/modernizing-
oauth-interactions-in-native-apps.html
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Mix-up mitigation
Andrey: Mix-up attackのmitigation手法を評価
POSTすると多くのブラウザでOriginヘッダが自動的につく
まずはmitigationのBCP → OAuth Specの次バージョンでnormativeにする
既知のアタックをすべて網羅する必要があるだろう
IETF96報告会 2016/09/12
Authentication Containment DevelopmentCost
Deprecation Cost
iss + client_id 部分的 ○ 中 なし
POST binding + Origin check
○ ○ 中 大
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
oauth WGまとめ
OAuth2プロトコル成立後、周辺の拡張、プロファイルなどの策定が進む
OAuth2に対する攻撃が報告され、緩和策が提案されている
BCPとしてまとめる
わかっている問題をすべて網羅したい
その後、normative changeとして改訂版のOAuthプロトコルとする
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
tokbind WG Overview
火曜日開催
Minutes: https://www.ietf.org/proceedings/96/minutes/minutes-96-tokbind
Token Bindingのコアドキュメントは順調
プライバシーレビューを経てWGLCへ
OAuth2向けToken BindingとAPI要件でもめる
OAuth WGで検討を続ける
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
tokbind WG Presentations
Andrei Popov: Token Binding Protocol I-D Changes Since IETF 95 コア文書はほぼWGLCに行ける品質
Dirk Balfanz: Token Binding over HTTPS デモ Chrome Canary - Google IdP fetch() API(W3C WHATWG)へのToken Bindingの取り込み
Mike Johns: Token Binding for OAuth and OpenID Connect OAuth2、OpenID Connectにおけるtoken bindingの使い方 Referred Token Binding IDを指定するAPIが必要 OAuth特有の問題でありOAuth WGで検討すべし
Brian Campbell: A Token Binding method for OAuth 2.0 PKCE OAuth2のPKCEにtoken bindingを使う方法
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Token Binding の概要
参考: http://www.slideshare.net/KaoruMaeda/tokbindfido
IETF96報告会 2016/09/12
TLS接続
Exported Key Material (EKM)
EKM
EKMを秘密鍵で署名、TokenBindingID(公開鍵)とセットにして送る
もらった公開鍵とEKMで署名検証
• いま話してる相手が• この公開鍵に対応した秘密鍵を持っている
• トークンとTBIDを関連づける
TokenBinding
サーバーごとに鍵ペアを生成
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Token Binding for Refresh Token
Refresh Token
2-party 1-TLS
かんたん
IETF96報告会 2016/09/12
Client AS
codeを送る
refresh_token
TBID にbind
refresh_tokenを使う
TBID検証
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Token Binding for ID Token
ID Token 3-party 2-TLS draft-ietf-tokbind-httpsでカバー 302 redirectでReferred-TBIDを出す
.
IETF96報告会 2016/09/12
RP
IdP
①認証要求(302 redirect)
TBID検証ブラ
ウザ ②認証(Referred TBID-RP)
③ID Tokenを返す(302)
TBID-RP にbind
④ID Tokenを渡す
302とヘッダをトリガとして
RP用のTBID をIdPに送る
Include-Referred-Token-Binding-ID: true
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Token Binding for Access Token (1/2)
Access Token
3-party 3-TLS
Client, RS, AS
???
IETF96報告会 2016/09/12
RS
AS
Client
ブラウザ
⑤access_token使用
①認可要求
②code (302)
③codeからaccess_token要求Referred TBID-RS を送る
TBID検証
何をトリガとして何を送る???
④ID Tokenを返すTBID-RS にbind
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Token Binding for Access Token (2/2)
何が問題か 302 + Include-RTBIDのような明確なトリガがない どのTBIDを送ってよいのかわからない
ClientのOAuthレイヤからHTTPSレイヤに「オリジン rs.example.com 用のTBIDをReferredとしてas.example.comに送れ」と指示したい
HTTPSレイヤにReferred TBIDを指定するための何らかのAPIが必要 APIのあり方について長~~い議論となった APIの実装まで規定したくない(それはW3Cのお仕事) 機能要求として、コア文書に書けばよい。さらっと1文追加
問題: これをtoken bindingのコア文書に書くべきか? それともHTTPS文書に書くべきか? → 結論: OAuth WGでToken Bindingの文書を作ればよい
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
tokbind WG まとめ
Token Bindingのコア文書は十分成熟 プライバシーレビュー後WGLC
OAuth向けシナリオを検討した結果、十分考えられていない部分が発覚 HTTPS層に対してReferred-TBIDを指定するAPIが必要
APIの機能要求だけをコア文書には記述
OAuth向けの詳細な活用はOAuth WGで検討
さらっとWGLCに入ってWG完了と思いきや、意外な伏兵で議論が炎上した
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
まとめ
oauth WG プロトコルの周辺拡張・プロファイル策定
攻撃ベクターと緩和策BCP文書の必要性
Token Bindingシナリオへの対応
tokbind WG コア文書が十分な品質に
プライバシーレビュー→ WGLC
API問題には深入りせず
IETF96報告会 2016/09/12
Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/
Any Questions? Feedbacks Welcome!
https://lepidum.co.jp/mailto:[email protected] / twitter: @mad_p
IETF96報告会 2016/09/12