ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
iCloudキーチェーン認証コードによるセキュアなログイン
AppやWebサイトでオンデバイス認証コードをサポートし、より安全なサインイン体験を実現する方法を紹介します。iCloudキーチェーンのパスワードマネージャの最新のアップデート内容を検証し、認証コード、AutoFill、iCloudキーチェーン同期、2タップセットアップによって、マルチステップなサインインプロセスがどのようにシンプル化されるのかを説明します。AppやWebサイトでこのプロセスをサポートする方法についてお伝えします。
リソース
- Apple Platform Security
- Learn more about enhancing SMS-delivered code security with domain-bound codes
- Securing Logins with iCloud Keychain Verification Codes
関連ビデオ
WWDC21
-
ダウンロード
こんにちは Authentication Experience チームのエンジニア Eryn Wellsです パスワードの入力を求める AppやWebサイトでは アカウントのセキュリティが 非常に重要ですね このセッションでは ユーザーのアカウントの 安全性の向上とiCloud キーチェーンに組み込まれた 新しい認証コード ジェネレータを使って 認証コードでより簡単に サインインする方法について お話します 大きなテーマなので 3つの重要な部分に分けて説明します 最初にパスワードについて セキュリティ上の問題点と その問題点を解決するための 多段階認証について説明します 2つ目に iOS 15とmacOS Montereyで iCloud キーチェーンに組み込まれた 新しい認証機能を含む 時間ベースの認証コード についてお話しします 最後に認証の世界で起きている 大きな変化の始まりと 認証コードによるサインイン方法を 改善するための他の方法についても 一歩踏み込んでお話します
では パスワードと多段階認証について パスワードは どこでも見かけるので 使い方は皆さんご存知です ですが 正しく使うのは難しく 事実 間違った使い方を される方が多いのです 同じパスワードを 複数のサイトに使ったり 簡単に推測できる パスワードを 使う人が多いのです また アタッカーが騙して パスワードを漏洩させるのは とても簡単です そのため サービス側は ジレンマに直面しています セキュリティを追加しつつ 簡単にログイン できるようにしたい
多くのサービスがログインに ステップを追加しています 追加情報の入力を求め 本人確認をします ステップを 追加することで パスワードを奪った アタッカーのアクセスを 減らすことができます また 同じパスワードを 使用しているサイトへ 簡単にアクセス させることを 防ぐことができます 認証コードは一般的な 追加ステップの1つです ユーザーネームと パスワードを入力後 認証コードの 入力を求めます 認証コードはSMSや メールやプッシュ通知で 送られてきたり 携帯電話の認証Appや ハードウェアのキーフォブが コードを生成します
認証コードの 優れている点は 1回限りの 使用という点です 記憶したり保存する 必要がないので パスワードのように 悪用される心配がありません 認証コードは 人がコードを入力するため フィッシングの 危険性は残ります 最もよく使われる認証コードは SMSから送られるものです SMSはどの携帯電話でも 利用できるので 誰でも使い方を 知っているからです
AutoFillでコードの利用 がさらに簡単になりました タップするだけで コードが入力されます ですが SMSを介した 認証コードには 問題点があります 1つに安全性が低い点が あげられます キャリアの ネットワーク上での盗聴や 他人のメッセージを 受け取れる SIMスワッピング攻撃に 弱いのです
SMSはエラーなく 送受信されるのが 当たり前と 思われがちですが ネットワークへの アクセスが必要です そのため飛行中の機内や 電波が弱い場所は 送受信に 時間がかかったり 届かないことがあります
そして SMSの送受信は 有料なので 多くのユーザーへの送信は お金がかかります 別の認証コードを 得る方法として オンデバイスのコード ジェネレータがあります このアルゴリズムは RFC6238で定義されており “Time-Based One-Time Passwords”または “TOTP”と呼ばれています シークレットキーと 時間を受け取り それらの情報に基づいて 短い数字のコードを 生成します 一般的には 認証Appや ハードウェアデバイスが コードを生成します ネットへの接続は 必要ありません デバイスのみで 完結します セキュリティ面やユーザーに とって大きなメリットです コードは 一般的に30秒間など 短時間だけ有効です サービスを提供する側も ユーザー側も 低コストで済み SMSを使う 必要がありません
TOTPの課題は 設定が少々 ややこしい点です サービス側は ユーザーのデバイスが コードの生成を 開始できるように いくつかのパラメータと シークレットキーを ユーザーと共有する 必要があります 一般的な設定方法は デバイスにQRコードを表示し 別のデバイスに 認証Appを ダウンロードして そのAppでQRコードを 読み取るというものです これは面倒で 説明もしにくい方法です デバイス上で コードを生成するのは 便利ですが 設定方法に 問題が残ります 私たちはその問題を 慎重に検討し iCloud キーチェーンの 新機能を開発しました 設定を合理化し AutoFillを 組み合わせました 非常に素晴らしい機能です iOS 15と macOS Montereyから 新たに 時間ベース認証コード ジェネレータが iCloud キーチェーンに 組み込まれます 使い方をお見せします まずはコードを 調べてコピーし このデバイスや 他のデバイスで使用する という基本的なことから 始めました これはどの認証Appに おいても外せない機能です ですがAutoFillは特別です SMSで受け取るコードのように AutoFillはタップするだけで 認証コードが入力されます コードを即座に入手できるので ユーザーはスムーズに サインインでき SMSの費用もかかりません 中でも素晴らしいのは 設定が簡単な点です TOTP設定ページへの リンクまたは ボタンを追加するだけで iOS 15 またはmacOS Montereyの ユーザーは2〜3回 タップするだけで 1つのデバイスだけで 設定を完了でき とっても簡単です 認証コードはユーザーの 全デバイス間で 同期され iCloud キーチェーンで 安全にバックアップ されています そのため Macで サインインするために わざわざ iPhoneを取り出す 必要がないのです これはアカウントの 復元にも便利です 認証コードはiCloudに バックアップされているので デバイスを失くしても アカウントは失いません ちなみに iCloud キーチェーンに あるものはすべて エンドツーエンドで 暗号化されており Appleを含め アカウントの所有者以外 アクセスできません
iCloud キーチェーンを 有効にしたデバイスは Face ID Touch ID または パスコードで保護されます またAppleデバイスは OSがサポートする 最高レベルのセキュリティ を備えているので どのデバイスであっても キーチェーンの データは安全です セキュリティについての詳細は AppleのPlatform Security Guideをご参照ください
ユーザーが 使い易くするために 簡単にできることが いくつかあります 設定フローでは2点 ログインフローでは1点です 1つ1つ 説明していきましょう 2〜3回タップするだけで 認証コードを設定できる のは大きな違いです 数億万人ものiPhoneユーザーが iOS 15に更新するだけで これを利用できます 設定画面へ飛ぶリンクや ボタンを追加するだけで 認証コードの設定が 完了します
すでにTOTPコードの ログインのインフラがある場合は otpauth: URLは よくご存知でしょう Base32をエンコードした シークレットキー 各コードの桁数 各コードの有効期間 ドメイン名を設定する 発行者フィールドなど コードジェネレータ設定に必要な すべての情報が このURLに含まれています iCloud キーチェーンは このフィールドを使って 認証コードを追加する アカウント提案します
これはTOTPの設定 プロセスでよく使われる QRコードにエンコード するのと同じURLです URLの前に「apple-」を 付けることで iCloud キーチェーン パスワードマネージャに 直接リンクする ことができます このapple otpauth:URLを Webページの アンカータグに 入れることができます Appでは 2つのオプションがあります textViewのattributedString プロパティに 割り当てた NSAttributedStringに link属性を追加して リンクを作成したり windowSceneの オープンAPIを使って ボタンのタップで URLを開くことができます システムが可 apple otpauth:URLを開けるか 可用性のチェックで 確認できます 前のバージョンのiOSでは 設定ボタンを非表示にし 設定用URLを削除します
設定プロセスでできる 2点目は 他のTOTPAppで スキャンするQRコードの JPG PNG GIFなど ラスターイメージの使用です Safariはデバイス上の 画像解析によって QRコードを検出し その情報を デコードします QRコードに otpauth:URLが 含まれていると Safariが判断した場合 QRコード画像の コンテキストメニューで コードジェネレータの 設定を提案します 最後の点は 生成されたコードを 入力するためのテキストフィールドです AutoFillがユーザー名 パスワード 認証コードを 入力する場所を正確に 把握できるように それらの テキストフィールドに コンテンツタイプの 注釈を付けます SwiftUIでは textContentTypeの view modifierで UIKitでは UItextFieldsの textContentType プロパティで AppKitAppでは NSTextFieldsの contentTypeプロパティで Webでは入力要素の autocomplete属性を oneTimeCodeに設定します では 一歩引いて 認証の全体像を見ながら 既存のインフラを より安全にする方法 についてお話します
認証メカニズムには スペクトルがあり その強度と安全性は 段階的に増していきます パスワードは 業界の伝統的な ベースラインであり パスワードベースの ログインフローを強化する 方法はいくつもあります 最も一般的な2つは パスワード+SMSで 受信するコードと パスワード+TOTPが 生成するコードです
また サービス側の 判断としては 認証プロセス全体を 別のサービスに委ねる フェデレーテッドサインイン プロバイダを 使用するか どうかがあります Federated Authenticationは 従来の認証方法と 同じ仕組みを 採用していますが 管理するパスワードは 少なく済みます 「Appleでサインイン」のように 堅牢で安全なインフラに 実装されていれば 従来の仕組みよりも 安全性が高くなります
その先にあるのは パスワードを 完全になくすことです WebAuthentication基準 つまり「WebAuthn」が これを実現します 公開鍵暗号方式で アカウントの 安全性を保ちます iOS 15と macOS Montereyには パスワードに代わる この有用な技術の プレビューが含まれています チームメイトのGarrettが 紹介しているビデオを ぜひチェックしてみてください パスワードのない 未来の実現に向けて 業界全体で 取り組んでいますが すでにあるインフラの セキュリティを 向上させるための 手段を講じることには 大きな価値がありますし 今後もしばらくは その必要があるでしょう オンラインの安全のため できることはしましょう
アクションを取れる分野として SMS経由の認証コードがあります 時間ベースの認証コードの 採用を検討している場合 SMSでコードを送信する 必要があるかもしれません
iOS 14とmacOS Big Surでは メッセージにドメイン バインディングを追加して フィッシングに対して SMSコードをより強化する 簡単な仕組みを 新しく提供しました ドメインバインディングは このメッセージのコードが 特定のドメイン向けだと AutoFillに伝える方法です このようにコードが バインドされている場合 バインドされているドメインが Webページのドメインまたは Appの関連ドメインの 1つと一致する場合のみ AutoFillはコードを提供します Appでは関連ドメインや ユニバーサルリンクと 同じ仕組みで動作します これらの技術に対応するよう Appをすでに設定済みなら ドメインバインディングを 追加できます ドメインバインディングで SMSコードのセキュリティを 強化するという記事で 詳しく紹介しています
認証コードについての 知識を得たところで 次の2つの重要なことを 行ってください 1つ目は 時間ベースの認証コードを AppやWebサイトに採用すること バックエンドのサポートを追加して SMSでのコード受信の代わりに 使ってもらうよう ユーザーに促します 2つ目は SMS認証コードを継続する場合は メッセージに ドメインバインディングを 追加することです ご視聴ありがとうございました [音楽]
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。