mikanmarusanのブログ

テクノロジーとかダイビングとか

iOS6.1の新機能「Advertising Identifierをリセット」を見てみる

はじめに

Advertising Identifierとは、文字通り広告識別子であるが、本機能は、iOS6.0から搭載されたAdvertising Identifierをリセットする機能のことらしい。

設定>一般>情報>アドバタイズ で設定をすることができる。

iOS6.0

iOS6.1

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されると死ぬ