Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
98
Help us understand the problem. What is going on with this article?
@emacs_hhkb

ITP まとめ「3rd フルブロックの次はCNAME対策もターゲットに😱」随時更新!

Apple社が打ち出した広告トラッキング防止機能であるITP機能(Intelligent Tracking Prevention)。

更新情報

:point_up: 2021.07.15
「PCM」・「ARAPI」などCookieレスに向けた新技術の話題が増えてきております。

:point_up: 2021.01.16
新記事:【Apple】ITP対策の終着地点!衝撃の「DNSの委任・委譲」
を書きました。ご覧ください。

:point_up: 2020.10.09
Safari 14.1から「CNAME対策」がターゲットに

:point_up: 2020.04.16
ITPの終焉「3rd Party 全ブロック」の登場

:point_up: 2020.01.19
CNAMEトラッキングの対抗策の記事が登場

:point_up: 2019.12.23
「各企業の対策指針のまとめ」のUSERGRAMを追加

:point_up: 2019.11.22
「各企業の対策指針のまとめ」のリストを追加

:point_up: 2019.10.17
「広告会社の対応方法」の説明文を追加

:point_up: 2019.09.23
ITP2.3の発表。トラッカー判定されたドメインのローカルストレージ有効期間が7日間に制限 & リファラのダウングレード

ITP1.0 - 2017年9月
ITP1.1 - 2018年3月
ITP2.0 - 2018年9月
ITP2.1 - 2019年3月
ITP2.2 - 2019年4月
ITP2.3 - 2019年9月
ITPフル - 2020年3月

ITP 1.0 - 2017年9月

iOS
iOS 11

image.png

内容

  • 3rd Party Cookie が1日(24時間)で利用不可状態になる
    • その後30日で削除される
  • 「過去24時間ではなく過去30日間にアクセスした場合」Cookie は保持されるがパーテション化される
    • パーティション化されたCookieはトラッカーCookieと判断される
  • iOS11 以降、デフォルトのSafari端末設定が『サイト越えトラッキングを防ぐ』となる
  • 影響はCookieが ITP によってトラッカーCookieであると識別された場合のみ

ITP 1.1 - 2018年3月

iOS
iOS 11

image.png

内容

  • ITP 1.0 でパーティション保有されていた Cookie がセッション Cookie として扱われディスク永続不可になる
    • その後30日で削除される。そしてそれ以降新たに追加することも不可
  • Storage Access APIを使えばパーティション化されていない Cookie にアクセス可能

ユーザが interacts (なんらかの操作)を行なっている場合は、 3rd Party に対して 1st party cookie にアクセスすることを許すのが Storage Access API.
これは、 cross origin iframe sandbox に対して allow-storage-access-by-user-activation を有効にすると document.hasStorageAccess() and document.requestStorageAccess() が使える。
[itp] storage access api

ITP 2.0 - 2018年9月

iOS mac OS
iOS 12 macOS High Sierra and Mojave

iOS 12のiPhone, iPadと、macOS MojaveのMac

image.png

内容

  • 3rd Party Cookie が即座にパーティション化される。(実質、即座に利用不可)
    • その後30日で削除される。そしてそれ以降新たに追加する事も不可
  • Storage Access APIを使えばパーティション化されていない Cookie にアクセス可能。
  • トラッカーCookieドメインサーバへのリファラ内容のダウングレード

リファラ内容ダウングレードの詳細

ユーザーが https://store.example/baby-products/strollers/deluxe-navy-blue.htmlにアクセスし、そのページがtrackerOne.exampleからリソースをロードするとします。 ITP 2.0以前では、trackerOne.exampleへのリクエストには完全なリファラー「https://store.example/baby/strollers/deluxe-stroller-navy-blue.html」が含まれていたため、サードパーティにユーザーに関する多くの情報が明らかになります。ITP 2.0では、リファラーは「https://store.example/」に縮小されます。

ITP 1.0 からの大きな変更点としまして、ターゲティング Cookie と識別された場合にその Cookie は 24時間後ではなく即座に利用ができなくなるよう変更されました。

アドバイス

Developer Advice
Avoid making unnecessary redirects to domains that are likely to be classified as having tracking ability.

開発者のアドバイス
トラッキング機能があると分類される可能性が高いドメインへの不要なリダイレクトを行わないでください。

