Real Time Mode

如果用戶選擇以即時模式使用 Google 安全瀏覽第 5 版,用戶會在本地資料庫中維護:(i) 可能良性網站的全域快取,格式為主機尾碼/路徑前置字元網址運算式的 SHA256 雜湊,(ii) 一組威脅清單,格式為主機尾碼/路徑前置字元網址運算式的 SHA256 雜湊前置字元。高階概念是,每當用戶端想檢查特定網址時,系統會使用全域快取執行本機檢查。如果通過這項檢查,系統就會執行本機威脅清單檢查。否則,用戶端會繼續進行即時雜湊檢查,詳情如下。

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

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

即時網址檢查程序

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

  1. 假設 expressions 是由網址 u 產生的後置字串/前置字串運算式清單。
  2. 假設 expressionHashes 是清單,其中的元素是 expressions 中每個運算式的 SHA256 雜湊。
  3. 針對每個 hashexpressionHashes
    1. 如果可以在全域快取中找到 hash,則傳回 UNSURE
  4. 假設 expressionHashPrefixes 是清單,其中的元素是 expressionHashes 中每個雜湊的前 4 個位元組。
  5. 針對每個 expressionHashPrefixexpressionHashPrefixes
    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. 針對每個 fullHashresponse
    1. fullHash 連同 expiration 插入本機快取。
  8. 針對每個 fullHashresponse
    1. 假設 isFound 是在 expressionHashes 中尋找 fullHash 的結果。
    2. 如果 isFound 為 False,請繼續執行迴圈。
    3. 如果 isFound 為 True,則傳回 UNSAFE
  9. 回程日期:SAFE

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