技術と本について書くブログ

技術と本について書くblog。技術メモなど雑記を書いているblog。

Appleのプライバシー保護について[What’s new in privacy]

developer.apple.com

Appleのプライバシー保護について

今回のWWDC22でのプライバシー周りのアップデートの概要は以下の通り

・データの最小化

機能を構築するために必要なデータのみを使用します。

・オンデバイス処理

その機能が機密データを必要とする場合、デバイスのパワーを使ってサーバーとの共有を避けます。

・透明性と制御

機密データが端末外に送信される場合は、送信内容やその使用方法を理解させ、コントロールできるようにする。

・セキュリティ保護

転送中および保存中の機密データを、デバイスの内外を問わず保護します。

変更された機能

iOS 16 と macOS Ventura には、

  1. デバイス名へのアクセスを制限する新しいデバイス名エンタイトルメント

  2. 位置情報利用時のアトリビューションに関するアップデート

  3. 公証アプリの整合性をより多くの場所で検証する Gatekeeper の改善

  4. ログイン時に Mac アプリを起動すると通知が出る

  5. Pasteboard アクセスには権限が必要になった

という重要な変更があります。

1. デバイス名へのアクセスを制限する新しいデバイス名エンタイトルメント

デバイスの識別を容易にするため、iOSではApple IDアカウントからのユーザー名がデバイス名の一部としてデフォルトで含まれるようになりました。

iOS 16以前は、UIDevice APIによって、アプリはユーザが割り当てたデバイス名にアクセスすることができました。

この値へのアプリのアクセスをユーザーの期待とより一致させるために、UIDevice.name API は、ユーザーがどのようにカスタマイズしても、ユーザーが割り当てた名前ではなく、デバイスのモデルを返します。

デバイス名を表示する方法

アプリがマルチデバイス機能を使用し、アプリのUIでこれを可視化する場合、デバイス名にアクセスするための権限を要求することができます。

このエンタイトルメントがあっても、クラウドホスティングサービスプロバイダー以外の第三者とのデバイス名の共有は許可されていません。

2. 位置情報利用時のアトリビューションに関するアップデート

アプリが位置情報を使用すると、iOSはステータスバーに以下のように矢印を表示します。

iOS 16では、コントロールセンターから下にスワイプすると、どのアプリが位置情報を使用しているかが表示されます。

アプリが位置情報を使用するのは、予想される場合に限るようにしましょう。

3. 公証アプリの整合性をより多くの場所で検証する Gatekeeper の改善

Gatekeeperは、新しくダウンロードされたアプリの整合性をチェックします。 macOS Venturaでは、Gatekeeperは隔離されたアプリだけでなく、公証されたすべてのアプリの整合性をチェックするようにしました。

まず、アプリが適切に署名されている必要があります。 macOS Venturaでは、公証済みアプリの署名が有効でなくなった場合、初回起動時にGatekeeperによってブロックされます。 すべての実行ファイルとバンドルに署名し、アプリに変更を加えたときにその署名が有効であることを確認する必要があります。完全性チェックに加えて、Gatekeeper はアプリが特定の方法で変更されるのを防ぐことができる。

追加方法

別の開発チームによるアプリの更新を許可したり、更新者を自分の更新者だけに制限したりするには 許可したい NSUpdateSecurityPolicy をInfo.plistに追加する。

4. ログイン時に Mac アプリを起動する通知が追加

macOS Monterey以前では、誰かがMacにログインすると、起動エージェントやデーモンを使ってログイン時にアプリを実行することができます。

ただ、ユーザーがMacにログインすると、関係のないアプリが開いてしまい、邪魔になることがあります。 さらに、アプリや他のソフトウェアがセンサーや位置情報などのデータにアクセスすることもあります。

実行されているものが目に見えないこともあるため、必ずしも人にはわからないのです。

また、開発者にとっても、ログイン時に起動する機構は、デーモン、エージェント、サービス管理...と、どれを使えばいいのか、必ずしも明確ではありません。

そこで、macOS Ventura では、新しい単一の API を使って、ログイン時にアプリ、ローンチエージェント、またはデーモンを起動することができます。

アプリは、デフォルトでログイン時の起動が許可され、ユーザーにも通知されます。

アプリが昇格した権限を持つデーモンを必要とする場合は、有効にするために管理者の承認が必要です。

通知をクリックすると、システム設定にログイン項目ペインが表示され、システム上で起動するアプリを管理することができます。

上部はログイン時に実行されるアプリを管理し、下部はログイン時に実行されるその他の項目を管理します。 このペインでは、エージェント、デーモン、SMLoginItems、およびログイン時に開くように自身を追加するアプリなど、アプリがログイン時に実行できるさまざまな方法を制御できるようになりました。

APIの使い方

サービス管理フレームワークを利用すると、ログイン時にリソースを簡単に起動することができます。

すべてのエージェントとデーモンはアプリバンドル内に住んでいるので、もうインストーラを使って起動エージェントを書いたり、クリーンアップスクリプトを作成する必要はありませんし、これは Mac App Store アプリでも機能します。

SMAppService APIをアプリから呼び出すことで、通知を受け取るタイミングや、設定でのアプリアイコンの表示を制御することができます。

5. Pasteboard アクセスには権限が必要に

編集オプションでペーストを押していないのに、アプリがペーストボードにアクセスすると、透明度の高い通知が表示されました。

iOS 16では、他のアプリが書き込んだペーストボード項目へのすべてのアクセスについて、システムが意図を確認するようになっています。

UIKitのペースト・コントロールについて

UIKitのペーストコントロールをアプリのエクスペリエンスに追加すると、ボタンを押すことで直感的にペーストボードにアクセスできるようになります。

プライベートアクセストークン

CAPTCHAに邪魔されることなく不正を防止する強力なツールです。

プライベートアクセストークンは、CAPTCHAの代わりに、ウェブサイトやAPIの開発者がそれらのデバイスを追跡することなく正規のデバイスを認識できるようにするブラインドトークンを使用して構築されています。

詳しくは、ビデオ「Replace CAPTCHAs with Private Access Tokens」をご覧ください。

Passkeysとは

Passkeysは、より堅牢な認証ソリューションを可能にし、パスワード自動入力と同じように、すぐに親しみのあるUIスタイルと生体認証を使用します。

パスキーは公開鍵暗号方式で構築されているため、サーバーが保存する値は弱くなることはなく、もし明らかにされても、それは本当に公開されているので問題にはなりません。

パスキーは本来、対応するウェブサイトとリンクしているため、フィッシングされることはない。

パスキーの実装については、"Meet Passkeys "というセッションがあります。

developer.apple.com

Safety Check

「Safety Check」はiOS 16の新しいプライバシーツールです。

セーフティチェックは、家庭内暴力や親密なパートナーからの暴力を受けている人が、以前に他人に許可した可能性のあるアクセスを見直し、リセットするのに役立つように設計されています。

FindMyの位置情報共有をオフにし、写真、メモ、カレンダーの共有を停止することで、人々とのデータ共有を停止します。

すべてのサードパーティアプリのシステムプライバシー許可をリセットすることで、アプリとのデータ共有を停止します。