ietf97 update oauth tokbind

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

Upload: kaoru-maeda

Post on 20-Feb-2017

160 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: IETF97 Update oauth tokbind

https://lepidum.co.jp/ Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.

IETF97SeoulOAUTH関連レポート

株式会社レピダム

前田薫 (@mad_p)IETF97報告会 2016/12/16

IETF97報告会 2016/12/16

Page 2: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

Agenda

n WGn oauthn tokbind

n IETF97n Seoul,KRn Nov13-18,2016

IETF97報告会 2016/12/16

Page 3: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

⾃⼰紹介

n 名前n 前⽥薫@mad_p

n 所属n 株式会社レピダムシニアプログラマ

n コミュニティー活動n ISOC-JPPCn LightweightLanguagen IdentityConferencen http2study

n 業務領域n 認証・認可、デジタルアイデンティティー、プライバシー

n 標準化⽀援n ソフトウェアセキュリティー、脆弱性

n IETFとの関わりn IETF89Londonよりn ART,SECエリア中⼼

IETF97報告会 2016/12/16

Page 4: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/ IETF97報告会 2016/12/16

Page 5: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

oauth WGOverview

n ⽉曜⽇と⽔曜⽇の2コマ開催n Minutes draft

n https://www.ietf.org/proceedings/97/minutes/minutes-97-oauth-00.txt

n DeviceFlow:ログイン⼿段のないデバイスはスマホで認証

n OAuth2向けTokenBindingの話がまだ続くn セキュリティー等に関するBCPを作成する

IETF97報告会 2016/12/16

Page 6: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

oauth WGDocumentsUpdaten draft-ietf-oauth-amr-values-03 →IESG

AuthenticationMethodReferenceValuesn 認可に際し、使⽤した認証⼿段(パスワード、指紋など)を表現するための語彙

n draft-ietf-oauth-jwsreq-09 →IESGTheOAuth2.0AuthorizationFramework:JWTSecuredAuthorizationRequest(JAR)n 認可リクエストをJWTにパッケージし、署名(JWS)または暗号化

(JWE)を可能とするn draft-ietf-oauth-native-apps-05

OAuth2.0forNativeAppsn スマホなどのネイティブアプリでのOAuth/OpenIDConnectフローにおけるベストプラクティス

n いくつかの最終調整を経てIESGへ

IETF97報告会 2016/12/16

Page 7: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

oauth WGPresentations(1/2)

n HannesTschofenig:DeviceFlown TVなど⼊⼒装置がないが表⽰装置はあるデバイス。スマホや

PCから表⽰されたコードを⼊⼒して認可を⾏うn MikeJohns:AuthorizationServerMetadata

n IdP Mix-upAttackに対する緩和策として、エンドポイント情報をサーバーメタデータとして提供する形式を定める

n →認可サーバーのメタデータを独⽴した⽂書としてpublishn →リソースサーバーについては説明不⾜

n BrianCampbell:OAuth2.0TokenBindingn tokbind WGからoauth WGへ持ってきた。OAuth2.0でのToken

Bindingの活⽤⽅法

IETF97報告会 2016/12/16

Page 8: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

oauth WGPresentations(2/2)n Brain Campbel: OAuthTokenExchange

n すでに得ている認可トークンを利⽤して権限委譲や偽装を⾏うトークンを得る

n →WGLC前にもっと実装経験が必要n TorstenLodderstedt:OAuthSecurity

n OAuth2のセキュリティー上の問題やantipatternsなどをまとめるn 前回BerlinでBCPの必要性が⽰されたn →セキュリティーに限定せずBCPとしてWGアイテムに

n JustinRicher:HTTPSigningn リソースサーバーへのリクエストをJWTにパッケージして署名/暗号化するn →MLで議論。実装者がいるのかどうか

n JohnBradley:ResourceIndicatorn access_tokenを使⽤するリソースサーバーをクライアントから認可サーバーに伝えるためのパラメータ

IETF97報告会 2016/12/16

Page 9: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

DeviceFlow(1/2)

IETF97報告会 2016/12/16

https://www.ietf.org/proceedings/96/slides/slides-96-oauth-2.pdf

Page 10: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

DeviceFlow(2/2)n 3openissues

n pollingn AS→device向きにポーリングするのださいよねn そのままがシンプルでよいn HTTP/2ベースのlong-pollingならリソース⾷わないn OpenIDMODRNAWGではpull/pushを検討中

n UI関連n codeと verificationURIをユーザーがデバイスで⼊⼒しなければならない

n ガイダンスが必要か?n 他の⼿段

n 例:ユーザーが電話番号を⼊⼒、SMSでcodeを送るn このような他の⼿段もdocumentすべきかn 結論:experienceがあれば⼊れる、なければ⼊れない

IETF97報告会 2016/12/16

Page 11: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

TokenBindingforOAuth(1/2)

n tokbind側の⽂書を修正n referredTBIDtrigger

n applicationspecificに決めてよいn keyscopingrules

n TBIDは特にnativeappで、何をしているかわかるときにはIdPとRPとで同⼀にしてもよい

n JWT、id_tokenでのtoken bindingの表現n cnfクレーム(RFC7800)にtbhとしてTBIDのハッシュを⼊れる

IETF97報告会 2016/12/16

Page 12: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

TokenBindingforOAuth(2/2)n AccessToken

n トリガ問題(前回) →アプリが知っているでOKn ATをtokenbindした場合、resourceserverが検証できるためにはRS向けのTBIDにbindする必要がある

n TBIDはeTLD+1をスコープとするべき(SHOULD)n →複数ドメインにまたがるリソースで同⼀のATを使えない

