國會的黨派投票將允許ISP未經您同意而利用您的家人的私人數據。參見“參議院將ISP利潤放在您的隱私上”。
該腳本旨在通過生成大量逼真的,隨機的網絡瀏覽來污染ISP數據,並通過混淆實際瀏覽數據來有效地使其無用,以擊敗這種違規行為。
我每個月都會為數據使用付費很多。我通常不使用我支付的所有帶寬。如果我的ISP要出售私人瀏覽習慣,那麼我將用噪音污染瀏覽,並使用我支付的所有帶寬。這種方法實現了這一點。
如果每個人都使用他們付款的所有數據來污染其瀏覽歷史記錄,那麼也許ISP會重新考慮出售客戶私人瀏覽歷史記錄的業務模型。
使用VPN或TOR的替代方法僅將問題推向VPN提供商的選擇,使網絡複雜化,並添加了作為Tor Exit Node出現時導航驗證碼的真正問題。此外,僅加密流量具有太多可剝削的側渠道信息,並且仍然可以用來確定特定家庭成員何時在家以及參與活動的活動。
該爬網將Chromedriver與Python Selenium庫一起使用,將黑名單用於不良網站(請參閱代碼以獲取詳細信息),未下載圖像,並尊重Robots.txt,所有這些都提供了良好的安全性。
python3 isp_data_pollution.py
python3 isp_data_pollution.py --help
python3 isp_data_pollution.py -bw 1024 # 1 TB per month
python3 isp_data_pollution.py -g # print debugging statements
此腳本中使用的方法容易受到統計攻擊和流量異常的影響。喬恩·布羅德金(Jon Brodkin)關於通過噪聲注射的隱私的文章涵蓋了一些有效的批評:不能保證該方法使敏感的私人信息混淆,即使最初確實有效,也可能無法擴展。在問題頁中歡迎已知的缺陷和改進建議。
但是,有很好的信息理論和概率原因可以提出這種方法可以在許多實際情況下起作用。通過混淆的隱私已在許多情況下使用。在數據科學中,魯賓提出了一種具有統計上合理的方法來通過使用合成數據掩蓋私人數據來保護主體機密性(“統計披露限制”, JOS 9 (2):461-468,1993)。在與此倉庫相關的不錯論文中,Ye等人。描述使用噪聲注入的客戶端隱私模型(“搜索隱私保護噪聲”, Proc。2009intl。Conf。CSE )。
在ISP隱私入侵的情況下,這是這是該方法有效性的兩個後面的論點。這些不是證明,而是簡單的模型,這些模型表明有些樂觀是有必要的。實際功效必須通過在現實世界中測試這些模型來確定。
Ye等人的方法試圖將用戶數據和用戶數據之間的相互信息最小化,並使用呈現給服務器的注入噪聲。相互信息是用戶數據的熵與註射噪聲(下面紫色區域)的用戶數據的熵之間的重疊。選擇注射噪聲的數量和分佈以使此相互信息盡可能小,因此很難在服務器端利用用戶數據。
Ye等人的論文中的示例是特定的搜索查詢。此存儲庫中的類比是特定的域。如果使用加密的HTTPS,則域信息是洩漏到ISP的主要數據,因此是相關的。下一節將討論具有明確查詢條款和內容的未加密流量的情況。
Ye等。證明相互信息消失了:
噪聲電話≥(用戶電話數量-1)×可能的調用數量
對於此應用程序,可能的呼叫數量是用戶可能訪問(每天)的域數,而呼叫的數量是進行的訪問次數。尼爾森(Nielson)在2010年報告說,普通人每月訪問89個域名。要在(過度)中非常保守,以估計掩蓋此瀏覽數據所需的噪聲呼叫數量,請假設平均用戶每天訪問O (100)域,每天O (200)用戶請求每天訪問O(200)用戶的要求,或者每天五分鐘內訪問O(200)。
上面的方程式指出,需要(200-1)×100或大約兩萬(20,000)個噪聲調用才能在用戶數據和用戶加上噪聲數據之間實現零互信息。
這相當於每五秒鐘每五秒鐘一次噪音調用,在實踐中很容易實現,並且很容易屬於標稱的帶寬極限,每月50 GB。
如果Ye等人的客戶端信息理論模型在實踐中是有效的,那麼可以合理地期望此腳本中選擇的參數能夠大大降低或消除實際用戶域數據之間的共同信息以及顯示給ISP的域數據。
此外,如果用戶和噪聲分佈之間引入依賴關係模型,則可以使用更少的噪聲調用。
未加密的HTTP將洩漏高度特定的用戶數據列為ISP。有針對性的廣告方法使用此捕獲的數據對用戶進行分類並根據用戶的類別提供量身定制的廣告。從概率上講,這種方法固有地取決於在用戶查詢分佈中找到特定的“峰值”,然後使用這些峰為用戶找到最可能的消費者類別。注入大量不相關的(或更好的反相關)調用可能會妨礙用戶對用戶進行分類的最大樣本方法,因為它在用戶興趣的整個分佈中增加了更多峰。
此外,廣告商的傳輸帶寬受到很高的限制 - 只有許多廣告適用於網頁。添加不相關的噪聲調用使選擇適當的AD的問題變得複雜。
Kaveh Waddell's和Jon Brodkin關於大西洋ISP隱私和ARS Technica的出色文章都涉及這種方法的重要批評。在這裡匯總了這些內容以及兩個響應,以便用戶知道這些問題,並提示解決這些問題。
“通過在其他人的瀏覽模式的副本中分層來掩蓋一個人的瀏覽歷史可能會更有用。…'這將是一個像Tor一樣的系統,可以通過共享的用法來匿名。'” [Bruce Schneier]
“ [不要低估]互聯網提供商的能力……通過數據捕捉策略查看。” [Bruce Schneier]
“隨機的Google搜索可以在用戶知識的情況下將程序發送到一個黑暗的兔子孔中。” [肯恩·懷特]
safe=active添加到搜索查詢中。 - 評論2:TOR出口節點流量幾乎肯定包含此類流量,這對於出口節點操作員來說是一個重要的問題。相比之下,自我生成的噪音很可能會變得更安全,而且實際上似乎是更安全的。“即使被噪音包圍,有些信息也很敏感。…想像一下,如果黑客針對您的ISP,您的瀏覽歷史記錄被洩漏了,它表明您訪問了特定的有爭議的網站。…即使被噪音包圍,也很難獲得那種噪音,這些噪音會給您帶來可靠的可否認性。” [Jeremy Gillula]
對其他數據混淆方法的分析表明,對現成的機器學習分類器攻擊的敏感性:Pedinti和Saxena通過TrackMenot瀏覽器插件表現出有意義的用戶分類,旨在擊敗對抗性搜索引擎(基於Web搜索的隱私,“基於Web搜索的隱私,“基於查詢的obfuscation:case obfuscation:case case of trackMenot of trackMenot of trackmenot of trackmenot of cackenot in pcracnot in pcracnot in pcess.precses.pets ets2010,2010 c ,2010年),2010年。此分析中使用的對抗模型和訓練方法不直接適用於ISP中介機構。 Pedinti和Saxena攻擊的主要特徵是:
這些攻擊功能都不一定適用於ISP對抗模型。 ISP可能會使用歷史未污染的用戶數據來培訓分類器,但是,這假定用戶在帳戶IP地址上的興趣,數字和身份不會從每月每月變化,這對大多數用戶和家庭來說都是不太可能的事件。如果沒有未腐敗的用戶數據進行培訓,本文即使噪聲數量有限,也說明了第三方De-Nonymin的困難。有或沒有能力使用未腐敗的用戶數據訓練的分類性能將很有用。了解這兩種情況的答案將指出混淆方法的潛在改善。
數據污染是將您的個人數據私有化的組成部分。到處安裝EFF的HTTP,並在所有瀏覽器上安裝隱私badge。另外,請參見Repos Osxforrats和OSX-OpenVPN服務器,以阻止跨設備的廣告,跟踪器和惡意軟件。
使用私有化代理與數據污染流量匯總您自己的個人流量,從而在標頭流量控制中增加了另一層混淆。污染流量的HTTP標頭顯示為:
GET /products/mens-suits.jsp HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Accept-Language: en-US,*
Host: www.bananarepublic.com
Connection: keep-alive
一段時間後,隨機爬行看起來像這樣:
This is ISP Data Pollution ??, Version 1.1
Downloading the blacklist… done.
Display format:
Downloading: website.com; NNNNN links [in library], H(domain)= B bits [entropy]
Downloaded: website.com: +LLL/NNNNN links [added], H(domain)= B bits [entropy]
http://eponymousflower.blogspot.com/2017/02/lu…: +6/32349 links, H(domain)=6.8 b
隨機爬行的網頁的屏幕截圖看起來像這樣。請注意,沒有下載的圖像。
driver.get_screenshot_as_file('his_all_time_greatest_hits.png') :

