Keys
IKE 中從 SKEYSEED 派生的不同密鑰的顯式用法是什麼?
我們在 IKEv2 中通過 PRF 從 DH 密鑰和 nonce 派生出七個不同的密鑰,分別為 skd、skai、skar、skei、sker、skpi、skpr。為什麼為啟動者和響應者生成不同的密鑰進行加密?IKE 中從 SKEYSEED 派生的不同密鑰的顯式用法是什麼?
例如,ska 和 skp 被定義為“用於驗證後續交換的組件消息的完整性保護算法的密鑰”和“在生成 AUTH 有效負載時使用”。分別。
有什麼區別?
為什麼為啟動者和響應者生成不同的密鑰進行加密?
好吧,如果多個加密器可以使用相同的密鑰,則某些加密算法(例如 GCM 和 ChaCha/Poly1305)是不安全的。這可以被管理(在上面的例子中,通過確保雙方使用不同的隨機數,例如發起者總是使用偶數隨機數而響應者總是使用奇數隨機數),但是對於每個這樣的加密算法都需要不同的方法。為單獨的方向設置單獨的鍵要容易得多,也更簡單。
IKE 中從 SKEYSEED 派生的不同密鑰的顯式用法是什麼?
SKd - 派生“子 SA”時使用該密鑰,即由此創建的安全關聯。這些可以是 IKE SA 和 IPsec SA。
SKE - 這些是用於加密 IKE 消息的密鑰
SKa - 這些是用於向 IKE 消息添加完整性保護的密鑰(假設協商了一些明確的完整性轉換,例如 HMAC 或 CMAC;如果使用了諸如 GCM 之類的組合模式,則未使用且長度為零) .
SKp - 這些被用作用於計算/驗證 AUTH 有效負載的公式的一部分,其目的是驗證另一方的身份(與旨在驗證消息從另一方發送的 SKa 密鑰相反) side 是收到的消息)。