Encryption

ID-秘密計劃

  • April 21, 2012

我有一個 ID-Secret 方案,我想知道是否存在任何漏洞。

第 1 方和第 2 方持有一些憑證、一個 ID 和一個 Secret。

第 1 方創建此消息:

HMAC(ID, SECRET)
IV + ENCRYPT(MESSAGE, SECRET, IV)

使用:SHA-256 和 AES-CBC-256

然後,第 2 方可以驗證使用者並解密消息。

是否存在我可能遺漏的任何漏洞?

我不確定 HMAC 中的哪個輸入是您的密鑰,哪個是消息。秘密應該在這裡的關鍵位置。

此外,您可能希望在 MAC 中包含消息(明文或密文)本身 - 否則您很容易受到可以更改數據的攻擊者的攻擊(即使他無法讀取數據,並且不完全知道他的內容)在改變)。

關於您的評論:

也許我沒有明確說明 HMAC 僅作為第 2 方的辨識方法,而沒有透露實際 ID 或 SECRET(我試圖隱藏的值)。

關鍵是,如果您的身份驗證僅依賴於HMAC(secret, ID),則此值是有效密碼,因為它不會在消息之間更改。

這些不綁定到消息,這意味著無論如何都會接受更改的消息。

為什麼包含密文的 MAC 會更好?密文是加密的,因此需要 SECRET(密鑰)才能成功更改底層輸入。如果攻擊者試圖更改密文(不知道密鑰),則消息的預期接收者將在解密密文時遇到錯誤,或者無法驗證底層消息。

從這個角度來看,您根本不需要辨識消息的第一部分。

解密更改的消息不會出錯 - 只是結果將是垃圾。這取決於您在此處傳輸的消息類型,是否可以實際辨識這些垃圾。使用類似的東西

MAC(ID + ciphertext, secret)

確保接收者甚至不會嘗試解密偽造的消息。

引用自:https://crypto.stackexchange.com/questions/289