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

WWDC 2020 参加報告 ~ Sign in with Apple & WebAuthn まわりを中心に #openid #technight / openid-technight-17-wwdc20

Ayokura
August 20, 2020

WWDC 2020 参加報告 ~ Sign in with Apple & WebAuthn まわりを中心に #openid #technight / openid-technight-17-wwdc20

2020/08/20「OpenID TechNight vol.17 ~ with コロナ編」での発表内容です。
アーカイブ映像はこちらから https://youtu.be/0856pHMoTDs?t=3976

COVID-19の影響で、Google I/OやWWDCといった開発者カンファレンスにも影響がありました。
このセッションでは、6/22~6/26に完全オンラインで開催された、今年のWWDCでの、ID関係のトピックをご紹介します。

トピックとしては、
* (ユーザー視点で)Sign in with Appleが簡単に使えるように!?
* iPhoneやiPadもWebAuthnのplatform authenticatorになります!
などを予定しております。

Ayokura

August 20, 2020
Tweet

More Decks by Ayokura

Other Decks in Technology

Transcript

  1. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. WWDC

    2020 参加報告 ~ Sign in with Apple & WebAuthnまわりを中心に 2020/08/20 OpenID TechNight #17 株式会社レピダム 名古屋謙彦 (あよくら @ayokura)
  2. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. 自己紹介

     株式会社レピダムで技術者をしています  認証認可やID関係の知識を活用して設計をしたり、 お客様にその知見を提供したりしています  また、コード書いたり、社内システム管理をしています  クリスチャンです  @ayokura でtwitterなどやっています  ID関係は、学生時代から趣味です 今は仕事にも活かしています  利用者にとって簡単に、安全を確保できる世の中が来てほしいです  WebAuthnが好きです、パスワードは嫌いです 2
  3. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. セキュリティやネットワーク技術の研究開発を強みとし、

    課題解決やビジネス実現を通じて顧客の事業成長の加速に貢献する 株式会社レピダム 3 開発力 専門性 HUB力 事業ニーズ ・事業会社 ・自治体 ・新規ビジネス エッジの効いた技術で顧客のビジネスを加速 技術シーズ ・企業研究所 ・標準化団体 ・大学 事業ニーズを次世代の技術開発へ
  4. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. 目次

     WWDCとは  WWDCとWWDC 2020について概要説明をし、気になったセッションについてさらっと紹介  One-tap account security upgrades  既存のアカウントを(利用者視点で)簡単に、より安全にする機能群の紹介  一部「Get the most out of Sign in with Apple」のセッションを参照します  Meet Face ID and Touch ID for the web  Face IDとTouch IDがWeb Authenticationの認証器として使えるようになるよ!  おことわり  本発表はWWDC 2020のセッションで発表された内容を中心に構成されています。  WWDC 2020以後に変更・実装された内容についても、気づいた範囲ではキャッチアップしていますが、 気づけていない内容などで、最新の事情を反映していない可能性があります。 4
  5. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. WWDC

    とは?  Worldwide Developers Conference(世界開発者会議)のこと  Appleが例年6月頃に開く、主にソフトウェア開発者を対象としたイベント  OS・ソフトウェアなどの新機能や、Appleの新製品などについて発表される  基調講演となるkeynoteをはじめ、各機能や各技術についての詳細な説明を行う セッションが多数おこなわれている。  例年は、アメリカのカリフォルニア州で開かれている配信を伴うオフラインの カンファレンス  セッションと、直接Appleの技術者に質問できるLabで構成される 6
  6. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. WWDC

    2020  COVID-19の影響でオンライン開催  基調講演(keynote)・エンジニアリングセッションは、事前収録された動画をスト リーミング形式、または動画形式で公開  直接Appleの技術者に質問できるLabはWebexを利用して完全予約制で開催  米国時間での6/22-26に開催  日本だと6/23-27  エンジニアリングセッションの総数は200を超えた 事前登録も基本的に不要だったので、参加と言っていいかはわからないのですが、 ID関係を中心にしっかりチェックしたので参加報告します。 (ちなみに呼び方ですが、AppleもWWDC 2020とWWDC20の両方使ってるので前者使います) 7
  7. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. WWDC

    2020 ID以外で個人的に気になった内容  基調講演  Mac の Apple Silicon への移行  Universal 2やRosetta 2で、Intel Mac移行時のプロダクトとネーミング揃えて くれたこと嬉しかった  エンジニアリングセッション  Enable Encrypted DNS  DNS通信の暗号化(DNS over TLSおよびDNS over HTTPSへの対応)  Boost performance and security with modern networking  IPv6,HTTP/2,TLS1.3などの統計情報  iOS14/macOS BigSurでのHTTP/3の実験的プレビュー 8
  8. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. WWDC

    2020 ID関連のトピックスとして以下のセッションを取り上げます  One-tap account security upgrades  既存のアカウントをより安全にする新機能について  既存のアカウントに対して、簡単に強固なパスワードへの変更やSign in with Apple(Appleでサインイン)の適用ができる  Sign in with Appleについては、 「Get the most out of Sign in with Apple」のセッションの内容も参照して説明します  Meet Face ID and Touch ID for the web  Apple製品でのFace IDやTouch IDを用いたWebAuthnへの対応 9
  9. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. One-tap

    account security upgrades  アカウントのセキュリティを向上するいくつかの新機能  iCloud KeyChainに登録されたアカウントをより安全にする  安全でないパスワードが利用されている場合の通知  以下のような他社プロダクトが実装している機能と似たようなもの  1Password Watchtower  Google Chromeの漏洩パスワード警告機能(Password Checkup)  対応したサービスにおいては、自動生成された強固なパスワードやSign in with Appleへの変更もサポート 11
  10. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. One-tap

    account security upgrades 設定アプリのパスワード画面にSecurity Recommendationsが追加される。 以下の3つのケースを警告できる  再利用されたパスワード  簡単に推測可能なパスワード  流出したパスワード この画面から強固なパスワードやSign in with Appleへの変更が可能 12 画像は https://developer.apple.com/videos/play/wwdc2020/10666/ の動画より
  11. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. One-tap

    account security upgrades アカウントの詳細画面でもSecurity Recommendationsは確認できる 13 画像は https://developer.apple.com/videos/play/wwdc2020/10666/ の動画より
  12. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. One-tap

    account security upgrades  特徴となる強固なパスワードへの変更、Sign in with Appleへの変更に ついては、Account Authenticationの拡張機能をアプリに導入するこ とで提供できる。  アプリ側では、拡張機能で定義されているメソッドをoverrideして実際のパス ワード変更の処理を実装する。 14
  13. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Sign

    in with Apple  日本語では「Appleでサインイン」と呼ばれる機能  WWDC 2019 で発表された 15
  14. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Sign

    in with Apple  日本語では「Appleでサインイン」と呼ばれる機能  WWDC 2019 で発表された 16 https://openid.net/2019/06/27/open-letter-from-the-openid-foundation-to-apple-regarding-sign-in-with-apple/
  15. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Sign

    in with Apple  日本語では「Appleでサインイン」と呼ばれる機能  WWDC 2019 で発表された 17 https://openid.net/2019/06/27/open-letter-from-the-openid-foundation-to-apple-regarding-sign-in-with-apple/ https://openid.net/2019/09/30/apple-successfully-implements-openid-connect-with-sign-in-with-apple/
  16. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Sign

    in with Apple  日本語では「Appleでサインイン」と呼ばれる機能  WWDC 2019 で発表された  OpenID Connect Coreに準拠している  専用のメールリレーサービスを提供  個人用メールアドレスを秘匿しつつ、利用者へメールを届けることが可能  メールアドレスを用いた名寄せを防止できる  2ファクタ認証が有効化されたApple IDでなければ利用できない  Appleの各種OSでネイティブに機能  WebではJSを利用することで、プラットフォームを問わずに利用可能 18
  17. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. One-tap

    account security upgrades まとめ  アカウントのセキュリティを向上するいくつかの新機能  iCloud KeyChainに登録されたアカウントをより安全にする  安全でないパスワードが利用されている場合の通知  以下のような他社プロダクトが実装している機能と似たようなもの  1Password Watchtower  Google Chromeの漏洩パスワード警告機能(Password Checkup)  対応したサービスにおいては、強固なパスワードやSign in with Apple への変更もサポート  アプリに拡張機能を導入して、アプリ側にパスワード変更の処理や、 Sign in with Appleへの変更処理を実装することで利用可能 19
  18. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Meet

    Face ID and Touch ID for the web  Safari上でWeb Authentication(WebAuthn)のFace IDやTouch IDを利用したPlatform Authenticatorが扱えるようになります!  iOS/iPadOS/macOS のsafariで実装される  Windows 10やAndroidでは対応済みなので、これで主要な環境で WebAuthnが使えるようになります!  ついにFIDO2の世界が全世界にきたー! 21
  19. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. FIDO(Fast

    IDentity Online) 22  パスワード問題への解決策である、シンプルで堅牢な認証  公開鍵暗号方式による認証  サービスへの登録時に鍵ペアを生成して登録 Authenticator gesture User Verification(検証) private key signature FIDO Authentication (FIDO認証) challenge public key client RP ID User RPが署名を検証することによって認証している
  20. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. 用語説明

     RP(Relying Party)  ユーザの登録、認証を行うWebサイト、または事業者  Authenticator(認証器)  ユーザーに関するクレデンシャル (認証情報)を保管し、利用する  クレデンシャルとなる秘密鍵は、認証器のSecure Elementなどの取りだし不能な場 所に保存される  認証器には以下の種類がある  内部認証器(組み込みの認証器)(Windows HelloやAndroidなど、今回の話題もこれです)  外部認証器(移動可能な認証器)(USB/NFC/BLEなどで接続されるセキュリティキー)  署名できるようにするための、ユーザーの検証については、存在確認のみ(ドングルへ のタッチなど)の場合と、指紋・虹彩・顔などの生体認証(端末ローカルでの処理)を 組み合わせる場合などがある。  今回のAppleでの対応は、このケースでで、顔(Face ID)か指紋(Touch ID)を組み合わせる 23
  21. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. クレデンシャル(認証情報)の通信経路

    24 リモート認証(パスワードでの認証) client RP User Authenticator FIDO認証モデル ローカル認証 リモート認証(署名) client RP User ユーザーが入力したID (IDentifier、識別子) とパスワードは、 ネットワーク上を流れ、サーバーに送付 リモート認証モデルにおける認証の機能(識別と検証)が分離されて 検証機能がユーザーの保有するデバイス側に存在
  22. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. クレデンシャル情報(認証情報)の安全性

     RPごとに鍵ペアを作成して異なる公開鍵を登録  ユーザ・認証器・RP間にトラスト(信頼)を構築することにより、リスト型 攻撃・フィッシングに対する耐性を実現 25 User Authenticator privatekey1 (クレデンシャル1) Privatekey2 (クレデンシャル2) RP1 RP2 publickey1 publickey2 ID ID
  23. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. FIDO2

     FIDO2はWebAuthnとCTAPの二つの仕様を合わせたもの  W3C Web Authentication(WebAuthn)  user agent(ブラウザ)に実装されたFIDO2のClient機能を呼び出すJavaScript API  FIDOアライアンスで素案を作ったものをW3Cで標準化した  CTAP(Client to Authenticator Protocol)  クライアント(user agentやアプリ)と外部認証器の間の通信プロトコル  FIDOアライアンスが仕様策定  最新バージョンはv2.0で、v2.1がドラフト段階にある 26
  24. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Web

    Authentication  ブラウザがJavascriptを用いてクレデンシャルにアクセスするAPI  登録と認証の2つの基本的な機能がある  登録:navigator.credentials.create()  認証器で鍵を生成・登録するAPIを使用して処理を行う  新しいアカウント、または既存のアカウントへ新しい非対称鍵ペアの関連付ける認証情報を作成する  認証:navigator.credentials.get()  登録済みの鍵を使って認証用の署名を生成するAPIを使用して処理を行う 27
  25. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. CTAP(Client

    to Authenticator Protocol)  クライアントと外部認証器との間の通信プロトコル  USB・NFC・Bluetoothのtransport(伝送経路)が定義されている。  今回のFace ID・Touch IDについては内部認証器なのでCTAPは直接関与しない。 28 https://fidoalliance.org/fido2/ の図表に一部加筆 赤丸部分がCTAP 青枠部分がWeb Authentication
  26. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Meet

    Face ID and Touch ID for the web  Apple‘s platform authenticatorの特徴  Face ID と Touch IDに対応  iPhone/iPad/macのもつSecure Enclaveへ鍵を保存  Face IDやTouch IDを利用した生体認証と、 端末のSecure Enclaveに保存された鍵を利用した所 有物認証の両方を一度に行う、多要素認証  プライバシーを考慮したAttestation(認証器自身の正当性証明)の仕組みとして、Apple Anonymous Attestationを設計し実装 29
  27. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Apple

    Anonymous Attestation  Attestationについて  認証器では、秘密鍵が取り出せてはいけないし、サービスごとに異なった鍵を生成しなければいけ ない  しかし、WebAuthnはあくまで公開鍵認証のプロトコルでしかなく、鍵の保管生成等は紳士協定な ので、このルールに従わない認証器もどきを作り出すことも可能  Attestationは大雑把に言うと、認証器自体の正当性証明のために、この認証器はどの製品です よ、ということを署名で示す仕組み  典型的な認証器のAttestationでは、認証機内に内蔵された同一の鍵ペアを利用して、 Attestationを生成している。  同一メーカー、あるいは同一モデルと言った単位で、鍵ペアは異なるため、それだけではユーザーを特定で きないが、たとえば、流通量がとても少ないモデルであれば、複数のアカウントや、複数のサービス間におい て、同一のユーザーであるかの推測に利用できる可能性がある。  Appleが問題視したのはこの点。 30
  28. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Apple

    Anonymous Attestation  Apple Anonymous Attestation  典型的なAttestation方式より匿名性をあげたAttestation  Apple Anonymous Attestationでは、Apple側が専用のサービスを動かしており、クレデンシャル ごとに(サイトやアカウントごとに)、固有のAttestation用の証明書を逐次生成している。  これによって、同一の端末からの認証である事の推測をより困難にしている。  証明書のnonceとして、AuthenticatorDataとClientDataHashのSHA-256hashを含めており、真正性検証が可能 31 画像は https://developer.apple.com/videos/play/wwdc2020/10670/ の動画より Apple Anonymous Attestationの仕組みについて参考にしたページ:https://www.sharplab.net/blog/2020/08/07/%E8%A7%A3%E5%89%96-apple-anonymous-attestation/
  29. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. Meet

    Face ID and Touch ID for the web まとめ  Safari上でWeb Authentication(WebAuthn)のFace IDやTouch IDを利用したPlatform Authenticatorが扱えるようになります!  iOS/iPadOS/macOS のsafariで実装される  Windows 10やAndroidでは対応済みなので、これで主要な環境で WebAuthnが使えるようになります!  ついにFIDO2の世界が全世界にきたー!  Apple Anonymous AttestationというAttestationも実装されます!  プライバシーを考慮して、クレデンシャルごとに違う鍵を使います 32
  30. https://lepidum.co.jp/ Copyright © Lepidum Co. Ltd. All rights reserved. まとめ

     WWDC 2020 が米国時間で、6/22から6/26にオンライン開催されました。  弱いパスワードを用いているアカウントをより簡単に安全にできる機能が実装されます。  対応アプリでは、(自動生成された)強固なパスワードへの変更や、Sign in with Appleの適用が ユーザーにとって簡単にできるようになります。  Safari上でWeb Authentication(WebAuthn)のFace IDやTouch IDを利用した Platform Authenticatorが扱えるようになります!  Apple Anonymous AttestationというAttestationも実装されます!  プライバシーを考慮して、クレデンシャルごとに違う鍵を使います ご清聴ありがとうございました 33