Real Time Mode

如果用戶選擇以即時模式使用 Google 安全瀏覽 v5,用戶會在本地資料庫中維護:(i) 可能良性網站的全域快取,格式為主機尾碼/路徑前置字元網址運算式的 SHA256 雜湊,(ii) 一組威脅清單,格式為主機尾碼/路徑前置字元網址運算式的 SHA256 雜湊前置字元。基本概念是,每當用戶端想檢查特定網址時,系統會使用可能良性網站的全域快取執行本機檢查。如果相符,系統會執行本機威脅清單檢查 (使用「本機清單模式」中詳述的程序)。如果沒有相符的項目,用戶端會繼續進行即時雜湊檢查,詳情如下。

除了本機資料庫,用戶端也會維護本機快取。這類本機快取不必位於永久儲存空間,且在記憶體壓力過大時可能會清除。

如需詳細程序規格,請參閱下文。

即時網址檢查程序

這項程序會採用單一網址 u,並傳回 SAFE、UNSAFE 或 UNSURE。如果傳回 SAFE,則表示 Google 安全瀏覽功能判定該網址安全。如果傳回 UNSAFE,表示 Google 安全瀏覽認為該網址可能不安全,因此應採取適當行動,例如向使用者顯示警告、將收到的郵件移至垃圾郵件資料夾,或要求使用者先進行額外確認,才能繼續操作。如果傳回 UNSURE,後續應使用「本機清單模式」程序。

  1. 假設 expressions 是由網址 u 產生的後置字串/前置字串運算式清單。
  2. 假設 expressionHashes 是清單,其中的元素是 expressions 中每個運算式的 SHA256 雜湊。
  3. 針對每個 hash 的 expressionHashes:
    1. 如果可以在全域快取中找到 hash,則傳回 UNSURE。
  4. 假設 expressionHashPrefixes 是清單,其中的元素是 expressionHashes 中每個雜湊的前 4 個位元組。
  5. 針對每個 expressionHashPrefix 的 expressionHashPrefixes:
    1. 在本地快取中查找 expressionHashPrefix。
    2. 如果找到快取項目:
      1. 判斷目前時間是否晚於到期時間。
      2. 如果大於:
        1. 從本機快取中移除找到的快取項目。
        2. 繼續使用迴路。
      3. 如果不是較大的值:
        1. 從 expressionHashPrefixes 移除這個特定 expressionHashPrefix。
        2. 檢查快取項目中是否含有 expressionHashes 內的對應完整雜湊。
        3. 如果找到,則傳回 UNSAFE。
        4. 如果找不到,請繼續執行迴圈。
    3. 如果找不到快取項目,請繼續執行迴圈。
  6. 使用 RPC SearchHashes 或 REST 方法 hashes.search,將 expressionHashPrefixes 傳送至 Google 安全瀏覽 v5 伺服器。如果發生錯誤 (包括網路錯誤、HTTP 錯誤等),請傳回 UNSURE。否則,請將回應設為從 SB 伺服器收到的 response,其中包含完整雜湊清單,以及識別威脅性質 (社交工程、惡意軟體等) 的輔助資訊,還有快取到期時間 expiration。
  7. 針對每個 fullHash 的 response:
    1. 將 fullHash 連同 expiration 插入本機快取。
  8. 針對每個 fullHash 的 response:
    1. 假設 isFound 是在 expressionHashes 中尋找 fullHash 的結果。
    2. 如果 isFound 為 False,請繼續執行迴圈。
    3. 如果 isFound 為 True,則傳回 UNSAFE。
  9. 回程日期:SAFE。

雖然這個通訊協定指定了用戶端何時將 expressionHashPrefixes 傳送至伺服器,但這個通訊協定刻意未指定如何傳送。舉例來說,用戶端可以透過單一要求傳送所有 expressionHashPrefixes,也可以透過個別要求將 expressionHashPrefixes 中的每個前置字元傳送至伺服器 (可能並行處理)。只要單一要求中傳送的雜湊前置字元數量不超過 30 個,用戶端也可以在 expressionHashPrefixes 中傳送不相關或隨機產生的雜湊前置字元。