如果用戶選擇以即時模式使用 Google 安全瀏覽第 5 版,用戶會在本地資料庫中維護:(i) 可能良性網站的全域快取,格式為主機尾碼/路徑前置字元網址運算式的 SHA256 雜湊,(ii) 一組威脅清單,格式為主機尾碼/路徑前置字元網址運算式的 SHA256 雜湊前置字元。高階概念是,每當用戶端想檢查特定網址時,系統會使用全域快取執行本機檢查。如果通過這項檢查,系統就會執行本機威脅清單檢查。否則,用戶端會繼續進行即時雜湊檢查,詳情如下。
除了本機資料庫,用戶端也會維護本機快取。這類本機快取不必位於永久儲存空間,且在記憶體壓力過大時可能會清除。
如需詳細程序規格,請參閱下文。
即時網址檢查程序
這項程序會採用單一網址 u,並傳回 SAFE、UNSAFE 或 UNSURE。如果傳回 SAFE,則表示 Google 安全瀏覽功能判定該網址安全。如果傳回 UNSAFE,表示 Google 安全瀏覽認為該網址可能不安全,因此應採取適當行動,例如向使用者顯示警告、將收到的郵件移至垃圾郵件資料夾,或要求使用者先進行額外確認,再繼續操作。如果傳回 UNSURE,後續應使用下列本機檢查程序。
- 假設
expressions是由網址u產生的後置字串/前置字串運算式清單。 - 假設
expressionHashes是清單,其中的元素是expressions中每個運算式的 SHA256 雜湊。 - 針對每個
hash的expressionHashes:- 如果可以在全域快取中找到
hash,則傳回UNSURE。
- 如果可以在全域快取中找到
- 假設
expressionHashPrefixes是清單,其中的元素是expressionHashes中每個雜湊的前 4 個位元組。 - 針對每個
expressionHashPrefix的expressionHashPrefixes:- 在本地快取中查找
expressionHashPrefix。 - 如果找到快取項目:
- 判斷目前時間是否晚於到期時間。
- 如果大於:
- 從本機快取中移除找到的快取項目。
- 繼續使用迴路。
- 如果不是較大的值:
- 從
expressionHashPrefixes移除這個特定expressionHashPrefix。 - 檢查快取項目中是否含有
expressionHashes內的對應完整雜湊。 - 如果找到,則傳回
UNSAFE。 - 如果找不到,請繼續執行迴圈。
- 從
- 如果找不到快取項目,請繼續執行迴圈。
- 在本地快取中查找
- 使用 RPC SearchHashes 或 REST 方法 hashes.search,將
expressionHashPrefixes傳送至 Google 安全瀏覽 v5 伺服器。如果發生錯誤 (包括網路錯誤、HTTP 錯誤等),請傳回UNSURE。否則,請將回應設為從 SB 伺服器收到的response,其中包含完整雜湊清單,以及識別威脅性質 (社交工程、惡意軟體等) 的輔助資訊,還有快取到期時間expiration。 - 針對每個
fullHash的response:- 將
fullHash連同expiration插入本機快取。
- 將
- 針對每個
fullHash的response:- 假設
isFound是在expressionHashes中尋找fullHash的結果。 - 如果
isFound為 False,請繼續執行迴圈。 - 如果
isFound為 True,則傳回UNSAFE。
- 假設
- 回程日期:
SAFE。
雖然這個通訊協定指定了用戶端何時將 expressionHashPrefixes 傳送至伺服器,但這個通訊協定刻意未指定確切的傳送方式。舉例來說,用戶端可以透過單一要求傳送所有 expressionHashPrefixes,也可以透過個別要求將 expressionHashPrefixes 中的每個前置字元傳送至伺服器 (可能並行處理)。只要單一要求中傳送的雜湊前置字元數量不超過 30 個,用戶端也可以在 expressionHashPrefixes 中傳送不相關或隨機產生的雜湊前置字元。