Kajian kes leak 2: kebocoran WebRTC

Alamat IP awam anda menjadi sebahagian daripada identiti individu di web, membolehkan laman web, aplikasinya, dan pihak ketiga untuk menjejaki aktiviti mereka di seluruh web dan mengaitkannya dengan individu tertentu itu. Dengan VPN, tapak melihat alamat IP awam pelayan VPN daripada pengguna, melindungi identiti mereka.

Walau bagaimanapun, WebRTC mungkin pada masa-masa membolehkan laman web untuk melihat alamat IP awam pengguna, yang mewakili kebocoran kompromi privasi. Kajian kes ini dari Lab Penyelidikan Privasi kami menerangkan bagaimana kebocoran WebRTC berlaku, dan bagaimana untuk menguji mereka menggunakan Alat Pengujian Leak ExpressVPN.

Gambaran keseluruhan WebRTC

WebRTC adalah satu set teknologi terbuka yang membolehkan laman web menyediakan komunikasi peer-to-peer (P2P) melalui penyemak imbas web. Kebanyakan pelayar moden kini menyokong sepenuhnya piawaian WebRTC.

WebRTC, antara lain, memberikan pelayar web keupayaan untuk mengesan kedua-dua alamat IP awam pengguna dan juga alamat IP tempatan mereka. Keupayaan ini adalah kunci untuk memudahkan komunikasi P2P menggunakan hanya pelayar web, tanpa aplikasi tambahan atau plugin.

Kebocoran WebRTC

Kebocoran WebRTC adalah satu bentuk kebocoran IP. Halaman Web boleh menggunakan JavaScript WebRTC API untuk meminta penyemak imbas untuk alamat IP peranti. Sebaik sahaja mereka telah mengumpulkan alamat IP ini, mereka boleh menghantarnya ke pelayan mereka dan menggunakannya untuk mengenal pasti siapa yang mengakses laman web atau perkhidmatan tertentu.

Kebanyakan aplikasi VPN berkesan melindungi terhadap alamat IPv4 yang bocor melalui WebRTC, namun banyak aplikasi VPN cenderung untuk mengingati alamat IPv6 yang bocor dengan cara yang sama.

Bagaimana WebRTC mengesan alamat IP??

WebRTC menggunakan dua teknik utama untuk menentukan alamat IP peranti: STUN / TURN server dan Penemuan Penerima Tuan Rumah.

STUN / TURN pelayan menemui alamat IP dengan memeriksa alamat IP awam yang digunakan untuk mengaksesnya. Biasanya ini bukan penyebab kebocoran IP VPN.

Penemuan Calon Tuan rumah adalah lebih bermasalah ketika datang ke kebocoran WebRTC. Fungsi ini membolehkan penyemak imbas memeriksa secara langsung sistem dan antara muka rangkaian anda dan melihat alamat IP yang dikaitkan dengannya.

Semua antara muka rangkaian aktif pada peranti memerlukan alamat IP berfungsi. Contohnya, untuk sambungan Wi-Fi aktif terdapat antara muka rangkaian yang sepadan pada peranti. Antara muka ini akan mempunyai alamat IP.

WebRTC boleh mendedahkan alamat IP ini, yang biasanya tidak dapat dilihat secara luaran ke peranti, ke halaman web.

Mengapa kebocoran IPv6 bermasalah?

Alamat IPv4 tidak berkesudahan – tidak semestinya cukup untuk pergi! Biasanya, alamat IPv4 dikongsi antara orang. Untuk melakukan ini, sistem yang bernama Network Address Translation (NAT) digunakan. Sistem ini membenarkan peranti menyerahkan alamat “Local IPv4” ke antara muka rangkaian mereka semasa berkongsi alamat IP awam umum, biasanya melalui ISP. Alamat IP tempatan ini digunakan secara global oleh berjuta-juta komputer di seluruh dunia dan sukar untuk diarahkan dengan individu tertentu.

Masalahnya dengan IPv6 adalah bahawa alamat tidak terlalu pendek. Terdapat a banyak daripada mereka! Ini bermakna individu individu biasanya masing-masing memberikan alamat IPv6 yang unik. Apabila alamat IPv6 seperti itu diberikan kepada antara muka rangkaian, ini bermakna WebRTC boleh menemui alamat IP yang mengenal pasti siapa anda, walaupun alamat IP itu tidak dapat dilihat oleh dunia luar.

Apa jenis kebocoran yang ada?

Terdapat dua jenis kebocoran WebRTC, yang mempunyai keparahan yang berbeza. Yang pengguna mungkin terdedah kepada bergantung kepada sama ada mereka memberikan keizinan berkaitan WebRTC tertentu ke halaman web. Dalam kedua-dua kes, VPN yang baik harus melindungi dari kebocoran.

Perhatikan bahawa pengeluar penyemak imbas mungkin menggunakan kaedah yang berbeza untuk melaksanakan WebRTC, jadi mungkin bagi satu pelayar untuk bocor dan yang lain tidak, walaupun dengan persediaan peranti yang sama dan penyedia VPN.

Kebocoran berterusan (tiada keizinan diperlukan)

Secara lalai, halaman web tidak diberikan keizinan WebRTC. Walau bagaimanapun, masih boleh didapati untuk halaman untuk mengakses beberapa alamat IP pengguna menggunakan API WebRTC. Dalam situasi ini, laman web dengan mudah boleh menjejaki pengguna melalui alamat IP mereka tanpa pengetahuan mereka.

