2019/10/28 開催の #webauthn_study の発表資料です。 https://web-study.connpass.com/event/149833/
WebAuthnの導入事例から見る定石と今後の課題@ritou#webauthn_study2019/10/28
View Slide
@ritou
本日の内容•事例から導入のポイントを整理•2段階/2要素としての導入•「パスワードレス」としての導入•GOAL:不安になりそうな部分を認識して導入に向けた一歩を踏み出す
2段階/2要素としての導入
の前に、リカバリーの話
by 誰か“FIDOはリカバリーが課題だよね”
アカウントリカバリー•利用不可能になったクレデンシャルの無効化&再設定•パスワード•TOTP(Secret)•リカバリーコード•Authenticator(PublicKey)•別の認証方式 or 複数登録 に収束
パスワード認証におけるリカバリー•忘れた•別の認証方式 + 再設定•利用できない環境•覚えてればあらゆる環境で利用可能
SMS/Emailへ通知におけるリカバリー•番号、メアドが変わった•別の認証方式 + 無効化/再設定•一時的に利用できない環境、状況•別の認証方式
TOTPにおけるリカバリー•手元の端末の設定消した、落とした•別の認証方式 + 無効化/再設定•一時的に利用できない環境、状況•別の認証方式
リカバリーコードのリカバリー(?)•紛失、盗難•別の認証方式 + 無効化/再発行•一時的に利用できない環境、状況•別の認証方式
FIDOにおけるリカバリー•紛失、盗難•別の認証方式もしくは複数登録可能にして無効化/再設定•利用できない環境•別の認証方式
リカバリーはそれほど問題ではない
(改めて)2段階/2要素としての導入
導入事例•Google, Github…•パスワード認証との組み合わせ•間違っても単一要素で通さない
どこに手を入れるか•アカウント設定•認証•再認証•(2段階/2要素が必須でない限りは)新規登録の対応は任意
アカウント設定•追加認証を有効にする•リカバリー設定 : 別の認証方式を用意•SMS/Emailによる通知•リカバリーコード設定•Authenticator(PublicKey)設定•名前をつけるタイミング?
アカウント設定(Github)
認証•パスワード認証+追加認証を要求•複数ある場合に優先する認証方式?•設定やWebAuthnの利用可否で分岐?•別の認証方式への切り替え•スキップ機能 = Cookieの所持認証?
認証(Github)
再認証•例 : Github•「パスワード確認」していたところに WebAuthn が利用可能
再認証(Github)
検討事項
(検討事項)リカバリー用の認証方式•海外サービスでは最低でも2つは用意している模様•SMS•リカバリーコード•カスタマーサポートの負担が決まる
(検討事項)利用可能な環境の制限•制限する場合は管理が必要•User-Agent•Platform or Cross-platform•Attestation
(検討事項)追加認証要求のタイミング•パスワード認証「成功」したら要求•パスワード認証結果に関わらず要求•パスワード認証前に要求
まとめ•アカウント設定のあたりは定石と呼べるものができており、環境を縛るかどうかぐらいか•認証部分はまだ考慮すべき点があるかも?
パスワードレスとしての導入
2段階/2要素に比べてなんとなく不安?
やはりリカバリー?
(あなたの思う)パスワードレスとは?•パスワードを使わない•所持 or 生体 or 記憶(ローカル?)•FIDO UP(UserPresent)はNG?•FIDO UV(UserVerified)相当•所持 + (記憶 or 生体)
パスワードを使わない•単一要素の認証方式とFIDO UVの組み合わせ•SMS/Email/Pushへの通知•ソーシャルログイン•緩いとこに攻撃を受ける覚悟が必要
FIDO UV相当•複数要素の認証方式が必要•それがなかったからFIDOなんだろ?•他のサービスで2段階/2要素してるIdPとのID連携?•IdPがMFAを保証してくれたら使えそう -> OpenID Connect!
どこに手を入れるか•アカウント設定•認証•再認証•新規登録(FIDO必須な場合)
(検討事項)Resident Keyの利用•サービスのユーザー識別を先にするかどうか•メアドやSMSを入れる手間を減らせるか?•RK非対応環境ではどうする?
RedidentKey利用アリ(Microsoft)
RedidentKey利用ナシ(Y!J)
(検討事項)新規登録フロー、リカバリー•リカバリー考慮して効率的に2種類の認証方式を設定するには?•新規登録も要件の分解が必要•連絡先、属性情報、クレデンシャル•#iddance でやるよ
まとめ•リカバリー用に別の認証方式は必要•サービスが必要とする認証要素により、実装に幅が出そう•新規登録フローについてはまだ手本となるサービスはなさそう
終わり•質問などは @ritou までください•11/1(金)に #iddance やります