ietf96 update oauth tokbind

22
https://lepidum.co.jp/ Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. IETF96 Berlin OAUTH 関連レポート 株式会社レピダム 前田 (@mad_p) IETF96 報告会 2016/09/12 IETF96報告会 2016/09/12

Upload: kaoru-maeda

Post on 20-Feb-2017

851 views

Category:

Internet


2 download

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/

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/

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/

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