<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Browser Fingerprinting on Web Tracking 筆記</title><link>https://web-tracking.dante.tw/docs/browser-fingerprinting/</link><description>Recent content in Browser Fingerprinting on Web Tracking 筆記</description><generator>Hugo</generator><language>en</language><atom:link href="https://web-tracking.dante.tw/docs/browser-fingerprinting/index.xml" rel="self" type="application/rss+xml"/><item><title>Browser Fingerprinting 與 Information Theory</title><link>https://web-tracking.dante.tw/docs/browser-fingerprinting/browser-fingerprinting-and-information-theory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://web-tracking.dante.tw/docs/browser-fingerprinting/browser-fingerprinting-and-information-theory/</guid><description>&lt;h1 id="browser-fingerprinting-與-information-theory">
 Browser Fingerprinting 與 Information Theory
 &lt;a class="anchor" href="#browser-fingerprinting-%e8%88%87-information-theory">#&lt;/a>
&lt;/h1>
&lt;p>上篇文章我們討論到 browser fingerprinting 需要使用許多 feature，每個 feature 的有用程度可能不太一樣。那，有沒有什麼方法可以衡量一個 feature 是否有用？每次 fingerprinting 時追蹤者對於使用者的認識增加程度都一樣嗎？還是有可能追蹤者拿到了 fingerprint 卻發現它沒什麼用？其背後都是在講同一件事情：browser fingerprinting 洩漏了多少「資訊」。於是我們進入了 Information Theory 的世界。&lt;/p>
&lt;p>Information Theory 通常被翻譯成「資訊理論」，跟 theory of computation 計算理論不一樣，不要搞混了。Information Theory 出自 Claude Shannon 的 &lt;em>A Mathematical Theory of Communication&lt;/em>，當時主要是在通訊的情境下做討論，但如今 Information Theory 已經四處可見，從最早的衡量通訊頻道可以承載多少資料、如何壓縮資料，到 Machine Learning 裡面討論每個神經元可以儲存多少資料，密碼學裡面有沒有什麼演算法可以抵擋無限計算資源與時間的攻擊者等，都是 Information Theory 的應用。&lt;/p>
&lt;p>今天我們要討論的是，Information Theory 如何應用於 browser fingerprinting 的情境中。這篇文章會有一些數學，如果讀者對這些沒興趣，可以大膽地跳過這篇，對於後續文章的理解不會有太大的影響。&lt;/p>
&lt;h2 id="information">
 Information
 &lt;a class="anchor" href="#information">#&lt;/a>
&lt;/h2>
&lt;p>相信大家都知道 bit 是什麼。一個 boolean 是 1 bit，一個 ascii 會吃掉 8 bits。&lt;/p></description></item><item><title>Browser Fingerprinting 的防禦</title><link>https://web-tracking.dante.tw/docs/browser-fingerprinting/defense/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://web-tracking.dante.tw/docs/browser-fingerprinting/defense/</guid><description>&lt;h1 id="browser-fingerprinting-的防禦">
 Browser Fingerprinting 的防禦
 &lt;a class="anchor" href="#browser-fingerprinting-%e7%9a%84%e9%98%b2%e7%a6%a6">#&lt;/a>
&lt;/h1>
&lt;p>在過去幾個章節中，每次介紹完 browser fingerprinting 的攻擊手段，都多少有提到一些防禦手段，所以這篇文不會著重在對於特定 fingerprinting 技術的防禦，而是對於防禦的整體策略分析，也就是防禦策略的大方向，並討論這些方向可能遭遇的問題，為何成功或失敗。如果讀者對特定 browser fingerprinting 技術的防禦有興趣，仍然應該回去檢視前面的章節。&lt;/p>
&lt;h2 id="為何-anti-fingerprinting-這麼難">
 為何 Anti-Fingerprinting 這麼難？
 &lt;a class="anchor" href="#%e7%82%ba%e4%bd%95-anti-fingerprinting-%e9%80%99%e9%ba%bc%e9%9b%a3">#&lt;/a>
