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/

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

    View Slide

  2. Who am I

    Name
    ● 佐藤タケシ
    (
    さとうたけし
    )

    Company

    Merpay, Inc.(2019/01 ~)

    Role

    Software Engineer (iOS)

    Account

    Twitter: @hatakenokakashi

    Facebook:
    佐藤剛士

    GitHub: SatoTakeshiX

    View Slide

  3. passkeyとは?

    View Slide

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

    iOS 15

    Monterey
    から開発者プレビュー始まる

    iOS 16

    Venture
    から一般公開

    Face ID, Touch ID
    を使って認可する

    WebAuthn
    の仕組みを利用
    ○ 公開鍵暗号方式を利用

    Apple
    プラットフォームでは
    iCloud Keychain
    に保存

    View Slide

  5. パスワードの問題点
    ● 利便性とセキュリティがトレードオフ
    ● 正しく使うのが難しい
    ● フィッシング被害がどうしても出る

    View Slide

  6. 利便性とセキュリティがトレードオフ
    ● 便利にするとセキュリティが下がる

    PC
    にパスワード書いた付箋貼る
    ○ 同じパスワードを使い回す
    ● セキュリティを上げると使い勝手が下がる
    ○ パスワードマネージャーを使う
    ○ パスワードを自動生成
    ○ 多要素認証する

    SMS/
    メールにワンタイムコード送る

    View Slide

  7. パスワードでログイン
    ● パスワードはハッシュ化、ソルト化されてサーバーに保存される
    ● フィッシング犯はサーバーを狙う
    https://developer.apple.com/wwdc22/10092

    View Slide

  8. passkeyでログイン

    passkey
    が公開鍵と秘密鍵を生成
    https://developer.apple.com/wwdc22/10092

    View Slide

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

    View Slide

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

    View Slide

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

    1 step
    でログインできて
    UX
    が向上する

    View Slide

  12. パスワードでのログインフロー
    https://developer.apple.com/wwdc22/10092
    user name
    入力
    パスワード
    入力
    SMS
    コード
    入力
    サインイン
    完了

    View Slide

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

    View Slide

  14. passkeyの実装準備

    Universal Link
    と同じく
    apple-app-site-association

    JSON
    を置く

    View Slide

  15. passkeyの実装

    TextFiled

    textContentType

    .username
    に設定

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    FIDO CTAP (Client to Authentiator Protocol)
    という仕組みで安全に
    passkey
    を共有できる

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. 認証方法の一覧

    View Slide

  31. まとめ

    View Slide

  32. まとめ

    passkey
    は次世代に認証方式

    WebAuthn
    の仕組みを使って利便性とセキュリティどちらも向上させる

    apple-app-site-association

    JSON
    を置く

    ASAuthorizationController
    を使って実装

    FIDO CTAP
    で他の
    PC
    から自分の
    passkey
    でログインも可能
    ● パスワード・
    SMS
    認証よりもセキュリティ強度高い

    View Slide

  33. 参考資料
    ● Meet passkeys

    About the security of passkeys

    Supporting passkeys
    ● パスワード不要の認証「
    WebAuthn
    」とは?|「
    FIDO
    」の構成技術を解説

    WebAuthn
    の仕組み

    FIDO, WebAuthn
    の仕様の関係まとめ
    ● パスワードを過去のものにする
    Apple
    の「
    Passkeys
    」とは?

    View Slide