iOS6.1の新機能「Advertising Identifierをリセット」を見てみる
はじめに
Advertising Identifierとは、文字通り広告識別子であるが、本機能は、iOS6.0から搭載されたAdvertising Identifierをリセットする機能のことらしい。
設定>一般>情報>アドバタイズ で設定をすることができる。
iOS6.0の時も「追跡型広告を制限する」というのがあるが、なぜ今回リセット機能が追加されたのかちょっと調べてみた(ググってみた)。
このIDの背景とか特徴とか
ざっくり言うと、このAdvertising Identifierの登場の背景と特徴は下記の通り。
[背景]
- UDIDへのアクセスは原則禁止(iOS5から非推奨になってたはず)
- UDIDの広告向けの代わりのIDとして、Advertising Identifier(スーパーCookie)が用意された
[特徴]
- これはデバイス固有ですべてのアプリで同じIDとなる
- 利用が許可されていればトラッキングに利用可能(デフォルトは利用許可になっている、なんてこったい)
- どうも簡単に変更されないっぽい(揮発性があると書かれてるけど)
で、リセットの必要性は
スーパーCookieは怖い、これはグローバル識別子だから個人と簡単に紐づけることができる可能性(名寄せできる可能性)があるということだよね。
しかもユーザーが利用を許可していなくてもこのデータの取得自体はできるようなので、トラッキングが抑止される保証がないと推測できる(DNTの実情と似ているな)。
だからこのIDをユーザー自身がリセットできる機能が必要だったと思う。
identifierForVendorとは?
Advertising Identifierについて調べていたら、iOS6からidentifierForVendorなるIDもあるらしい。
これはTeamID(アプリの開発ベンダー)ごとに同一となるUDIDっぽいものらしい。
開発ベンダーごとだからといって「かんたんログイン」の識別子として利用すると多分危険。
まとめ
- 「追跡型広告を制限する」をオフにしてもトラッキングされるかも
- きになったらAdvertising Identifierを(定期的に)リセットするといい
- identifierForVendorはベンダーごとに利用できるUDIDみたいなもの、ただし「かんたんログイン」的に利用していると、このIDの発行アルゴリズムがhackされると死ぬ