La dernière version de Chrome 86 et la sortie stable de Chromium sont disponibles.
Les principales modifications de Chrome 86 :
- protection contre l'envoi non sécurisé de formulaires sur des pages chargées via HTTPS mais envoyant des données via HTTP.
- Le blocage des téléchargements non sécurisés (http) de fichiers exécutables est complété par le blocage des téléchargements non sécurisés d'archives (zip, iso, etc.) et l'affichage d'avertissements lors du téléchargement non sécurisé de documents (docx, pdf, etc.). La prochaine version devrait inclure le blocage des documents et l'affichage d'avertissements pour les images, les fichiers texte et multimédias. Ce blocage est mis en œuvre, car le téléchargement de fichiers non chiffrés peut être utilisé pour mener des actions malveillantes en falsifiant le contenu lors d'attaques MITM.
- Dans le menu contextuel, l'option « Toujours afficher l'URL complète » est désormais affichée par défaut, alors qu'auparavant, son activation nécessitait un changement de paramètres sur la page about:flags. L'URL complète peut également être consultée en double-cliquant sur la barre d'adresse. Rappelons qu'à partir de Chrome 76, l'adresse est affichée par défaut sans le protocole ni le sous-domaine www. Dans Chrome 79, l'option pour revenir à l'ancien comportement a été supprimée, mais après l’insatisfaction des utilisateurs, Chrome 83 a introduit un nouveau drapeau expérimental ajoutant une option au menu contextuel pour désactiver la dissimulation et afficher l'URL complète dans toutes les conditions.
- L'initiative de suppression du support FTP a été relancée. Dans Chrome 86, le FTP est désactivé par défaut pour environ 1 % des utilisateurs, et dans Chrome 87, la couverture du désenregistrement sera portée à 50 %, mais le support pourra être réactivé avec l'option "—enable-ftp" ou "—enable-features=FtpProtocol". Dans Chrome 88, le support FTP sera complètement désactivé.
- Dans la version Android, à l'instar de la version de bureau, le gestionnaire de mots de passe a intégré un contrôle des identifiants et mots de passe enregistrés avec une base de données de comptes compromis, affichant un avertissement en cas de problèmes ou d'utilisation de mots de passe triviales. Le contrôle se fait auprès d'une base de données couvrant plus de 4 milliards de comptes compromis apparus dans des fuites de bases utilisateurs. Pour préserver la confidentialité, une vérification des préfixes de hachage est réalisée côté utilisateur, les mots de passe et leurs hachages complets ne sont pas transférés à l'extérieur.
- La version Android a également intégré le bouton « Contrôle de sécurité » (Safety check) et le mode de protection avancée contre les sites dangereux (Enhanced Safe Browsing). Le bouton « Safety check » fournit un résumé des problèmes de sécurité éventuels, tels que l'utilisation de mots de passe compromis, l'état du contrôle des sites malveillants (Safe Browsing), la présence de mises à jour non installées et la détection d'extensions malveillantes. Le mode de protection avancée active des vérifications supplémentaires pour défendre contre le phishing, les activités malveillantes et d'autres menaces sur le Web, et inclut une protection supplémentaire pour le compte Google et les services Google (Gmail, Drive, etc.). Dans le mode Safe Browsing standard, les vérifications sont effectuées localement à partir d'une base de données périodiquement téléchargée sur le système client, tandis qu'en Enhanced Safe Browsing, les informations sur les pages et téléchargements en temps réel sont envoyées pour vérification côté Google, permettant de réagir rapidement aux menaces dès leur détection, sans attendre la mise à jour de la liste noire locale.
- Le support du fichier indicateur ".well-known/change-password" a été ajouté, permettant aux propriétaires de sites de spécifier l'adresse des formulaires web pour changer le mot de passe. En cas de compromission des identifiants de l'utilisateur, Chrome proposera désormais immédiatement un formulaire de changement de mot de passe basé sur les informations fournies par ce fichier.
- Un nouvel avertissement intitulé «Conseil de sécurité» a été mis en place, apparaissant lors de l'ouverture de sites dont le domaine est très similaire à celui d'un autre site et l'heuristique indique un fort risque de spoofing (par exemple, goog0le.com au lieu de google.com).
* Prise en charge du cache arrière-avant (Back-forward cache) mise en œuvre, permettant un passage instantané lors de l'utilisation des boutons «Précédent» et «Suivant» ou lors de la navigation sur les pages précédemment consultées du site actuel. Le cache est activé via le paramètre chrome://flags/#back-forward-cache.
- Optimisation de la consommation de ressources CPU pour les fenêtres en dehors de la zone de visualisation. Chrome vérifie si la fenêtre du navigateur est recouverte par d'autres fenêtres et évite de rendre des pixels dans les zones de superposition. Cette optimisation a été activée pour un petit pourcentage d'utilisateurs dans Chrome 84 et 85, et est maintenant activée de manière universelle. Par rapport aux versions précédentes, une incompatibilité avec les systèmes de virtualisation a également été résolue, qui provoquait l'affichage de pages blanches vides.
- Réduction renforcée des ressources pour les onglets en arrière-plan. Ces onglets ne peuvent désormais consommer plus de 1 % des ressources CPU et peuvent être activés au maximum une fois par minute. Après cinq minutes en arrière-plan, les onglets sont gelés, à l'exception de ceux qui diffusent du contenu multimédia ou effectuent un enregistrement.
- Le travail de normalisation de l'en-tête HTTP User-Agent a repris. Dans la nouvelle version, tous les utilisateurs bénéficient de la prise en charge du mécanisme User-Agent Client Hints, développé comme remplacement du User-Agent. Ce nouveau mécanisme implique la fourniture sélective de données sur des paramètres spécifiques du navigateur et du système (version, plateforme, etc.) uniquement sur demande du serveur, permettant aux utilisateurs de fournir sélectivement ces informations aux propriétaires de sites. Lors de l'utilisation de User-Agent Client Hints, l'identifiant n'est pas transmis par défaut sans demande explicite, rendant impossible l'identification passive (par défaut, seul le nom du navigateur est indiqué).
L'indication de la disponibilité d'une mise à jour et de la nécessité de redémarrer le navigateur pour son installation a été modifiée. Au lieu d'une flèche colorée dans le champ de l'avatar de compte, l'inscription «Update» apparaît maintenant. - Un travail a été effectué pour traduire le navigateur afin d'adopter une terminologie inclusive. Dans les noms des politiques, les termes « whitelist » et « blacklist » ont été remplacés par « allowlist » et « blocklist » (les politiques déjà ajoutées continueront de fonctionner, mais un avertissement sera affiché pour signaler leur classement comme obsolètes). Dans le code et les noms de fichiers, les mentions de « blacklist » ont été remplacées par « blocklist ». Les mentions visibles aux utilisateurs de « blacklist » et « whitelist » ont été remplacées dès le début de 2019.
Une fonction expérimentale d'édition des mots de passe enregistrés a été ajoutée, activée par le biais du drapeau « chrome://flags/#edit-passwords-in-settings ». - L'API Native File System a été classée comme stable et accessible au public, permettant de créer des applications web interagissant avec les fichiers dans le système de fichiers local. Par exemple, la nouvelle API pourrait être utile dans les environnements de développement intégrés, les éditeurs de texte, d'images et de vidéos exécutés dans le navigateur. Pour obtenir des capacités d'écriture et de lecture directes sur les fichiers, ou d'utiliser des dialogues pour ouvrir et sauvegarder des fichiers, ainsi que pour naviguer dans le contenu des répertoires, l'application demande une confirmation spéciale à l'utilisateur.
- Un sélecteur CSS « :focus-visible » a été ajouté, qui utilise la même heuristique que celle utilisée par le navigateur pour décider d'afficher l'indicateur de changement de focus (lorsqu'on déplace le focus sur un bouton via des combinaisons de touches, l'indicateur apparaît, mais il n'apparaît pas lors d'un clic de souris). L'ancien sélecteur CSS « :focus » met toujours en surbrillance le focus. De plus, une option « Quick Focus Highlight » a été ajoutée aux paramètres, qui, lorsqu'elle est activée, affichera un indicateur de focus supplémentaire à côté des éléments actifs, lequel reste visible même si les éléments de style pour la surbrillance visuelle du focus sont désactivés via CSS sur la page.
- En mode Origin Trials (fonctionnalités expérimentales nécessitant une activation distincte), plusieurs nouvelles API ont été ajoutées. L'Origin Trial permet aux applications chargées depuis localhost ou 127.0.0.1 d'accéder à l'API spécifiée, ou d'accéder à l'API après enregistrement et obtention d'un jeton spécial, valable pour une durée limitée pour un site spécifique.
- L'API WebHID pour l'accès bas niveau aux dispositifs HID (Human Interface Devices, claviers, souris, manettes de jeu, pavés tactiles), permettant de mettre en œuvre la logique de travail avec un dispositif HID en JavaScript pour gérer les dispositifs HID rares sans nécessiter de pilotes spécifiques dans le système. Avant tout, la nouvelle API vise à fournir un support pour les manettes de jeu.
- Les informations de l'écran API étendent les capacités de placement de fenêtre de l'API avec le support des configurations multi-écrans. Contrairement à window.screen, la nouvelle API permet de manipuler le placement de la fenêtre dans l'espace d'écran global des systèmes multi-moniteurs, sans se limiter à l'écran actuel.
- La méta-tag battery-savings permet au site d'informer le navigateur de la nécessité d'activer les modes de réduction de la consommation d'énergie et d'optimisation de la charge sur le CPU.
- L'API COOP Reporting informe des violations potentielles des politiques d'isolation Cross-Origin-Embedder-Policy (COEP) et Cross-Origin-Opener-Policy (COOP), sans appliquer de contraintes réelles.
- L'API Credential Management propose un nouveau type de données d'identification, PaymentCredential, fournissant une confirmation supplémentaire des opérations de paiement. La partie vérificatrice, par exemple, une banque, peut générer une clé publique, PublicKeyCredential, qui peut être demandée par le vendeur pour une confirmation de paiement sécurisée supplémentaire.
- L'API PointerEvents a ajouté le support des angles de hauteur (l'angle entre le stylet et l'écran) et d'azimut (l'angle entre l'axe X et la projection du stylet sur l'écran), au lieu des angles TiltX et TiltY (les angles entre le plan du stylet et l'un des axes et le plan des axes Y et Z). Des fonctions de conversion entre hauteur/azimut et TiltX/TiltY ont également été ajoutées.
- L'encodage des espaces dans les URL a été modifié lors de leur traitement dans les gestionnaires de protocole — la méthode navigator.registerProtocolHandler() remplace désormais les espaces par «» au lieu de «+», ce qui unifie le comportement avec d'autres navigateurs, comme Firefox.
- En CSS, un pseudo-élément "::marker" a été ajouté, permettant de personnaliser la couleur, la taille, la forme et le type des numéros et des points pour les listes dans les blocs
- et
- .
- Le support de l'en-tête HTTP Document-Policy a été ajouté, permettant de définir des règles d'accès aux documents, semblables au mécanisme d'isolation sandbox pour les iframe, mais plus universel. Par exemple, via Document-Policy, il est possible de limiter l'utilisation d'images de mauvaise qualité, de désactiver des API JavaScript lentes, de configurer des règles de chargement des iframe, des images et des scripts, de limiter la taille totale du document et le trafic, d'interdire les méthodes entraînant le rechargement de la page, et de désactiver la fonction Scroll-To-Text.
- Le support des options ‘inline-grid’, ‘grid’, ‘inline-flex’ et ‘flex’ via la propriété CSS ‘display’ a été ajouté à l'élément
- La méthode ParentNode.replaceChildren() a été ajoutée pour remplacer tous les éléments enfants d'un nœud parent par un autre nœud DOM. Auparavant, le remplacement des nœuds pouvait être effectué en combinant les méthodes node.removeChild() et node.append() ou node.innerHTML et node.append().
- Le spectre des schémas d'URL autorisés pour le remplacement via registerProtocolHandler() a été élargi. La liste des schémas inclut les protocoles décentralisés cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns et ssb, permettant de définir des liens vers des éléments indépendamment du site ou de la passerelle fournissant l'accès à la ressource.
- L'API du presse-papiers asynchrone a ajouté le support du format text/html pour le copy-paste de HTML via le presse-papiers (lors de la lecture et de l'écriture dans le presse-papiers, les constructions HTML dangereuses sont nettoyées). Ce changement permet, par exemple, d'organiser dans les éditeurs web le collage et la copie de texte formaté avec des images et des liens.
- WebRTC a ajouté la possibilité de connecter des gestionnaires de données personnalisés, appelés aux étapes d'encodage ou de décodage de WebRTC MediaStreamTrack. Par exemple, cette possibilité peut être utilisée pour ajouter un support de cryptage de bout en bout des données transmises via des serveurs intermédiaires.
Dans le moteur JavaScript V8, l'implémentation de Number.prototype.toString a été accélérée de 75 %. Les classes asynchrones ont ajouté une propriété .name avec une valeur vide. La méthode Atomics.wake a été supprimée, ayant été renommée en Atomics.notify pour correspondre à la spécification ECMA-262. Le code de l'outil de test de fuzzing JS-Fuzzer a été ouvert. - Dans le compilateur initial (baseline) Liftoff pour WebAssembly, la possibilité d'utiliser des instructions vectorielles SIMD a été ajoutée pour accélérer les calculs. Selon les tests, cette optimisation a permis d'accélérer certaines épreuves de 2,8 fois. Une autre optimisation a considérablement accéléré l'appel des fonctions JavaScript importées depuis WebAssembly.
- Les outils pour les développeurs web ont été élargis : le panneau Media a ajouté des informations sur les lecteurs utilisés pour lire les vidéos sur la page, y compris des données sur les événements, des journaux, des valeurs de propriétés et des paramètres de décodage des images (par exemple, il est possible de déterminer les causes de perte d'images et les problèmes d'interaction en JavaScript).
- Dans le menu contextuel du panneau Éléments, la possibilité de créer des captures d'écran d'un élément sélectionné a été ajoutée (par exemple, il est possible de créer une capture d'écran de la table des matières ou d'un tableau).
- Dans la console web, le panneau d'avertissement sur les problèmes a été remplacé par un message ordinaire, et les problèmes liés aux cookies tiers sont cachés par défaut dans l'onglet Problèmes et peuvent être activés avec un commutateur spécial.
- Dans l'onglet Rendu, un bouton « Désactiver les polices locales » a été ajouté, permettant de simuler l'absence de polices locales, et dans l'onglet Capteurs, il est désormais possible de simuler une inactivité de l'utilisateur (pour les applications utilisant l'API Idle Detection).
- Dans le panneau Application, des informations détaillées sur chaque iframe, chaque fenêtre ouverte et les pop-ups sont fournies, y compris des données sur l'isolation Cross-Origin via COEP et COOP.
Le remplacement de l'implémentation du protocole QUIC par la variante développée dans la spécification IETF a commencé, à la place de la variante QUIC de Google.
En plus des nouvelles fonctionnalités et des corrections de bugs, la nouvelle version a corrigé 35 vulnérabilités. Beaucoup de ces vulnérabilités ont été détectées grâce à des tests automatisés avec les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Une vulnérabilité (CVE-2020-15967, accès à une zone de mémoire libérée dans le code d'interaction avec Google Payments) est marquée comme critique, c'est-à-dire qu'elle permet de contourner tous les niveaux de protection du navigateur et d'exécuter du code sur le système en dehors de l'environnement sandbox. Dans le cadre du programme de récompenses pour la découverte de vulnérabilités pour cette version, Google a versé 27 primes pour un total de 71500 dollars (une prime de 15000 $, trois primes de 7500 $, cinq primes de 5000 $, deux de 3000 $, une de 200 $ et deux primes de 500 $). Le montant de 13 récompenses reste à déterminer.
Provenant de Opennet.ru
Source : linux.org.ru