ITP 2.1 - 2019年3月

iOS mac OS
iOS 12.2 macOS High Sierra and Mojave

内容

1st Party Cookie の制限(7日間)

Cookie のパーティション化(特別な保持)をなくし単純に削除されるようになる

  • クライアント(JavaScript)側から埋め込まれた Cookie の有効期間が7日間に制限される
    • 逆に言うと「サーバサイドから埋め込まれた Cookie」は影響を受けない
  • Storage Access APIを使えば Cookie にアクセス可能

image.png

ITP 2.2 - 2019年4月

iOS mac OS
iOS 12.3 macOS10.14.5 Mojave

内容

1st Party Cookie の制限(24時間)

クライアント(JavaScript)側から埋め込まれた 1st Cookie の有効期間が以下の条件に当てはまる場合1日(24時間)に制限される

  • 条件1. クロスサイトトラッキング機能があると分類されたドメインAからドメインBにユーザを誘導した場合
  • 条件2. ドメインBへの誘導時のURLにパラメタやフラグメント識別子が付与されている

ITP 2.3 - 2019年9月

iOS mac OS iPadOS
iOS 13 Safari 13 on macOS the iPadOS beta

一部翻訳

Our previous release, ITP 2.2, focused specifically on the abuse of so-called link decoration for the purposes of cross-site tracking. With ITP 2.2, when a webpage is navigated to from a domain classified by ITP and the landing URL has a query string or fragment, the expiry of persistent client-side cookies created on that page is 24 hours.

ITP 2.2 ではトラッキングを目的としたリンクやリダイレクト時のパラメタおよび識別子等の付与によるトラッカードメイン判定および制限を行うロジックを加えた。そしてクライアント側で作成される Cookie の有効期間を24時間とした。

Unfortunately, we see continued abuse of link decoration, so ITP 2.3 takes two new steps to combat this.

それでもなお改善されないのでITP 2.3 を導入した

Since ITP 2.2, several trackers have announced their move from first-party cookies to alternate first-party storage such as LocalStorage. ITP 2.3 counteracts this in the following way:

内容

ローカルストレージの制限

以下の内容を満たすときローカルストレージ(LocalStorage)が即時削除される

  • トラッカードメインからクエリ文字列や識別子を含んでLPページに着地した場合(削除対象ドメインとしてマーク)
  • LPページに遷移後、7日間Safariを操作しないとCookie以外のWebストレージデータはすべて即時削除

リファラのダウングレード

トラッカードメインから遷移した場合、LPサイトで取得できるリファラ情報がダウングレードされる。

https://sub.social.example/some/path/?clickID=0123456789
から流入したとしても、リファラーで取得できる情報は
https://social.example
となり、取得できるサブドメインがダウングレードされる。

この施策が行われた理由としては下記が考えられます。

トラッキングを目的としたリンク等にパラメタ等を含めずに、リファラにトラッキング用のパラメタ等が付与されるような形にわざと行う。

という手法を撤廃させるため。

補足

HTTP Only Cookie に関して(ITP 2.1 にて触れられた内容)

Set-Cookie: ExampleSessionID=a66e30012cc49846; path=/; HttpOnly

「HTTP Only Cookie」は以下の2つの効果があります。

  • HttpOnly CookieはJavaScriptに公開されません。 つまり、Webサイトでのトラッキングスクリプトまたはクロスサイトスクリプティング攻撃では、これらのCookieの内容を読み取ったり、漏えいさせたりすることはできません。
  • HttpOnly Cookieは、WebKitのWebコンテンツプロセスにコピーされません。 これは、これらのCookieのコンテンツを盗む可能性のある投機的実行攻撃の範囲外であることを意味します。

ITP 「Full Third-Party Cookie Blocking and More」 - 2020年3月

iOS・iPad mac OS
iOS 13.4 Safari 13.1

とうとう 3rd Party Cookie の全ブロックがきてしまいました。

一部翻訳

Cookies for cross-site resources are now blocked by default across the board. This is a significant improvement for privacy since it removes any sense of exceptions or “a little bit of cross-site tracking is allowed.”

クロスサイトリソースのCookieは、デフォルトで全面的にブロックされるようになりました。 これにより、例外や「サイト間のわずかな追跡が許可される」という感覚がなくなるため、プライバシーが大幅に向上します。