n Authorizationcoden codeを提⽰する接続にbindする

n nativeclient: nativeclient→★→tokenendpointn appserverclient:browser→★→ redirect_uri →tokenendpoint

n pkce_challengeの仕組みを使って運ぶ案が⽰されたn 対downgrade attack

n tokenbindingを使うかどうかをメタデータに⼊れる

IETF97報告会 2016/12/16

Page 13: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

oauth WGまとめn OAuth2プロトコル成⽴後、周辺の拡張、プロファイルなどの策定が進む

n TokenBindingについて議論が進んだn OAuth2に対する攻撃と緩和策をBCPとしてまとめる作業に着⼿n セキュリティーに限定しない

IETF97報告会 2016/12/16

Page 14: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/ IETF97報告会 2016/12/16

Page 15: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

tokbind WGOverview

n ⽉曜⽇開催n Minutesdrafthttps://www.ietf.org/proceedings/97/minutes/minutes-97-tokbind-01.txt

n TokenBindingのコアドキュメントは順調n WGLC〜11/30

n 0-RTTやreverseproxyでの扱いについて検討n Chromeを使ったデモ

IETF97報告会 2016/12/16

Page 16: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

TokenBindingの概要n 参考:http://www.slideshare.net/KaoruMaeda/tokbindfido

IETF97報告会 2016/12/16

TLS接続ExportedKeyMaterial(EKM)

EKM

EKMを秘密鍵で署名、TokenBindingID(公開鍵)とセットにして送る

もらった公開鍵とEKMで署名検証

• いま話してる相手が• この公開鍵に対応した秘密鍵を持っている

• トークンとTBIDを関連づける

TokenBinding

サーバーごとに鍵ペアを⽣成

Page 17: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

tokbind WGPresentationsn AndreiPopov:ChangesintheCoreTokenBindingI-DsSince

IETF96n コア⽂書3件の残ったissueなど。renegotiation、0-RTT、OAuth関連の議論

n コア⽂書はWGLCに突⼊し、残issueはWGLCコメントと扱うn NickHarper: TokenBindingfor0-RTTTLS1.3Connections

n →WGアイテムn TLS 1.3で導⼊される0-RTTでtokenbindingを使う場合の

exportedkeymaterial(EKM)についてn BrianCampbell:HTTPSTokenBinding&TLSTermination

n →WGアイテムn reverseproxyでTLSを終端する場合、どのようにtokenbinding情報をアプリサーバーに渡すか

IETF97報告会 2016/12/16

Page 18: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

core⽂書関連の議論n renegotiationによってEKMが変わる

n 変更前/変更後どちらのEKMを使うか?n →アプリがEKMを取得してTBmessageを作ってから、送信するまでの間にリネゴが⾛る可能性は常にある

n →そのような場合はリトライn Profileで規定されない限りrenegotiation禁⽌

n OAuthにやさしいTB修正案n oauthの項(前述)で⽰した修正案でOKn JavaScriptからのFetchでreferredTBIDを指定したい

n JSのオリジン以外のTBIDを送信指⽰できるべきでないn →おっとそれだといろいろ困るんだけど!n →CORSAccess-Control-Allow-Referred-Token-Binding?

n →まぬけなRSがあって同⼀のeTLD+1の送出許可を出すおそれ

IETF97報告会 2016/12/16

Page 19: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

0-RTTとtokenbindingEKMの問題n RFC5705exporterはTLShandshakeが終わらないと使えない→0-RTTでは使えない

n 現ドラフトの案: earlyexporterを定義n 0-RTTacceptされたらearlyexporterをずっと使うn rejectされたらRFC5705を使う

n replayprotectionn 新しいTLSextensionでnonceを送り、サーバーから返す案

n TB専⽤でなく、より⼀般的な解があるはず。もっと考えよう

IETF97報告会 2016/12/16

Page 20: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

reverse proxy

n TLSterminatorからアプリサーバーへ「何か」情報を渡さないとTBは使えないn 「何か」を標準化しないと実装がたくさんできて困りそう

n 2つのアプローチn TLSterminatorでTBをvalidateして、TB系ヘッダーとしてバックエンドサーバーへ検証済と送る

n LBでアプリレイヤの検証をするのか?n TLSterminatorからexportしてTBメッセージをヘッダーで渡し、アプリサーバーが検証する

n 検証失敗時のアプリサーバーからの切断指⽰が難しい。HTTPstatuscode?

IETF97報告会 2016/12/16

Page 21: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

tokbind WGまとめn TokenBindingのコア⽂書はWGLCに

n 残ったissueはコーナーケースだが重要n OAuthとの親和性向上n 実⽤化に向けての検討も進む

n 0-RTT、reverseproxyのサポートn JSFetchAPIとSameOriginPolicyについて注視

IETF97報告会 2016/12/16

Page 22: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/ IETF97報告会 2016/12/16

Page 23: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

まとめn oauth WG

n 攻撃ベクターと緩和策BCP⽂書に着⼿n TokenBindingとの整合性を確認

n tokbind WGn コア⽂書が⼗分な品質に→WGLCn 0-RTT、reverseproxyでの活⽤について検討

IETF97報告会 2016/12/16

Page 24: IETF97 Update oauth tokbind

Copyright© 2004-2016LepidumCo.Ltd.Allrightsreserved.https://lepidum.co.jp/

AnyQuestions?FeedbacksWelcome!

https://lepidum.co.jp/mailto:[email protected]/twitter:@mad_p

IETF97報告会 2016/12/16