Local List Mode

Cuando los clientes eligen usar la versión 5 de Navegación Segura de Google en este modo, el comportamiento del cliente es similar al de la API de Update de la versión 4, excepto que se usa la superficie de API mejorada de la versión 5. Los clientes mantendrán en su base de datos local un conjunto de listas de amenazas con el formato de prefijos de hash SHA256 de expresiones de URL de prefijo de ruta de acceso o sufijo de host. Cada vez que el cliente desea verificar una URL en particular, se realiza una verificación con la lista local de amenazas. El cliente se conecta al servidor para continuar con la verificación solo si hay una coincidencia.

Al igual que en el caso anterior, el cliente también mantendrá una caché local que no necesita estar en el almacenamiento persistente.

Procedimiento de verificación de URL de la Lista de amenazas locales

Este procedimiento también se realiza cuando el cliente usa el procedimiento Modo en tiempo real y devuelve el valor UNSURE.

Este procedimiento toma una sola URL u y devuelve SAFE o UNSAFE.

  1. Sea expressions una lista de expresiones de sufijo o prefijo generadas por la URL u.
  2. Sea expressionHashes una lista en la que los elementos son hashes SHA256 de cada expresión en expressions.
  3. Sea expressionHashPrefixes una lista en la que los elementos son los primeros 4 bytes de cada hash en expressionHashes.
  4. Para cada expressionHashPrefix de expressionHashPrefixes:
    1. Busca expressionHashPrefix en la caché local.
    2. Si se encuentra la entrada almacenada en caché, haz lo siguiente:
      1. Determina si la hora actual es posterior a la hora de vencimiento.
      2. Si es mayor, haz lo siguiente:
        1. Quita la entrada almacenada en caché encontrada de la caché local.
        2. Continúa con el bucle.
      3. Si no es mayor, haz lo siguiente:
        1. Quita este expressionHashPrefix en particular de expressionHashPrefixes.
        2. Comprueba si el hash completo correspondiente dentro de expressionHashes se encuentra en la entrada almacenada en caché.
        3. Si se encuentra, devuelve UNSAFE.
        4. Si no se encuentra, continúa con el bucle.
    3. Si no se encuentra la entrada almacenada en caché, continúa con el bucle.
  5. Para cada expressionHashPrefix de expressionHashPrefixes:
    1. Busca expressionHashPrefix en la base de datos local de la lista de amenazas.
    2. Si no se encuentra el expressionHashPrefix en la base de datos de la lista de amenazas local, quítalo de expressionHashPrefixes.
  6. Envía expressionHashPrefixes al servidor de la versión 5 de la Navegación segura de Google con RPC SearchHashes o el método de REST hashes.search. Si se produjo un error (incluidos errores de red, errores de HTTP, etcétera), devuelve SAFE. De lo contrario, sea response la respuesta response recibida del servidor de SB, que es una lista de hashes completos junto con información auxiliar que identifica la naturaleza de la amenaza (ingeniería social, software malicioso, etcétera), así como el tiempo de vencimiento de la caché expiration.
  7. Para cada fullHash de response:
    1. Inserta fullHash en la caché local, junto con expiration.
  8. Para cada fullHash de response:
    1. Sea isFound el resultado de encontrar fullHash en expressionHashes.
    2. Si isFound es falso, continúa con el bucle.
    3. Si isFound es verdadero, devuelve UNSAFE.
  9. Muestra SAFE.