$30 off During Our Annual Pro Sale. View Details »

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)

    View Slide

  2. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    自己紹介

    株式会社レピダムで技術者をしています

    認証認可やID関係の知識を活用して設計をしたり、
    お客様にその知見を提供したりしています

    また、コード書いたり、社内システム管理をしています

    クリスチャンです

    @ayokura でtwitterなどやっています

    ID関係は、学生時代から趣味です
    今は仕事にも活かしています

    利用者にとって簡単に、安全を確保できる世の中が来てほしいです

    WebAuthnが好きです、パスワードは嫌いです
    2

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  6. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    WWDC とは?

    Worldwide Developers Conference(世界開発者会議)のこと

    Appleが例年6月頃に開く、主にソフトウェア開発者を対象としたイベント

    OS・ソフトウェアなどの新機能や、Appleの新製品などについて発表される

    基調講演となるkeynoteをはじめ、各機能や各技術についての詳細な説明を行う
    セッションが多数おこなわれている。

    例年は、アメリカのカリフォルニア州で開かれている配信を伴うオフラインの
    カンファレンス

    セッションと、直接Appleの技術者に質問できるLabで構成される
    6

    View Slide

  7. 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

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

  10. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    One-tap account security upgrades

    View Slide

  11. 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

    View Slide

  12. 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/ の動画より

    View Slide

  13. 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/ の動画より

    View Slide

  14. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    One-tap account security upgrades

    特徴となる強固なパスワードへの変更、Sign in with Appleへの変更に
    ついては、Account Authenticationの拡張機能をアプリに導入するこ
    とで提供できる。

    アプリ側では、拡張機能で定義されているメソッドをoverrideして実際のパス
    ワード変更の処理を実装する。
    14

    View Slide

  15. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    Sign in with Apple

    日本語では「Appleでサインイン」と呼ばれる機能

    WWDC 2019 で発表された
    15

    View Slide

  16. 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/

    View Slide

  17. 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/

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

  20. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    Meet Face ID and Touch ID for the web

    View Slide

  21. 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

    View Slide

  22. 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が署名を検証することによって認証している

    View Slide

  23. 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

    View Slide

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

    View Slide

  25. 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

    View Slide

  26. 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

    View Slide

  27. 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

    View Slide

  28. 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

    View Slide

  29. 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

    View Slide

  30. https://lepidum.co.jp/
    Copyright © Lepidum Co. Ltd. All rights reserved.
    Apple Anonymous Attestation

    Attestationについて

    認証器では、秘密鍵が取り出せてはいけないし、サービスごとに異なった鍵を生成しなければいけ
    ない

    しかし、WebAuthnはあくまで公開鍵認証のプロトコルでしかなく、鍵の保管生成等は紳士協定な
    ので、このルールに従わない認証器もどきを作り出すことも可能

    Attestationは大雑把に言うと、認証器自体の正当性証明のために、この認証器はどの製品です
    よ、ということを署名で示す仕組み

    典型的な認証器のAttestationでは、認証機内に内蔵された同一の鍵ペアを利用して、
    Attestationを生成している。

    同一メーカー、あるいは同一モデルと言った単位で、鍵ペアは異なるため、それだけではユーザーを特定で
    きないが、たとえば、流通量がとても少ないモデルであれば、複数のアカウントや、複数のサービス間におい
    て、同一のユーザーであるかの推測に利用できる可能性がある。

    Appleが問題視したのはこの点。
    30

    View Slide

  31. 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/

    View Slide

  32. 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

    View Slide

  33. 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

    View Slide