訊息認證



在上一章中,我們討論了資料完整性威脅以及使用雜湊技術來檢測資料是否發生了任何修改攻擊。

資料存在的另一種威脅是缺乏訊息認證。在這種威脅中,使用者不確定訊息的發起者。可以使用與加密情況下使用的金鑰相同的秘密金鑰的密碼技術來提供訊息認證。

訊息認證碼 (MAC)

MAC 演算法是一種對稱金鑰密碼技術,用於提供訊息認證。為了建立 MAC 過程,傳送方和接收方共享一個對稱金鑰 K。

本質上,MAC 是對傳送的訊息生成的加密校驗和,它與訊息一起傳送以確保訊息認證。

使用 MAC 進行身份驗證的過程如下圖所示:

MAC

現在讓我們詳細瞭解整個過程:

  • 傳送方使用某種公開的 MAC 演算法,輸入訊息和秘密金鑰 K,並生成 MAC 值。

  • 與雜湊類似,MAC 函式也將任意長的輸入壓縮成固定長度的輸出。雜湊和 MAC 的主要區別在於 MAC 在壓縮過程中使用秘密金鑰。

  • 傳送方將訊息和 MAC 一起轉發。在這裡,我們假設訊息以明文傳送,因為我們關注的是提供訊息來源身份驗證,而不是機密性。如果需要機密性,則需要對訊息進行加密。

  • 收到訊息和 MAC 後,接收方將接收到的訊息和共享金鑰 K 輸入 MAC 演算法,並重新計算 MAC 值。

  • 接收方現在檢查新計算的 MAC 與從傳送方收到的 MAC 是否相等。如果匹配,則接收方接受訊息並確保訊息是由預期的傳送方傳送的。

  • 如果計算出的 MAC 與傳送方傳送的 MAC 不匹配,接收方無法確定是訊息被更改了還是來源被偽造了。底線是,接收方安全地假設該訊息不是真實的。

MAC 的侷限性

MAC 主要有兩個侷限性,兩者都是由於其對稱操作的性質:

  • 共享金鑰的建立。

    • 它可以在擁有共享金鑰的預先確定的合法使用者之間提供訊息認證。

    • 這需要在使用 MAC 之前建立共享金鑰。

  • 無法提供不可否認性

    • 不可否認性是指確保訊息發起人無法否認任何先前傳送的訊息、承諾或行為。

    • MAC 技術不提供不可否認性服務。如果傳送方和接收方就訊息來源發生爭議,MAC 無法證明訊息確實是傳送方傳送的。

    • 雖然第三方無法計算 MAC,但傳送方仍可能否認傳送了訊息,並聲稱接收方偽造了它,因為不可能確定是哪一方計算了 MAC。

這兩種侷限性都可以透過使用下一節中討論的基於公鑰的數字簽名來克服。

廣告