我刚刚阅读了以下文章在 IPsec VPN 中,预共享密钥是如何加密的?
了解第一阶段
PFS 上的基本线路:对于阶段 2 SA 的每个新协商,2 个网关必须生成新的阶段 1 密钥集。参考:http : //www.internet-computer-security.com/VPN-Guide/PFS。
每次都会生成所有三个密钥对,即衍生、身份验证、加密密钥以及每个新的第 2 阶段 SA,如果是,每次都会生成第 1 阶段密钥?
我刚刚阅读了以下文章在 IPsec VPN 中,预共享密钥是如何加密的?
了解第一阶段
PFS 上的基本线路:对于阶段 2 SA 的每个新协商,2 个网关必须生成新的阶段 1 密钥集。参考:http : //www.internet-computer-security.com/VPN-Guide/PFS。
每次都会生成所有三个密钥对,即衍生、身份验证、加密密钥以及每个新的第 2 阶段 SA,如果是,每次都会生成第 1 阶段密钥?
您提供的链接已损坏,因此我无法验证上下文。
但是,当我为另一个线程做出贡献时,我可能会在一个很好的地方对此做出贡献 =)。
在 ISAKMP(第 1 阶段)结束时,存在三个键:
- 派生密钥——ISAKMP不使用此密钥,而是将其交给 IPsec,以便 IPsec 可以创建自己的密钥
- 身份验证密钥——ISAKMP 在其 HMAC 中使用此密钥(又名,使用密钥保护的散列算法)
- 加密密钥——ISAKMP 使用此密钥对 ISAKMP 想要安全地向其他对等方加密的任何内容进行对称加密。因此,如果为 Phase1 选择的加密算法是 AES,则 AES 将使用此密钥对数据进行对称加密——AES 不会生成自己的密钥材料。
创建这三个密钥的部分原因是在第一阶段协商中执行的Diffie Hellman 交换。
在导出密钥是给IPsec的,这样的IPsec可以使用它作为一个种子值再进一步生成自己的加密和认证密钥。
创建这些新 IPsec 密钥所涉及的数学运算涉及每个对等方随机生成的两个值,并在 ISAKMP 身份验证和加密密钥的保护下进行交换。
上面加粗的部分很关键。因为如果(而且是一个很大的如果)有人能够在阶段 1 中破坏初始 DH 交换,他们将能够创建与上述相同的三个密钥。
所以回顾一下,没有 PFS,阶段 2 加密密钥由:
Derivative Key from ISAKMP
+ Random Values exchanged every Phase2 negotiation
。
(这在某种程度上被简化,以方便传达 OP 提出的潜在问题)
这意味着,如果有人破坏了第 1 阶段的 DH,他们将拥有派生密钥的副本,并且拥有提取每个对等方生成和交换的新随机值所需的密钥。
因此,他们将拥有破坏 IPsec 密钥保护的任何内容所需的所有信息。
主要的一点是,如果他们破坏一个DH 交换,他们可能会破坏整个实施的安全性。
.
Perfect Forward Secrecy通过在第 2 阶段协商中引入第二个DH 交换来防止这种情况发生。
启用 PFS 后,IPsec 密钥由以下值组成:
Derivative Key from ISAKMP
+ Random Values exchanged every Phase2 negotiation
+ Phase 2 DH Exchange
。
(同样,这稍微简化了)
为了破坏这个实现,黑客必须强行执行阶段 1 DH 交换以创建阶段 1 密钥,这让他们获得在阶段 2 中交换的派生密钥和随机值,然后再次强行执行阶段 2 DH 交换。只有这样,他们才能将 IPsec 安全密钥放在一起。
但是要明确您的一个问题……第 1 阶段的密钥不会在每个第 2 阶段重新生成。每个新的第 2 阶段的新密钥来自相同的衍生密钥,但每次第 2 阶段交换都会生成不同的随机值。