Профили браузера и изоляция: что на самом деле значит разделение аккаунтов

«Изоляция» — слово, которым все называют разделение идентичностей браузера, и оно охватывает несколько разных вещей. Эта статья их разделяет, потому что лёгкая из них — не та, что важна.
Изоляция хранилища
У профиля браузера свои cookie, локальное хранилище, кэш, история, сохранённые пароли и расширения. Два профиля не видят cookie друг друга, поэтому сайт не может связать их через хранилище. Каждый популярный браузер поддерживает несколько профилей, и этот уровень изоляции — решённая задача. Если бы сайт видел только это, разделение аккаунтов сводилось бы к нажатию «новый профиль».
Сетевая изоляция
Два профиля с одним и тем же адресом приходят из одного места. Сайт, который одновременно видит два аккаунта с одного домашнего адреса, узнал кое-что, а если совпадают ещё часовой пояс и язык, то узнал больше. Сетевая изоляция означает, что у каждого профиля свой маршрут, обычно прокси, и что этот маршрут несёт всё: HTTP, WebRTC и, где возможно, DNS. Профиль, прокси которого покрывает только HTTP, изолирован на бумаге и связан на практике.
Изоляция отпечатка
Это трудная часть. Два профиля на одном компьютере с одной и той же сборкой браузера дают один и тот же хеш canvas, тот же хеш аудио, ту же строку рендерера, то же число потоков, ту же геометрию экрана и тот же список шрифтов. С точки зрения сайта это один компьютер с двумя хранилищами cookie. Чтобы они выглядели как два компьютера, браузер должен сообщать разные значения этих свойств, согласованно, для каждого профиля.
Здесь чаще всего и происходит сбой согласованности. Значения должны описывать существующий компьютер: операционную систему, поставляемый с ней GPU, размер экрана и соотношение пикселей, которые сочетаются, user agent, Client Hints и navigator.platform, которые совпадают, и шрифты, принадлежащие этой операционной системе. Они должны оставаться неизменными от визита к визиту, потому что отпечаток, меняющийся каждый день, сам является сигналом. И они должны выдерживать сравнения, которые делают сайты между источниками: user agent с рендерером, часовой пояс с адресом, кандидата WebRTC с запросом.
В чём ошибается «сокрытие»
Блокировать всё — это не изоляция, а другой отпечаток. Браузер, возвращающий «недоступно» для canvas, аудио, WebGL и WebRTC, выглядит как инструмент приватности, а это небольшая и узнаваемая группа. Цель рабочего профиля противоположна: выглядеть как один обычный, скучный компьютер, полностью читаемый, все сигналы которого согласованы. Условие успеха не в том, что диагностика ничего не показывает, а в том, что она показывает правдоподобную машину и никаких несоответствий.
Как проверить профиль
Откройте диагностику в профиле и прочитайте её так, как прочитал бы сайт. Соответствует ли рендерер операционной системе? Соответствует ли часовой пояс адресу? Показывает ли WebRTC только адрес прокси или вообще ничего? Перезагрузите: остаются ли хеши прежними? Затем откройте второй профиль и убедитесь, что значения отличаются от первого. Страница вроде PowerScan показывает это рядом, отмечает расходящиеся сравнения и ничего не сохраняет, так что проверку можно повторять, не оставляя следов.
Замечание о том, чего этот сайт не заявляет
PowerScan не оценивает подлинность, не обнаруживает прокси и не решает, является ли браузер ботом. Для таких суждений нужны данные, которых у скрипта страницы нет, и показ числа для них был бы угадыванием. Он читает те же сигналы, что и сайт, и указывает, где они расходятся. Именно с этим вы можете что-то сделать.

