Firma Google zaprezentowała wydanie przeglądarki internetowej Chrome 98. Jednocześnie dostępna jest stabilna wersja wolnego projektu Chromium, będącego podstawą Chrome. Przeglądarka Chrome wyróżnia się wykorzystaniem logo Google, systemem powiadamiania w przypadku awarii, modułami do odtwarzania chronionych treści wideo (DRM), automatycznym instalowaniem aktualizacji oraz przesyłaniem parametrów RLZ podczas wyszukiwania. Następna wersja Chrome 99 zaplanowana jest na 1 marca.
Główne zmiany w Chrome 98:
- Do przeglądarki wbudowano własne repozytorium głównych certyfikatów instytucji certyfikujących (Chrome Root Store), które będzie używane zamiast zewnętrznych repozytoriów specyficznych dla każdej platformy. Repozytorium zostało zrealizowane na wzór niezależnego repozytorium głównych certyfikatów w Firefox, które służy jako pierwszy poziom weryfikacji łańcucha zaufania certyfikatów przy otwieraniu stron w HTTPS. Nowe repozytorium na razie nie jest używane domyślnie. W celu uproszczenia przenoszenia konfiguracji powiązanych z systemowymi repozytoriami oraz zapewnienia przenośności, przez pewien czas będzie obowiązywał okres przejściowy, w którym w Chrome Root Store znajdzie się pełny zestaw certyfikatów zatwierdzonych na większości obsługiwanych platform.
- Trwa realizacja planu wzmocnienia ochrony przed atakami związanymi z dostępem do zasobów w lokalnej sieci lub na komputerze użytkownika (localhost) z skryptów ładowanych przy otwieraniu strony. Podobne zapytania są wykorzystywane przez przestępców do przeprowadzania ataków CSRF na routery, punkty dostępu, drukarki, korporacyjne interfejsy webowe oraz inne urządzenia i usługi, które przyjmują zapytania tylko z lokalnej sieci.
Aby zabezpieczyć się przed takimi atakami, w przypadku dostępu do jakichkolwiek subzasobów w wewnętrznej sieci, przeglądarka zacznie wysyłać wyraźne zapytanie o uprawnienia do ładowania takich subzasobów. Żądanie uprawnień realizowane jest przez wysłanie na serwer głównej witryny żądania CORS (Cross-Origin Resource Sharing) z nagłówkiem „Access-Control-Request-Private-Network: true” przed dostępem do sieci wewnętrznej lub localhost. Po potwierdzeniu operacji w odpowiedzi na to żądanie serwer musi zwrócić nagłówek „Access-Control-Allow-Private-Network: true”. W Chrome 98 weryfikacja została wdrożona w trybie testowym, a w przypadku braku potwierdzenia w konsoli webowej wyświetlane jest ostrzeżenie, jednak samo żądanie subzasobu nie jest blokowane. Blokada ma być aktywowana najwcześniej w wersji Chrome 101.
- W ustawienia konta zintegrowano narzędzia do zarządzania włączeniem rozszerzonego trybu ochrony przed niebezpiecznymi stronami (Enhanced Safe Browsing), w którym aktywowane są dodatkowe kontrole, aby chronić przed phishingiem, złośliwą aktywnością i innymi zagrożeniami w sieci. Po aktywacji trybu w koncie Google teraz pojawi się propozycja aktywacji tego trybu także w Chrome.
- Dodano model do identyfikacji prób phishingowych po stronie klienta, zrealizowany z wykorzystaniem platformy uczenia maszynowego TFLite (TensorFlow Lite) i nie wymagający wysyłania danych do wykonania weryfikacji po stronie Google (przy czym wysyłana jest telemetria z informacjami o wersji modelu oraz obliczonych wagach dla każdej kategorii). Gdy wykryta zostanie próba phishingu, użytkownikowi przed otwarciem podejrzanej witryny pojawi się strona z ostrzeżeniem.
- W API Client Hints, rozwijanym jako zamiennik nagłówka User-Agent, oferującym selektywne dostarczanie danych o konkretnych parametrach przeglądarki i systemu (wersja, platforma itp.) tylko po żądaniu, serwerem, zrealizowano możliwość podstawienia w liście identyfikatorów przeglądarki fikcyjnych nazw, na wzór mechanizmu GREASE (Generate Random Extensions And Sustain Extensibility) używanego w TLS. Na przykład, oprócz ‚”Chrome”; v=„98”‘ i ‚”Chromium”; v=„98”‘, do listy może być dodany losowy identyfikator nieistniejącej przeglądarki ‚”Not;Browser”; v=„12”‘. Tego rodzaju podstawienie pozwoli zidentyfikować problemy z obsługą identyfikatorów nieznanych przeglądarek, co prowadzi do sytuacji, w której alternatywne przeglądarki muszą udawać inne popularne przeglądarki, aby obejść weryfikację w listach dozwolonych przeglądarek.
- Od 17 stycznia w katalogu Chrome Web Store przestały być akceptowane dodatki korzystające z drugiej wersji manifestu Chrome. Nowe dodatki będą teraz akceptowane tylko z trzecią wersją manifestu. Deweloperzy wcześniej dodanych dodatków, jak wcześniej, będą mogli publikować aktualizacje z drugą wersją manifestu. Całkowite zaprzestanie wsparcia dla drugiej wersji manifestu zaplanowane jest na styczeń 2023 roku.
- Dodano wsparcie dla kolorowych fontów wektorowych w formacie COLRv1 (podzbiór fontów OpenType, który zawiera nie tylko wektorowe glify, ale również warstwę z informacjami o kolorze), które mogą być używane na przykład do tworzenia wielokolorowych emoji. W odróżnieniu od wcześniej wspieranego formatu COLRv0, w COLRv1 wprowadzono możliwość użycia gradientów, nakładek i transformacji. Format zapewnia również kompaktową formę przechowywania, efektywne kompresowanie oraz dopuszcza ponowne wykorzystanie konturów, co znacząco zmniejsza rozmiar fontu. Na przykład, font Noto Color Emoji w formie rastrowej zajmuje 9MB, a w formacie wektorowym COLRv1 – 1.85MB.

