ハイライト
iOS 15 と macOS Monterey は、iCloud キーチェーン パスワード マネージャーに TOTP 検証コード ジェネレーターを組み込み、ワンクリック セットアップ、AutoFill 自動入力、クロスデバイス同期、安全なバックアップをサポートし、多要素認証を SMS よりも安全、安価、信頼性の高いものにします。
主要内容
パスワードの問題
パスワードはインターネット上で最も一般的な認証方法ですが、パスワードを正しく使用することが苦手な人もいます。多くの人がパスワードを使い回したり、推測しやすいパスワードを選択したりしています。攻撃者がフィッシングを通じてパスワードを偽装することも簡単です。
セキュリティを強化するために、多くのサービスでは、ログイン プロセスに追加の手順 (確認コード) を追加しています。ユーザーはユーザー名とパスワードを入力した後、身元を確認するためにワンタイム コードも入力する必要があります。
SMS 認証コードの隠れた危険性
現在、確認コードを配信する最も一般的な方法は SMS です。オートフィルを使用すると、SMS 確認コードを簡単に入力 (ワンクリックで入力) できますが、SMS にはいくつかの深刻な問題があります。
- セキュリティが低い: SMS は通信事業者のネットワークによって簡単に盗聴され、SIM カード交換攻撃の危険にもさらされています。
- ネットワークに依存: 飛行機内や電波の弱い場所では、テキスト メッセージが長時間遅延したり、受信できなかったりする場合があります。
- 高コスト: サービス プロバイダーにとって、何百万ものテキスト メッセージの送信は莫大な費用です。
TOTP: デバイスはローカルで検証コードを生成します
TOTP (Time-Based One-Time Password) は RFC 6238 標準に基づいており、秘密キーとタイムスタンプを通じてデバイス上でローカルに短い数値コードを生成します。この方法はサーバーとの通信を必要とせず、安全性が高く、SMS の料金もかかりません。
しかし、TOTP のセットアップ プロセスは常に面倒でした。ユーザーは、あるデバイスで QR コードを表示し、別のデバイスで認証アプリをダウンロードして、QR コードをスキャンする必要があります。このプロセスは一般のユーザーには理解するのが困難です。
iCloud キーチェーンの組み込み検証コード ジェネレーター
iOS 15 と macOS Monterey は、TOTP 検証コード ジェネレーターを iCloud キーチェーン パスワード マネージャーに直接構築し、上記の問題点をすべて解決します。
- ワンクリック設定: TOTP 設定ページへの特別なリンクを追加し、ユーザーは 2 回のクリックで設定を完了できます。
- 自動入力: SMS 認証コードと同様に、生成された認証コードはワンクリックで入力ボックスに自動的に入力できます。
- クロスデバイス同期: 確認コードは iCloud キーチェーン経由ですべてのデバイス間で同期されるため、Mac にログインするために iPhone を取り出す必要はありません。
- 安全なバックアップ: 確認コードは iCloud に安全にバックアップされます。デバイスを紛失した場合でも、アカウントへのアクセスは失われません。
- エンドツーエンド暗号化: iCloud キーチェーン内のすべてのデータはエンドツーエンド暗号化されており、Apple はアクセスできません。
詳細
ワンクリック設定をサポートする方法
(08:06) ユーザーが確認コードを簡単に設定できるようにするには、TOTP 設定ページにリンクまたはボタンを追加する必要があります。
TOTP 設定では通常、otpauth://Base32 でエンコードされた秘密キー、検証コードの数字、有効期限、発行者フィールドを含む URL。 iCloud キーチェーンは、発行者フィールドを使用して、確認コードを追加するアカウントを提案します。
iCloud キーチェーン パスワード マネージャーに直接リンクするには、URL の先頭に次の文字を追加します。apple-プレフィックス:
// 在 App 中,通过按钮点击打开设置 URL
func openVerificationCodeSetup(url: URL) {
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
scene.open(url, options: nil, completionHandler: nil)
}
}
// 在网页中,使用锚标签
// <a href="apple-otpauth://totp/Example?secret=...&issuer=example.com">设置验证码</a>
キーポイント:
otpauth://URL には、キャプチャ ジェネレーターのセットアップに必要なすべての情報が含まれています- プラス
apple-プレフィックスの後、システムは iCloud キーチェーンのパスワード マネージャーを直接開きます。 - iOS では、
UIWindowSceneのopenAPI はこの URL を開きます - Web ページでは、アンカー タグを使用して直接リンクできます。
- 利用可能在庫確認(利用可能在庫確認)を通じてシステムのサポートを確認する必要があります
apple-otpauth://URL、古いバージョンのシステムでは設定ボタンを非表示にする必要があります
QR コード用の Safari の統合
(10:02) JPG、PNG、または GIF 形式の QR コード画像を使用する場合、Safari はデバイス上の画像分析を通じて QR コードを検出します。 Safari が QR コードに次の内容が含まれていると判断した場合otpauth://QR コード画像のコンテキスト メニューで検証コード ジェネレーターを設定するオプションを提供する URL。
テキストフィールドのコンテンツタイプの注釈
(10:30) 自動入力がユーザー名、パスワード、確認コードを入力する場所を認識するには、テキスト フィールドにコンテンツ タイプをマークする必要があります。
SwiftUI の場合:
TextField("Verification Code", text: $code)
.textContentType(.oneTimeCode)
UIKit の場合:
let textField = UITextField()
textField.textContentType = .oneTimeCode
Web ページ内:
<input type="text" autocomplete="one-time-code" />
キーポイント:
.oneTimeCodeコンテンツ タイプは、これが確認コード入力ボックスであることをシステムに伝えます。- マークを付けると、オートフィルは SMS または TOTP ジェネレーターから取得した確認コードを自動的に提供します。
- ウェブ上で使用する
autocomplete="one-time-code"財産
SMS 検証コードのドメイン名バインド
(13:11) SMS 確認コードを使用する必要がある場合、iOS 14 と macOS Big Sur では、セキュリティを強化するためにドメイン バインド メカニズムが導入されています。
ドメイン名バインド情報を SMS メッセージに追加して、この確認コードが特定のドメイン名に対するものであることをオートフィルに伝えます。オートフィルは、ドメイン名が一致する場合にのみ確認コードを提供します。これにより、フィッシング Web サイトがユーザーの SMS 認証コードを取得するのを防ぎます。
ドメイン名のバインディングは、ユニバーサル リンクと同じ関連ドメイン メカニズムを使用します。アプリが関連付けられたドメインで構成されている場合は、ドメイン名バインディングのサポートを直接追加できます。
重要ポイント
-
SMS 確認コードを置き換える: アプリや Web サイトのバックエンドで TOTP をサポートし、ユーザーが SMS からデバイス上でローカルに生成された確認コードに切り替えるようにガイドします。これにより、コストが削減され、セキュリティが向上し、オフライン環境でのユーザー エクスペリエンスが向上します。エントリはサーバーから生成されます
otpauth://URL。 -
ワンクリックセットアッププロセス: ユーザーが 2 段階認証を有効にするセットアップページに、「iCloud キーチェーンに設定」ボタンを追加します。使用
apple-otpauth://URL プレフィックスを使用すると、iOS 15 以降のデバイスでわずか 2 回のクリックでセットアップを完了できるため、QR コードをスキャンするという面倒な手順が不要になります。 -
強化された SMS セキュリティ: 当面 SMS 認証コードを完全に放棄できない場合は、すぐに SMS メッセージにドメイン名バインドを追加してください。これにより、フィッシング攻撃による検証コードの盗用が防止され、構成コストが非常に低くなり、関連付けられている既存のドメイン設定を再利用するだけで済みます。
-
統合認証エクスペリエンス: 予定
textContentType(.oneTimeCode)すべての確認コード入力ボックスに適用されます。このようにして、ユーザーは、確認コードが SMS からのものであっても TOTP ジェネレーターからのものであっても、一貫したワンクリック入力エクスペリエンスを得ることができます。
関連セッション
- パスワードを超えて進む — WebAuthn テクノロジーのプレビューと、パスワードに代わる究極のパスキーの紹介
- Web 用の Face ID と Touch ID に対応 — Web 側の生体認証
- Apple でサインインの新機能 — 連邦認証と Apple でサインインの更新
コメント
GitHub Issues · utterances