Skip to content

Commit e99fae0

Browse files
committed
Some changes we agreed on last week.
1 parent f183219 commit e99fae0

File tree

1 file changed

+14
-72
lines changed

1 file changed

+14
-72
lines changed

eesp.org

Lines changed: 14 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ previously mandatory fields to optional,
3535
and moves the ESP trailer into the EESP header. Additionally, EESP
3636
adds header options adapted from IPv6 to allow for future extension.
3737
New header options are defined which add Flow IDs (e.g., for CPU
38-
pinning and QoS support), and a crypt-offset to allow for exposing
39-
inner flow information for middlebox use.
38+
pinning and QoS support based on the inner traffic flow), and a
39+
crypt-offset to allow for exposing inner flow information for
40+
middlebox use.
4041

4142
#+end_abstract
4243
#+RFC_KEYWORDS: ("EESP" "IKEv2")
@@ -179,10 +180,9 @@ Unlike ESP, EESP does not have a trailer. Instead, these values have
179180
moved to a ~Payload Info Header~ directly following the ~Peer Header~.
180181
With classic transport and tunnel mode, the ~Payload Info Header~
181182
is encrypted, and therefore private to the IPsec peers. However,
182-
with ~Payload Encryption Mode~ as specified in
183-
[[Payload Encryption Mode Processing]] or with a positive crypt offset
183+
with a positive crypt offset
184184
(see [[EESP Crypt Offset Option]]), the ~Payload Info Header~
185-
might be left unencrypted. In these modes, protocol parsing engines
185+
might be left unencrypted. In these mode, protocol parsing engines
186186
of middleboxes can act upon it (e.g., for telemetry).
187187

188188
# :NOTE: doesn't the Payload Data structure depend on the mode of
@@ -251,21 +251,15 @@ The Flags field in the fixed Base Header is defined as follows:
251251
#+begin_src
252252
0 1 2 3 4 5
253253
+-+-+-+-+-+-+
254-
|F|P|S| R |
254+
|F| R |
255255
+-+-+-+-+-+-+
256256
#+end_src
257257

258258
- Packet Format (F) :: 1 bit: Set to zero for full EESP packet Format (i.e., the EESP header includes the
259-
~Payload Info Header~), set to 1 for Optimized EESP Packet format.
260-
- Payload Encryption Mode (P) :: 1 bit: If set, the
261-
following Layer 4 Header is authenticated, but not encrypted.
262-
This bit MUST be set to 0 on any mode other than payload encryption mode .
263-
The receiver MUST drop packets with this bit set, if the mode is
264-
different to payload encryption mode. See [[Payload Encryption Mode Processing]]
265-
- Sequence Number absent (S) :: 1 bit: If set, the peer header does not
266-
carry the sequence number field in the packet. This bit MUST be set
267-
to the same value for all packets on a given SA.
268-
- Reserved (R) :: 3 bits: Reserved for future versions, MUST be set to 0,
259+
~Payload Info Header~), set to 1 for Optimized EESP Packet format. This bit
260+
MAY be only set to 1 if the Crypt Offset is positive. It MUST be set to
261+
0 otherwise.
262+
- Reserved (R) :: 5 bits: Reserved for future versions, MUST be set to 0,
269263
and ignored by the receiver.
270264

271265

@@ -324,15 +318,15 @@ NOT act upon the Peer Header fields.
324318
0 1 2 3
325319
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
326320
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
327-
| Sequence Number (optional) |
321+
| Sequence Number |
328322
| |
329323
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
330324
| IV (optional) |
331325
| |
332326
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
333327
#+end_src
334328

335-
When present, the ~Sequence Number~ is a full 64bit sequence number.
329+
The ~Sequence Number~ is a full 64bit sequence number.
336330
EESP only support 64bit sequence numbers, a.k.a ESN and transmits the
337331
entire sequence number on each packet. The actual size of the
338332
~Initialization Vector~ depends on the choice of the cipher suite.
@@ -1007,8 +1001,8 @@ be employed.
10071001

10081002
*** Layer 4 Encapsulation Modes
10091003

1010-
Layer 4 Encapsulation Modes are transport mode, BEET mode
1011-
and payload encryption mode. Layer 4 Encapsulation Modes
1004+
Layer 4 Encapsulation Modes are transport mode and BEET mode.
1005+
Layer 4 Encapsulation Modes
10121006
distinguish from tunnel mode on the position of the EESP
10131007
header in the packet. On Layer 4 Encapsulation Modes the
10141008
EESP header is inserted between the original IPv4/IPv6
@@ -1092,58 +1086,6 @@ packet.
10921086
* = if present, could be before EESP, after EESP, or both
10931087
#+end_src
10941088

1095-
**** Payload Encryption Mode Processing
1096-
1097-
In payload encryption mode, EESP is inserted exactly at the same position
1098-
as it is done for transport mode. The only difference to transport mode
1099-
is that the next layer protocol header following the original IP or IPv6
1100-
header is left in cleartext. Additionally to that, the 'C' bit in the EESP
1101-
header flags is set.
1102-
1103-
1104-
The following diagrams illustrate EESP payload encryption mode
1105-
positioning for a typical IPv4 and IPv6 packet, on a "before and after" basis.
1106-
1107-
1108-
#+caption: IPv4 Payload Encryption Mode
1109-
#+name: ipv4-pe-mode
1110-
#+begin_src
1111-
BEFORE APPLYING EESP
1112-
----------------------------
1113-
IPv4 |orig IP hdr | | |
1114-
|(any options)| TCP | Data |
1115-
----------------------------
1116-
1117-
AFTER APPLYING EESP
1118-
----------------------------------------------------
1119-
IPv4 |orig IP hdr | EESP | | | EESP |
1120-
|(any options)| Hdr | TCP | L4 pyld Data | ICV |
1121-
----------------------------------------------------
1122-
|<- encryption ->|
1123-
|<-------- integrity -------->|
1124-
#+end_src
1125-
1126-
#+caption: IPv6 Payload Encryption Mode
1127-
#+name: ipv6-pe-mode
1128-
#+begin_src
1129-
1130-
BEFORE APPLYING EESP
1131-
---------------------------------------
1132-
IPv6 | | ext hdrs | | |
1133-
| orig IP hdr |if present| TCP | Data |
1134-
---------------------------------------
1135-
1136-
AFTER APPLYING EESP
1137-
--------------------------------------------------------------
1138-
IPv6 | orig |hop-by-hop,dest*,|EESP|dest| | Layer 4 |EESP|
1139-
|IP hdr|routing,fragment.|Hdr |opt*|TCP| Payload Data |ICV |
1140-
--------------------------------------------------------------
1141-
|<- encryption ->|
1142-
|<-------- integrity --------->|
1143-
1144-
* = if present, could be before EESP, after EESP, or both
1145-
#+end_src
1146-
11471089
**** BEET Mode Processing
11481090

11491091
In BEET mode, EESP is inserted exactly at the same position

0 commit comments

Comments
 (0)