&lt;/h2>
&lt;p>首先我們可能得先問，為什麼「有效的防禦」這麼難？或是說，anti-fingerprinting 可以如何搞砸？&lt;/p>
&lt;p>試想，有個 tracker 用 &lt;code>screen.width&lt;/code> 與 &lt;code>screen.height&lt;/code> 做 fingerprinting，我的螢幕是 1920x1200，這個大小不算特別常見，為了避免被 browser fingerprinting，我決定改變 screen 的數值，於是我隨便選一個數值，像是 1234x5678。這下 tracker 拿不到我的真實螢幕大小了，它只會拿到我造假的資訊。這是個有效的防禦嗎？&lt;/p>
&lt;p>過去我們討論過 surprisal 與 anonymity set 的概念，那時有提到一個很重要的觀念：一個 fingerprint 要有效，它必須足夠罕見，與足夠少人重複，也就是 surprisal 夠大，anonymity set 夠小。試問 1234x5678 比較獨特，還是 1920x1200 比較獨特？顯然是前者吧。Browser fingerprint 的重點不在於正確或是合理，而是足夠獨特。就算是錯的，只要錯得很獨特，一樣可以拿來做 fingerprinting。&lt;/p></description></item><item><title>Browser Fingerprinting 的防禦如何失敗，以及 Privacy Paradox</title><link>https://web-tracking.dante.tw/docs/browser-fingerprinting/how-defense-failed-and-privacy-paradox/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://web-tracking.dante.tw/docs/browser-fingerprinting/how-defense-failed-and-privacy-paradox/</guid><description>&lt;h1 id="browser-fingerprinting-的防禦如何失敗以及-privacy-paradox">
 Browser Fingerprinting 的防禦如何失敗，以及 Privacy Paradox
 &lt;a class="anchor" href="#browser-fingerprinting-%e7%9a%84%e9%98%b2%e7%a6%a6%e5%a6%82%e4%bd%95%e5%a4%b1%e6%95%97%e4%bb%a5%e5%8f%8a-privacy-paradox">#&lt;/a>
&lt;/h1>
&lt;p>在上一篇文章，我們介紹了 browser fingerprinting 的幾個防禦策略，並做了一個巨大的宣稱：anti-fingerprinting 超級難！在這篇文章，我們將對這個宣稱做更多討論，到底為什麼防禦這麼困難，常見的 anti-fingerprinting 策略又是如何失敗的。接著我們將討論 anti-fingerprinting 失敗如何造成為害。不同於常見的 attack &amp;amp; defense，如果 defense 失敗頂多就是 attack 會成功，在 browser fingerprinting 的世界，如果 anti-fingerprinting 失敗，反而會讓 browser fingnerprinting 更容易！這種「保護隱私失敗了反而會讓狀況變得更糟」有時被稱為 Privacy Paradox。&lt;/p>
&lt;p>通常 anti-fingerprinting 都是在 browser extension 層級做，畢竟魔改 browser 沒那麼簡單，要大家轉而使用魔改過的 browser 也不容易，browser extension 相對簡單。然而 browser extension 的限制導致 anti-fingerprinting 很難做好。&lt;/p>
&lt;h2 id="修改數值的挑戰">
 修改數值的挑戰
 &lt;a class="anchor" href="#%e4%bf%ae%e6%94%b9%e6%95%b8%e5%80%bc%e7%9a%84%e6%8c%91%e6%88%b0">#&lt;/a>
&lt;/h2>
&lt;p>一種常見的 anti-fingerprinting 策略是直接去修改可以作為 fingerprint 的數值。就只不過是改個數值而已，是可以有多難？寫 Javascript 的第一天不就知道可以用 &lt;code>=&lt;/code> 賦值了嗎？&lt;/p></description></item></channel></rss>