Aes
當我只使用加密進行隨機字元串的質詢-響應交換時,是否需要更改 AES-256 GCM 中的 IV?
當我只想將加密用於質詢-響應交換而不是隱藏加密消息的內容時,不更改 IV 以進行新加密是否仍然對我構成威脅?
為了更容易理解為什麼我在這裡問這個是我的情況:
我正在使用兩個帶有 LoRa 收發器的 Arduino 來相互通信。一個是連接到網際網路的橋樑,另一個連接到伺服器和感測器。
我不在乎潛在的攻擊者是否知道某些數據包正在將伺服器向右旋轉,而另一個數據包正在將數據從濕度感測器發送到網橋。
我唯一關心的是攻擊者無法模仿任何這些命令,因此他無法旋轉我的伺服系統並發送不是來自我的濕度感測器的錯誤值。
這就是我使用質詢-響應交換的原因,以便我可以驗證我的網橋是否發送了數據包等。
但是我沒有辦法(至少我知道一個)將 IV 交換到另一個 Arduino,所以它可以解碼挑戰。
我的問題是:
在我的情況下,不能改變 IV 會被利用嗎?如果是。這對我意味著什麼?
有沒有更好的方法呢?
您必須每次更換 IV。
在不同的地方已經註意到(例如,參見Joux “NIST 版本的 GCM 中的身份驗證失敗”第 3 節),單個重複的 IV 很可能使攻擊者能夠為自己計算身份驗證標籤。再加上計數器模式的延展性,如果攻擊者知道兩個響應的 XOR 和一個經過驗證的加密,他們就可以自由地偽造另一個。
如評論中所述,鍵控HMAC提供了一個非常好的選擇。一個簡單的質詢響應交換可能是:
- 布里奇:“我想給你一個指示”
- 伺服:
nonce
- 橋接:
command
,HMAC(Secret key
,nonce|command
)伺服根據自己的計算檢查 HMAC 值,如果它們相等,則執行命令。如果伺服器不重複隨機數並且密鑰保持秘密,這應該可以工作。隨機數甚至可以來自計數器(前提是不能強制計數器重複)。