Appleのプライバシー4本柱
Apple’s privacy pillars in focusの動画を元に、Appleが考えるプライバシーの4つの重要な柱についてざっくりメモしました。
プライバシーに対するAppleの考え
Appleはプライバシーを基本的人権だと考えている。ユーザが自分のデータがどんなところに使われるかを理解して管理することは重要。
アプリのプライバシーを向上させるのは高い目標のように思えるかもしれないし、素晴らしい機能とプライバシーはトレードオフのように思えるかもしれないし、どこから手をつけていいかわからないかもしれない。その場合は次のことを意識すると良い。
- データの最小化(実際に必要なデータのみ要求して使用する)
- オンデバイス処理(データをサーバに送信せずにローカルで処理する)
- 透明性と管理(自分のデータがどのように使用されるかを理解し、制御できる)
- 機密保持(プライバシーの保護を徹底する)
データの最小化
例えば位置情報を利用するアプリを開発するとする。iOS 13では「一度だけ許可」が導入され、iOS 15では現在地を共有するボタン(LocationButton)が追加された。LocationButtonは「1度だけ許可」と似ているが、セッション中であれば何度も聞かれることがないという点でシームレスになっている。「使用中のみ許可」と比べても試しやすい。
ペーストについても見てみる。現在OS側はユーザが行ったペーストとプログラムによって行われたペーストを確実に区別できるようになっている。iOS 14ではアプリやSDKがペーストボードにアクセスしたことがユーザに通知される。一方ユーザが編集メニューやキーボードからペーストした時は通知されない。できるだけ、ユーザ自身によるペーストのみを使用する方が良い。
オンデバイス処理
オンデバイス処理のメリットは、機密データをサーバに送信せずに機能を実現できること。iOS 15ではこの原則をSiriに適用した。
- デフォルトでは音声録音は保存されない
- リクエストはApple IDではなくランダムな識別子に紐付けられている
- 個人情報がデバイスから外に出ないようにしている
iOS 12
Apple Neural Engineもハードウェアに追加されたので、Siriにより多くのコンポーネントをオンデバイスに移行できた。
iOS 13
Siri音声を完全にデバイス上で生成する機能が導入された。これによってリクエストに対するSiriの応答をデバイス内に留められるようになった。
iOS 14
Siriの全ての自動音声認識モデルをオンデバイスに移行している。Siriにオンデバイス音声認識を導入すると、デフォルトではリクエストの音声がiPhone, iPadから外に出ることはなくなる。Siriの自動音声認識処理をオンデバイスで行うことによって、オフラインでも応答ができたり、通信がない分早く応答できたりする。
iOS 15
Create MLフレームワークを使ってiPhoneやiPad上でモデルをトレーニングするなど、Apple Neural Engineも利用できる。写真のような機密データを外に出さずにパーソナライズすることができる。
透明性と管理
メールや写真、健康データの使用方法や、誰と共有するかを伝えることで、ユーザが安心してアプリを使うことができる。
電子メール関連の透明性と管理
メールアドレスの入力をためらった経験はあるだろう。そこでiOS 13でSign in with Appleが登場し、自分の名前やメールアドレスを隠すことができるようになった。
iOS 15ではiCloud+の機能を使ってメールを非公開にすることができる。Safariではフォーム入力時に、メールではメール作成時に簡単にランダムなメールアドレスを作ることができる。相手がこれを使っていた場合でも正しく受信トレイに届く。ユーザの意思を尊重し、名前などの他の情報は必要な時以外は求めないようにする。
メールをリッチにして人を惹きつけるためにリモート画像をメールに使うことはよくある。このメールが表示されるとリモート画像が取得され、いつ、どこで、どのデバイスでメールを開いたかが明らかになる。多くのマーケティングメールにはユニークな画像URLや見えないピクセルが含まれており、メールを開いた時にこの情報をユーザと紐付けする。このため、ユーザはテキストだけのメールを選ぶか、情報共有覚悟でリッチテキストメールを選ぶかをしなければならなかった。iOS 15ではメールプライバシー保護が追加され、iOSがリモートコンテンツを非公開で取り入れる。
このようなメールを送る側の場合はいくつか注意点がある。
- メールの配信後にコンテンツが自動的にロードされるため、メールの閲覧時間が正確ではなくなる
- IPアドレスが非公開なので、メールを読んだ場所やデバイスの種類などの情報はわからない
- 実際に読んでなくても読んだと表示される
集中モード、インジケータ
コミュニケーションアプリの場合、iOS 15からおやすみモードなどを使用中のユーザにステータスへのアクセスをクリエストし、アプリ内でそれを共有することができる。ステータスのリクエストにはアプリのInfo.plistにあるNSFocusStatusUsageDescriptionキーと、XcodeのUser Notifications Communicatin機能をオンにする必要がある。
macOS Montereyではカメラインジケータランプに録音インジケータを追加した。内蔵マイクなどが音声を拾っている場合はステータスバーにオレンジの丸印が表示される。サードパーティSDKが予期せず受信していないことを簡単に確認することができる。
アプリの動作を透明化するツール
Appプライバシーレポート
ユーザが普段使っているアプリで何が起こっているかを理解できるようにするもの。
このレポートによって、例えば次のことがわかる。
- 位置情報や写真、連絡先などにいつアクセスしたのか
- (アクセスしたドメインのリストから)アプリが誰とデータを共有したか
- アプリ内でアクセスしたWebサイトのドメイン
このレポートはプライバシー設定内にあり、ユーザが有効化できる。使用履歴を削除したい場合は再度オフに戻すだけで良い。このレポートではSafariのプライベートブラウズモードなど、WebKitの一時的なセッションは記録されない。JSONファイルとしてエクスポートすることもできるので、期待通りになっているか確認してみると良い。
アプリによる接続とWebサイトによる接続の違いについて。SafariViewController、ASWebAuthenticationSessionsを使って行われた接続はWebサイトによる接続として自動的にタグ付けされる。第三者のコンテンツだった場合、アプリのコア機能でない場合は、Webサイトによる接続だと手動でタグ付けすることもできる。
プライバシーラベル
WWDC 2020で発表され、2021年の春のiOS 14.5から対応必須になった。このラベルはApp Tracking Transparencyの使用状況と一致している必要がある。また、サードパーティのSDKがデータを収集しているなら、それもラベルに反映する必要がある
App Tracking Transparencyに関するポイントは以下の通り。
- 広告目的、あるいはデータブローカーと共有するためにアプリやWebサイト間でユーザデータをリンクさせることなどが対象
- 許可を求めるときはトラッキングする理由を説明する文字列を入力する必要がある
- このダイアログを出す前に詳しい説明をする画面を表示するのも良いが、表示するボタンを一つだけにし、ダイアログを回避する道を作らないこと
- IDFA(広告主識別子)を使ったものだけでなく、あらゆるトラッキングについて許可が必要になる
- トラッキングが拒否された場合でも、アプリのすべての機能を使えるようにする必要がある
ちなみにいくつかの情報を集めてデバイスを識別するフィンガープリンティングは、たとえユーザの許可が得られてもデベロッパー契約上禁止されている。
機密保持(セキュリティ)
セキュリティでプライバシーを実現する例。iMessageのプライバシーはend-to-endの暗号化で守られている。今までCloudKitを使用すると、いつでもCKAssetsを自動的に暗号化できていた。iOS 15ではNSString, NSNumber, NSDdate, NSData, CLLocation, NSArrayでも同様の強力な暗号化を使うことができる。つまり、これまで自分で行なっていたユーザデータの暗号化をiCloudのデータ全てでできるようになった。対応は簡単。
Discussion