23
https://lepidum.co.jp/ Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved. Token Binding FIDO 株式会社レピダム 前田 (@mad_p) # fidcon 2015/05/27 #fidocon 2015/05/27

Tokbind-fido

Embed Size (px)

Citation preview

https://lepidum.co.jp/ Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.

Token BindingとFIDO

株式会社レピダム

前田薫 (@mad_p)

#fidcon 2015/05/27

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

bearer tokenとholder-of-key token

bearer token holder-of-key token

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Token Binding

ベアラーセキュリティートークン

OAuth token

HTTPクッキー

盗まれて行使できてしまう

特定の者だけに許可したい

IDと関連づけて管理→ 行使時のIDを確認

draft-ietf-tokbind-protocol-00

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

IETF92 in Dallas

tokbind WG (Security エリア)

token bindingを標準化するWG

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Token Binding ID

#fidocon 2015/05/27

Public Keyを使ってToken Binding IDを定義

サーバーごとに1組の鍵ペア

セキュアストレージ

鍵ペア

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Token Binding(1) トークン要求

#fidocon 2015/05/27

TLS接続

tls-unique

tls-unique

tls-uniqueを秘密鍵で署名、TokenBindingIDとセットにして送る

もらった公開鍵とtls-uniqueで署名検証

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

TokenBinding

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Token Binding(2) トークン発行

#fidocon 2015/05/27

TokenBindingIDとトークンを関連づける

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Token Binding(3) トークン行使

#fidocon 2015/05/27

tls-unique

TokenBinding

トークンとTokenBindingを送る TokenBindingを検証

トークンに関連づけておいたTokenBindingIDと比較

tls-unique

• いま話してる相手が• トークン発行先

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Token Binding IDの詳細

以下の要素を持つバイナリ構造体

TokenBindingType: providedまたはreferred

SignatureAndHashAlgorithm: p256またはrsa2048

公開鍵

タイプは後述

署名/ハッシュ方式もIDの一部とする

ダウングレード攻撃を防ぐ

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

ネゴシエーション

TokenBindingを使うかどうか ALPNで決める案

ALPN IDが長くなっちゃうのがいまいち

TLSの新しい拡張を作る案

TLSセッション確立後の最初のユーザープロトコルで送信

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

注意すべき点

プライバシー Token Binding IDはサーバーごとに別にする

複数サーバーの結託「こいつ同じやつだ」を防ぐ

Token Binding IDはクリアテキストで送らない 横から見て「あいつあのサーバー行った」を防ぐ

ユーザー要求で削除できるように

セキュリティー Man-in-the-Browserは防げない点に注意

秘密鍵をエキスポート不可な場所に保存 取り出して他のマシンで使われることを防ぐ

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

ChannelIDってのもありましたね?

#idcon 16th でちょろっと話が

draft-balfanz-tls-channelid-01 Google Chromeなどに実装済

individual draftのままexpire

著者のDirk Balfanzはtokbind-protocol-00の著者にも入っている

Channel IDとtokbindの比較 公開鍵と署名を送るのは同じ

ChannelIDはTLS拡張で送信

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

HTTPでのToken Binding

draft-ietf-tokbind-https-00 Token-Binding HTTPヘッダを使って

TokenBindingMessageを送る

クッキーやOAuthトークンをTokenBindingIDと関連づける トークン内に記入して署名 データベースに保存

#fidocon 2015/05/27

GET / HTTP/1.1

Host: example.com

Token-Binding: DLF02LDSK3DMS28SA…

User-Agent: …

おなじみ

Url-safe Base64

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

フェデレーションサポート

IdPから得たid_tokenをRPに提示 RPがid_tokenを見て確かに今これを持ってきた人はIdPからこのトークンをもらった人だと確認したい

id_tokenにToken Binding ID入れればいい! Token Binding IDはIdP用とRP用で異なる RP用のToken Binding IDをid_tokenに入れる必要がある

クライアントがRP用のToken Binding IDをIdPに渡す

#fidocon 2015/05/27

http://www.ietf.org/proceedings/92/slides/slides-92-tokbind-2.pdf

http://www.ietf.org/proceedings/92/slides/slides-92-tokbind-2.pdf

TokenBinding RP用

TokenBinding RP用TokenBinding IdP用

tls-unique-r

tls-unique-i

providedタイプ

providedタイプ referredタイプ

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

FIDO

#fidocon 2015/05/27

challenge

challengechallenge

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

tls-unique

Token BindingとFIDO

#fidocon 2015/05/27

challenge

challenge

tls-uniqueTokenBinding

challenge

tls-unique

FIDOデバイスを持っていればトークンが使える

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

まとめ

TokenBinding 鍵ペアとtls-uniqueで相手を特定

トークンを関連づけて行使者を限定

フェデレーションサポート

FIDOを使って署名

#fidocon 2015/05/27

Copyright © 2004-2015 Lepidum Co. Ltd. All rights reserved.https://lepidum.co.jp/

Any Questions? / Please Feedback!

https://lepidum.co.jp/

mailto:[email protected] / twitter: @mad_p

#fidocon 2015/05/27