Kebocoran yang dicetuskan (keizinan diperlukan)

Halaman web secara eksplisit boleh meminta keizinan untuk menggunakan fungsi berkaitan WebRTC. Kebenaran ini sebenarnya dikelaskan sebagai Mikrofon dan Kamera kebenaran. Sebabnya ialah WebRTC adalah teknologi yang ditujukan kepada komunikasi P2P seperti panggilan suara atau video konferensi.

Apabila salah satu izin diberikan, laman web mendapat akses kepada rangkaian alamat IP yang lebih luas pada peranti, yang membuat kebocoran mungkin. Dalam sesetengah pelayar kebenaran tersebut berterusan merentas sesi, iaitu jika pengguna telah memberikan keizinan ke laman web sekali, laman web itu menyimpan keizinan tersebut apabila pengguna kembali ke halaman pada masa akan datang.

Ambil perhatian bahawa halaman web individu mesti diberi kebenaran secara berasingan, jadi pemberian izin untuk satu laman web tidak memberikan kebenaran untuk yang lain.

Walaupun kebocoran ini kurang teruk daripada kebocoran berterusan di atas, kerana mereka memerlukan pemberian izin aktif oleh pengguna, kami masih menganggap mereka menjadi kebimbangan. WebRTC berkembang dalam populariti dan pengguna boleh mengharapkan untuk melihat lebih banyak laman web yang menggunakan teknologi dalam tahun-tahun akan datang. Sekiranya VPN tidak menyembunyikan alamat IP apabila pengguna memberi kebenaran ke tapak, maka mereka hanya mempunyai dua pilihan:

  • Tidak menggunakan sebarang laman dan perkhidmatan WebRTC yang dibolehkan
  • Terima risiko keselamatan dan privasi yang berkaitan dengan mendedahkan alamat IP mereka

Menguji kebocoran

Ujian ini boleh dilakukan pada mana-mana komputer desktop. Semasa menjalankan ujian kebocoran kami mengesyorkan bahawa anda mempunyai IPv6 yang tersedia pada peranti ujian anda, kerana ini adalah keadaan yang paling mungkin di mana pembekal VPN bocor.

Ujian manual

Anda boleh menguji kebocoran secara manual menggunakan ujian kebocoran WebRTC dalam talian kami.

Langkah Repro

  • Pastikan halaman ujian kebocoran adalah ditutup
  • Pastikan aplikasi VPN anda terputus
  • Lawati halaman ujian kebocoran WebRTC
  • Buat catatan semua awam Alamat IP yang anda lihat dalam output ujian
    • Mereka akan dipaparkan dengan mereka Status sebagai “Kebocoran Potensi”
  • Tutup halaman ujian kebocoran
  • Sambungkan ke VPN anda
  • Buka semula halaman uji kebocoran WebRTC
  • Jika anda melihat mana-mana alamat IP anda hanya membuat nota di atas, maka anda mempunyai kebocoran

Perhatikan bahawa kami secara jelas meminta anda menutup laman ujian kebocoran untuk mengelakkan masalah caching penyemak imbas. Ramai penyemak imbas akan menyembunyikan IP yang dikesan melalui WebRTC, dengan itu memuat semula halaman web bukan cara yang boleh dipercayai untuk menjalankan ujian.

Ambil perhatian bahawa halaman ujian ini hanya ujian untuk kelas kebocoran yang paling teruk, iaitu “Kebocoran Persisten” yang dibincangkan di atas. Untuk menguji sama ada anda kebocoran apabila kebenaran diberikan kepada penyemak imbas anda, kami cadangkan anda menggunakan alat ujian kebocoran di bawah.

Ujian menggunakan Alat Ujian Leak ExpressVPN

Alat Pengujian Kebocoran ExpressVPN adalah suite extensible alat Python sumber terbuka yang direka untuk ujian kebocoran manual dan automatik dari aplikasi VPN. Sila lihat pengenalan kami kepada alat untuk mendapatkan arahan mengenai memuat turun dan menyiapkan alat.

Sebaik sahaja anda telah menyediakan alat, pastikan anda berada dalam direktori root alat dan jalankan:

./run_tests.sh -c configs / case_studies / webrtc_leaks.py

Perintah ini akan menjalankan dua kes ujian merentas berbilang penyemak imbas. Kedua-dua kes ujian adalah sebahagian besarnya automasi langkah-langkah manual yang diterangkan di atas dan lakukan yang berikut:

  • Memastikan permohonan VPN diuji tidak diputuskan
  • Tentukan alamat IPv4 dan IPv6 awam peranti
  • Sambungkan aplikasi VPN
  • Gunakan laman web ujian kebocoran yang mudah untuk mengumpul IP WebRTC
  • Periksa sama ada mana-mana IP awam yang berkumpul sebelum bersambung boleh dilihat melalui WebRTC selepas bersambung

Satu ujian akan menguji kebocoran berterusan apabila tiada kebenaran peramban diberikan, ujian lain akan menguji kebocoran semasa kebenaran adalah diberikan.

Nota: Anda boleh menyesuaikan pelayar yang digunakan dengan mengubahnya BROWSERS senarai dalam webrtc_leaks.py fail.