Hmac
MAC/HMAC公共知識中是否使用了密碼函式?
我想將密碼摘要儲存在包含如何生成摘要資訊的結構中;將連接這三個值:
- {Name} 用於計算 HMAC 的散列函式(例如 SHA256)
- {Salt} - 隨機 32 字節的密鑰數據
- {Digest} - 從 {Salt} 和加密函式 {Name} 派生的摘要
作為分隔符,我想使用“$”(U+0024,DOLLAR SIGN)並將其編碼為 Base64,這個編碼值我想儲存在數據庫中。
像這樣的東西:
SHA256${...salt data...}${...digest data...}
儲存散列函式名稱的原因是因為向後/向前兼容性(身份驗證)。
問題- 此結構中有關散列函式的資訊是否存在安全漏洞?散列函式是公共知識嗎?
此結構中有關散列函式的資訊是安全漏洞嗎?散列函式是公共知識嗎?
根據Kerckhoffs 的原則,攻擊者可以了解系統的所有資訊,除了密鑰,包括算法本身。香農將此表述為“敵人知道系統”。
假設系統尊重 Kerckhoffs 的原則,那麼您的問題實際上是安全分析中的一個假設。但這取決於對所討論的實際系統進行了何種分析。
如果我們只關注任何常用的、最先進的加密函式(例如 SHA256)的使用,那麼這不是問題:算法本身的知識不是漏洞。安全性基於密鑰是秘密的,僅此而已。