Компания Google представила релиз web-браузера Chrome 70. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 70:
- Пользователю предоставлена возможность выборочной активации дополнений только для определённых сайтов, с запретом применения дополнений для сайтов, не включённых в белый список. Также доступен режим индивидуальной активации дополнения на каждой странице, при котором дополнение включается только после явного клика на значке в панели. Указанные возможности можно использовать для защиты от скрытого совершения дополнениями нецелевых действий, таких как выуживание со страницы персональных данных или подстановки рекламы;
- Добавлена возможность перезагрузки разом нескольких вкладок — теперь можно выделить группу вкладок и нажать «Ctrl+R» или кнопку «Reload» в контекстном меню;
- Добавлен экспериментальный режим быстрого переключения на открытую вкладку из списка рекомендаций в адресной строке («Switch to this tab» в chrome://flags/#omnibox-tab-switch-suggestions). Для страницы, уже открытой в другой вкладке, будет показана кнопка для быстрого перехода к этой вкладке;
- Завершён трёхэтапный процесс изменения индикации безопасности соединения — убран значок с изображением замка для HTTPS, а цвет надписи «Not Secure» для соединений HTTP заменён с серого на красный.
- В адресную строку добавлен индикатор «File» для выделения доступа к локальным ресурсам. Ранее предложенное изменение, убирающие отображение схемы «file://» в адресной строке, отклонено.
- Учтено недовольство пользователей добавлением в Chrome 69 автоподключения к учётной записи и оставлением Cookie Google после применения функции удаления всех Cookie. В новой версии предложена настройка «Allow Chrome sign-in», позволяющая выключить привязку входа в Chrome с входом в сервисы Google. Функция удаления всех Cookie теперь очищает все без исключения Cookie, включая сессионные Cookie от Google. При очистке Cookie также автоматически разрывается подключение браузера к учётной записи Google.
Также изменён индикатор входа, который теперь позволяет сразу понять подключен пользователь или нет и включена ли в настройках синхронизация данных.
- Обеспечен автоматический выход из полноэкраного режима в случае отображения любых диалоговых окон, специальных запросов на аутентификацию, форм проведения платежей и окон выбора файлов. Выход из полноэкранного режима производится, чтобы исключить ситуации, когда злоумышленник может подтолкнуть пользователя к неверным действиям, манипулируя изменением окружающего контекста;
- Для платформы Windows 10 активирован API Web Bluetooth,
ранее доступный только на платформах Android, Chrome OS и macOS.
Web Bluetooth позволяет web-приложениям получить доступ к внешним устройствам, связанным через протокол Bluetooth Low Energy (BLE). Например, при помощи нескольких строк код на JavaScript можно получить доступ к внешним сенсорам, принтерам или экранам. Web Bluetooth API использует протокол GATT. Для обнаружения устройств применяется механизм Physical Web, позволяющий быстро получать ссылки на окружающие объекты при помощи Bluetooth-меток Eddystone; - В сборки для Windows добавлена возможность установки web-приложений, работающих в режиме Desktop Progressive Web Apps, который позволяет организовать работу с web-приложением, как с обособленной программой;
- Добавлен «Origin Trial» для API
Shape Detection, предоставляющий функциональность для распознавания наличия различных элементов на изображениях. На основе Shape Detection API созданы более высокоуровневые Face Detection API, Barcode Detection API и Text Detection API. На основе переданного при вызове битмапа API Face Detection вернёт позиции лиц, а также позиции глаз, носа и губ для каждого выявленного лица. Barcode Detection API позволяет декодировать штрихкоды и QR-коды в текстовый вид. Text Detection API позволяет получить текстовое представление текста, имеющегося в изображении (поддерживается только распознавание символов Latin-1); - В Web Authentication API расширены возможности, связанные с типом учётных данных PublicKeyCredential, применяемом для аутентификации на сайте с использованием USB-токенов и биометрических датчиков. Помимо работы на версиях Chrome для настольных систем, PublicKeyCredential теперь доступен и для платформы Android. Включена по умолчанию поддержка биометрических датчиков macOS TouchID и Android Fingerprint;
- В тег «script» добавлена поддержка атрибута «referrerpolicy», позволяющего контролировать какие данные будут передаваться в заголовке Referrer (ранее данный атрибут поддерживался для элементов a, link, area, img и iframe);
- Реализован интерфейс Intervention report, позволяющий информировать серверное приложение о решении браузера не выполнять запрос из соображений безопасности, производительности и раздражения пользователя. Уведомление отправляется внутри HTTP-заголовка Report-To;
- В конструктор worker-ов добавлен новый атрибут name, позволяющий отличать выносные фоновые обработчики (dedicated worker) по имени, когда с одним URL связано несколько обработчиков;
- Добавлена поддержка финальной спецификации протокола TLS 1.3 (RFC 8446), который отличается удалением устаревших и ненадёжных криптографических примитивов (MD5, SHA-224) и возможностей (сжатие, повторное согласование, не-AEAD шифры, статический обмен ключами RSA и DH, указание unix-времени в Hello-сообщениях и т.п.), работает только в режиме forward secrecy (компрометации одного из долговременных ключей не позволяет расшифровать перехваченный сеанс), обеспечивает более высокую производительность, поддерживает режим 0-RTT (устраняет задержки при возобновлении ранее установленных HTTPS-соединений), поддерживает
потоковый шифр ChaCha20, алгоритм аутентификации сообщений (MAC) Poly1305, ключи аутентификации на основе цифровых подписей Ed25519, HKDF (HMAC-based Extract-and-Expand Key Derivation Function), ключи на основе алгоритмов x25519 (RFC 7748) и x448 (RFC 8031); - Стабилизирован метод Array.prototype.sort;
- В JavaScript-движке V8 реализована поддержка техники Embedded builtins, позволяющей экономить память благодаря применению общего сгенерированного кода в разных изолированных обработчиках V8. Оптимизация включена для всех платформ, за исключением ia32;
- Для WebAssembly добавлена экспериментальная поддержка многопоточности (включение через chrome://flags/#enable-webassembly-thread);
- Прекращена поддержка AppCache (технология для организации работы web-приложения в offline-режиме). В качестве причины называется желание избавиться от одного из векторов для совершения атак, связанных с межсайтовым скриптингом.
Кроме нововведений и исправления ошибок в новой версии устранено 40 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 23 премии на сумму 22 тысячи долларов США (по одной премии в $3500 и $2000, три премии $3000, пять премий $1000 и пять премий $500). Размер 3 вознаграждений пока не определён.