- W trybie Origin Trials (eksperymentalne możliwości wymagające osobnej aktywacji) wprowadzono API Region Capture, pozwalające na kadrowanie przechwytywanego wideo. Na przykład, kadrowanie może być potrzebne w aplikacjach webowych, które przechwytują wideo z zawartością swojej karty, aby wyciąć określoną zawartość przed wysłaniem. Origin Trial oznacza możliwość pracy z określonym API w aplikacjach ładowanych z localhost lub 127.0.0.1, lub po zarejestrowaniu się i uzyskaniu specjalnego tokena, który działa przez ograniczony czas dla konkretnej strony.
- Do właściwości CSS 'contain-intrinsic-size' dodano wsparcie dla wartości 'auto', przy wskazaniu której użyty zostanie ostatnio zapamiętany rozmiar elementu (w połączeniu z 'content-visibility: auto' deweloper nie musi zgadywać odrysowanego rozmiaru elementu).
- Dodano właściwość AudioContext.outputLatency, dzięki której można uzyskać informacje o przewidywanej latencji przed wydaniem dźwięku (opóźnienie między żądaniem dźwięku a rozpoczęciem przetwarzania otrzymanych danych przez urządzenie wyjściowe dźwięku).
- Właściwość CSS color-scheme umożliwiająca określenie, w jakich schematach kolorów element może być poprawnie wyświetlany („light”, „dark”, „day mode” i „night mode”), została wzbogacona o parametr „only”, pozwalający na wykluczenie wymuszonej zmiany schematu kolorów dla poszczególnych elementów HTML. Na przykład, jeśli za pomocą „div { color-scheme: only light }” ustawimy, to dla elementu div będzie używana tylko jasna tematyka, nawet jeśli w przeglądarce wymuszone jest włączenie ciemnego motywu.
- W CSS dodano wsparcie dla zapytań media ‘dynamic-range’ i ‘video-dynamic-range’ do określenia obecności ekranu obsługującego HDR (Wysoki Zakres Dynamiczny).
- W funkcji window.open() dodano możliwość wyboru otwarcia linku w nowej karcie, nowym oknie lub wyskakującym oknie. Ponadto właściwość window.statusbar.visible teraz zwraca „false” dla wyskakujących okien i „true” dla kart oraz okien. const popup = window.open(‘_blank’,»,’popup=1′); // Otwórz w wyskakującym oknie const tab = window.open(‘_blank’,»,’popup=0′); // Otwórz w karcie
- Dla okien i workerów wprowadzono metodę structuredClone(), która pozwala na stworzenie rekurencyjnych kopii obiektów, obejmujących właściwości nie tylko wskazanego obiektu, ale także wszystkich innych obiektów, na które wskazuje bieżący obiekt.
- W Web Authentication API dodano wsparcie dla rozszerzenia specyfikacji FIDO CTAP2, która pozwala zdefiniować minimalny dozwolony rozmiar PIN-u (minPinLength).
- Dla instalowanych odizolowanych aplikacji webowych dodano komponent Window Controls Overlay, który rozszerza obszar roboczy aplikacji na całe okno, w tym obszar tytułu, na który nakładają się standardowe przyciski sterowania oknem (zamknięcie, minimalizacja, maksymalizacja). Aplikacja webowa może zarządzać renderowaniem i obsługą wejścia w całym oknie, z wyjątkiem nałożonego bloku z przyciskami sterowania oknem.
- W WritableStreamDefaultController dodano właściwość obsługi sygnałów, która zwraca obiekt AbortSignal, za pomocą którego można natychmiast zatrzymać operacje zapisu w WritableStream, nie czekając na ich zakończenie.
- W WebRTC usunięto wsparcie dla mechanizmu negocjacji kluczy SDES, który w 2013 roku został ogłoszony przez organizację IETF jako przestarzały z powodu problemów z bezpieczeństwem.
- Domyślnie wyłączono API U2F (Cryptotoken), które wcześniej ogłoszone zostało jako przestarzałe, a jego miejsce zajęło API Web Authentication. API U2F zostanie całkowicie usunięte w Chrome 104.
- W API Directory ogłoszono przestarzałe pole installed_browser_version, które zostało zastąpione nowym polem pending_browser_version, różniącym się tym, że zawiera informacje o wersji przeglądarki uwzględniającej pobrane, ale nie zastosowane aktualizacje (tj. wersja, która będzie obowiązywać po ponownym uruchomieniu przeglądarki).
- Usunięto parametry, które umożliwiały przywrócenie wsparcia dla TLS 1.0 i 1.1.
- Wprowadzono ulepszenia narzędzi dla programistów webowych. Dodano zakładkę do oceny działania pamięci podręcznej przejść (Back-forward cache), zapewniającej natychmiastowe przejście przy użyciu przycisków „Wstecz” i „Dalej”. Dodano możliwość emulacji zapytań mediów forced-colors. W edytorze Flexbox dodano przyciski do wsparcia właściwości row-reverse i column-reverse. W zakładce „Changes” zapewniono wyświetlanie zmian po formatowaniu kodu, co ułatwia analizę zminimalizowanych stron.

