Migration From V4

相較於第 4 版 (具體來說是第 4 版更新 API),Google 安全瀏覽第 5 版的一大進步在於資料的新鮮度和涵蓋範圍。由於保護機制高度依賴用戶端維護的本機資料庫,因此本機資料庫更新的延遲和大小是導致保護機制失效的主要原因。在第 4 版中,一般用戶端需要 20 到 50 分鐘才能取得最新版的威脅清單。很遺憾,網路釣魚攻擊的傳播速度很快:截至 2021 年,有 60% 的攻擊網站存活時間不到 10 分鐘。分析結果顯示,約有 25% 至 30% 的網路釣魚防護措施失效,都是因為資料過時。此外,部分裝置無法管理所有 Google 安全瀏覽威脅清單,而這類清單會隨著時間不斷擴大。

如果您目前使用 v4 Update API,可以從 v4 無縫遷移至 v5,不必重設或清除本機資料庫。本節說明如何執行這項操作。

轉換清單更新

與 V4 不同的是,V5 清單只會依名稱識別,V4 則是依威脅類型、平台類型和威脅項目類型元組識別。如果多個 v5 清單可能共用相同的威脅類型,這項功能就能提供彈性。第 5 版已移除平台類型和威脅項目類型。

在第 4 版中,使用者會使用 threatListUpdates.fetch 方法下載清單。在第 5 版中,使用者會切換至 hashLists.batchGet 方法

請對要求進行下列變更:

  1. 完全移除 v4 ClientInfo 物件。您不必使用專屬欄位提供用戶端 ID,只要使用眾所周知的 User-Agent 標頭即可。雖然我們並未規定在這個標頭中提供用戶端 ID 的格式,但建議您直接加入原始用戶端 ID 和用戶端版本,並以空格字元或斜線字元分隔。
  2. 針對每個 v4 ListUpdateRequest 物件
    • 可用清單中查閱對應的 v5 清單名稱,並在 v5 要求中提供該名稱。
    • 移除不必要的欄位,例如 threat_entry_typeplatform_type
    • v4 中的 state 欄位與 v5 中的 versions 欄位直接相容。在第 5 版中,您可以使用 versions 欄位,傳送第 4 版中會使用 state 欄位傳送至伺服器的相同位元組字串。
    • 對於 v4 限制,v5 使用簡化版本,稱為 SizeConstraints。應捨棄 region 等其他欄位。

請對回應進行下列變更:

  1. v4 列舉 ResponseType 只是由名為 partial_update 的布林欄位取代。
  2. minimum_wait_duration 欄位現在可以為零或省略。如果是,系統會要求用戶端立即提出其他要求。只有在用戶端於 SizeConstraints 中指定的最大更新大小限制小於資料庫大小上限時,才會發生這種情況。
  3. 您需要調整 32 位元整數的 Rice 解碼演算法。兩者的差異在於編碼資料的位元組順序不同。在 v4 和 v5 中,32 位元雜湊前置字元都會依字典順序排序。但在 v4 中,這些前置字元排序時會視為小端,而在 v5 中,這些前置字元排序時會視為大端。也就是說,由於字典排序與大端位元組的數字排序相同,因此用戶端不需要進行任何排序。您可以在 這裡查看 Chromium 實作的 v4 版本排序範例。這類排序方式可以移除。
  4. 其他雜湊長度也需要實作 Rice 解碼演算法。

轉換雜湊搜尋

在第 4 版中,使用者會使用 fullHashes.find 方法取得完整雜湊值。在第 5 版中,對應的方法是 the hashes.search 方法

請對要求進行下列變更:

  1. 請將程式碼結構化,只傳送長度剛好為 4 個位元組的雜湊前置字串。
  2. 完全移除 v4 ClientInfo 物件。您不必使用專屬欄位提供用戶端 ID,只要使用眾所周知的 User-Agent 標頭即可。雖然我們並未規定在這個標頭中提供用戶端 ID 的格式,但建議您直接加入原始用戶端 ID 和用戶端版本,並以空格字元或斜線字元分隔。
  3. 移除 client_states 欄位。因為不再需要使用。
  4. 不再需要加入 threat_types 和類似欄位。

請對回應進行下列變更:

  1. 已移除「minimum_wait_duration」欄位,用戶端隨時可以視需要發出新要求。
  2. v4 ThreatMatch 物件已簡化為 FullHash 物件。
  3. 快取已簡化為單一快取時間長度。如要與快取互動,請參閱上述程序。