Slide 1

Slide 1 text

WebAuthnの導入事例から見る 定石と今後の課題 @ritou #webauthn_study 2019/10/28

Slide 2

Slide 2 text

@ritou

Slide 3

Slide 3 text

本日の内容 •事例から導入のポイントを整理 •2段階/2要素としての導入 •「パスワードレス」としての導入 •GOAL:不安になりそうな部分を認識し て導入に向けた一歩を踏み出す

Slide 4

Slide 4 text

2段階/2要素としての導入

Slide 5

Slide 5 text

の前に、リカバリーの話

Slide 6

Slide 6 text

by 誰か “FIDOはリカバリーが課題だよね”

Slide 7

Slide 7 text

アカウントリカバリー •利用不可能になったクレデンシャルの無効 化&再設定 •パスワード •TOTP(Secret) •リカバリーコード •Authenticator(PublicKey) •別の認証方式 or 複数登録 に収束

Slide 8

Slide 8 text

パスワード認証における リカバリー •忘れた •別の認証方式 + 再設定 •利用できない環境 •覚えてればあらゆる環境で利用可能

Slide 9

Slide 9 text

SMS/Emailへ通知における リカバリー •番号、メアドが変わった •別の認証方式 + 無効化/再設定 •一時的に利用できない環境、状況 •別の認証方式

Slide 10

Slide 10 text

TOTPにおける リカバリー •手元の端末の設定消した、落とした •別の認証方式 + 無効化/再設定 •一時的に利用できない環境、状況 •別の認証方式

Slide 11

Slide 11 text

リカバリーコードの リカバリー(?) •紛失、盗難 •別の認証方式 + 無効化/再発行 •一時的に利用できない環境、状況 •別の認証方式

Slide 12

Slide 12 text

FIDOにおける リカバリー •紛失、盗難 •別の認証方式もしくは複数登録可能 にして無効化/再設定 •利用できない環境 •別の認証方式

Slide 13

Slide 13 text

リカバリーは それほど問題ではない

Slide 14

Slide 14 text

(改めて) 2段階/2要素としての導入

Slide 15

Slide 15 text

導入事例 •Google, Github… •パスワード認証との組み合わせ •間違っても単一要素で通さない

Slide 16

Slide 16 text

どこに手を入れるか •アカウント設定 •認証 •再認証 •(2段階/2要素が必須でない限りは)新 規登録の対応は任意

Slide 17

Slide 17 text

アカウント設定 •追加認証を有効にする •リカバリー設定 : 別の認証方式を用意 •SMS/Emailによる通知 •リカバリーコード設定 •Authenticator(PublicKey)設定 •名前をつけるタイミング?

Slide 18

Slide 18 text

アカウント設定 (Github)

Slide 19

Slide 19 text

認証 •パスワード認証+追加認証を要求 •複数ある場合に優先する認証方式? •設定やWebAuthnの利用可否で分岐? •別の認証方式への切り替え •スキップ機能 = Cookieの所持認証?

Slide 20

Slide 20 text

認証(Github)

Slide 21

Slide 21 text

再認証 •例 : Github •「パスワード確認」していたところ に WebAuthn が利用可能

Slide 22

Slide 22 text

再認証(Github)

Slide 23

Slide 23 text

検討事項

Slide 24

Slide 24 text

(検討事項) リカバリー用の認証方式 •海外サービスでは最低でも2つは用意 している模様 •SMS •リカバリーコード •カスタマーサポートの負担が決まる

Slide 25

Slide 25 text

(検討事項) 利用可能な環境の制限 •制限する場合は管理が必要 •User-Agent •Platform or Cross-platform •Attestation

Slide 26

Slide 26 text

(検討事項) 追加認証要求のタイミング •パスワード認証「成功」したら要求 •パスワード認証結果に関わらず要求 •パスワード認証前に要求

Slide 27

Slide 27 text

まとめ •アカウント設定のあたりは定石と呼 べるものができており、環境を縛る かどうかぐらいか •認証部分はまだ考慮すべき点がある かも?

Slide 28

Slide 28 text

パスワードレスとしての導入

Slide 29

Slide 29 text

2段階/2要素に比べて なんとなく不安?

Slide 30

Slide 30 text

やはりリカバリー?

Slide 31

Slide 31 text

(あなたの思う) パスワードレスとは? •パスワードを使わない •所持 or 生体 or 記憶(ローカル?) •FIDO UP(UserPresent)はNG? •FIDO UV(UserVerified)相当 •所持 + (記憶 or 生体)

Slide 32

Slide 32 text

パスワードを使わない •単一要素の認証方式とFIDO UVの組み 合わせ •SMS/Email/Pushへの通知 •ソーシャルログイン •緩いとこに攻撃を受ける覚悟が必要

Slide 33

Slide 33 text

FIDO UV相当 •複数要素の認証方式が必要 •それがなかったからFIDOなんだろ? •他のサービスで2段階/2要素してる IdPとのID連携? •IdPがMFAを保証してくれたら使え そう -> OpenID Connect!

Slide 34

Slide 34 text

どこに手を入れるか •アカウント設定 •認証 •再認証 •新規登録(FIDO必須な場合)

Slide 35

Slide 35 text

検討事項

Slide 36

Slide 36 text

(検討事項) Resident Keyの利用 •サービスのユーザー識別を先にする かどうか •メアドやSMSを入れる手間を減らせ るか? •RK非対応環境ではどうする?

Slide 37

Slide 37 text

RedidentKey利用アリ (Microsoft)

Slide 38

Slide 38 text

RedidentKey利用ナシ (Y!J)

Slide 39

Slide 39 text

(検討事項) 新規登録フロー、リカバリー •リカバリー考慮して効率的に2種類 の認証方式を設定するには? •新規登録も要件の分解が必要 •連絡先、属性情報、クレデンシャル •#iddance でやるよ

Slide 40

Slide 40 text

まとめ •リカバリー用に別の認証方式は必要 •サービスが必要とする認証要素によ り、実装に幅が出そう •新規登録フローについてはまだ手本 となるサービスはなさそう

Slide 41

Slide 41 text

終わり •質問などは @ritou までください •11/1(金)に #iddance やります