Local List Mode

Gdy klienci zdecydują się używać w tym trybie Bezpiecznego przeglądania Google w wersji 5, ich działanie będzie podobne do działania interfejsu Update API w wersji 4, z tym że będą korzystać z ulepszonego interfejsu API w wersji 5. Klienci będą przechowywać w lokalnej bazie danych zestaw list zagrożeń sformatowanych jako prefiksy skrótów SHA256 wyrażeń URL z sufiksem hosta i prefiksem ścieżki. Gdy klient chce sprawdzić konkretny adres URL, jest on sprawdzany na podstawie lokalnej listy zagrożeń. Jeśli wystąpi dopasowanie, klient łączy się z serwerem, aby kontynuować sprawdzanie.

Podobnie jak w przypadku powyższego, klient będzie też utrzymywać lokalną pamięć podręczną, która nie musi być przechowywana w pamięci trwałej.

Procedura sprawdzania adresu URL na lokalnej liście zagrożeń

Ta procedura jest też wykonywana, gdy klient korzysta z procedury trybu czasu rzeczywistego i zwraca ona wartość UNSURE.

Ta procedura przyjmuje jeden adres URL u i zwraca SAFE lub UNSAFE.

  1. Niech expressions będzie listą wyrażeń przyrostków/przedrostków wygenerowanych przez adres URL u.
  2. Niech expressionHashes będzie listą, której elementami są skróty SHA256 poszczególnych wyrażeń w expressions.
  3. Niech expressionHashPrefixes będzie listą, której elementami są pierwsze 4 bajty każdego hasza w expressionHashes.
  4. Za każde expressionHashPrefixexpressionHashPrefixes:
    1. Wyszukaj expressionHashPrefix w pamięci podręcznej.
    2. Jeśli wpis z pamięci podręcznej zostanie znaleziony:
      1. Sprawdza, czy bieżący czas jest późniejszy niż czas wygaśnięcia.
      2. Jeśli jest większa:
        1. Usuń znaleziony wpis z pamięci podręcznej.
        2. Kontynuuj pętlę.
      3. Jeśli nie jest większa:
        1. Usuń to urządzenie expressionHashPrefix z konta expressionHashPrefixes.
        2. Sprawdź, czy odpowiedni pełny skrót w expressionHashes znajduje się w pozycji w pamięci podręcznej.
        3. Jeśli zostanie znaleziony, zwróć UNSAFE.
        4. Jeśli nie znajdziesz, kontynuuj pętlę.
    3. Jeśli nie znajdziesz wpisu w pamięci podręcznej, kontynuuj pętlę.
  5. Za każde expressionHashPrefixexpressionHashPrefixes:
    1. Wyszukaj expressionHashPrefix w bazie danych lokalnej listy zagrożeń.
    2. Jeśli expressionHashPrefix nie można znaleźć w lokalnej bazie danych listy zagrożeń, usuń ją z expressionHashPrefixes.
  6. Wyślij expressionHashPrefixes na serwer Bezpiecznego przeglądania Google w wersji 5 za pomocą RPC SearchHashes lub metody REST hashes.search. Jeśli wystąpił błąd (w tym błędy sieci, błędy HTTP itp.), zwróć wartość SAFE. W przeciwnym razie niech odpowiedzią będzie response otrzymana z serwera SB, czyli lista pełnych skrótów wraz z informacjami pomocniczymi określającymi charakter zagrożenia (inżynieria społeczna, złośliwe oprogramowanie itp.) oraz czas wygaśnięcia pamięci podręcznej expiration.
  7. Za każde fullHashresponse:
    1. Wstaw fullHash do pamięci podręcznej lokalnej wraz z expiration.
  8. Za każde fullHashresponse:
    1. Niech isFound będzie wynikiem wyszukania fullHashexpressionHashes.
    2. Jeśli isFound ma wartość False, kontynuuj pętlę.
    3. Jeśli isFound ma wartość PRAWDA, zwraca UNSAFE.
  9. Powrót: SAFE.