การลงคะแนนเสียงของพรรคของสภาคองเกรสจะอนุญาตให้ ISP ใช้ประโยชน์จากข้อมูลส่วนตัวของครอบครัวโดยไม่ได้รับความยินยอมจากคุณ ดู " วุฒิสภาวางผลกำไรของ ISP เหนือความเป็นส่วนตัวของคุณ "
สคริปต์นี้ได้รับการออกแบบมาเพื่อเอาชนะการละเมิดนี้โดยการสร้างเว็บการท่องเว็บแบบสุ่มจำนวนมากเพื่อให้ข้อมูล ISP ก่อมลพิษและทำให้มันไร้ประโยชน์อย่างมีประสิทธิภาพ
ฉันจ่าย ISP ของฉันมากสำหรับการใช้ข้อมูลทุกเดือน ฉันมักจะไม่ใช้แบนด์วิดท์ทั้งหมดที่ฉันจ่ายไป หาก ISP ของฉันกำลังจะขายนิสัยการท่องเว็บส่วนตัวฉันจะทำมลพิษในการเรียกดูด้วยเสียงรบกวนและใช้แบนด์วิดท์ทั้งหมดที่ฉันจ่ายไป วิธีนี้บรรลุเป้าหมายนี้
หากทุกคนใช้ข้อมูลทั้งหมดที่พวกเขาจ่ายให้เพื่อสร้างมลพิษประวัติการเรียกดูของพวกเขาบางที ISP จะพิจารณารูปแบบธุรกิจของการขายประวัติการท่องเว็บส่วนตัวของลูกค้า
ทางเลือกของการใช้ VPN หรือ TOR เพียงแค่ผลักดันปัญหาไปยังตัวเลือกของผู้ให้บริการ VPN ทำให้เครือข่ายซับซ้อนขึ้นและเพิ่มปัญหาที่แท้จริงของการนำทาง Captchas เมื่อปรากฏเป็นโหนดทางออก Tor นอกจากนี้การจราจรที่เข้ารหัสเพียงแค่มีข้อมูลช่องทางด้านข้างที่ใช้ประโยชน์ได้มากเกินไปและยังสามารถใช้ในการพิจารณาว่าสมาชิกในครอบครัวที่เฉพาะเจาะจงอยู่ที่บ้านและกิจกรรมที่พวกเขามีส่วนร่วม
ตัวรวบรวมข้อมูลนี้ใช้ ChromeDriver กับ Python Selenium Library ใช้บัญชีดำสำหรับเว็บไซต์ที่ไม่พึงประสงค์ (ดูรหัสสำหรับรายละเอียด) ไม่ดาวน์โหลดภาพและเคารพ 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) ในกระดาษที่ดีที่เกี่ยวข้องกับ repo นี้ Ye et al. อธิบายรูปแบบความเป็นส่วนตัวฝั่งไคลเอ็นต์ที่ใช้การฉีดสัญญาณรบกวน ("การฉีดสัญญาณรบกวนสำหรับการป้องกันความเป็นส่วนตัวในการค้นหา", Proc. 2009 Intl. Conf. CSE )
ต่อไปนี้เป็นข้อโต้แย้งสองประการที่น่ากลัวสำหรับประสิทธิภาพของวิธีการนี้ในกรณีของการบุกรุกความเป็นส่วนตัวของ ISP สิ่งเหล่านี้ไม่ใช่ข้อพิสูจน์ แต่เป็นแบบจำลองง่าย ๆ ที่แนะนำการมองโลกในแง่ดีบางอย่าง ประสิทธิภาพที่แท้จริงจะต้องถูกกำหนดโดยการทดสอบแบบจำลองเหล่านี้ในโลกแห่งความเป็นจริง
วิธีการของ Ye et al. พยายามที่จะลดข้อมูลร่วมกันระหว่างข้อมูลผู้ใช้และข้อมูลผู้ใช้ด้วยเสียงรบกวนที่นำเสนอไปยังเซิร์ฟเวอร์ ข้อมูลร่วมกันคือการทับซ้อนระหว่างเอนโทรปีของข้อมูลผู้ใช้และเอนโทรปีของข้อมูลผู้ใช้ที่มีสัญญาณรบกวนที่ฉีด (พื้นที่สีม่วงด้านล่าง) จำนวนและการกระจายของเสียงที่ฉีดถูกเลือกเพื่อให้ข้อมูลร่วมกันนี้มีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ทำให้ยากที่จะใช้ประโยชน์จากข้อมูลผู้ใช้ทางฝั่งเซิร์ฟเวอร์
ตัวอย่างในกระดาษของ Ye et al. เป็นคำค้นหาเฉพาะ การเปรียบเทียบใน repo นี้เป็นโดเมนเฉพาะ ข้อมูลโดเมนเป็นข้อมูลหลักที่รั่วไหลไปยัง ISPS หากใช้ HTTPS ที่เข้ารหัสดังนั้นจึงมีความเกี่ยวข้อง กรณีของการรับส่งข้อมูลที่ไม่ได้เข้ารหัสพร้อมข้อกำหนดและเนื้อหาการสืบค้นที่ชัดเจนถูกกล่าวถึงในส่วนถัดไปเกี่ยวกับโอกาสสูงสุด
Ye et al. แสดงให้เห็นว่าข้อมูลร่วมกันหายไปหาก:
จำนวนการโทรเสียงรบกวน≥ (จำนวนการโทรของผู้ใช้ - 1) ×จำนวนการโทรที่เป็นไปได้
สำหรับแอปพลิเคชันนี้จำนวนการโทรที่เป็นไปได้คือจำนวนโดเมนที่ผู้ใช้อาจเยี่ยมชม (ต่อวัน) และจำนวนการโทรคือจำนวนการเข้าชม Nielson รายงานในปี 2010 ว่าบุคคลทั่วไปเข้าเยี่ยมชม 89 โดเมนต่อเดือน เพื่อให้อนุรักษ์นิยมอย่างมากในการประเมินจำนวนการโทรเสียงรบกวนที่จำเป็นเพื่อปิดบังข้อมูลการเรียกดูนี้สมมติว่าผู้ใช้เฉลี่ยเข้าชมโดเมน O (100) ต่อวันโดยมีผู้ใช้ O (200) คำขอต่อวันหรือประมาณหนึ่งห้านาทีในวันที่ยาวนาน
สมการข้างต้นยืนยันว่า (200-1) × 100 หรือประมาณสองหมื่น (20,000) การโทรจะต้องใช้ข้อมูลร่วมกันระหว่างข้อมูลผู้ใช้และข้อมูลผู้ใช้รวมถึงข้อมูลเสียงรบกวน
จำนวนนี้เป็นเสียงรบกวนหนึ่งครั้งเกี่ยวกับทุก ๆ ห้าวินาทีซึ่งเป็นเรื่องง่ายมากที่จะบรรลุผลในทางปฏิบัติและตกอยู่ในขีด จำกัด แบนด์วิดธ์เล็กน้อยที่ 50 GB ต่อเดือน
หากรูปแบบทฤษฎีข้อมูลฝั่งไคลเอ็นต์ของ Ye et al. นั้นถูกต้องในทางปฏิบัติแสดงว่ามีเหตุผลที่จะคาดหวังว่าพารามิเตอร์ที่เลือกในสคริปต์นี้จะสามารถลดหรือกำจัดข้อมูลร่วมกันระหว่างข้อมูลโดเมนผู้ใช้จริงและข้อมูลโดเมนที่นำเสนอต่อ ISP ได้อย่างมาก
นอกจากนี้อาจใช้การโทรเสียงรบกวนน้อยลงหากมีการแนะนำแบบจำลองการพึ่งพาระหว่างการแจกแจงผู้ใช้และเสียงรบกวน
การโทร HTTP ที่ไม่ได้เข้ารหัสรั่วไหลข้อมูลผู้ใช้ที่เฉพาะเจาะจงอย่างมากไปยัง ISP วิธีการโฆษณาที่กำหนดเป้าหมายใช้ข้อมูลที่จับได้นี้เพื่อจำแนกผู้ใช้และให้บริการโฆษณาที่ปรับแต่งตามหมวดหมู่ของผู้ใช้ ความน่าจะเป็นวิธีการนี้โดยเนื้อแท้ขึ้นอยู่กับการค้นหา "ยอดเขา" เฉพาะในการกระจายแบบสอบถามของผู้ใช้จากนั้นใช้ยอดเขาเหล่านี้เพื่อค้นหาหมวดหมู่ผู้บริโภคที่เป็นไปได้มากที่สุดสำหรับผู้ใช้ การฉีดสายที่ไม่เกี่ยวข้องกันจำนวนมาก (หรือดีกว่าต่อต้านความสัมพันธ์) อาจขัดขวางวิธีการที่มีความเป็นไปได้สูงสุดที่ใช้ในการจำแนกผู้ใช้เพราะมันเพิ่มยอดเขามากมายตลอดการกระจายความสนใจของผู้ใช้ที่วัดได้
นอกจากนี้แบนด์วิดท์การส่งสัญญาณของผู้โฆษณายังมีข้อ จำกัด สูง - โฆษณาจำนวนมากเท่านั้นที่จะพอดีกับหน้าเว็บ การเพิ่มเสียงรบกวนที่ไม่เกี่ยวข้องกับการเลือกปัญหาการเลือกโฆษณาที่เหมาะสม
ทั้งบทความยอดเยี่ยมของ Kaveh Waddell และ Jon Brodkin เกี่ยวกับความเป็นส่วนตัวของ ISP ใน มหาสมุทรแอตแลนติก และ ARS Technica ที่อยู่การวิพากษ์วิจารณ์ที่สำคัญของวิธีการนี้ สิ่งเหล่านี้สรุปได้ที่นี่พร้อมกับการตอบกลับทั้งเพื่อให้ผู้ใช้ตระหนักถึงปัญหาเหล่านี้และเพื่อให้คำแนะนำเพื่อแก้ไขปัญหาเหล่านั้น
“ การปิดบังประวัติการเรียกดูของบุคคลโดยการวางสำเนาของรูปแบบการท่องเว็บของคนอื่นอาจมีประโยชน์มากกว่า… 'มันจะเป็นระบบที่มีลักษณะคล้าย Tor ที่ไม่เปิดเผยตัว
“ [อย่าประมาท] ความสามารถของผู้ให้บริการอินเทอร์เน็ต…เพื่อดูผ่านกลยุทธ์การสร้างข้อมูลการสร้างข้อมูล” [Bruce Schneier]
“ การค้นหาแบบสุ่มของ Google สามารถส่งโปรแกรมลงในหลุมกระต่ายมืดโดยที่ผู้ใช้ไม่ทราบ” [Kenn White]
safe=active จะถูกเพิ่มลงในคำค้นหาการค้นหา -ความคิดเห็นที่ 2: ทราฟฟิกออกจาก Tor Exit-Node เกือบจะมีทราฟฟิกดังกล่าวซึ่งเป็นปัญหาสำคัญสำหรับผู้ให้บริการ Exit-Node ในทางตรงกันข้ามเสียงรบกวนที่สร้างขึ้นด้วยตนเองมีแนวโน้มที่จะเป็น-และในทางปฏิบัติดูเหมือนจะเป็น-ปลอดภัยกว่า“ ข้อมูลบางอย่างมีความอ่อนไหวแม้ว่ามันจะถูกล้อมรอบไปด้วยเสียงรบกวน…ลองนึกภาพว่าแฮ็กเกอร์ตั้งเป้าหมาย ISP ของคุณประวัติการดูของคุณรั่วไหลออกมาและมันแสดงให้คุณเห็นว่าคุณไปเยี่ยมชมเว็บไซต์ที่มีข้อโต้แย้งเฉพาะ…แม้ว่ามันจะถูกล้อมรอบด้วยเสียงรบกวนมันก็ยากมากที่จะได้รับเสียงรบกวน [Jeremy Gillula]
การวิเคราะห์วิธีการทำให้งงงวยข้อมูลแสดงความไวต่อการโจมตีแบบแยกประเภทของเครื่องนอกชั้นวางของการโจมตีแบบแยกประเภท: Pedinti และ Saxena แสดงให้เห็นถึงการจำแนกประเภทผู้ใช้ที่มีความหมายด้วยปลั๊กอินเบราว์เซอร์แทร็ ค เมนโนต์ที่มีวัตถุประสงค์เพื่อเอาชนะเครื่องมือค้นหาที่เป็นปฏิปักษ์ รูปแบบที่เป็นปฏิปักษ์และวิธีการฝึกอบรมที่ใช้ในการวิเคราะห์นี้ไม่สามารถใช้ได้โดยตรงกับกรณีของตัวกลาง ISP คุณสมบัติที่สำคัญของการโจมตีของ Pedinti และ Saxena คือ:
ไม่จำเป็นต้องใช้คุณสมบัติการโจมตีเหล่านี้กับโมเดล entercersarial ISP เป็นไปได้ว่า ISP สามารถใช้ข้อมูลผู้ใช้ที่ไม่มีมลทินในอดีตเพื่อฝึกอบรมตัวจําแนกอย่างไรก็ตามสิ่งนี้สันนิษฐานว่าผลประโยชน์ของผู้ใช้ตัวเลขและอัตลักษณ์ที่ที่อยู่ IP บัญชีไม่เปลี่ยนแปลงจากเดือนต่อเดือนซึ่งเป็นเหตุการณ์ที่ไม่น่าเป็นไปได้สำหรับผู้ใช้และครัวเรือนส่วนใหญ่ บทความนี้แสดงให้เห็นถึงความยากลำบากของการยกเลิกคำย่อของบุคคลที่สามแม้จะมีสัญญาณรบกวนที่ จำกัด มันจะมีประโยชน์ในการหาปริมาณประสิทธิภาพการจำแนกประเภทโดยมีและไม่มีความสามารถในการฝึกอบรมด้วยข้อมูลผู้ใช้ที่ไม่ได้รับการปรับปรุง การรู้คำตอบสำหรับทั้งสองกรณีจะชี้ไปที่การปรับปรุงที่อาจเกิดขึ้นในวิธีการทำให้งงงวย
มลพิษข้อมูลเป็นองค์ประกอบหนึ่งในการแปรรูปข้อมูลส่วนบุคคลของคุณ ติดตั้ง HTTPS ของ EFF ทุกที่และ Badger ความเป็นส่วนตัวบนเบราว์เซอร์ ทั้งหมด ดู Repos OsxFortress และ OSX-OpenVPN-Server เพื่อบล็อกการโฆษณาตัวติดตามและมัลแวร์ข้ามอุปกรณ์
การใช้พร็อกซีแปรรูปเพื่อรวมการรับส่งข้อมูลส่วนบุคคลของคุณเองด้วยการรับส่งข้อมูลมลพิษของข้อมูลจะช่วยเพิ่มความสับสนให้กับการควบคุมการจราจรส่วนหัวอีกชั้นหนึ่ง ส่วนหัว 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 (v. 3) ของคุณการพึ่งพาโมดูลนั้นเป็น numpy requests selenium และ fake_useragent รวมถึง chromedriver วิธีการติดตั้งเหล่านี้ขึ้นอยู่กับระบบปฏิบัติการของคุณ
สิ่งนี้เกี่ยวข้องกับการเลือก Python (v. 3) Package Manager โดยทั่วไปแล้ว pip หรือ Anaconda
ฉันชอบ pip ดังนั้นในเครื่องจักรของฉันฉันจะพูดว่า:
sudo pip-3.7 install numpy requests selenium fake_useragent OpenSSL
ขอแนะนำให้ติดตั้ง binary chromedriver โดยตรงจาก [chromedriver.chromium.org] (http://chromedriver.chromium.org/downloads อย่าลืมตรวจสอบ ETAG ของการติดตั้งที่ดาวน์โหลด
คำสั่ง macports ติดตั้งคือ:
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
Homebrew เป็นอีกทางเลือกที่ดี
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