💾 Archived View for tilde.team › ~rami › icecat_addons.gmi captured on 2023-01-29 at 04:20:58. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
רמי
SUBJECT: Icecat/Firefox: Повышение безопасности и приватности браузера посредством дополнений
AUTHOR: Rami Rosenfeld
DATE: 25/11/22; upd 27/11/22
TIME: 00.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, web, browser, icecat, firefox, anonymity, privacy, security, settings, addons
Есть три наиболее распространенных типа интернет-пользователей.
ПЕРВЫЕ живут по принципу "Мне нечего скрывать!" - и тут, как водится, "медицина бессильна". И посему этот материал явно не предназначен для данной категории. (См. статью Дэниэла Солоува ""Мне нечего скрывать" и другие ошибочные толкования приватности" в разделе Essays)
ВТОРЫЕ минимально озабочены своей безопасностью, приватностью и анонимностью и прилагают к их обеспечению лишь незначительные усилия, предпочитая пользоваться результатами трудов сторонних разработчиков.
ТРЕТЬИ сами являются специалистами и посему действуют самостоятельно - не ориентируясь на мнение окружающих, рекомендации "авторитетов" и vox populi; как правило, они тщательно настраивают браузер для своих нужд "под капотом", т.е. видоизменяя внутренние настройки программного обеспечения.
Итак, данный материал предназначен для второй категории.
Замечу, что лично я - не сторонник применения каких-либо дополнений (они могут содержать неизвестные уязвимости) и посему правлю about:config вручную, внося в него более 350(!)-ти изменений. Но часто возникают случаи, когда необходимо обеспечить хотя бы минимальный уровень безопасности для пользователей, обратившихся ко мне за той или иной помощью. И этой категории я традиционно инсталлирую и настраиваю свой устоявшийся набор дополнений.
Заверяю: список, приведенный ниже, апробирован годами и является, скорее, не моим личным выбором ("мне так удобнее", "я так привык"), но всецело опирается на мой личный опыт. Кроме того, большинство (4 из 5!) предлагаемых дополнений имеют официальный статус "проверено и рекомендовано MoFo", а также количество пользователей, измеряемое в десятках тысяч человек.
Примечание: Я указываю лишь те настройки, которым следует уделить особое внимание (равно как и моим рекомендациям по выбору опций)... Почему так, а не иначе? Ответ содержится в материале "Веб-браузеры: Основные угрозы безопасности, анонимности и приватности в классификации Рами Розенфельда" в разделе Manuals.
Отключение упреждающего соединения с серверами.
Отключение телеметрии о переходе по ссылкам (и его времени), отсылаемой на серверы.
Отключение отправки телеметрии о нарушениях Content Security Policy ("CSP reports").
Раскрытие (дословно: "разоблачение") "устоявшихся" имен (весьма сложно точно перевести этот термин, но, если кратко - она предупреждает DNS-tracking).
Блокирование изображений и т.п. больше чем N Кб (я предпочитаю устанавливать значение в 2 Кб, что предотвращает загрузку практически всех изображений, после чего наслаждаюсь чтением чистого текста).
Примечание: Заблокированную графику можно временно отобразить, если нажать ПКМ на красную рамку, отграничивающую конкретное изображение. Но этот способ может не сработать, если мультимедийный контент встроен в чужой (3d-party) фрейм.
Блокирование удаленно подгружаемых шрифтов (вполне здравая идея, предупреждающая использование уязвимостей).
Блокирование JavaScript всегда должно быть активировано по умолчанию; по сути, это наиглавнейшая опция в uBlock Origin. Разрешайте (желательно частично, без 3d-party источников) их только на доверенных сайтах.
ВАЖНО: Тотально запрещайте средствами GUI uBlock Origin все 3d-party скрипты и фреймы (частично разрешая их только на доверенных сайтах - в случае неработоспособности последних).
Опция удалена в последних версиях uBlock Origin, т.к. в настоящее время в дополнении по умолчанию задействована обфускация LAN-адресов посредством mDNS.
Добрый совет от Розенфельда: не увлекайтесь! Активируйте только те подписки, которые действительно нужны, иначе это сильно скажется на производительности браузера и занятой RAM (оптимальный вариант - 3-5).
Примечание: Лично я вообще НЕ использую сторонние подписки. Когда-то, весьма давно, я не поленился, взял за основу несколько распространенных списков (с тысячами строк!) и вычистил их от "точечных"/конкретизирующих правил, оставив только общие. Данные действия увеличили скорость браузера, не сказавшись на качестве работы дополнения. В подобном случае - активируйте опцию "My Filters" в uBlock Origin, после чего используйте вкладки "My filters" и "My rules".
Самая полезная опция: автоматически очищает браузер от только что загруженных кукиз спустя N секунд с момента их появления. Я выставляю это значение в 1 с.
Примечание: Гипотетически это может разорвать авторизованную сессию соединения с просматриваемым ресурсом.
Очистка на отмененных (сброшенных) или незагруженных вкладках (табах).
Очистка при смене доменного имени в текущей вкладке.
Очистка всех устаревших кукиз.
Очистка существующих данных при активации новых чекбоксов, задействующих таковые (например кэш, БД и прочее; см. ниже).
Очистка кэша браузера.
Enable IndexedDB Cleanup
Очистка БД браузера.
Очистка данных, сохраненных в локальном хранилище браузера.
Очистка данных плагинов (примечание: дополнения - это НЕ плагины!).
Очистка процессов Service Workers.
Примечание: Активация этой опции с целью очистки данных, скопившихся в контейнерах (в т.ч. и временных) в совокупности с выбором очистки данных любого типа может привести к непредсказуемой потере: очищая один контейнер, приложение неизбежно удалит схожие (однотипные) данные во всех других. Тем не менее, я настоятельно советую включить ее.
Удаление списка регулярных выражений при удалении контейнера.
Возможные действия при обработке рефереров:
Примечание: Опция "Remove" может оказаться проблемной на ресурсах, требующих авторизации и дальнейших перенаправлений. Добавляйте такие сайты в "белый список".
Примечание: Я всегда выставляю в значение "Remove" первые две строки настроек (и добавляю разрешающие правила по мере необходимости):
- Any domain = Remove;
- Same domain = Remove.
Хотя дополнение имеет множество настроек, по сути, это единственная опция, которую следует активировать, чтобы любой контент (включая переход по ссылкам и т.п.) автоматически открывался во временных или временно-родительских контейнерах. Контейнер(-ы) с его веб-содержимым будет полностью удален при закрытии последней вкладки, связанной с ним.
Примечание: Самостоятельно ознакомьтесь с другими настройками дополнения (их множество).
Время удаления контейнера; здесь я выставляю минимальное: 2 мин.
Дополнение будет блокировать или подделывать и отправлять на сервер следующие данные:
- canvas;
- audio;
- history;
- window;
- domRect;
- svg;
- textMetrics;
- navigator;
- screen.
В дополнении предусмотрены следующие опции:
- fake - отсылать поддельные, псевдо(!)-сгенерированные данные; я рекомендую этот способ во избежание некоторых проблем с работоспособностью сайтов;
- ask for permission - спрашивать пользовательское разрешение;
- block everything - блокировать всё (гипотетически может создать определенные проблемы);
- allow only whitelist - разрешать только в соответствии с "белым списком";
- block only blacklist - блокировать только в соответствии с "черным списком";
- allow everything - разрешать всё.
Random number generator (псевдорандомный генератор данных) может находиться в следующих состояниях:
- none (completely white): сайту будет возвращаться "полностью белое" изображение. С этой опцией должна быть активирована также "Fake the alpha channel";
- non persistent: псевдорандомные численные данные будут генерироваться при каждом новом запросе;
- constant: постоянные данные;
- persistent: произвольные численные данные будут генерироваться единожды для каждого нового домена.
Примечание: Внимательно ознакомьтесь с вкладкой API в настройках дополнения, чтобы понять принципы работы со следующими типами данных:
- Canvas API
getContext
readout
toDataURL
toBlob
convertToBlob
mozGetAsFile
getImageData
isPointInPath
isPointInStroke
input
fillText
strokeText
webGL
readPixels
getParameter
getExtension
- Audio API
getFloatFrequencyData
getByteFrequencyData
getFloatTimeDomainData
getByteTimeDomainData
getChannelData
copyFromChannel
getFrequencyResponse
- History API
length
- Window API
opener
name
- DOMRect API
getClientRects
getBoundingClientRect
getBoxQuads
getBounds
getBBox
getStartPositionOfChar
getEndPositionOfChar
getExtentOfChar
getPointAtLength
intersectionRect
boundingClientRect
rootBounds
- SVG API
getTotalLength
getComputedTextLength
getSubStringLength
- TextMetrics API
width
actualBoundingBoxAscent
actualBoundingBoxDescent
actualBoundingBoxLeft
actualBoundingBoxRight
alphabeticBaseline
emHeightAscent
emHeightDescent
fontBoundingBoxAscent
fontBoundingBoxDescent
hangingBaseline
ideographicBaseline
- Navigator API
appCodeName
appName
appVersion
buildID
oscpu
platform
product
productSub
userAgent
vendor
vendorSub
- Screen API
width
height
availWidth
availHeight
availTop
availLeft
matches
outerWidth
outerHeight
Примечание: Не используйте вместе с этим дополнениями схожие, например:
- AudioContext Fingerprint Defender;
- Canvas Fingerprint Defender;
- Font Fingerprint Defender;
- WebGL Fingerprint Defender.
(или устанавливайте их в совокупности, но без CanvasBlocker).
Предусматривает следующие варианты:
- do nothing - действия отсутствуют; я рекомендую эту опцию;
- deny request - отклонить запрос;
- open in background - открыть в фоновом режиме;
- redirect page - осуществить перенаправление.
Примечание: Активация этой опции необходима для предотвращения конфликта обработки всплывающих окон со схожим встроенным средством самого браузера.
Примечание: Функционал Popup Blocker может быть заменен активацией соответствующей опции в общих настройках GUI uBlock Origin, но последняя обладает меньшими возможностями.
Я мог бы предложить "User-Agent Switcher and Manager" (рекомендовано MoFo) или "User-Agent Switcher" (последний - сразу в двух независимых версиях), однако не вижу смысла нагружать браузер лишним дополнением. К тому же, у меня имеется стойкое подозрение, что они НЕ будут работать во временных контейнерах. И потому рекомендую поступить проще - создать новую строку (тип: string; значение: текст):
Имя: general.useragent.override
Значение: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.9999.0 Safari/537.36 [это пример; вам следует самостоятельно найти и подставить необходимый]
Обновленные UA следует искать на сайте:
Примечание: Изменение UA браузера бессмысленно без тотального запрета скриптов; в противном случае, посредством скриптов происходит утечка реальной версии ОС и самого браузера.
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.