
Годами веб-разработчики могли использовать простой трюк для определения того, просматривает ли кто-то в режиме инкогнито в Chrome. Начиная с 76-й версии Chrome, Google прекратил работу этого метода обнаружения, обеспечивая лучшую анонимность для режима инкогнито. Однако еще до выпуска Chrome 76 исследователь безопасности обнаружил другой способ надежно определять режим инкогнито.
До выхода Chrome 76 веб-разработчики и новостные издания могли обнаруживать читателей в режиме инкогнито, просто проверяя, имеют ли они доступ к FileSystem API Chrome, который был отключен в режиме инкогнито из соображений безопасности. Google закрыл эту лазейку, включив для режима инкогнито основанную на памяти версию FileSystem API.
Исследователь безопасности и аспирант Викас Мишра утверждает, что нашел еще один API, который ведет себя по-другому в режиме инкогнито. Chrome и другие браузеры имеют API управления квотами хранения, используемый веб-приложениями для определения того, сколько временного пространства для хранения им выделено и сколько из этой квоты осталось.
При обычном просмотре общая емкость хранилища, разделяемая между всеми приложениями, составляет не менее 10% от максимальной емкости диска, с максимумом в 2 ГБ. Приложение, использующее временное хранилище, может использовать до половины этого, что составляет максимум 1 ГБ.
Однако в режиме инкогнито, где запись на жесткий диск потенциально может позволить отслеживать устройство, квота хранилища составляет процент от оперативной памяти вашего устройства, с максимумом в 120 МБ. Мишра произвел расчеты и определил, что для браузера, не работающего в режиме инкогнито, чтобы иметь только 120 МБ квоты хранилища, ему понадобился бы «абсолютно крошечный» жесткий диск объемом 2,4 ГБ.
- Изображение: Викас Мишра
Учитывая, что такой маленький диск для хранения в 2019 году был бы немыслим, весьма вероятно, что если Chrome сообщает только о 120 МБ, это означает, что вы находитесь в режиме инкогнито. Это означает, что все, что нужно сделать веб-разработчику для обнаружения режима инкогнито, — это проверить, превышает ли доступная квота хранилища 120 МБ. Мишра даже приводит пример кода в своем блоге, показывая, насколько прост его новый метод.
Со стороны Google команда Chrome знала, что будут обнаружены другие методы определения режима инкогнито. Планируя исправить первоначальный метод обнаружения режима инкогнито, разработчики изложили во внутреннем документе еще один правдоподобный способ обнаружения режима инкогнито после исправления. В таком случае, будем надеяться, Google продолжит серьезно относиться к этой проблеме и разработает исправление для нового метода Мишры.
Тем временем, поскольку метод обнаружения Мишры все еще относительно нов, веб-разработчики и издатели, вероятно, не будут использовать его в ближайшем будущем. Google также поощрял издателей рассматривать основные принципы конфиденциальности режима инкогнито перед принятием ответных мер.