Что удаляет Brave из движка Chromium? Подписаться
(Обратите внимание, что эта страница находится в разработке и может часто обновляться)
Brave для настольных компьютеров построен на базе проекта с открытым исходным кодом Chromium. Мы добавляем функции поверх того, что уже существует, и также удаляем функции или части кода. Эти отклонения, которые мы делаем, затрагивая основной код Chromium, выполняются с помощью патчей.
Chromium не то же самое, что Google Chrome. Для некоторых отличий см. https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md.
Как это работает
Если вы хотите провести аудит кода, начните с репозитория brave-browser . В нашем вики есть инструкции о том, какие шаги необходимо выполнить для сборки после клонирования исходного кода
Исходный код Chromium загружен
Утилита gclient (часть инструмента depot tools) загрузит официальный исходный код Chromium. Тег, который загружается, содержится в нашем package.json(например,70.0.3538.35
). Весь исходный код будет загружен в каталог./src/
Код Brave загружен
Как часть процесса настройки, мы также загружаем наш собственный код. Репозиторий brave-core содержит код, который делает браузер Brave. Ветвь, которую следует проверить, также содержится в этом package.json. Также имеется файл DEPS в brave-core, который подключает суб-зависимости (такие как brave-extension)
Запускаются хуки
После выполнения gclient sync и загрузки всего кода (включая brave-core) запускаются хуки. Один из хуков, который запускается, применяет патчи (которые вы можете увидеть здесь), содержащиеся в brave-core. Если вы хотите узнать больше деталей о том, КАК работает патчинг, вы можете посмотреть на странице нашего вики по патчингу.
Какие функции Chromium удаляются по причинам конфиденциальности/безопасности?
Сервисы и функции, которые мы полностью отключаем
- Интеграция с учетными записями Google (GAIA) отключена
- Все функции, которые отправляют данные в Google, удалены из настроек
- Prefetching DNS отключено
- Chrome Google URL Tracker выключен
- Надежность доменных сервисов отключена
- Инлайн-расширения отключены
- Фоновая синхронизация отключена
- Гиперссылка
ping
атрибут отключен - Отключить Battery API
- Отключить WebBluetooth API
- Загрузка журнала отладки WebRTC отключена
- Загрузка настроек после сброса профиля отключена
- Извлечение настроек по умолчанию OEM после сброса профиля отключено
- Загрузка журнала аварийных сбоев отключена
- Google Cloud Messaging отключена
- Firebase Cloud Messaging отключена
- Обновления канала клиента Push отключены
- Трекер сетевого времени отключен
- Google-assisted нормализация адресов отключена
-
Определенные функции отключены при запуске через CLI(поиск по
disabled_features
) - Удалить репозиторий dl.google.com из пакетов Linux
- Отключить отчеты метрик
- Отключить предложения навигации для URL-адресов-подделок
- Отключить Reporting Observers и Reporting API
- Отключить Scroll To Text Fragment
- Отключить датчики движения
- Отключить navigator.credentials
- Отключить интеграцию Android OTP
- Отключить SXG
- Отключить NFC
- Отключить WebBundles
- Отключить Client Hints (lang)
- Отключить Direct / Raw Sockets
- Отключить обнаружение простоя
- Отключить триггеры уведомлений
- Отключить File System API
- Отключить Digital Goods API
- Отключить Serial API
- Отключить Federated Learning of Cohorts (FLoC)
- Отключить Network Information API
Сервисы, через которые мы проксируем через серверы Brave
Google не получает никаких данных о том, какой клиент выполняет эти запросы (даже ваш IP-адрес).
- Запросы SafeBrowsing проксируются
- Запросы геолокации проксируются
- Обновления плагинов проксируются
- Запросы на отмену сертификатов обрабатываются через прокси-серверы
- Запросы CRLSets обрабатываются через прокси-серверы
- Запросы обновлений компонентов обрабатываются через прокси-серверы
- Запросы словарей проверки орфографии обрабатываются через прокси-серверы
- Запросы в devtools обрабатываются через прокси-серверы
Конечные точки, использующие прокси
https://dl.google.com/release2/chrome_component/*crl-set*
https://*.gvt1.com/edgedl/release2/chrome_component/*
https://*.gvt1.com/edgedl/chrome/dict/*.bdic
https://storage.googleapis.com/update-delta/hfnkpimlhhgieaddgfemjhofmfblmnib/.+crxd
https://safebrowsing.googleapis.com/
https://sb-ssl.google.com/
https://safebrowsing.google.com
https://ssl.gstatic.com
https://gstatic.com
https://update.googleapis.com
https://chrome-devtools-frontend.appspot.com
https://clients2.googleusercontent.com
https://clients2.google.com
https://clients4.google.com
https://chrome-devtools-frontend.appspot.com
https://accounts.google.com
https://*.infura.io
https://*.gvt1.com/edgel/chromewebstore/*/*
https://*.gvt1.com/edgedl/release2/*/*
http://dl.google.com/release2/*/*
Измененные функции и функциональность
- Максимальное время жизни куки установлено на 7 дней для куки установленных через JavaScript и 6 месяцев для куки установленных через HTTP
- Значения Referrer ограничены
strict-origin-when-cross-origin
и могут только ужесточаться по политике рекомендаций, не ослабляться. Кроме того, для кросс-оригинальных запросов от службы.onion
указаны пустые заголовкиReferer
иnull
заголовокOrigin
, как в браузере Tor. - Media Router (Chromecast) отключен по умолчанию на рабочих столах. Вы можете включить его, переключив переключатель в brave://settings.
- Удаленные запросы защиты от загрузки не включают URL-адреса и имена файлов (https://github.com/brave/brave-core/pull/6763).
- StorageManager.estimate сообщает фиксированное значение (проблема #11543)
- Многие функции имеют добавленную случайность или обобщенные значения для защиты от снятия отпечатков, включая:
- Методы чтения обратной связи Canvas
- User Agent, дальнейшие действия в проблемах #12097, #12638, #14740
- enumerateDevices
- Сериализация веб-звука
- Отладка WebGL
- Плагины
- hardwareConcurrency
- deviceMemory
- Список хостов с закрепленными сертификатами CA заменен на специфический Brave.
- Восстановить требование жеста для асинхронного доступа к записи в буфер обмена
Комментарии
Некоторые из вышеупомянутых проблем (а также другие вопросы) ранее отслеживались в https://github.com/brave/brave-browser/issues/13.
Вы можете заметить некоторые запросы к доменам Google. Некоторые из них, такие какclients*.google.com
иupdate.googleapis.com
, необходимы для проверки обновлений расширений, если вы установили расширения.
Как Brave сравнится с ungoogled-chromium?
Описание ungoogled-chromium
, согласно их странице GitHub:
ungoogled-chromium это Google Chromium, без интеграции с Google. Он также имеет некоторые настройки для улучшения конфиденциальности, контроля и прозрачности(практически все из которых требуют ручной активации или включения).
У нас есть сохраненная задачапо внедрению соответствующих патчей из проектаungoogled-chromium
. Проектungoogled-chromium
также имеетсохраненную задачу, в которой они упоминают внедрение патчей из Brave.