Realizacja panelu podglądu kodu została zaktualizowana do wydania edytora kodu CodeMirror 6, w którym znacznie zwiększono wydajność pracy z bardzo dużymi plikami (WASM, JavaScript), rozwiązano problemy z przypadkowymi przesunięciami podczas nawigacji i poprawiono rekomendacje systemu autouzupełniania podczas edytowania kodu. W panelu z właściwościami CSS dodano możliwość filtrowania wyników według nazwy lub wartości właściwości.

Oprócz nowości i poprawek błędów w nowej wersji usunięto 27 podatności. Wiele z podatności zostało zidentyfikowanych w wyniku automatycznego testowania przy użyciu narzędzi AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nie zidentyfikowano krytycznych problemów, które umożliwiają obejście wszystkich poziomów ochrony przeglądarki i wykonanie kodu w systemie poza środowiskiem sandbox. W ramach programu wypłaty nagród za wykrywanie luk bezpieczeństwa, w tym wydania, firma Google przyznała 19 nagród o łącznej wartości 88 tysięcy dolarów USA (dwie nagrody po 20000 dolarów, jedna nagroda po 12000 dolarów, dwie nagrody po 7500 dolarów, cztery nagrody po 1000 dolarów oraz jedna nagroda po 7000, 5000, 3000 i 2000 dolarów).
Źródło: opennet.ru