Paves the Way For Other Browsers
Safari continues to pave the way for privacy on the web, this time as the first mainstream browser to fully block third-party cookies by default. As far as we know, only the Tor Browser has featured full third-party cookie blocking by default before Safari, but Brave just has a few exceptions left in its blocking so in practice they are in the same good place. We know Chrome wants this behavior too and they announced that they’ll be shipping it by 2022.

Safariは引き続き、Web上のプライバシーへの道を開きます。今回は、デフォルトでサードパーティのCookieを完全にブロックする最初のメインストリームブラウザです。 私たちの知る限りでは、Safariより前のバージョンでは、TorブラウザーのみがデフォルトでフルサードパーティのCookieブロッキングを備えていましたが、Braveにはいくつかの例外があり、実際には同じ場所にあります。 Chromeもこの動作を望んでいることを知っており、2022年までに出荷することを発表しました。

内容

3rd Party Cookie の完全ブロック

文字通り今回のバージョンアップにて「3rd Party Cookieが完全ブロック」される事になります。これまでブロック対象であった「ITP制限が適用されるための条件」というルールがなくなります。完全ブロック になります。

ストレージの制限

以下のストレージに対しても最後のインタラクション(操作)から7日間経過すると、強制的に内容が削除されるようになります。(ITP 2.3 では対象は LocalStorage のみでした)

  • Indexed DB
  • LocalStorage
  • Media keys
  • SessionStorage
  • Service Worker registrations and cache

1st Party Cookie と JavaScript について

「トラッカー判定ドメインからパラメタ付きで(リダイレクトし)LPに到着。」 というパターンにおいて、LPにてパラメタを取得しJavaScript の document.cookie を利用し 1st Party Cookie として埋め込みを行ったとしても、現在は保存期間は1日しかもちません。
(これもおそらく時間の問題で制限されそうな匂いがします)

リファラのダウングレード

JavaScript でリファラを取得する document.referer における取得内容がホスト名のみにダウングレードされます。URLパスやパラメタが取得できなくなります。


CNAMEトラッキング

2020.10.22 CNAMEも対策されそうです。(Safari 14.1から)


注意:CNAME締め付け後、以下内容が通用しなくなります。

2019年10月現在、ITP2.3においてローカルストレージの締め出しまで食らった結果、広告ASPはドメインのDNS設定を利用した「CNAME」対策を行っているようです。要は広告主(クライアント)のドメインのDNS設定を変更してもらい、新たにトラッキング用のサブドメインを切ってもらいます。(CNAME設定)そして、そのサブドメインへのアクセスを広告ASPサーバに仕向けることで、1st Party Cookie をサーバ側から埋め込むことが可能になる。という手法です。

これにおいては「クライアントドメインのDNSをクライアント側の担当者に調整してもらう。」という最終手段に挑んでいるという具合です。
確かにサーバ側から埋め込んだ1st Party CookieはITPの影響をうけないため、実質有効期間等の影響とは無縁になります。

各企業の対策指針のまとめ

注意:CNAME締め付け後、以下内容が通用しなくなります。

ITP2.3の対応方法も先にあげたドメイン(DNS:CNAME)対応によるものがちらほらと増えてきております。

ITP2.3

ITP2.x

最新情報あり次第、更新予定。

その他

ITPはCookieの利用制限のレベルをどんどん厳しくしているだけのようなものだと思っておりましたが、アプリケーションへの影響を考慮しての代替案として Storage API のアプローチを公式に発表しておりました。

参考記事

Intelligent Tracking Prevention
Intelligent Tracking Prevention 1.1
Intelligent Tracking Prevention 2.0
Intelligent Tracking Prevention 2.1
Intelligent Tracking Prevention 2.2
Intelligent Tracking Prevention 2.3
Full Third-Party Cookie Blocking and More
ITPの概要と対策について
Safariに搭載されたAppleのIntelligent Tracking Preventionはどのように動作するのか
ITP2.2(Intelligent Tracking Prevention)とその影響について
AppleのITP2.1のリリースと対策を分かりやすく解説
safariのITP2.2とは?広告やアクセス解析への影響について解説 | AdLiticsラボ

98
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
98
Help us understand the problem. What is going on with this article?