国会的党派投票将允许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