Gdy klienci zdecydują się korzystać z Ochrony w czasie rzeczywistym w wersji 5, w lokalnej bazie danych będą przechowywać: (i) globalną pamięć podręczną prawdopodobnie bezpiecznych witryn sformatowaną jako skróty SHA256 wyrażeń URL z sufiksem hosta i prefiksem ścieżki, (ii) zestaw list zagrożeń sformatowanych jako prefiksy skrótów SHA256 wyrażeń URL z sufiksem hosta i prefiksem ścieżki. Ogólna zasada jest taka, że gdy klient chce sprawdzić konkretny adres URL, wykonywane jest lokalne sprawdzenie przy użyciu pamięci podręcznej globalnej. Jeśli ten test zostanie zaliczony, przeprowadzane jest sprawdzenie lokalnych list zagrożeń. W przeciwnym razie klient kontynuuje sprawdzanie skrótu w czasie rzeczywistym zgodnie z poniższym opisem.
Oprócz lokalnej bazy danych klient będzie utrzymywać lokalną pamięć podręczną. Taka pamięć podręczna nie musi być przechowywana w pamięci trwałej i może zostać wyczyszczona w przypadku braku pamięci.
Szczegółowa specyfikacja procedury jest dostępna poniżej.
Procedura sprawdzania adresów URL w czasie rzeczywistym
Ta procedura przyjmuje pojedynczy adres URL u i zwraca SAFE, UNSAFE lub UNSURE. Jeśli zwróci wartość SAFE, adres URL jest uznawany za bezpieczny przez Bezpieczne przeglądanie Google. Jeśli zwraca wartość UNSAFE, oznacza to, że Bezpieczne przeglądanie Google uznało adres URL za potencjalnie niebezpieczny i należy podjąć odpowiednie działania, np. wyświetlić ostrzeżenie dla użytkownika, przenieść otrzymaną wiadomość do folderu ze spamem lub wymagać od użytkownika dodatkowego potwierdzenia przed kontynuowaniem. Jeśli zwróci wartość UNSURE, należy zastosować procedurę lokalnego sprawdzania.
- Niech
expressionsbędzie listą wyrażeń przyrostków/przedrostków wygenerowanych przez adres URLu. - Niech
expressionHashesbędzie listą, której elementami są skróty SHA256 poszczególnych wyrażeń wexpressions. - Za każde
hashzexpressionHashes:- Jeśli
hashznajduje się w pamięci podręcznej, zwróćUNSURE.
- Jeśli
- Niech
expressionHashPrefixesbędzie listą, której elementami są pierwsze 4 bajty każdego hasza wexpressionHashes. - Za każde
expressionHashPrefixzexpressionHashPrefixes:- Wyszukaj
expressionHashPrefixw pamięci podręcznej. - Jeśli wpis z pamięci podręcznej zostanie znaleziony:
- Sprawdza, czy bieżący czas jest późniejszy niż czas wygaśnięcia.
- Jeśli jest większa:
- Usuń znaleziony wpis z pamięci podręcznej.
- Kontynuuj pętlę.
- Jeśli nie jest większa:
- Usuń to urządzenie
expressionHashPrefixz kontaexpressionHashPrefixes. - Sprawdź, czy odpowiedni pełny skrót w
expressionHashesznajduje się w pamięci podręcznej. - Jeśli zostanie znaleziony, zwróć
UNSAFE. - Jeśli nie znajdziesz, kontynuuj pętlę.
- Usuń to urządzenie
- Jeśli nie znajdziesz wpisu w pamięci podręcznej, kontynuuj pętlę.
- Wyszukaj
- Wyślij
expressionHashPrefixesna 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śćUNSURE. W przeciwnym razie niech odpowiedzią będzieresponseotrzymana 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ęcznejexpiration. - Za każde
fullHashzresponse:- Wstaw
fullHashdo pamięci podręcznej lokalnej wraz zexpiration.
- Wstaw
- Za każde
fullHashzresponse:- Niech
isFoundbędzie wynikiem wyszukaniafullHashwexpressionHashes. - Jeśli
isFoundma wartość False, kontynuuj pętlę. - Jeśli
isFoundma wartość PRAWDA, zwracaUNSAFE.
- Niech
- Powrót:
SAFE.
Ten protokół określa kiedy klient wysyła wartość expressionHashPrefixes do serwera, ale celowo nie określa dokładnie jak to zrobić. Na przykład klient może wysłać wszystkie prefiksy expressionHashPrefixes w jednym żądaniu, ale może też wysłać każdy prefiks expressionHashPrefixes do serwera w osobnych żądaniach (być może równolegle). Klient może też wysyłać niepowiązane lub losowo wygenerowane prefiksy skrótów razem z prefiksami skrótów w expressionHashPrefixes, o ile liczba prefiksów skrótów wysyłanych w jednym żądaniu nie przekracza 30.