Signature
使用 3DES 作為簽名加密目前時間
我在野外遇到了一個用於生成“簽名”的特殊系統(“簽名”在引號內,因為這是對 3DES 的錯誤使用)。
它的工作原理如下:生成一個對稱密鑰並用於使用 3DES 加密目前時間,在 CBC 模式下,使用 8 個零值字節作為 IV。生成的簽名用作會話令牌 - 伺服器將解密簽名並檢查時間是否在某個範圍內。
可以偽造簽名嗎?
這聽起來像是帶有(已知)固定長度消息的CBC-MAC的一個非常標準的應用。這被認為是安全的。我不會將 3DES 用於 CBC-MAC 稱為“3DES 的錯誤使用”——我自己使用引號。
時間戳本身很難用於身份驗證;它們不包含發件人的 ID,並且可能容易受到重放攻擊。它們要求驗證者保持狀態,並且 - 如果有多個驗證者 - 進行同步。如果有什麼不安全的,它可能是協議或實現而不是 CBC-MAC。
使用 AES-CMAC 或 HMAC 肯定會增加安全強度,如果僅僅是因為可以產生更大的輸出大小(身份驗證標籤)。