HMAC 驗證

概念

HMAC 驗證

定義

Hash-based Message Authentication Code,使用密鑰與雜湊函數對訊息進行認證的機制。文章中的 SHA-256 簽章是 HMAC 概念的簡化實作——將密鑰與訊息串接後直接計算 Hash,而非使用標準 HMAC 算法(HMAC-SHA256)。

關鍵數據點(附來源)

  • 文章使用的是「密鑰 + 欄位直接串接後 SHA-256」的方式,而非嚴格的 HMAC-SHA256。(api-security-design-connection-key)
  • 標準 HMAC 會對密鑰做 padding 和兩次 Hash,安全性略高於直接串接。
  • 台灣金流業者的做法也多為直接串接(非標準 HMAC),但在實務上已足夠。

前提與局限性

  • 直接串接可能受到 length extension attack,標準 HMAC 不受此影響。
  • 對於大多數 Web 應用場景,直接串接的安全性已足夠。
  • 需要雙方約定相同的欄位順序與分隔符。

衝突標記

  • 文章中的實作嚴格來說不是 HMAC,而是簡化版的密鑰雜湊。在低風險場景下差異可忽略,但高安全需求場景應使用標準 HMAC-SHA256。

關聯概念

  • [[請求簽章]]
  • [[重送攻擊防禦]]
  • [[API 金鑰管理]]