根據您的python(第3節)安裝,模塊依賴項是numpy , requests , selenium和fake_useragent ,以及chromedriver 。如何安裝這些取決於您的操作系統。
這涉及選擇Python(v。3)軟件包管理器,通常是pip或Anaconda 。
我喜歡pip ,所以在我的機器上我會說:
sudo pip-3.7 install numpy requests selenium fake_useragent OpenSSL
建議直接從[ chromedriver ](http://chromedriver.chromium.org/downloads。
MacPorts install命令是:
sudo port install chromedriver py37-numpy py37-requests py37-psutil py37-openssl psutil
這也是Macos的必要條件:
sudo port install chromedriver
sudo -H pip-3.7 install selenium fake_useragent
# if chromedriver fails to install because of an Xode configuration error: test with
/usr/bin/xcrun -find xcrun
# then do this:
cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun
自製是另一個不錯的選擇。
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y groupinstall development
sudo yum -y install python34 python34-pip python34-devel python34-pyflakes openssl-devel
sudo pip3 install --upgrade pip
sudo pip3 install numpy psutil requests selenium fake_useragent pyopenssl
sudo apt-get install git
git clone https://github.com/essandess/isp-data-pollution.git
cd isp-data-pollution/
sudo apt install python3-pip
pip3 install --upgrade pip
pip3 install numpy
pip3 install psutil
sudo -H pip3 install psutil --upgrade
sudo -H pip3 install --upgrade pip
sudo -H pip3 install selenium
sudo -H pip3 install fake_useragent
sudo -H pip3 install pyopenssl
sudo apt-get install fontconfig
sudo apt-get install libfontconfig
sudo apt-get install build-essential chrpath libssl-dev libxft-dev
sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev
#! Please update these commands for chromedriver
# export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
# sudo mv $PHANTOM_JS /usr/local/share
ls /usr/local/share
# sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
# phantomjs --version
python3 isp_data_pollution.py
如果您在防火牆後面,請使用sudo -EH繼承http_proxy環境設置。
chromedriver需要一些圖形軟件,即虛擬或其他方式,因此在無頭計算機上,您需要以下系統軟件包和本地軟件包。
如果您不使用virtualenv(下圖),則將PIP作為sudo運行。
sudo apt-get install xvfb
pip install pyvirtualdisplay
為了隔離PIP庫文件,Virtualenv很方便。如果您喜歡此方法,則可以按照以下步驟操作:
pushd ~/.virtualenvs/ && virtualenv -p python3 isp-pollute && popd
workon isp-pollute
pip install numpy requests selenium fake_useragent psutil
sudo apt-get install chromedriver