先日割と感情的に呟いたものがそこそこ拡散されてしまって、「良くないものだ」という気持ちだけが広まってしまうのは本意ではないので、改めてきちんとした議論をしたいという思いでこの記事を書きます。
前提となる立場
- トラッキングをすること自体の是非は問わない
- トラッキングの手法についての議論である
- ユーザーがトラッキングを望まない場合、積極的な対処をせずとも有効な選択肢が与えられる状態が望ましい
CNAME トラッキングの方法・背景
アドエビスによる解説がわかりやすいです。最近の Third-party Cookie に対する制限の回避策となり得ます。
セキュリティの懸念事項
不適切な設定をされた Cookie が、トラッキングサービスに送信されてしまう
Set-Cookie
ヘッダに Domain
ディレクティブを指定した場合、すべてのサブドメインに Cookie
が送信されてしまいます。もし認証に用いる機密情報などをこの方法で設定した場合、CNAME レコードとして設定したトラッキングサービスにも Cookie が送信されてしまいます。Set-Cookie - HTTP | MDN
プライバシーの懸念事項
ユーザーに情報収集することについての選択肢が与えられない
Third-party Cookie を使用して情報を収集する場合、ユーザーが Third-party Cookie をブロックすればトラッキングを防ぐことができます。また、これによってトラッキング以外の要素に与える影響はあまり大きくありません (Third-party Cookie を認証に使うようなことがない限り...)。一方、First-party Cookie を用いてトラッキングをする場合、ユーザーができることは First-party Cookie を拒否することです。First-party Cookie は認証などの様々な用途に使われており、影響は大きくなると想定されます。
First-party Cookie をブロックすることによる影響が大きいことを鑑みると、これはユーザーによる積極的な行動とみるべきです。私の提案としては、ユーザーの不便が行動による効果を上回る場合、積極的な行動と取るべきだと考えています。積極的な行動か否かの判断は極めて難しいものであり、今後議論が進むことを期待します。
次に、ブラウザの拡張機能によって事前に DNS をクエリし、トラッキングサービスへの CNAME レコードがあればアクセスをブロックするという手法が考えられます。この手法にはいくつかの問題があります。すべてのリクエストごとに DNS クエリを走らせるため、パフォーマンスに影響が出ることが想定されます。ブラウザが拡張機能に対して DNS クエリを行う機能を提供するかどうかに依存します。
CNAME トラッキングに対する考察・提案
現時点において、有効な選択肢をユーザーに与えることが難しいこと・セキュリティの問題があることを踏まえると、代替手段が存在しない場合にのみ CNAME トラッキングを導入するべきだと考えます。
トラッキングサービスの提供者に期待すること
Set-Cookie
の不適切な設定による機密情報の漏洩を防ぐため、導入者に対して必要十分な助言をすること- ユーザーの同意を得るためのプロンプトを表示させる等、ユーザーに選択肢を提示するよう導入者に指導すること
- ユーザーの同意が得られるまでトラッキングを行わないようにする機能を提供すること
- 将来的に有効な代替手段が提案されたときは、CNAME トラッキングを停止すること
トラッキングの導入者に期待すること
Set-Cookie
について正しい知識を得て、Cookie の漏洩が起こらないようにすること- トラッキングを有効にする前に、個別のユーザーに対して有効な同意を得ること