「#webauthn_study」に参加してきました

  • webauthn_studyに参加してきました。

web-study.connpass.com

タイトル 発表者
WebAuthN を入れるには何を考えるべきか @ritou (mixi)
WebAuthN を実際に入れてみてどうだったか @kasecato (nulab)

WebAuthN を入れるには何を考えるべきか

  • @ritouさん(mixi)

リカバリーの話

  • 無効化/再設定
    • パスワード
    • TOTP
    • リカバリーコード
    • Auhtenticator
  • 別の認証方式or複数登録

パスワード認証におけるリカバリ

  • 忘れた
    • 別の認証方式 + 再設定

SMS通知におけるリカバリ

  • 番号/アドレスが変わった
    • 別の認証方式 + 無効化/再設定

FIDOにおけるリカバリ

  • 紛失盗難
    • 別の認証方式 or 複数登録可能にして無効化/再設定
  • FIDOだからといってそんなに問題ではない

導入事例

  • Google, GitHub
    • パスワード認証との組み合わせ
    • 2段階認証

2段階認証としての導入

導入時にどこに手を入れるか

  • アカウント設定
    • 追加認証を有効にする
    • リカバリー設定
      • 別の認証方式を登録
  • 認証
    • パスワード認証 + 追加認証を要求するように
    • 複数ある場合はどの方式か切り替えられるように
  • 再認証
    • GitHubではパスワード確認の場面でWebAuthnが利用可能に

検討事項

  • リカバリーの認証方式でカスタマーサポートの負担が決まる
  • 利用可能な環境の制限
    • user-agentによる判別
    • platform
    • Attestation
  • 追加認証要求のタイミング
    • パスワード認証に成功したら
    • パスワード認証の結果に関わらず
    • パスワード認証前に

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

  • パスワードレスとは?
    • パスワードを使わない
      • 所持 or 生体 or 記憶
    • FIDO UV相当
      • 所持 + (記憶 or 生体)
  • 新規登録
    • リカバリーを考慮して効率的に2種類の認証方式を設定するには?

WebAuthN を実際に入れてみてどうだったか

  • @kasecatoさん(nulab)

WebAuthN導入前の話

WebAuthN導入のモチベーション

  • セキュリティキーや顔認証でログインしたい
  • 社内ハッカソンで作ってみた
  • しかし当時は仕様変更が続いていて不安
  • 今では2019/3にW3C仕様勧告

WebAuthN導入中

認証フローの設計

  • 2要素認証
    • 利便性の改善にはつながらない
  • 単要素パスワードレス認証
    • 多要素を強制したいフローで困る
  • 多要素パスワードレス認証 - 採用
    • 利便性と安全性を両立
  • ユーザネームレス認証
    • windows10以外で普及したと思えなかった
  • Email First Sign-in Flowを参考に実装

アカウントリカバリの設計

  • 盗難紛失
    • 従来のパスワード認証でログインし認証器の無効化
  • パスワードを削除したユーザ
    • リセットのEメールを送信

実装が困難だった点

  • macのtouchID複数登録の後勝ち問題
  • アカウント新規作成でパスワードレス

WebAuthN導入後

サポートへの問い合わせ

  • 指紋が変わって生体認証使えなくなったらどうすればいいか
    • PINで認証器解除して再登録をしてもらう

パスワード削除でモバイルから使えない

  • パスワード削除したらパスワードでログインしてるものを全部サインアウト
  • モバイルはFIDO対応してないからパスワード再発行しないといけない

Touch IDが使えなくなった

  • 公開鍵クレデンシャル登録時のChromeのProfileに紐づく

使用可能な認証器がわからない

  • いろんな認証器がある
  • これ使えますか?と問い合わせがくる