『スマートフォンとプライバシーの関係』サービス提供者が知っておくべき技術仕様とは
個人情報保護法の改正やGDPRの規制により、サービス提供者はデータの取り扱いにここ数年とくに敏感になっていますよね。
Yahoo!Japanが欧米で閲覧出来なくなったというニュースを目にした方も多いかと思いますが、GDPRが関係しているのではないかという憶測もあります。
サービス提供者側としては、
ユーザに便利な機能や情報を提供するために、活用できるデータをフル活用しようという姿勢
ユーザー側としては、
誰にどんな情報を知られているのか分からない不安
という関係性から特にユーザーを守るために、
法律が整備され、さらにデバイスやブラウザの提供者側によってもユーザーのプライバシーを守ろうという動きがここ数年で活発になっています。
エンジニアも法律を理解した上で、システム設計をする必要がありますが、
そもそも法律に乗っ取ったデータ管理をしていたとしても、
デバイスやブラウザの仕様変更により、意図しない挙動が発生し得る可能性があります。
そこで今回は、把握しておくべきプライバシーに関連するデバイス・ブラウザの技術仕様についてご紹介します。
各社の取り組みの歴史
Apple社が2017年にリリースしたのがITP(Intelligent Tracking Prevention)という技術で、iOS11のSafariから搭載された機能です。
ブラウザにデータの保存することが出来るCookieという技術に対して制限をかけるものでしたが、現在のバージョンでも制限が更に強化された状態で実装されています。
Apple社ではiOS15以降、ブラウザだけではなく、デバイス自体にもIPを隠すような機能を提供しています。
Google社が提供するGoogleChromeでもセキュリティ強化のため、2019年にFlashコンテンツのブロックやSSL証明書適用ページ(HTTPS)内のページからのHTTPリクエストをブロックするなど、ブラウザ上でのセキュリティ強化の実装を続けています。
このようにブラウザやデバイスの仕様が変わることで、サービス提供者はシステム設計やUI/UXを変更するという対応をしています。
Cookie/ローカルストレージとは
このようなプライバシー対応による仕様変更で大きな影響を受けるものがCookieです。
Cookieについて整理しておきましょう。
Cookieはブラウザにデータを保存する仕組みのため、サイトの閲覧や検索の履歴などを保存し、ユーザビリティを向上するなど、各社様々な用途で利用しています。
Cookieの発行方法:
<1>自社のプログラム(サーバーサイドプログラム)
<2>自社のプログラム(フロントエンドプログラム(JavaScriptなど))
<3>自社以外のプログラム(埋め込まれているタグによるもの(主にJavaScript))
Cookieの発行ドメイン(xxx.comなどのURLのこと):
[1]自社のドメイン
[2]自社以外のドメイン(タグの提供企業等のもの)
Cookieの類似技術にローカルストレージというものがあります。
それでは、ユーザーのプライバシー保護のために搭載された機能によって、
エンジニアはどんなことを考慮する必要があるのでしょうか。
ITP(Apple社)での考慮点
まずはCookieについてです。
・自社のサーバーサイドプログラム✖️自社ドメインCookie → 影響を受けません
・自社のJavaScript✖️自社ドメインCookie → 有効期限が最大で1日
・他社のJavaScript✖️自社ドメインCookie → 有効期限が最大で3日
・他社のJavaScript✖️他社ドメインCookie → 発行自体がブロックされる
つまり、自社のサーバーサイドプログラムで発行したCookie以外は影響を受けます。
有効期限が制限されるものは、プログラム上で有効期限を長く設定しても、上記日数に短縮されて発行されます。
デジタルマーケティングでユーザーの様々なサイトでの振る舞いを紐づける仕組みに利用されていましたが、このような制限によって代替手段が必要とされています。
以前はこのような制限がなかったため、サービス開発中のCookieの発行方法については、実装しやすい方法で行われていたケースが多いのではないでしょうか。
JavaScriptで発行する場合、上記日数を経過したものはリセットされるという前提でサービス設計をする必要があります。
また、iOSではCookie以外にも考慮すべき点としてIPアドレスを非公開にする機能があります。
IPアドレスを非公開にするという挙動は、「IPアドレスが全く取得できなくなる」というものではなく、IPアドレスをApple社が保有しているIPアドレスに変換してしまうというものです。
そのため、プログラム中でIPアドレスを利用した機能を実装した場合に、機能としての不具合は発生しませんが、ユーザーの正確なIPアドレスと異なるため、意図した動きとは違う挙動になってしまう可能性があります。
このIPアドレスが非公開になる設定は、iOSでは2つ設けられています。
・プライベートリレー
iCloud(Apple社が提供するサービス)を有料契約している場合、この設定項目をONにすることでIPが非公開になります。
この設定は、iOSの中で利用している全てのサービス(アプリ)に適用されます。
・Safariの「IPアドレスを非公開」
Safariの設定メニューにある「IPアドレスを非公開」で「トラッカーに非公開」をONにすることで、そのデバイスのSafariの中で「トラッカー」として認定されたものにのみ、IPアドレスが非公開になります。
Safariではプライバシーレポートの中で、どのドメインをトラッカー認定しているか閲覧出来るようにしています。
ブラウザ(GoogleChrome)の動き
GoogleChromeについては、ITPと同様にサードパーティCookie(他社JavaScriptによる他社ドメインのCookie)を廃止(ブロック)すると公表していました。
当初、2022年までに廃止するとされていましたが、2023年に延期され、現在は2024年までに廃止するとされています。