Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Meet passkeys 2022 年 6 月 29 日 Recap of WWDC22
Slide 2
Slide 2 text
Who am I ● Name ● 佐藤タケシ ( さとうたけし ) ● Company ● Merpay, Inc.(2019/01 ~) ● Role ● Software Engineer (iOS) ● Account ● Twitter: @hatakenokakashi ● Facebook: 佐藤剛士 ● GitHub: SatoTakeshiX
Slide 3
Slide 3 text
passkeyとは?
Slide 4
Slide 4 text
passkeyとは? ● 次世代の認証方式 ● パスワードよりも安全に使い勝手がよい ● クロスプラットフォームで利用可能 ● iOS 15 、 Monterey から開発者プレビュー始まる ● iOS 16 、 Venture から一般公開 ● Face ID, Touch ID を使って認可する ● WebAuthn の仕組みを利用 ○ 公開鍵暗号方式を利用 ● Apple プラットフォームでは iCloud Keychain に保存
Slide 5
Slide 5 text
パスワードの問題点 ● 利便性とセキュリティがトレードオフ ● 正しく使うのが難しい ● フィッシング被害がどうしても出る
Slide 6
Slide 6 text
利便性とセキュリティがトレードオフ ● 便利にするとセキュリティが下がる ○ PC にパスワード書いた付箋貼る ○ 同じパスワードを使い回す ● セキュリティを上げると使い勝手が下がる ○ パスワードマネージャーを使う ○ パスワードを自動生成 ○ 多要素認証する ■ SMS/ メールにワンタイムコード送る
Slide 7
Slide 7 text
パスワードでログイン ● パスワードはハッシュ化、ソルト化されてサーバーに保存される ● フィッシング犯はサーバーを狙う https://developer.apple.com/wwdc22/10092
Slide 8
Slide 8 text
passkeyでログイン ● passkey が公開鍵と秘密鍵を生成 https://developer.apple.com/wwdc22/10092
Slide 9
Slide 9 text
passkeyでログイン ● 秘密鍵をクライアント側、公開鍵をサーバーに置く https://developer.apple.com/wwdc22/10092
Slide 10
Slide 10 text
passkeyでログイン https://developer.apple.com/wwdc22/10092
Slide 11
Slide 11 text
passkeyの利点 ● サーバー側には公開鍵のみが保存される ● 公開鍵は公開されているものなのでフィッシング犯に盗まれても問題ない ○ サーバー側に盗むべきものがなくなる ● ユーザーも覚えるものがなくなる ● 1 step でログインできて UX が向上する
Slide 12
Slide 12 text
パスワードでのログインフロー https://developer.apple.com/wwdc22/10092 user name 入力 パスワード 入力 SMS コード 入力 サインイン 完了
Slide 13
Slide 13 text
passkeyでのログインフロー https://developer.apple.com/wwdc22/10092 user name 入力 Face ID 認証 サインイン
Slide 14
Slide 14 text
passkeyの実装準備 ● Universal Link と同じく apple-app-site-association に JSON を置く
Slide 15
Slide 15 text
passkeyの実装 ● TextFiled の textContentType を .username に設定
Slide 16
Slide 16 text
passkeyのiOSコード: ログイン
Slide 17
Slide 17 text
passkeyのiOSコード: ログイン
Slide 18
Slide 18 text
passkeyのiOSコード: ログイン後
Slide 19
Slide 19 text
passkeyのiOSコード: passkeyが複数ある場合
Slide 20
Slide 20 text
passkeyのiOSコード: passkeyがない人のフロー
Slide 21
Slide 21 text
passkeyのiOSコード: passkeyがない人のフロー passkeyがない場合QRコードのモーダル が表示される
Slide 22
Slide 22 text
passkeyのiOSコード: passkeyがない人のフロー passkeyがない場合すぐにエラーのデリ ゲートメソッドが呼ばれる
Slide 23
Slide 23 text
passkeyのiOSコード: passkeyがない人のフロー passkeyがない場合すぐにエラーのデリ ゲートメソッドが呼ばれる
Slide 24
Slide 24 text
passkeyのiOSコード: passkeyがない人のフロー ユーザーがpasskeyのシートを閉じたか 利用可能なクレデンシャルがない パスワードのテキストフィールドを表示す る
Slide 25
Slide 25 text
passkeyのiOSコード: passkeyがない人のフロー
Slide 26
Slide 26 text
友達のPCから自分のpasskeyを使ってログイン ● FIDO CTAP (Client to Authentiator Protocol) という仕組みで安全に passkey を共有できる
Slide 27
Slide 27 text
友達のPCから自分のpasskeyを使ってログイン
Slide 28
Slide 28 text
友達のPCから自分のpasskeyを使ってログイン
Slide 29
Slide 29 text
友達のPCから自分のpasskeyを使ってログイン
Slide 30
Slide 30 text
認証方法の一覧
Slide 31
Slide 31 text
まとめ
Slide 32
Slide 32 text
まとめ ● passkey は次世代に認証方式 ● WebAuthn の仕組みを使って利便性とセキュリティどちらも向上させる ● apple-app-site-association に JSON を置く ● ASAuthorizationController を使って実装 ● FIDO CTAP で他の PC から自分の passkey でログインも可能 ● パスワード・ SMS 認証よりもセキュリティ強度高い
Slide 33
Slide 33 text
参考資料 ● Meet passkeys ● About the security of passkeys ● Supporting passkeys ● パスワード不要の認証「 WebAuthn 」とは?|「 FIDO 」の構成技術を解説 ● WebAuthn の仕組み ● FIDO, WebAuthn の仕様の関係まとめ ● パスワードを過去のものにする Apple の「 Passkeys 」とは?