Казус за теч 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 адресите се споделят между хората. За да направите това, се използва система, наречена превод на мрежови адреси (NAT). Тази система позволява на устройствата да присвояват „Local IPv4“ адреси на своите мрежови интерфейси, докато споделят общ публичен IP адрес, обикновено чрез ISP. Тези локални IP адреси се използват в световен мащаб от милиони компютри по целия свят и са трудни за директно свързване с конкретен индивид.

Проблемът с IPv6 е, че адресите не са в недостиг. Има а много от тях! Това означава, че на отделните хора обикновено се присвоява уникален IPv6 адрес. Когато такъв IPv6 адрес е присвоен на мрежов интерфейс, това означава, че WebRTC може да открие IP адрес, който идентифицира кой сте, дори ако този IP адрес не е нормално видим за външния свят.

Какви видове течове има?

Има два вида течове на WebRTC с различна тежест. Кой потребител може да бъде уязвим, зависи от това дали той предоставя конкретни разрешения, свързани с WebRTC на уеб страница. И в двата случая добра VPN трябва да защитава от течове.

Обърнете внимание, че производителите на браузъри могат да използват различни методи за внедряване на WebRTC, така че е възможно един браузър да изтече, а друг да не го прави, дори със същата настройка на устройството и доставчик на VPN.

Постоянни течове (не се изискват разрешения)

По подразбиране уеб страниците не получават разрешения за WebRTC. Все пак все още е възможно страниците да имат достъп до някои от IP адресите на потребителя, използвайки API на WebRTC. В тези ситуации уебсайтовете могат лесно да проследяват потребителя чрез техните IP адреси без тяхното знание.

Задействани течове (необходими разрешения)

Уеб страниците могат изрично да поискат разрешения за използване на свързана с WebRTC функционалност. Тези разрешения всъщност са класифицирани като микрофон и Камера разрешения. Причината за това е, че WebRTC е технология, насочена към P2P комуникация като гласови разговори или видеоконференции.

Когато се предостави едно от тези разрешения, уеб страницата получава достъп до по-широк спектър от IP адреси на устройството, което прави възможно изтичане. В някои браузъри тези разрешения продължават да съществуват през сесиите, т.е. ако потребителят е дал разрешения на уеб страницата веднъж, тя запазва тези разрешения, когато потребителят се върне на страницата в бъдеще.

Обърнете внимание, че на отделните уеб страници трябва да се предоставят разрешения отделно, така че предоставянето на разрешения за един сайт не дава разрешения за друг.

Въпреки че тези течове са по-малко сериозни от постоянните течове по-горе, тъй като изискват активно предоставяне на разрешения от потребителя, ние все още ги считаме за притеснителни. WebRTC набира популярност и потребителите могат да очакват да видят все повече и повече сайтове, използващи технологията през следващите години. Ако VPN не крие IP адреси, когато потребителят предостави разрешения на даден сайт, тогава те имат само две опции:

  • Не използвайте сайтове и услуги с активирана WebRTC
  • Приемете рисковете за сигурността и поверителността, свързани с излагането на техния IP адрес

Тестване за течове

Тези тестове могат да се извършват на всеки настолен компютър. При извършване на тестове за теч препоръчваме да имате на разположение IPv6 на вашето тестово устройство, тъй като това е най-вероятната ситуация, при която доставчиците на VPN текат.

Ръчно тестване

Можете ръчно да тествате за течове, като използвате нашия онлайн тест за теч на WebRTC.

Repro Стъпки

  • Уверете се, че тестовата страница е тест затворен
  • Уверете се, че вашето 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
  • Използвайте опростена уеб страница за тестване на течове, за да събирате IP адреси на WebRTC
  • Проверете дали някой от публичните IP адреси, събрани преди свързване, са видими чрез WebRTC след свързване

Единият тест ще тества за устойчиви течове, когато не са предоставени разрешения на браузъра, а другият тест ще тества за течове, когато има разрешения сте дадено.

Забележка: Можете да коригирате браузърите, които се използват чрез промяна на браузъри списък в webrtc_leaks.py досие.

Казус за теч 2: Изтичане на WebRTC
admin Author
Sorry! The Author has not filled his profile.