gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

UDIDの話の軽いまとめ

ちょいと今日話が出ていたので、多分今後も「出るだろうなぁ」との予想込みで、Blogに。
(余談。タグに「プライバシ」とか追加しようかしらん? どう思います?)


ん…直接的には、あぽー様がすでに「おら受けトンねぇ」宣言をなさってるでごわす。
ちなみにそれって2011/08/19のお話( http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/ )。「最近」とか騒いではいけません。

AppleApp StoreRetina非対応/UDID採用アプリの登録とアップデートが不能に 5月1日から
( http://www.itmedia.co.jp/news/articles/1303/22/news041.html )
Apple、5月1日からUDIDにアクセスするアプリ・非iPhone 5最適化アプリはリジェクトと発表。
( http://www.appbank.net/2013/03/22/iphone-news/568323.php )
■[iOSプログラミング]UDIDが完全に利用禁止に
( http://d.hatena.ne.jp/nakamura001/20130325/1364231754 )
アップル、UDID利用アプリを5月から拒否へ--Retinaディスプレイや「iPhone 5」への対応も必須に
( http://japan.cnet.com/news/service/35029839/ )


で、その背景ですが。
いくつかあるかと思うのですが、おいちゃんが認識している限りで
・広告とかビッグデータとか行動ぶっこ抜きとか系のプライバシ周り
・認証に使う馬鹿が後を絶たない
の2つがあると思ってるでやんす。


元々は、フューチャーホン(ガラケー)の契約者固有IDの頃から、少なくとも一部では言われるったけ言われまくった話ではあるのですが。
ん…以下のURIを適宜ごらんやがれください。

契約者固有IDとは
( http://itpro.nikkeibp.co.jp/article/Keyword/20081007/316269/ )( http://itpro.nikkeibp.co.jp/article/Keyword/20081007/316269/?SS=imgview&FD=-499245482&ST=keyword )
無責任なキャリア様に群がるIDクレクレ乞食 ―― 退化してゆく日本のWeb開発者
( http://takagi-hiromitsu.jp/diary/20080727.html )


根っこにあるのは「変更のきかない固定ID」がやべぇって話です。
こちらがその辺では秀逸なURIの一つ。

固有IDのシンプル・シナリオ
( http://www.hyuki.com/techinfo/uniqid.html )


フューチャーフォンはそれでも「限定されたIP空間内であるが故に安全である」とかいう嘘がまかり通っていたので、とりあえず「見えなければ安全」というクラスタ相手には、大砲の前の半紙10枚分ほどの防御力は見込めたのですが。
iPhoneにおいて、もはやその辺は半紙1枚ほどの防御力にも満たない状況となってます。


あぁ物凄く一応念のため。
極めてごく稀に「UDIDは偽装が出来ないから云々」とかいう話を聞きますが。360度大体どの角度から見ても「嘘」です。


まずUDIDのリストはぶっちゃけ「結構なところの広告会社がお手持ち」な可能性が想起されます。特に「行動ターゲットマーケティング」という言葉を用いているところには要注意。


行動ターゲティング広告
http://advertising.yahoo.co.jp/ad/privacy/

掲載場所
スマートフォン版の行動ターゲティング広告は、スマートフォンYahoo! JAPANiOSAndroid対応ページ)のページ、またはYahoo! JAPANが提供するスマートフォン向け公式アプリケーション内のWebViewを対象に掲載されます(一部対象外のページ・アプリケーション内のWebViewもあります)。


※1 アプリケーション内WebViewとは、アプリケーションからウェブページを閲覧できる簡易的なブラウザー機能です。
※2 個体を識別する情報とは、iOSにおいてはUDID(Unique Device Identifier)、AndroidにおいてはAndroidIDを指します。アプリケーションを識別する情報とは、iOSAndroidともにアプリケーションごとに生成されたUUID(Universally Unique Identifier)を指します。

(「UDID使って広告流してます」ってはっきりと書いてある一例)


iOSにおけるリワード広告でのUDIDを使わない計測方法の提案
http://blogs.itmedia.co.jp/jinmsk/2012/02/iosudid-eb91.html

個体識別番号はリワード広告におけるユーザユニークIDを特定するための一つの方法であり、このIDを使わなくともリワード広告は行えると何回か書きましたが、今回はその一例の仕組みを書きたいと思います。

(使わなく"ても"というあたりから背景をかぎ取ってください)


UDIDに依存する人々とたしなめる人々
http://togetter.com/li/177744
(困っている人の論調を見てみましょう)


iOS の UDID 廃止問題は誰にとっての問題なのか
http://www.deftrash.com/blog/archives/2011/09/ios_udid.html

利用ポイントを抜粋させていただくと、
アプリケーションのサーバとのセッション保持
行動トラッキングによるターゲティング広告
リワード広告
目的は異なるにせよ、デベロッパーにとって容易にユーザを特定するための手段としての UDID というのは、便利な代物です。UDID の万能なところは、ターゲティング広告やリワード広告で使われているように、アプリを横断しても同一ユーザを特定できるところです。その良し悪しは別として、iOS 関連のエコシステムの拡張において、UDIDの果たした役割は小さくなかったと思います。

(「誰にとって」便利なのか、って話ではありますが)


なぜiOSでUDIDが必要とされていたのか、メモ
http://d.hatena.ne.jp/shinichitomita/20110822/1314013326


米グーグル、iOS向け広告プラットフォームからUDIDを除外
http://ggsoku.com/2013/04/google-admob-remove-udid/


UDIDと行動ターゲッティング広告
http://d.hatena.ne.jp/next49/20110822/p1


などなど。
んで、お手持ちにそういったリストがあると、次に出てくるのは漏洩。
直接的には「デジタル出版を手掛ける米BlueToad(本社フロリダ州)」の事件が有名ですが。
http://www.itmedia.co.jp/enterprise/articles/1209/11/news031.html
http://internet.watch.impress.co.jp/docs/news/20120911_558780.html
http://jp.techcrunch.com/2012/09/12/20120911inside-the-udid-hack-how-a-lone-programmer-cracked-the-case/


まぁじゃぁ「上述以外のすべてのadやってる会社さまが、技術力がパーペキでイージスの盾レベルの強度の防御能力を有する」って考えるのは、少々ナイーブに過ぎる見方か、と。


さて。んじゃUDIDが適当に流出しますと。まぁぶっちゃけ「ネットで流出した」その手のデータは、もはや為す術もなく散らかっていきます。
http://d.hatena.ne.jp/gallu/20120505


んで。UDIDは「ふつ〜に偽装ができます」。

識別子(UDID)の偽装
( http://blog.livedoor.jp/sirazumi_rio/archives/50785204.html )
JailBreakで出来る色々な偽装
( http://zuzu-service.net/misc/iphone/20110429/235.html )


つまり。
UDIDを使う場合、それがどんな目的であれ「とてもしゃれになっていない」状況になります。
ちなみに「じゃぁ代わりにMACアドレス」とか考えちゃうような頭には脳みそが入ってないと思いますので、漂白剤とかで頭蓋骨洗ってからぬかみそかおがくずを詰め込んできてください。


UDIDの代わりは、UUIDを、もうちょい正しく書くと「UUIDのバージョン4」を用いるのが現状もっとも適切であると考えられます。
以下を参考にしてみてください。

UUID を作る - CFUUIDCreate と globallyUniqueString
( http://xcatsan.blogspot.jp/2009/11/uuid-cfuuidcreate-globallyuniquestring.html )
■[iPhoneプログラミング]UUIDを生成する
( http://d.hatena.ne.jp/nakamura001/20100706/1278376345 )


ついで。

OpenUDIDはUDIDの代替にはならない
( http://ameblo.jp/ryoji4321/entry-11204718235.html )
今更聞けないUDIDとUUIDまとめ for iPhoneアプリ開発
( http://matome.naver.jp/odai/2134045671202872301 )


別口で「広告識別子(Advertising Identifier)」ってのが出てきました。
認証目的に使うのは御法度ですが、広告系ならまぁ考えてみてもいいのかも(まだ問題山盛りですが、UDIDよりはわずかばかりマシ)。

iOS6.1の新機能「Advertising Identifierをリセット」を見てみる
( http://d.hatena.ne.jp/mikanmarusan/20130211/1360581304 )
iOS6.1の新機能「Advertising Identifierをリセット」
( http://otoko50.cocolog-nifty.com/blog/2013/02/ios61advertisin.html )
iOS6のAdvertising Identifierについて
( http://togetter.com/li/377573 )


…ん、なんかリセット系の記事ばかりですねぇ。
一応、実装も…と思ったが、見事に見つからねぇ orz
まぁいいや誰かが突っ込んでくれたら追記しようw


以上、めっさ雑にですが「UDID使うな」なお話、でした。