きりかノート 3冊め

おあそびプログラミング

ブラウザのCookieとSecureUDIDを比較して、永続的IDとそのストレージの扱いを考える

またぞろSecureUDIDの話題がでてたみたいなので、カッとなって書いた。調べるのめんどくさいのでOpenUDIDは無視している。

いろいろ言ってもけっきょくSecureUDIDの目的って「アプリケーションにまたがって共通の永続的なIDをユーザに付与して都度ゲットしたい」ってことだよね。単一アプリならUUID+KeyChainで済むわけだし。

いちおうさ、歴史をとおしてブラウザのCookieの扱いが検討されてきたわけで、これらのIDもそれに準じるものと認識されるべきだと思うのよ。

CookieとSecureUDIDの比較

ブラウザのCookieの取り扱いは、だいたいのブラウザでこんな感じだよね。

  • どんなクッキーがあるか見ることができる。
  • 任意のクッキーを削除することができる。
  • [ドメイン|サードパーティのみ|すべて]などの条件でクッキーを拒否することができる。

対して、SecureUDIDはコード見る限り、

  • どのアプリが使用しているかはわからない。
  • オプトアウトできる。(専用アプリがリリースできれば)

となってると思う。

そもそもオプトアウトもコードちょっとだけいじれば無視できるとか、SecureUDIDに限らないよね、って話はとりあえず置いておく。

現時点での自分の考え

ということでiOSには以下の機能が欠けていると思う。(今はないよね?)

  • pasteboardの管理機能。
    • 保持されているデータのリスト、アクセスしたアプリを見ることができる。
    • 削除できる。

ついでにアプリケーション側について言うと、pasteboardが失われても機能できるべきで、

  • ラッキングのIDはリセットされても泣かない
  • セッションIDとかトークン的なものは、リセットされても再発行することでアプリは問題なく利用できる。

となっているのが良いな、と思う。

もちろんプライバシーが絶対の価値ってわけじゃなく、

  • これからはダダモレを前提に生きるべき
  • 利便性が優先される

って意見もあるとは思うけど、まだ今はそうなってる状況じゃないし、そうでない未来のほうが良いと僕は思っている。

でもブラウザのほうもDevice APIsとかもあって、今後はどうなるかわからんね。

ついでに

知ってる人いたら教えてほしいんですが、別デバイスにリストアしたときってpasteboardの内容って移行されます?