@@ -533,106 +533,6 @@ specification MUST specify the length of the ICV and the comparison
533533rules and processing steps for validation.
534534
535535
536- ** AAD Construction
537- Additional Authenticated Data (AAD) includes the Base
538- Header, any Optional Headers and Peer Header.
539-
540- #+caption: EESP AAD
541- #+name: eesp-aad
542- #+begin_src
543- 0 1 2 3
544- 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
545- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
546- | | |
547- ~ Base Header ~ |
548- | | |
549- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Int
550- | | egr
551- ~ Peer Header (variable) ~ ity
552- | | |
553- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Pro
554- | | tec
555- ~ Encrypted Payload Data (variable) ~ ted
556- | | |
557- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
558- ~ Integrity Check Value-ICV (variable) ~
559- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
560- #+end_src
561-
562- Additionally, if a Crypt Offset is used, the AAD includes the
563- associated data exposed due to the offset. Payload Data covered
564- by the Crypt Offset is transmitted in the clear, but is still
565- included in the AAD.
566-
567- #+caption: EESP Tunnel Mode AAD with Crypt Offset
568- #+name: eesp-aad-crypt-offset
569- #+begin_src
570- 0 1 2 3
571- 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
572- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
573- | | |
574- | Base Header ~ |
575- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++|
576- | Crypt Offset Optional Header | |
577- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++| Int
578- | | egr
579- ~ Peer Header (variable) ~ ity
580- | | |
581- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++| Pro
582- | Plaintext Payload Data (variable) | tec
583- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++| ted
584- | | |
585- ~ Encrypted Payload Data (variable) ~ |
586- | | |
587- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++--+
588- ~ Integrity Check Value-ICV (variable) ~
589- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++
590- #+end_src
591-
592- As an example consider a Tunnel mode SA, with replay protection
593- enabled and 8 bytes explicit IV carrying an IPv4 UDP packet with
594- crypto offset 8 (8x4 = 32 bytes). [eesp-aad-crypt-offset-example]
595-
596- #+begin_src
597- #+caption: EESP Tunnel Mode AAD with Crypt Offset example
598- #+name: eesp-aad-crypt-offset-example
599- 0 1 2 3
600- 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
601- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
602- |1|Version|Flags| Opt Len (4) | Session ID | |
603- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
604- | SPI | |
605- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
606- | Crypt Offset(2) |Opt Len (4)|POffset (7)|CryptOff(8)| F | R | |
607- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Int
608- | Sequence number 63-32 | egr
609- | Sequence number 31-0 | ity
610- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
611- | IV 63-32 | Pro
612- | IV 31-0 | tec
613- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ted
614- | Payload Info Header (Next header 4) Plain text) | |
615- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
616- | IP + UDP Headers 28 bytes Plain text | |
617- +---------------------------------------------------------------+ |
618- | Remaining Encrypted Payload Data | |
619- ~ ~ |
620- | | |
621- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
622- | |
623- ~ Integrity Check Value-ICV (variable) ~
624- | |
625- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
626- #+end_src
627-
628- The AAD specifications apply to all EESP cipher suites used with
629- EESP. This document updates [[RFC4106]] to define EESP-specific
630- handling of Additional Authenticated Data (AAD) when using
631- AES-GCM. For AES-GMAC [[RFC4543]], the AAD includes all headers,
632- i.e. the entire EESP payload except the Integrity Check Value (ICV).
633- This document also updates AAD processing for the
634- ENCR_CHACHA20_POLY1305 cipher suite, as specified in [[RFC7634]].
635-
636536** Full and Optimized Packet Formats
637537
638538# :NOTE: What is "resulting" referring to?
@@ -913,7 +813,7 @@ and counter associated with the sequence number subspace identified
913813with the subspace ID field.
914814
915815The receiver MUST drop any packet received with a subpace ID value
916- greater or equal to N. i Receiving such packets is an auditable
816+ greater or equal to N. Receiving such packets is an auditable
917817event. The audit log entry for this event SHOULD include the SPI value,
918818subpace ID value, current date/time, Source Address, Destination Address,
919819and (in IPv6) the cleartext Flow ID.
@@ -1041,6 +941,20 @@ This option is typically used for within one Datacenter use case
1041941such as [[PSP]]. When enabled full packet format, with Payload Info
1042942Header MUST be used; for the intermediate router to have Next Header.
1043943
944+ The Crypt Offset can vary on a per packet basis. The maxinum
945+ allowed Crypt Offset MUST be negotiated by IKEv2 or any other
946+ appropriate protocol. Packets with a Crypt Offset bigger than
947+ the negotiated maximum MUST be dropped by the receiver.
948+ Receiving such packets is an auditable event. The audit log entry
949+ for this event SHOULD include the SPI value, subpace ID value,
950+ current date/time, Source Address, Destination Address, and
951+ (in IPv6) the cleartext Flow ID.
952+
953+ The receiver SHOULD check the ICV value in this case. The action
954+ in case of a correct ICV value depends on local policy. However,
955+ it is recommented to tear down the connection as it can't be
956+ considered as secure anymore.
957+
1044958NOTE: This is for the use in Datacenters ONLY. It might be moved to
1045959a separate document that defines the 'EESP use for Datacenters'.
1046960
@@ -1278,6 +1192,108 @@ packets.
12781192 the Security Architecture document.
12791193#+end_src
12801194
1195+ ** AAD Construction
1196+ Additional Authenticated Data (AAD) includes the Base
1197+ Header, any Optional Headers and Peer Header.
1198+
1199+ #+caption: EESP AAD
1200+ #+name: eesp-aad
1201+ #+begin_src
1202+ 0 1 2 3
1203+ 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
1204+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
1205+ | | |
1206+ ~ Base Header ~ |
1207+ | | |
1208+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Int
1209+ | | egr
1210+ ~ Peer Header (variable) ~ ity
1211+ | | |
1212+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Pro
1213+ | | tec
1214+ ~ Encrypted Payload Data (variable) ~ ted
1215+ | | |
1216+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
1217+ ~ Integrity Check Value-ICV (variable) ~
1218+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1219+ #+end_src
1220+
1221+ Additionally, if a Crypt Offset is used, the AAD includes the
1222+ associated data exposed due to the offset. Payload Data covered
1223+ by the Crypt Offset is transmitted in the clear, but is still
1224+ included in the AAD.
1225+
1226+ #+caption: EESP Tunnel Mode AAD with Crypt Offset
1227+ #+name: eesp-aad-crypt-offset
1228+ #+begin_src
1229+ 0 1 2 3
1230+ 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
1231+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
1232+ | | |
1233+ | Base Header ~ |
1234+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++|
1235+ | Crypt Offset Optional Header | |
1236+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++| Int
1237+ | | egr
1238+ ~ Peer Header (variable) ~ ity
1239+ | | |
1240+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++| Pro
1241+ | Plaintext Payload Data (variable) | tec
1242+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++| ted
1243+ | | |
1244+ ~ Encrypted Payload Data (variable) ~ |
1245+ | | |
1246+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++--+
1247+ ~ Integrity Check Value-ICV (variable) ~
1248+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++
1249+ #+end_src
1250+
1251+ As an example consider a Tunnel mode SA, with replay protection
1252+ enabled and 8 bytes explicit IV carrying an IPv4 UDP packet with
1253+ crypto offset 8 (8x4 = 32 bytes). [eesp-aad-crypt-offset-example]
1254+
1255+ #+begin_src
1256+ #+caption: EESP Tunnel Mode AAD with Crypt Offset example
1257+ #+name: eesp-aad-crypt-offset-example
1258+ 0 1 2 3
1259+ 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
1260+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
1261+ |1|Version|Flags| Opt Len (4) | Session ID | |
1262+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
1263+ | SPI | |
1264+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
1265+ | Crypt Offset(2) |Opt Len (4)|POffset (7)|CryptOff(8)| F | R | |
1266+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Int
1267+ | Sequence number 63-32 | egr
1268+ | Sequence number 31-0 | ity
1269+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
1270+ | IV 63-32 | Pro
1271+ | IV 31-0 | tec
1272+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ted
1273+ | Payload Info Header (Next header 4) Plain text) | |
1274+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
1275+ | IP + UDP Headers 28 bytes Plain text | |
1276+ +---------------------------------------------------------------+ |
1277+ | Remaining Encrypted Payload Data | |
1278+ ~ ~ |
1279+ | | |
1280+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
1281+ | |
1282+ ~ Integrity Check Value-ICV (variable) ~
1283+ | |
1284+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1285+ #+end_src
1286+
1287+ The AAD specifications apply to all EESP cipher suites used with
1288+ EESP. This document updates [[RFC4106]] to define EESP-specific
1289+ handling of Additional Authenticated Data (AAD) when using
1290+ AES-GCM. For AES-GMAC [[RFC4543]], the AAD includes all headers,
1291+ i.e. the entire EESP payload except the Integrity Check Value (ICV).
1292+ This document also updates AAD processing for the
1293+ ENCR_CHACHA20_POLY1305 cipher suite, as specified in [[RFC7634]].
1294+
1295+
1296+
12811297** Algorithms
12821298
12831299# :NOTE: Not all AEAD algorithms provide both services, e.g.
0 commit comments