【发布时间】:2021-06-30 15:34:41
【问题描述】:
我目前正在学习 IPSec 协议,但我不明白如何在接收器上找到填充长度字段。它出现在 填充之后,填充是加密(因此具有随机值)。之后是另一个随机字段(完整性字段)。那么如何确定性地找到它呢?
【问题讨论】:
标签: ipsec
我目前正在学习 IPSec 协议,但我不明白如何在接收器上找到填充长度字段。它出现在 填充之后,填充是加密(因此具有随机值)。之后是另一个随机字段(完整性字段)。那么如何确定性地找到它呢?
【问题讨论】:
标签: ipsec
这是来自RFC 4303的图表:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ----
| Security Parameters Index (SPI) | ^Int.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov-
| Sequence Number | |ered
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ----
| Payload Data* (variable) | | ^
~ ~ | |
| | |Conf.
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov-
| | Padding (0-255 bytes) | |ered*
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Pad Length | Next Header | v v
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------
| Integrity Check Value-ICV (variable) |
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1. Top-Level Format of an ESP Packet
填充长度和下一个标头字段都在解密和删除 ICV 后处理。因此,作为接收者,您可以确切地知道它们的位置:在解密明文的末尾。
【讨论】: