ハイライト
iOS 14 では、Apple の 4 つのプライバシーの柱である制限付き写真アクセス、おおよその位置情報、暗号化された DNS、ローカル ネットワーク アクセス許可、App Store データ開示、AppTrackingTransparency、SKAdNetwork が導入され、開発者がコア機能を完了するために使用するデータの量が減り、クロスアプリと Web サイトの追跡がユーザーに委ねられるようになります。
主要内容
プライバシーの問題は、許可ポップアップ ウィンドウでは解決できないことがよくあります。講演で取り上げられた写真共有アプリは典型的なものでした。ユーザーはただ写真を友人に送りたいだけですが、写真ライブラリ全体、正確な位置情報、アドレス帳全体をアプリに渡さなければなりませんでした。このプロセスには 3 つのプロンプトと 3 つの大きすぎるデータ入力があります。機能は完了しますが、信頼は消費されます。
Appleはこのセッションで、デバイス上での処理、データの最小化、セキュリティ保護、透明性と制御という判断基準を最初に示した。 4つの柱はスローガンではありません。これらは、Core ML ローカル トレーニング、限定された写真ライブラリ、おおよその位置情報、暗号化された DNS、App Store のプライバシー情報、クリップボード プロンプト、カメラとマイクのインジケーター、ローカル ネットワークの許可、プライベート Wi-Fi アドレス、AppTrackingTransparency、および SKAdNetwork の特定の機能に該当します。
この一連の変更の共通点は、「データを取得してから処理する」というデフォルトのパスを「最初に関数が実際に必要とするものを尋ねる」に変更することです。 PHPicker を使用すると、完全な写真ライブラリをリクエストしなくても写真を選択できます。近くの友達を探すときは、正確な座標の代わりに、デフォルトでおおよその位置を使用できます。 QuickType の提案を利用して、アドレス帳全体を読まなくても連絡先を入力できます。広告アトリビューションでは、ユーザー IDFA を広告ネットワークに送信することなく、SKAdNetwork を使用して結果を集計できます。
開発者にとって、このセッションは製品監査チェックリストに似ています。各収集ポイントは、デバイス上で収集できるかどうか、収集量を減らすことができるかどうか、セキュリティ境界があるかどうか、ユーザーがそれを理解して制御できるかどうかという 3 つの質問に答える必要があります。答えが不明瞭な場合、iOS 14 はシステム プロンプト、ステータス バー インジケーター、App Store の表示、またはパーミッションの戻り値を使用して答えを公開します。
詳細
このゲームには公式のコード スニペットはありません。以下では、トランスクリプトに明確に示されている API、構成項目、フレームワーク、ワークフローのみが使用され、コード ブロックは追加されません。
プライバシーの 4 つの柱: まずデータ フローの方向を変える
(00:29) Apple は、オンデバイス処理、データ最小化、セキュリティ保護、透明性、制御という 4 つの柱を使用してプライバシー設計を組織しています。それぞれの柱は、データがどこで処理されるか、どれだけの量が収集されるか、誰がそれを見ることができるか、そしてユーザーがデータを知っていて制御できるかどうかというエンジニアリング上の質問に対応しています。
(01:47) オンデバイス処理の中核は、データをデバイス上に残すことです。講演では、Core ML はデバイス上でモデルを構築してトレーニングできると述べました。プライベート フェデレーション ラーニングは、ユーザー データを送信する代わりに、差分プライベート モデルの更新を送信します。 iOS 14 では、デバイス上のローカル処理のために複数の言語でのディクテーションも追加されます。 HomeKit の顔認識では、ホーム ハブと、写真とホームでユーザーがマークした情報も使用されます。
キーポイント:
- まず、関数がサーバーにデータを送信する必要があるかどうかを判断します。
- 機械学習シナリオの場合は、Core ML、ローカル トレーニング、プライベート フェデレーテッド ラーニングが推奨されます。
- ディクテーション、HomeKit 顔認識 これらのシステム機能は、ローカル処理が小規模な機能だけでなく、機密性の高い音声や家庭のシナリオにも適していることを示しています。
- データがデバイス上に残っている場合、システムにすでに導入されているセキュリティ保護は、当然のことながらプライバシー保護の一部になります。
データの最小化: 使用する写真、場所、連絡先を減らすことができます
(05:24) このスピーチでは、写真共有アプリを使用して iOS 13 の問題を説明しています。写真を送信するには、写真ライブラリの完全な権限が必要です。近くの友達を見つけるには正確な位置情報が必要です。友人を手動で選択するには、アドレス帳の完全な権限が必要です。アプリが小さなタスクを完了するには、ユーザーは 3 回同意する必要があります。
(06:48) iOS 14 の限定された写真ライブラリでは、ユーザーは写真のサブセットのみを承認できます。さらに、PHPicker は UIImagePickerController を置き換えることができ、ユーザーがシステム セレクターで写真を選択できるようになります。このアプリは写真ライブラリへのアクセスを必要としません。ピッカーは独立したプロセスで実行されます。アプリはピッカーのコンテンツに直接アクセスしたり、スクリーンショットを撮ったりすることはできません。ユーザーが選択した項目のみを取得できます。
(08:38) おおよその位置情報を使用すると、ユーザーはおおよその位置情報のみを共有できます。アプリは通過できますNSLocationDefaultAccuracyReducedInfo.plist ではデフォルトで精度の低下が要求されます。ターンバイターン方式のナビゲーションなど、正確な位置情報を必要とする機能では、一時的に正確な位置情報を要求できます。
(10:09) 連絡先のデータ パスも小さくなります。 QuickType は、ユーザーが名前を入力すると、デバイス上の連絡先データベースに基づいて、電話番号または電子メール アドレスを提案できます。アプリはテキスト フィールドに注釈を付けて、フィールドに入力するためだけにアドレス帳全体を読むことなく、キーボードにどのような種類の連絡先情報を提案するかを入力することができます。
キーポイント:
- PHPicker は、アバター、チャットへの写真の投稿、少数の写真のインポートなどの単一選択プロセスに適しています。
- 制限付きフォト ライブラリは、PhotoKit を必要とするアプリに適していますが、権限の範囲はユーザーの選択によって制御されます。
- おおよその位置情報は、近くの友達、ローカル コンテンツ、地域サービスなど、正確な座標を必要としない機能に適しています。
- QuickType の連絡先候補は、「アドレス帳を読んでフォームに記入する」という多くの古いプロセスを置き換えることができます。
セキュリティ保護: ネットワーク名と近くのデバイスを境界に含めます
(12:03) DNS とのこの話し合いでは、セキュリティの柱が最初に取り上げられました。通常の DNS クエリには機密性や信頼性がなく、ネットワーク オペレータや第三者がクエリ記録を読み取り、変更し、保持することができます。今年から、Apple プラットフォームは 2 つの標準暗号化 DNS プロトコルをネイティブでサポートし、サーバー名の機密性と信頼性を保護し、自動 DoH サーバー検出をサポートします。
(13:52) DNS に加えて、TLS 接続を確立するときのサーバー名表示では、引き続きサーバー名がクリア テキストで公開されます。 Apple は IETF と協力して、TLS ハンドシェイク暗号化方式をさらに推進していました。このセクションの要点は明らかです。ネットワーク暗号化はコンテンツを保護するだけでなく、第三者がサーバー名からユーザーの行動を推測する機会を減らします。
(20:45) ローカルネットワークもユーザーコントロールの対象になりました。 iOS 14 では、アプリが Bonjour または mDNS スキャンを通じてローカル ネットワークにアクセスすると、システムはユーザーに認証を求めるプロンプトを表示します。アプリは、必要な Bonjour サービスを Info.plist で宣言し、その使用方法の説明を提供する必要があります。講演では、ユーザーがコンテキストなしで許可リクエストを目にすることを防ぐために、プロンプトが表示される前に UI の手掛かりが必要であると強調しました。
(22:10) プライベート Wi-Fi アドレスは、ネットワーク全体での MAC アドレス追跡の問題を解決します。 iOS 14 は、ネットワークの Wi-Fi MAC アドレスを自動的に管理し、ユーザーがネットワークに参加するときに ID に依存しないネットワークごとのアドレスを使用し、新しいプライベート アドレスを毎日生成します。ユーザーは、Wi-Fi 設定でこの機能を制御することもできます。
キーポイント:
- 暗号化された DNS は、HTTPS コンテンツが暗号化されているかどうかだけでなく、名前解決段階も保護します。
- ローカル ネットワーク デバイスの組み合わせによってユーザー環境が明らかになるため、Bonjour、mDNS などの検出アクションにはユーザーの制御が必要です。
NSLocalNetworkUsageDescriptionBonjour サービス宣言は実際の機能と 1 対 1 に対応する必要があります。- プライベート Wi-Fi アドレスはシステムによって自動的に処理されますが、安定した MAC アドレスに依存するという古い前提が変わります。
透明性と制御: データアクセスをユーザーが確認できる事実に変える
(15:26) 2020 年の秋から、App Store は開発者にデータ使用量アンケートへの記入を義務付けます。この情報は製品ページに表示され、ユーザーはアプリが収集するデータと、そのデータがダウンロード前に追跡に使用されるかどうかを確認できます。 SDK はアプリ プロセス内で実行され、アプリと同じ権限セットを持っているため、サードパーティ SDK によるデータ収集も宣言する必要があります。
(17:17) Safari にインテリジェント トラッキング防止の結果が表示されます。ユーザーは、Safari がどの既知のトラッカーをツールバーでブロックしたかを確認したり、過去 30 日間の追跡レポートを表示したりできます。
(17:49) iOS 14 では、アプリが別のアプリのペーストボード項目にアクセスするとプロンプトが表示されます。このプロンプトはプログラムによるアクセスをカバーしており、ユーザーによる手動の貼り付けもカバーしています。この講演では、開発者は統合コードがクリップボードを読み取っていることに気づいていない可能性があるため、アプリと SDK の動作を監査する必要があることを思い出させました。
(18:37) カメラとマイクにも新しい透明度が追加されました。アプリがカメラまたはマイクをオンにすると、ステータス バーにインジケーターが表示されます。コントロール センターには、現在または最近カメラまたはマイクを使用しているアプリが表示されます。これは、Web サイトがカメラとマイクの許可を使用している場合にも当てはまります。 UI に関する手がかりがなければ、クリップボード、マイク、カメラのウォームアップなどの最適化を行うと、ユーザーはアプリが理由なく機密データにアクセスしていると信じてしまう可能性があります。
キーポイント:
- App Store のアンケートでは、開発者は自社およびサードパーティの SDK データ収集を理解する必要があります。
- Safari 追跡レポートは、ブラウザ保護をバックグラウンド メカニズムから目に見える結果に変えます。
- ペーストボード、カメラ、マイクへのアクセスはシステム UI に直接反映され、ユーザーの非表示に依存してプリロードを隠すことはできません。
- SDK の動作はユーザーによってホスト アプリに起因すると考えられ、監査範囲はユーザー自身のコードのみを調べることはできません。
透明性の追跡と SKAdNetwork: 広告の帰属をユーザーに結び付ける必要はありません
(26:59) Apple は、Safari のトラッキング防止のアイデアをアプリに導入しました。 App Store のポリシーでは、アプリは、他社が所有するアプリや Web サイト全体でユーザーを追跡する前に許可を求めることが求められます。追跡には、ターゲットを絞った広告、広告の測定、データ ブローカーとの共有が含まれます。データが実名に関連付けられていない場合でも、ユーザー ID、IDFA、デバイス ID、指紋認証 ID、またはプロファイルに関連付けられている限り、追跡とみなされます。
(28:54) 追跡許可をリクエストする入り口は AppTrackingTransparency フレームワークであり、Info.plist に入力する必要があります。NSUserTrackingUsageDescription。ユーザーが [アプリに追跡しないように依頼する] を選択すると、IDFA API はすべてゼロを返します。 iOS 14 SDK なしで構築されたアプリは IDFA を取得できず、API もすべてゼロを返します。ユーザーは、すべてのアプリに対するアクセス許可リクエストの追跡をシステム レベルでオフにすることもできます。
(31:16) Apple はまた、プライバシーに配慮した方法で広告アトリビューションの問題に答えるために SKAdNetwork を推進しています。従来のアトリビューションでは、広告のクリックとインストール後のアクティベーションを同じユーザー ID で組み合わせるため、広告ネットワークはユーザーがどのアプリをインストールしたか、どの広告をクリックしたか、コンバージョンが成功したかどうかを把握します。
(33:41) SKAdNetwork へのパスが異なります。広告 SDK はキャンペーン ID をデバイス上の StoreKit に渡します。アプリがインストールされて起動されると、StoreKit は App Store クライアントに通知します。 Apple は、同じコンバージョンが十分なユーザーに対して発生したかどうかを確認します。条件が満たされた場合にのみ、デバイスはコンバージョン データを広告ネットワークに送信します。結果は、キャンペーンがソース アプリからインストールのバッチをもたらし、ユーザー レベルの ID が含まれておらず、暗号化署名によって整合性が保護されていることのみを示しています。
キーポイント:
- IDFA を使用する前に、まず AppTrackingTransparency を実行し、IDFA を起動して使用する準備をするたびに権限を確認する必要があります。
- ユーザーが追跡を終了した後、アプリは対応する追跡パスを停止する必要があり、IDFA をキャッシュまたは保存することはできません。
- SKAdNetwork は、キャンペーン、ソース アプリ、インストール コンバージョンなどの集計に関する質問に答えるのに適しています。
- アプリが広告を表示したり、広告を購入したりする場合、SKAdNetwork をサポートする広告ネットワークを優先して、追跡許可リクエストを減らす必要があります。
重要ポイント
-
写真共有が許可不要のエントリに変更されました: PHPicker を使用して写真を選択し、QuickType を使用して連絡先を入力し、おおよその位置情報を使用して近くの人々を見つけるだけの共有プロセスを作成します。実行する価値がある理由: セッション写真共有の例は、3 つの大規模な許可リクエストを最小のデータ パスに変更することです。開始方法: 完全なフォト ギャラリー、アドレス帳、および正確な位置情報リクエストを、それぞれ PHPicker、テキスト フィールドのコンテンツ タイプの注釈、および精度を下げたデフォルト パスに置き換えます。
-
プライバシー アクセス監査パネル: 設定ページで、写真、位置情報、アドレス帳、クリップボード、カメラ、マイク、IDFA、ローカル ネットワークを使用するためのアプリの機能入口をリストします。実行する価値がある理由: App Store データのアンケートとシステム プロンプトにより、これらの訪問が可視化されるため、ユーザーはその理由を理解するためにアプリに戻ることができる必要があります。開始方法: まず、データ ソースを機能別にリストし、次に目的、トリガー時間、代替パス、および各項目の対応するシステム権限を書き留めます。
-
おおよその位置情報を優先する近隣サービス: 近くのアクティビティ、都市コンテンツ、エリアの推奨事項でデフォルトでおおよその位置情報が使用され、ナビゲーション、正確なチェックイン、またはジオフェンシング タスクのみが正確な位置情報を要求します。実行する価値がある理由: この講演では、多くの機能がおおよその位置に自然に適していることが明らかになり、
NSLocationDefaultAccuracyReducedデフォルトのリクエストメソッドとして。開始方法: 位置関数を都市レベル、地域レベル、精密レベルの 3 つのカテゴリに分割し、次に精密レベル関数に一時的な精密位置トリガー ポイントを追加します。 -
コンテキストトリガーのローカルデバイス検出: スマートホーム、スクリーンキャスト、印刷、近くのプレーヤーの検索はすべて、Bonjour または mDNS スキャンを開始する前に、明示的なボタンの後に配置されます。実行する価値がある理由: iOS 14 では、アプリがローカル ネットワークにアクセスするときにユーザーにメッセージが表示されますが、コンテキストの欠如により信頼が損なわれます。開始方法: Info.plist で実際の Bonjour サービスと使用法の説明を宣言し、検出ロジックをアプリの起動からユーザー アクションのコールバックに移動します。
-
SKAdNetwork への広告アトリビューションの移行: 広告コンバージョン レポートをユーザーレベルの IDFA リンクからキャンペーンおよびソース アプリ レベルの集計アトリビューションに変更します。実行する価値がある理由: AppTrackingTransparency により、IDFA がユーザーの許可に依存するようになり、SKAdNetwork はユーザーを追跡せずにコンバージョン データを返すことができます。開始方法: 広告ネットワークが SKAdNetwork をサポートしていることを確認し、現在ユーザー ID をデータ ブローカーまたは企業間サービスに送信しているかどうかを確認し、不要なトラッキング パスを削除します。
関連セッション
- アプリで制限付き写真ライブラリを処理する — ユーザーが一部の写真のみを承認した後、PhotoKit アプリが制限付きステータスと管理エントリをどのように処理するかについての詳細な説明。
- 位置情報の新機能 — 引き続き、おおよその位置、一時的な正確な位置、およびコア ロケーションの認証ステータスの変更が表示されます。
- 位置プライバシーのための設計 - Apple マップのインターフェイス設計から、おおよその位置情報がユーザーの制御と透明性をどのように維持するかをご覧ください。
- アプリでローカル ネットワークのプライバシーをサポート - このセクションで説明されているローカル ネットワークのアクセス許可、Bonjour サービス、およびアクセス許可のプロンプトのタイミングを拡張します。
- 暗号化された DNS を有効にする — このフィールドに記載されている暗号化された DNS プロトコル、システム レベルの構成、およびアプリ レベルの接続構成を展開します。
コメント
GitHub Issues · utterances