正在经历IKE阶段1和阶段2。我有一些关于同样的问题,这是困扰我的主要模式和快速mode.Please纠正我,如果我走错了地方。
1)第1包和第2包是SA提案和cookie的传输。
问:通过散列发送者IP、端口、协议和时间戳生成的cookie不是吗?如果是这样的话,接收方是否需要计算哈希的算法,以便他能够确认数据,还是它只是一个随机值,而接收机不需要为此烦恼。
2)第3和第4分组交换Diffie Hellman公钥和非keys,并生成一个共享秘密以再次计算额外的3个密钥。
问题:非seed与psk结合生成种子值。那么PSK是如何和何时被交换的。它是在这些分组交换之外进行通信,还是属于这些数据包的一部分。
3)在计算种子值后,与共享秘密相结合,生成额外的3个密钥,用于认证、加密和用作密钥材料,以生成第2阶段的密钥。
问:这些密钥通过第一阶段(第一和第二包)协商的算法(认证和加密)对第二阶段使用的数据包进行身份验证和加密,对吗?并且对第一阶段的第五和第六包进行加密和认证。
那么,我们到底在第5和第6包中传输什么来验证和加密它们呢?这三个会话键是否都是由发起者和响应者共同敲开的?这三个密钥(认证、加密和派生密钥)是对称的吗?
我已经翻阅了RFCs和许多其他文件,但找不到这些问题的答案。我知道这些可能是愚蠢的,但请帮我弄清楚我是否完全理解错了。
发布于 2018-12-12 20:06:22
好问题。
1)第1包和第2包是SA提案和cookie的传输。问:通过散列发送者IP、端口、协议和时间戳生成的cookie不是吗?如果是这样的话,接收方是否需要计算哈希的算法,以便他能够确认数据,还是它只是一个随机值,而接收机不需要为此烦恼。
cookie是任意生成的(通常是随机生成的)。它们来自发起者的64位和响应者的64位,并且作为特定ISAKMP“隧道”(或ISAKMP "SA")的标识--即一组特定的3 ISAKMP密钥(加密、身份验证、派生)。
(就像SPI将识别特定的IPsec SA /隧道一样)
这些值也在3 ISAKMP密钥的计算中使用,但这在消息3和4之后才会发生,因此发起者和Responder已经商定了必要的散列算法。
2)第3和第4分组交换Diffie Hellman公钥和非keys,并生成一个共享秘密以再次计算额外的3个密钥。问题:非seed与psk结合生成种子值。那么PSK是如何和何时被交换的。它是在这些分组交换之外进行通信,还是属于这些数据包的一部分。
在隧道试图建造之前,PSK是在同行之间“交换”的。理论上,通过电话或手动配置双方的PSK。
双方都被证实在消息5和6中有正确的PSK。创建E/A/D ISAKMP密钥的是PSK,所以如果双方都没有以正确的PSK开始,他们就永远无法创建相同的E/A/D密钥,也无法“理解”对方的消息5和6。
3)在计算种子值后,结合共享秘密生成额外的3个密钥,用于认证、加密和作为密钥材料,为第二阶段生成密钥。问题:这些密钥是通过第一阶段(第一和第二包)协商的算法(认证和加密)来验证和加密第二阶段中使用的数据包的,对吗?并且对第一阶段的第五和第六包进行加密和认证。
是。在主模式消息1-4之后,存在三个ISAKMP密钥:加密密钥、身份验证密钥、派生密钥.
加密密钥和身份验证密钥将保护主模式的消息5和6,以及随后的任何快速模式协商消息。
ISAKMP不使用派生密钥,而是将其交给IPsec,以便IPsec能够生成自己的加密和身份验证密钥。
那么,我们到底在第5和第6包中传输什么来验证和加密它们呢?
交换的东西有些武断,为什么是重要的。消息的目的5/6是为了验证对方是谁,他们声称(又名,另一方有正确的预共享密钥)。
以下是计算在消息5和6中交换的值的一些内容,更重要的是它的用途:
任意数据有两部分,一组来自发起者,另一组来自Responder。最后,在消息5和6中交换了两个集体值:
发起者和Responder都有将上述两个值组合在一起所需的信息。因此,发起者和响应者都有一个他们可以用来证明自己是谁的价值,他们可以用来验证另一个人是谁。
具体细节在RFC 2409第10页上进行了概述。我还在这个答案中解释了这个过程的一些细节。
这三个会话键是否都是由发起者和响应者共同敲开的?这三个密钥(认证、加密和派生密钥)是对称的吗?
是的,是的。
在主模式下,它们保护消息5和6中描述的标识值的交换。
发布于 2018-12-12 16:38:21
取代。
不是通过散列发送者IP、端口、协议和时间戳生成的cookie吗?
它对实现它们如何生成cookie(或者在IKEv2中称为SPIs )是开放的。RFC 2408,第2.5.3节描述了一些可能性(例如,strongSwan 5.x只生成随机SPIs)。
如果是这样的话,接收方是否需要计算哈希的算法,以便他能够确认数据,还是它只是一个随机值,而接收机不需要为此烦恼。
收件人无法验证对等方提供的cookie值。但这并不是重点,即发送给对等方的cookie值可以在稍后处理入站消息时进行验证。
所述非are与psk相结合以生成种子值。那么PSK是如何和何时被交换的。它是在这些分组交换之外进行通信,还是属于这些数据包的一部分。
PSK从未因为艾克而被交换。顾名思义(预共享密钥),在建立连接之前必须对其进行共享和配置。
那么,我们到底在第5和第6包中传输什么来验证和加密它们呢?这三个会话键是否都是由发起者和响应者共同敲开的?这三个密钥(认证、加密和派生密钥)是对称的吗?
是的,这些键是对称的,由两个对等方计算。消息5和6使用已建立的加密密钥(SKEYID_e)加密,并且使用生成的共享基密钥(SKEYID)生成用于验证IKE SA的HASH_I|R/SIG_I|R有效负载。身份验证密钥(SKEYID_a)仅用于通过HASH(1..3)负载对第二阶段消息(快速模式、信息)进行身份验证(不过,这些消息也是用SKEYID_e加密的)。更多细节可以在RFC 2409,第5节中找到。
https://networkengineering.stackexchange.com/questions/55402
复制相似问题