資訊安全中的HMAC是什麼?


HMAC 代表訊息認證金鑰雜湊 (Keyed-Hashing for Message Authentication)。它是一個訊息認證碼,透過對資訊(待認證)和共享金鑰執行加密雜湊函式(如 MD5、SHA1 和 SHA256)獲得。HMAC 在 RFC 2104 中定義。

HMAC 與數字簽名相同。它們都提供完整性和真實性。它們都需要加密金鑰,並且都應用雜湊函式。主要區別在於數字簽名需要非對稱金鑰,而 HMAC 需要對稱金鑰(沒有公鑰)。

HMAC 可以與一些迭代加密雜湊函式一起使用。MD5 和 SHA-1 是雜湊函式的例項。HMAC 還需要私鑰來計算和驗證訊息認證值。

雜湊訊息認證碼可以同時檢查訊息的認證及其相關的資料完整性。使用的金鑰大小決定了雜湊訊息認證碼的加密強度。

雜湊訊息認證碼可以利用包括 SHA-1 和 MD-5 在內的迭代加密雜湊函式以及金鑰。雜湊訊息認證碼為伺服器和客戶端都提供公鑰和私鑰。雖然公鑰是已知的,但私鑰只有確定的客戶端和伺服器知道。

整個過程從客戶端根據請求的資訊建立唯一的雜湊訊息認證碼開始,並將請求的資料與私鑰一起進行雜湊。

這作為請求的一部分發送到伺服器,伺服器依次關聯兩個雜湊訊息認證碼,如果發現相同,則允許客戶端可信賴,並執行請求。整個過程也稱為秘密握手。

HMAC 的主要目標如下:

  • 它可以使用現有的雜湊函式,無需修改。具體來說,是那些在軟體中實現良好的雜湊函式,並且其程式碼可以自由廣泛地獲得。

  • 它可以在不產生顯著效能下降的情況下保持雜湊函式的原始效能。

  • 它可以以簡單的方式使用和管理金鑰。

  • 它對基於基本雜湊函式的合理假設的認證結構的強度具有易於理解的密碼分析。

  • 如果發現或需要更快或更安全的雜湊函式,它可以方便地替換基本雜湊函式。

  • 雜湊訊息認證碼的主要目標是它受碰撞的影響較小,並且被認為是暴力破解獲取金鑰。

  • 雜湊訊息認證碼提供了一種方便的方法來檢查資訊是否被篡改以及使用者的真實性。

更新於:2022年3月14日

2K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.