กรณีศึกษาการรั่วไหล 2: การรั่วไหลของ WebRTC
ที่อยู่ IP สาธารณะของคุณเป็นส่วนหนึ่งของข้อมูลเฉพาะตัวของแต่ละบุคคลบนเว็บทำให้ไซต์แอปและบุคคลที่สามสามารถติดตามกิจกรรมของพวกเขาทั่วทั้งเว็บและเชื่อมโยงกับบุคคลนั้น ๆ ด้วย VPN ไซต์จะเห็นที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ VPN แทนผู้ใช้เพื่อปกป้องตัวตนของพวกเขา.
อย่างไรก็ตามบางครั้ง WebRTC อาจเปิดใช้งานเว็บไซต์เพื่อดูที่อยู่ IP สาธารณะของผู้ใช้ซึ่งแสดงถึงการรั่วไหลของความเป็นส่วนตัว กรณีศึกษาจากห้องปฏิบัติการวิจัยความเป็นส่วนตัวของเราอธิบายว่าเกิดการรั่วไหลของ WebRTC ได้อย่างไรและวิธีการทดสอบโดยใช้เครื่องมือทดสอบการรั่วของ ExpressVPN.
ภาพรวม WebRTC
WebRTC เป็นชุดของเทคโนโลยีเปิดซึ่งอนุญาตให้หน้าเว็บให้การสื่อสารแบบเพียร์ทูเพียร์ (P2P) ผ่านเว็บเบราว์เซอร์ เบราว์เซอร์ที่ทันสมัยส่วนใหญ่รองรับมาตรฐาน WebRTC อย่างสมบูรณ์.
WebRTC ยังให้ความสามารถในการตรวจจับทั้งที่อยู่ IP สาธารณะของผู้ใช้และที่อยู่ IP ในพื้นที่ ความสามารถนี้เป็นกุญแจสำคัญในการอำนวยความสะดวกในการสื่อสาร P2P โดยใช้เพียงเว็บเบราว์เซอร์โดยไม่ต้องมีแอพหรือปลั๊กอินเพิ่มเติม.
WebRTC รั่วไหล
การรั่วไหลของ WebRTC เป็นรูปแบบหนึ่งของการรั่วไหลของ IP หน้าเว็บสามารถใช้ JavaScript WebRTC API เพื่อถามเบราว์เซอร์สำหรับที่อยู่ IP ของอุปกรณ์ เมื่อพวกเขารวบรวมที่อยู่ IP เหล่านี้พวกเขาสามารถส่งพวกเขาไปยังเซิร์ฟเวอร์ของพวกเขาและใช้พวกเขาเพื่อระบุว่าใครกำลังเข้าถึงหน้าเว็บหรือบริการเฉพาะ.
แอปพลิเคชั่น VPN ส่วนใหญ่ป้องกันการรั่วไหลของที่อยู่ IPv4 ผ่าน WebRTC ได้อย่างมีประสิทธิภาพอย่างไรก็ตามแอปพลิเคชั่น VPN จำนวนมากมักมองข้ามที่อยู่ IPv6 ที่รั่วไหลในวิธีเดียวกัน.
WebRTC ตรวจสอบที่อยู่ IP อย่างไร?
WebRTC ใช้สองเทคนิคหลักในการกำหนดที่อยู่ IP ของอุปกรณ์: เซิร์ฟเวอร์ STUN / TURN และ Host Candidate Discovery.
STUN / TURN เซิร์ฟเวอร์ค้นหาที่อยู่ IP โดยตรวจสอบว่าใช้ที่อยู่ IP สาธารณะใดในการเข้าถึง โดยทั่วไปแล้วสิ่งเหล่านี้ไม่ใช่สาเหตุของการรั่วไหลของ VPN IP.
โฮสต์การค้นพบผู้สมัคร เป็นปัญหามากขึ้นเมื่อมันมาถึงการรั่วไหลของ WebRTC ฟังก์ชันนี้ช่วยให้เบราว์เซอร์ตรวจสอบระบบและส่วนต่อประสานเครือข่ายของคุณโดยตรงและดูว่าที่อยู่ IP ใดที่เชื่อมโยงกับพวกเขา.
อินเทอร์เฟซเครือข่ายที่ใช้งานอยู่ทั้งหมดบนอุปกรณ์ต้องมีที่อยู่ IP เพื่อใช้งาน ตัวอย่างเช่นสำหรับการเชื่อมต่อ Wi-Fi ที่ใช้งานจะมีอินเทอร์เฟซเครือข่ายที่สอดคล้องกันบนอุปกรณ์ อินเทอร์เฟซนี้จะมีที่อยู่ IP.
WebRTC สามารถเปิดเผยที่อยู่ IP เหล่านี้ซึ่งปกติไม่สามารถมองเห็นจากภายนอกไปยังอุปกรณ์ไปยังหน้าเว็บได้.
ทำไมการรั่วไหลของ IPv6 จึงเป็นปัญหา?
ที่อยู่ IPv4 ขาดตลาด - มีไม่เพียงพอที่จะไปไหนมาไหน! โดยปกติแล้วที่อยู่ IPv4 จะถูกแชร์ระหว่างคน ในการดำเนินการนี้จะใช้ระบบที่เรียกว่า Network Address Translation (NAT) ระบบนี้อนุญาตให้อุปกรณ์กำหนดที่อยู่“ Local IPv4” ให้กับอินเทอร์เฟซเครือข่ายในขณะที่แชร์ที่อยู่ IP สาธารณะทั่วไปโดยทั่วไปผ่าน ISP ที่อยู่ IP ท้องถิ่นเหล่านี้ใช้ทั่วโลกโดยคอมพิวเตอร์นับล้านเครื่องทั่วโลกและยากที่จะเชื่อมโยงโดยตรงกับบุคคลใดบุคคลหนึ่ง.
ปัญหาเกี่ยวกับ IPv6 คือที่อยู่ไม่ได้ขาดแคลน มี จำนวนมาก ของพวกเขา! ซึ่งหมายความว่าแต่ละคนมักจะได้รับที่อยู่ IPv6 ที่ไม่ซ้ำกัน เมื่อที่อยู่ IPv6 นั้นถูกกำหนดให้กับอินเทอร์เฟซเครือข่ายหมายความว่า WebRTC สามารถค้นหาที่อยู่ IP ที่ระบุตัวตนของคุณแม้ว่าที่อยู่ IP นั้นจะไม่สามารถมองเห็นได้จากโลกภายนอก.
มีรอยรั่วประเภทใด?
การรั่วไหลของ WebRTC มีสองประเภทซึ่งมีระดับความรุนแรงต่างกัน ผู้ใช้รายใดที่มีความเสี่ยงที่จะขึ้นอยู่กับว่าพวกเขาให้สิทธิ์ WebRTC เฉพาะที่เกี่ยวข้องกับหน้าเว็บ ในทั้งสองกรณี VPN ที่ดีควรป้องกันการรั่วไหล.
โปรดทราบว่าผู้ผลิตเบราว์เซอร์อาจใช้วิธีการต่าง ๆ ในการใช้ WebRTC ดังนั้นจึงเป็นไปได้ที่เบราว์เซอร์หนึ่งจะรั่วไหลและไม่สามารถทำได้แม้จะใช้การตั้งค่าอุปกรณ์และผู้ให้บริการ VPN เดียวกัน.
การรั่วไหลถาวร (ไม่จำเป็นต้องได้รับอนุญาต)
ตามค่าเริ่มต้นหน้าเว็บจะไม่ได้รับสิทธิ์ WebRTC อย่างไรก็ตามเป็นไปได้ที่หน้าต่างๆจะสามารถเข้าถึงที่อยู่ IP ของผู้ใช้โดยใช้ WebRTC API ในสถานการณ์เหล่านี้เว็บไซต์สามารถติดตามผู้ใช้ได้อย่างง่ายดายผ่านที่อยู่ IP ของพวกเขาโดยที่พวกเขาไม่รู้.
การรั่วไหลที่ถูกเรียกใช้ (จำเป็นต้องได้รับอนุญาต)
หน้าเว็บสามารถขอสิทธิ์อย่างชัดเจนเพื่อใช้ฟังก์ชั่นที่เกี่ยวข้องกับ WebRTC การอนุญาตเหล่านี้จัดเป็นจริง ไมโครโฟน และ กล้อง สิทธิ์ เหตุผลก็คือ WebRTC เป็นเทคโนโลยีที่มุ่งเน้นการสื่อสารแบบ P2P เช่นการโทรด้วยเสียงหรือการประชุมทางวิดีโอ.
เมื่อได้รับอนุญาตอย่างใดอย่างหนึ่งเหล่านี้เว็บเพจจะเข้าถึงที่อยู่ IP ที่กว้างขึ้นบนอุปกรณ์ซึ่งทำให้เกิดการรั่วไหลได้ ในบางเบราว์เซอร์สิทธิ์เหล่านั้นยังคงมีอยู่ในเซสชันเช่นหากผู้ใช้ได้ให้สิทธิ์กับหน้าเว็บหนึ่งครั้งหน้าเว็บจะคงสิทธิ์เหล่านั้นไว้เมื่อผู้ใช้กลับสู่หน้าเว็บในอนาคต.
โปรดทราบว่าแต่ละหน้าเว็บจะต้องได้รับการอนุญาตแยกต่างหากดังนั้นการอนุญาตให้สิทธิ์สำหรับหนึ่งเว็บไซต์จะไม่ให้สิทธิ์สำหรับอีกเว็บไซต์หนึ่ง.
ในขณะที่การรั่วไหลเหล่านี้มีความรุนแรงน้อยกว่าการรั่วไหลต่อเนื่องด้านบนเนื่องจากผู้ใช้ต้องการการอนุญาตอย่างแข็งขันจากผู้ใช้เราจึงยังถือว่าพวกเขาเป็นกังวล WebRTC กำลังได้รับความนิยมมากขึ้นเรื่อย ๆ และผู้ใช้สามารถคาดหวังที่จะเห็นไซต์มากขึ้นเรื่อย ๆ โดยใช้เทคโนโลยีในอีกไม่กี่ปีข้างหน้า หาก VPN ไม่ซ่อนที่อยู่ IP เมื่อผู้ใช้ให้สิทธิ์แก่ไซต์พวกเขาจะเหลือเพียงสองตัวเลือก:
- ไม่ใช้เว็บไซต์และบริการที่เปิดใช้งาน WebRTC
- ยอมรับความเสี่ยงด้านความปลอดภัยและความเป็นส่วนตัวที่เกี่ยวข้องกับการเปิดเผยที่อยู่ IP ของพวกเขา
ทดสอบการรั่วไหล
การทดสอบเหล่านี้สามารถทำได้บนคอมพิวเตอร์ตั้งโต๊ะทุกเครื่อง เมื่อทำการทดสอบการรั่วไหลเราขอแนะนำให้คุณมี IPv6 บนอุปกรณ์ทดสอบของคุณเนื่องจากนี่เป็นสถานการณ์ที่เป็นไปได้มากที่สุดที่ผู้ให้บริการ VPN รั่วไหล.
การทดสอบด้วยตนเอง
คุณสามารถทดสอบการรั่วได้ด้วยตนเองโดยใช้การทดสอบการรั่วไหล WebRTC ออนไลน์ของเรา.
ทำซ้ำขั้นตอน
- ตรวจสอบให้แน่ใจว่าหน้าทดสอบการรั่วไหลคือ ปิด
- ตรวจสอบว่าแอปพลิเคชัน VPN ของคุณคือ ตัดการเชื่อมต่อ
- เยี่ยมชมหน้าทดสอบการรั่วไหลของ WebRTC
- จดบันทึกทั้งหมด สาธารณะ ที่อยู่ IP ที่คุณเห็นในผลลัพธ์การทดสอบ
- พวกเขาจะแสดงพร้อมกับ สถานะ ในฐานะ“ ศักยภาพรั่ว”
- ปิดหน้าการทดสอบการรั่วไหล
- เชื่อมต่อกับ VPN ของคุณ
- เปิดหน้าทดสอบการรั่วไหลของ WebRTC อีกครั้ง
- หากคุณเห็นที่อยู่ IP ใด ๆ ที่คุณเพิ่งจดบันทึกข้างต้นแสดงว่าคุณมีการรั่วไหล
โปรดทราบว่าเราขอให้คุณปิดหน้าทดสอบการรั่วไหลอย่างชัดเจนเพื่อหลีกเลี่ยงปัญหาการแคชเบราว์เซอร์ เบราว์เซอร์จำนวนมากจะแคช IP ที่ตรวจพบผ่าน WebRTC ดังนั้นการโหลดหน้าเว็บซ้ำจึงไม่ใช่วิธีที่เชื่อถือได้ในการเรียกใช้การทดสอบ.
โปรดทราบว่าหน้าทดสอบนี้จะทดสอบเฉพาะการรั่วไหลที่รุนแรงที่สุดเท่านั้นกล่าวคือ“ การรั่วไหลแบบถาวร” ที่กล่าวถึงข้างต้น ในการทดสอบว่าคุณรั่วไหลหรือไม่เมื่อได้รับอนุญาตจากเบราว์เซอร์เราขอแนะนำให้คุณใช้เครื่องมือทดสอบการรั่วไหลด้านล่าง.
การทดสอบโดยใช้เครื่องมือทดสอบการรั่วของ ExpressVPN
เครื่องมือทดสอบการรั่วไหลของ ExpressVPN เป็นชุดเครื่องมือ Python โอเพ่นซอร์สที่ออกแบบมาสำหรับการทดสอบแอพพลิเคชั่น VPN ทั้งแบบแมนนวลและแบบอัตโนมัติ โปรดดูการแนะนำเครื่องมือสำหรับคำแนะนำในการดาวน์โหลดและตั้งค่าเครื่องมือ.
เมื่อคุณตั้งค่าเครื่องมือตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีรากของเครื่องมือและดำเนินการ:
./run_tests.sh -c configs / case_studies / webrtc_leaks.py
คำสั่งนี้จะทำการทดสอบสองกรณีในหลายเบราว์เซอร์ ทั้งสองกรณีทดสอบนั้นส่วนใหญ่เป็นระบบอัตโนมัติของขั้นตอนแบบแมนนวลที่อธิบายไว้ข้างต้นและทำสิ่งต่อไปนี้:
- ตรวจสอบให้แน่ใจว่าได้ปิดการเชื่อมต่อแอปพลิเคชัน VPN แล้ว
- กำหนดที่อยู่ IPv4 สาธารณะและที่อยู่ IPv6 ของอุปกรณ์
- เชื่อมต่อแอปพลิเคชัน VPN
- ใช้เว็บเพจการทดสอบการรั่วไหลแบบง่าย ๆ เพื่อรวบรวม WebRTC IP
- ตรวจสอบว่า IP สาธารณะใด ๆ ที่รวบรวมก่อนการเชื่อมต่อสามารถมองเห็นได้ผ่าน WebRTC หลังจากเชื่อมต่อ
การทดสอบหนึ่งรายการจะทดสอบการรั่วไหลแบบต่อเนื่องเมื่อไม่ได้รับอนุญาตจากเบราว์เซอร์การทดสอบอื่นจะทดสอบการรั่วไหลเมื่อได้รับอนุญาต เป็น รับ.
หมายเหตุ: คุณสามารถปรับเบราว์เซอร์ที่ใช้โดยการเปลี่ยน เบราเซอร์ รายการใน webrtc_leaks.py ไฟล์.