Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Meet passkeys

Meet passkeys

Recap of WWDC22
https://mercari.connpass.com/event/248712/

の発表資料です。

Meet passkeys
https://developer.apple.com/videos/play/wwdc2022/10092/

About the security of passkeys
https://support.apple.com/en-us/HT213305

Supporting passkeys
https://developer.apple.com/documentation/authenticationservices/public-private_key_authentication/supporting_passkeys

パスワード不要の認証「WebAuthn」とは?|「FIDO」の構成技術を解説
https://www.nri-secure.co.jp/blog/what-is-webauthn

WebAuthnの仕組み
https://www.okta.com/sites/default/files/2020-08/How_WebAuthn_Works_JP.pdf

FIDO, WebAuthnの仕様の関係まとめ
https://zenn.dev/nyamage/articles/d65b190d706dd6

パスワードを過去のものにするAppleの「Passkeys」とは?
https://gigazine.net/news/20220607-passkeys-apple/

53e2d354b3299d64a54af680865516d5?s=128

Sato Takeshi

June 29, 2022
Tweet

More Decks by Sato Takeshi

Other Decks in Technology

Transcript

  1. Meet passkeys 2022 年 6 月 29 日 Recap of

    WWDC22
  2. Who am I • Name • 佐藤タケシ ( さとうたけし )

    • Company • Merpay, Inc.(2019/01 ~) • Role • Software Engineer (iOS) • Account • Twitter: @hatakenokakashi • Facebook: 佐藤剛士 • GitHub: SatoTakeshiX
  3. passkeyとは?

  4. passkeyとは? • 次世代の認証方式 • パスワードよりも安全に使い勝手がよい • クロスプラットフォームで利用可能 • iOS 15

    、 Monterey から開発者プレビュー始まる • iOS 16 、 Venture から一般公開 • Face ID, Touch ID を使って認可する • WebAuthn の仕組みを利用 ◦ 公開鍵暗号方式を利用 • Apple プラットフォームでは iCloud Keychain に保存
  5. パスワードの問題点 • 利便性とセキュリティがトレードオフ • 正しく使うのが難しい • フィッシング被害がどうしても出る

  6. 利便性とセキュリティがトレードオフ • 便利にするとセキュリティが下がる ◦ PC にパスワード書いた付箋貼る ◦ 同じパスワードを使い回す • セキュリティを上げると使い勝手が下がる

    ◦ パスワードマネージャーを使う ◦ パスワードを自動生成 ◦ 多要素認証する ▪ SMS/ メールにワンタイムコード送る
  7. パスワードでログイン • パスワードはハッシュ化、ソルト化されてサーバーに保存される • フィッシング犯はサーバーを狙う https://developer.apple.com/wwdc22/10092

  8. passkeyでログイン • passkey が公開鍵と秘密鍵を生成 https://developer.apple.com/wwdc22/10092

  9. passkeyでログイン • 秘密鍵をクライアント側、公開鍵をサーバーに置く https://developer.apple.com/wwdc22/10092

  10. passkeyでログイン https://developer.apple.com/wwdc22/10092

  11. passkeyの利点 • サーバー側には公開鍵のみが保存される • 公開鍵は公開されているものなのでフィッシング犯に盗まれても問題ない ◦ サーバー側に盗むべきものがなくなる • ユーザーも覚えるものがなくなる •

    1 step でログインできて UX が向上する
  12. パスワードでのログインフロー https://developer.apple.com/wwdc22/10092 user name 入力 パスワード 入力 SMS コード 入力

    サインイン 完了
  13. passkeyでのログインフロー https://developer.apple.com/wwdc22/10092 user name 入力 Face ID 認証 サインイン

  14. passkeyの実装準備 • Universal Link と同じく apple-app-site-association に JSON を置く

  15. passkeyの実装 • TextFiled の textContentType を .username に設定

  16. passkeyのiOSコード: ログイン

  17. passkeyのiOSコード: ログイン

  18. passkeyのiOSコード: ログイン後

  19. passkeyのiOSコード: passkeyが複数ある場合

  20. passkeyのiOSコード: passkeyがない人のフロー

  21. passkeyのiOSコード: passkeyがない人のフロー passkeyがない場合QRコードのモーダル が表示される

  22. passkeyのiOSコード: passkeyがない人のフロー passkeyがない場合すぐにエラーのデリ ゲートメソッドが呼ばれる

  23. passkeyのiOSコード: passkeyがない人のフロー passkeyがない場合すぐにエラーのデリ ゲートメソッドが呼ばれる

  24. passkeyのiOSコード: passkeyがない人のフロー ユーザーがpasskeyのシートを閉じたか 利用可能なクレデンシャルがない パスワードのテキストフィールドを表示す る

  25. passkeyのiOSコード: passkeyがない人のフロー

  26. 友達のPCから自分のpasskeyを使ってログイン • FIDO CTAP (Client to Authentiator Protocol) という仕組みで安全に passkey

    を共有できる
  27. 友達のPCから自分のpasskeyを使ってログイン

  28. 友達のPCから自分のpasskeyを使ってログイン

  29. 友達のPCから自分のpasskeyを使ってログイン

  30. 認証方法の一覧

  31. まとめ

  32. まとめ • passkey は次世代に認証方式 • WebAuthn の仕組みを使って利便性とセキュリティどちらも向上させる • apple-app-site-association に

    JSON を置く • ASAuthorizationController を使って実装 • FIDO CTAP で他の PC から自分の passkey でログインも可能 • パスワード・ SMS 認証よりもセキュリティ強度高い
  33. 参考資料 • Meet passkeys • About the security of passkeys

    • Supporting passkeys • パスワード不要の認証「 WebAuthn 」とは?|「 FIDO 」の構成技術を解説 • WebAuthn の仕組み • FIDO, WebAuthn の仕様の関係まとめ • パスワードを過去のものにする Apple の「 Passkeys 」とは?