1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
|
Internet Engineering Task Force (IETF) E. Ertekin
Request for Comments: 5856 R. Jasani
Category: Informational C. Christou
ISSN: 2070-1721 Booz Allen Hamilton
C. Bormann
Universitaet Bremen TZI
May 2010
Integration of Robust Header Compression over
IPsec Security Associations
Abstract
IP Security (IPsec) provides various security services for IP
traffic. However, the benefits of IPsec come at the cost of
increased overhead. This document outlines a framework for
integrating Robust Header Compression (ROHC) over IPsec (ROHCoIPsec).
By compressing the inner headers of IP packets, ROHCoIPsec proposes
to reduce the amount of overhead associated with the transmission of
traffic over IPsec Security Associations (SAs).
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This document is a product of the Internet Engineering Task Force
(IETF). It has been approved for publication by the Internet
Engineering Steering Group (IESG). Not all documents approved by the
IESG are a candidate for any level of Internet Standard; see Section
2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc5856.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Ertekin, et al. Informational [Page 1]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents
1. Introduction ....................................................3
2. Audience ........................................................3
3. Terminology .....................................................3
4. Problem Statement: IPsec Packet Overhead ........................4
5. Overview of the ROHCoIPsec Framework ............................5
5.1. ROHCoIPsec Assumptions .....................................5
5.2. Summary of the ROHCoIPsec Framework ........................5
6. Details of the ROHCoIPsec Framework .............................7
6.1. ROHC and IPsec Integration .................................7
6.1.1. Header Compression Protocol Considerations ..........9
6.1.2. Initialization and Negotiation of the ROHC Channel ..9
6.1.3. Encapsulation and Identification of Header
Compressed Packets .................................10
6.1.4. Motivation for the ROHC ICV ........................11
6.1.5. Path MTU Considerations ............................11
6.2. ROHCoIPsec Framework Summary ..............................12
7. Security Considerations ........................................12
8. IANA Considerations ............................................12
9. Acknowledgments ................................................13
10. Informative References ........................................14
Ertekin, et al. Informational [Page 2]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
1. Introduction
This document outlines a framework for integrating ROHC [ROHC] over
IPsec [IPSEC] (ROHCoIPsec). The goal of ROHCoIPsec is to reduce the
protocol overhead associated with packets traversing between IPsec SA
endpoints. This can be achieved by compressing the transport layer
header (e.g., UDP, TCP, etc.) and inner IP header of packets at the
ingress of the IPsec tunnel, and decompressing these headers at the
egress.
For ROHCoIPsec, this document assumes that ROHC will be used to
compress the inner headers of IP packets traversing an IPsec tunnel.
However, since current specifications for ROHC detail its operation
on a hop-by-hop basis, it requires extensions to enable its operation
over IPsec SAs. This document outlines a framework for extending the
usage of ROHC to operate at IPsec SA endpoints.
ROHCoIPsec targets the application of ROHC to tunnel mode SAs.
Transport mode SAs only protect the payload of an IP packet, leaving
the IP header untouched. Intermediate routers subsequently use this
IP header to route the packet to a decryption device. Therefore, if
ROHC is to operate over IPsec transport-mode SAs, (de)compression
functionality can only be applied to the transport layer headers, and
not to the IP header. Because current ROHC specifications do not
include support for the compression of transport layer headers alone,
the ROHCoIPsec framework outlined by this document describes the
application of ROHC to tunnel mode SAs.
2. Audience
The authors target members of both the ROHC and IPsec communities who
may consider extending the ROHC and IPsec protocols to meet the
requirements put forth in this document. In addition, this document
is directed towards vendors developing IPsec devices that will be
deployed in bandwidth-constrained IP networks.
3. Terminology
ROHC Process
Generic reference to a ROHC instance (as defined in RFC 3759
[ROHC-TERM]) or any supporting ROHC components.
Compressed Traffic
Traffic that is processed through the ROHC compressor and
decompressor instances. Packet headers are compressed and
decompressed using a specific header compression profile.
Ertekin, et al. Informational [Page 3]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
Uncompressed Traffic
Traffic that is not processed by the ROHC compressor instance.
Instead, this type of traffic bypasses the ROHC process.
IPsec Process
Generic reference to the Internet Protocol Security (IPsec)
process.
Next Header
Refers to the Protocol (IPv4) or Next Header (IPv6, Extension)
field.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [BRA97].
4. Problem Statement: IPsec Packet Overhead
IPsec mechanisms provide various security services for IP networks.
However, the benefits of IPsec come at the cost of increased per-
packet overhead. For example, traffic flow confidentiality
(generally leveraged at security gateways) requires the tunneling of
IP packets between IPsec implementations. Although these IPsec
tunnels will effectively mask the source-destination patterns that an
intruder can ascertain, tunneling comes at the cost of increased
packet overhead. Specifically, an Encapsulating Security Payload
(ESP) tunnel mode SA applied to an IPv6 flow results in at least 50
bytes of additional overhead per packet. This additional overhead
may be undesirable for many bandwidth-constrained wireless and/or
satellite communications networks, as these types of infrastructure
are not overprovisioned. ROHC applied on a per-hop basis over
bandwidth-constrained links will also suffer from reduced performance
when encryption is used on the tunneled header, since encrypted
headers cannot be compressed. Consequently, the additional overhead
incurred by an IPsec tunnel may result in the inefficient utilization
of bandwidth.
Packet overhead is particularly significant for traffic profiles
characterized by small packet payloads (e.g., various voice codecs).
If these small packets are afforded the security services of an IPsec
tunnel mode SA, the amount of per-packet overhead is increased.
Thus, a mechanism is needed to reduce the overhead associated with
such flows.
Ertekin, et al. Informational [Page 4]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
5. Overview of the ROHCoIPsec Framework
5.1. ROHCoIPsec Assumptions
The goal of ROHCoIPsec is to provide efficient transport of IP
packets between IPsec devices without compromising the security
services offered by IPsec. The ROHCoIPsec framework has been
developed based on the following assumptions:
o ROHC will be leveraged to reduce the amount of overhead associated
with unicast IP packets traversing an IPsec SA.
o ROHC will be instantiated at the IPsec SA endpoints, and it will
be applied on a per-SA basis.
o Once the decompression operation completes, decompressed packet
headers will be identical to the original packet headers before
compression.
5.2. Summary of the ROHCoIPsec Framework
ROHC reduces packet overhead in a network by exploiting intra- and
inter-packet redundancies of network and transport-layer header
fields of a flow.
Current ROHC protocol specifications compress packet headers on a
hop-by-hop basis. However, IPsec SAs are instantiated between two
IPsec endpoints. Therefore, various extensions to both ROHC and
IPsec need to be defined to ensure the successful operation of the
ROHC protocol at IPsec SA endpoints.
The specification of ROHC over IPsec SAs is straightforward, since SA
endpoints provide source/destination pairs where (de)compression
operations can take place. Compression of the inner IP and upper
layer protocol headers in such a manner offers a reduction of packet
overhead between the two SA endpoints. Since ROHC will now operate
between IPsec endpoints (over multiple intermediate nodes that are
transparent to an IPsec SA), it is imperative to ensure that its
performance will not be severely impacted due to increased packet
reordering and/or packet loss between the compressor and
decompressor.
In addition, ROHC can no longer rely on the underlying link layer for
ROHC channel parameter configuration and packet identification. The
ROHCoIPsec framework proposes that ROHC channel parameter
configuration is accomplished by an SA management protocol (e.g.,
Internet Key Exchange Protocol version 2 (IKEv2) [IKEV2]), while
identification of compressed header packets is achieved through the
Ertekin, et al. Informational [Page 5]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
Next Header field of the security protocol (e.g., Authentication
Header (AH) [AH], ESP [ESP]) header.
Using the ROHCoIPsec framework proposed below, outbound and inbound
IP traffic processing at an IPsec device needs to be modified. For
an outbound packet, a ROHCoIPsec implementation will compress
appropriate packet headers, and subsequently encrypt and/or integrity
protect the packet. For tunnel mode SAs, compression may be applied
to the transport layer and the inner IP headers. For inbound
packets, an IPsec device must first decrypt and/or integrity check
the packet. Then, decompression of the inner packet headers is
performed. After decompression, the packet is checked against the
access controls imposed on all inbound traffic associated with the SA
(as specified in RFC 4301 [IPSEC]).
Note: Compression of inner headers is independent from compression
of the security protocol (e.g., ESP) and outer IP headers. ROHC
profiles have been defined to allow for the compression of the
security protocol and the outer IP header on a hop-by-hop basis.
The applicability of ROHCoIPsec and hop-by-hop ROHC on an IPv4
ESP-processed packet [ESP] is shown below in Figure 1.
-----------------------------------------------------------
IPv4 | new IP hdr | | orig IP hdr | | | ESP | ESP|
|(any options)| ESP | (any options) |TCP|Data|Trailer| ICV|
-----------------------------------------------------------
|<-------(1)------->|<------(2)-------->|
(1) Compressed hop-by-hop by the ROHC [ROHC]
ESP/IP profile
(2) Compressed end-to-end by the ROHCoIPsec [IPSEC-ROHC]
TCP/IP profile
Figure 1. Applicability of hop-by-hop ROHC and ROHCoIPsec on an
IPv4 ESP-processed packet.
If IPsec NULL encryption is applied to packets, ROHC may still be
used to compress the inner headers at IPsec SA endpoints. However,
compression of these inner headers may pose challenges for
intermediary devices (e.g., traffic monitors, sampling/management
tools) that are inspecting the contents of ESP-NULL packets. For
example, policies on these devices may need to be updated to ensure
that packets that contain the "ROHC" protocol identifier are not
dropped. In addition, intermediary devices may require additional
functionality to determine the content of the header compressed
packets.
Ertekin, et al. Informational [Page 6]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
In certain scenarios, a ROHCoIPsec implementation may encounter UDP-
encapsulated ESP or IKE packets (i.e., packets that are traversing
NATs). For example, a ROHCoIPsec implementation may receive a UDP-
encapsulated ESP packet that contains an ESP/UDP/IP header chain.
Currently, ROHC profiles do not support compression of the entire
header chain associated with this packet; only the UDP/IP headers can
be compressed.
6. Details of the ROHCoIPsec Framework
6.1. ROHC and IPsec Integration
Figure 2 illustrates the components required to integrate ROHC with
the IPsec process, i.e., ROHCoIPsec.
+-------------------------------+
| ROHC Module |
| |
| |
+-----+ | +-----+ +---------+ |
| | | | | | ROHC | |
--| A |---------| B |-----| Process |------> Path 1
| | | | | | | | (ROHC-enabled SA)
+-----+ | +-----+ +---------+ |
| | | |
| | |-------------------------> Path 2
| | | (ROHC-enabled SA,
| +-------------------------------+ but no compression)
|
|
|
|
+-----------------------------------------> Path 3
(ROHC-disabled SA)
Figure 2. Integration of ROHC with IPsec
The process illustrated in Figure 2 augments the IPsec processing
model for outbound IP traffic (protected-to-unprotected). Initial
IPsec processing is consistent with RFC 4301 [IPSEC] (Section 5.1,
Steps 1-2).
Block A: The ROHC data item (part of the SA state information)
retrieved from the "relevant SAD entry" ([IPSEC], Section 5.1,
Step3a) determines if the traffic traversing the SA is handed to the
ROHC module. Packets selected to a ROHC-disabled SA MUST follow
normal IPsec processing and MUST NOT be sent to the ROHC module
Ertekin, et al. Informational [Page 7]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
(Figure 2, Path 3). Conversely, packets selected to a ROHC-enabled
SA MUST be sent to the ROHC module.
Block B: This step determines if the packet can be compressed. If
the packet is compressed, an integrity algorithm MAY be used to
compute an Integrity Check Value (ICV) for the uncompressed packet
([IPSEC-ROHC], Section 4.2; [IKE-ROHC], Section 3.1). The Next
Header field of the security protocol header (e.g., ESP, AH) MUST be
populated with a "ROHC" protocol identifier [PROTOCOL], inner packet
headers MUST be compressed, and the computed ICV MAY be appended to
the packet (Figure 2, Path 1). However, if it is determined that the
packet will not be compressed (e.g., due to one of the reasons
described in Section 6.1.3), the Next Header field MUST be populated
with the appropriate value indicating the next-level protocol (Figure
2, Path 2), and ROHC processing MUST NOT be applied to the packet.
After the ROHC process completes, IPsec processing resumes, as
described in Section 5.1, Step3a, of RFC 4301 [IPSEC].
The process illustrated in Figure 2 also augments the IPsec
processing model for inbound IP traffic (unprotected-to-protected).
For inbound packets, IPsec processing is performed ([IPSEC], Section
5.2, Steps 1-3) followed by AH or ESP processing ([IPSEC], Section
5.2, Step 4).
Block A: After AH or ESP processing, the ROHC data item retrieved
from the SAD entry will indicate if traffic traversing the SA is
processed by the ROHC module ([IPSEC], Section 5.2, Step 3a).
Packets traversing a ROHC-disabled SA MUST follow normal IPsec
processing and MUST NOT be sent to the ROHC module. Conversely,
packets traversing a ROHC-enabled SA MUST be sent to the ROHC module.
Block B: The decision at Block B is made using the value of the Next
Header field of the security protocol header. If the Next Header
field does not indicate a ROHC header, the decompressor MUST NOT
attempt decompression (Figure 2, Path 2). If the Next Header field
indicates a ROHC header, decompression is applied. After
decompression, the signaled ROHCoIPsec integrity algorithm MAY be
used to compute an ICV value for the decompressed packet. This ICV,
if present, is compared to the ICV that was calculated at the
compressor. If the ICVs match, the packet is forwarded by the ROHC
module (Figure 2, Path 1); otherwise, the packet MUST be dropped.
Once the ROHC module completes processing, IPsec processing resumes,
as described in Section 5.2, Step 4, of RFC 4301 [IPSEC].
When there is a single SA between a compressor and decompressor, ROHC
MUST operate in unidirectional mode, as described in Section 5 of RFC
3759 [ROHC-TERM]. When there is a pair of SAs instantiated between
Ertekin, et al. Informational [Page 8]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
ROHCoIPsec implementations, ROHC MAY operate in bi-directional mode,
where an SA pair represents a bi-directional ROHC channel (as
described in Sections 6.1 and 6.2 of RFC 3759 [ROHC-TERM]).
Note that to further reduce the size of an IPsec-protected packet,
ROHCoIPsec and IPComp [IPCOMP] can be implemented in a nested
fashion. This process is detailed in [IPSEC-ROHC], Section 4.4.
6.1.1. Header Compression Protocol Considerations
ROHCv2 [ROHCV2] profiles include various mechanisms that provide
increased robustness over reordering channels. These mechanisms
SHOULD be adopted for ROHC to operate efficiently over IPsec SAs.
A ROHC decompressor implemented within IPsec architecture MAY
leverage additional mechanisms to improve performance over reordering
channels (either due to random events or to an attacker intentionally
reordering packets). Specifically, IPsec's sequence number MAY be
used by the decompressor to identify a packet as "sequentially late".
This knowledge will increase the likelihood of successful
decompression of a reordered packet.
Additionally, ROHCoIPsec implementations SHOULD minimize the amount
of feedback sent from the decompressor to the compressor. If a ROHC
feedback channel is not used sparingly, the overall gains from
ROHCoIPsec can be significantly reduced. More specifically, any
feedback sent from the decompressor to the compressor MUST be
processed by IPsec and tunneled back to the compressor (as designated
by the SA associated with FEEDBACK_FOR). As such, some
implementation alternatives can be considered, including the
following:
o Eliminate feedback traffic altogether by operating only in ROHC
Unidirectional mode (U-mode).
o Piggyback ROHC feedback messages within the feedback element
(i.e., on ROHC traffic that normally traverses the SA designated
by FEEDBACK_FOR).
6.1.2. Initialization and Negotiation of the ROHC Channel
Hop-by-hop ROHC typically uses the underlying link layer (e.g., PPP)
to negotiate ROHC channel parameters. In the case of ROHCoIPsec,
channel parameters can be set manually (i.e., administratively
configured for manual SAs) or negotiated by IKEv2. The extensions
required for IKEv2 to support ROHC channel parameter negotiation are
detailed in [IKE-ROHC].
Ertekin, et al. Informational [Page 9]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
If the ROHC protocol requires bi-directional communications, two SAs
MUST be instantiated between the IPsec implementations. One of the
two SAs is used for carrying ROHC-traffic from the compressor to the
decompressor, while the other is used to communicate ROHC-feedback
from the decompressor to the compressor. Note that the requirement
for two SAs aligns with the operation of IKE, which creates SAs in
pairs by default. However, IPsec implementations will dictate how
decompressor feedback received on one SA is associated with a
compressor on the other SA. An IPsec implementation MUST relay the
feedback received by the decompressor on an inbound SA to the
compressor associated with the corresponding outbound SA.
6.1.3. Encapsulation and Identification of Header Compressed Packets
As indicated in Section 6.1, new state information (i.e., a new ROHC
data item) is defined for each SA. The ROHC data item MUST be used
by the IPsec process to determine whether it sends all traffic
traversing a given SA to the ROHC module (ROHC-enabled) or bypasses
the ROHC module and sends the traffic through regular IPsec
processing (ROHC-disabled).
The Next Header field of the IPsec security protocol (e.g., AH or
ESP) header MUST be used to demultiplex header-compressed traffic
from uncompressed traffic traversing a ROHC-enabled SA. This
functionality is needed in situations where packets traversing a
ROHC-enabled SA contain uncompressed headers. Such situations may
occur when, for example, a compressor only supports up to n
compressed flows and cannot compress a flow number n+1 that arrives.
Another example is when traffic is selected to a ROHC-enabled SA, but
cannot be compressed by the ROHC process because the appropriate ROHC
Profile has not been signaled for use. As a result, the decompressor
MUST be able to identify packets with uncompressed headers and MUST
NOT attempt to decompress them. The Next Header field is used to
demultiplex these header-compressed and uncompressed packets where
the "ROHC" protocol identifier will indicate that the packet contains
compressed headers. To accomplish this, IANA has allocated value 142
to "ROHC" from the Protocol ID registry [PROTOCOL].
It is noted that the use of the "ROHC" protocol identifier for
purposes other than ROHCoIPsec is currently not defined. In other
words, the "ROHC" protocol identifier is only defined for use in the
Next Header field of security protocol headers (e.g., ESP, AH).
The ROHC Data Item, IANA Protocol ID allocation, and other IPsec
extensions to support ROHCoIPsec are specified in [IPSEC-ROHC].
Ertekin, et al. Informational [Page 10]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
6.1.4. Motivation for the ROHC ICV
Although ROHC was designed to tolerate packet loss and reordering,
the algorithm does not guarantee that packets reconstructed at the
decompressor are identical to the original packet. As stated in
Section 5.2 of RFC 4224 [REORDR], the consequences of packet
reordering between ROHC peers may include undetected decompression
failures, where erroneous packets are constructed and forwarded to
upper layers. Significant packet loss can have similar consequences.
When using IPsec integrity protection, a packet received at the
egress of an IPsec tunnel is identical to the packet that was
processed at the ingress (given that the key is not compromised,
etc.).
When ROHC is integrated into the IPsec processing framework, the ROHC
processed packet is protected by the AH/ESP ICV. However, bits in
the original IP header are not protected by this ICV; they are
protected only by ROHC's integrity mechanisms (which are designed for
random packet loss/reordering, not malicious packet loss/reordering
introduced by an attacker). Therefore, under certain circumstances,
erroneous packets may be constructed and forwarded into the protected
domain.
To ensure the integrity of the original IP header within the
ROHCoIPsec-processing model, an additional integrity check MAY be
applied before the packet is compressed. This integrity check will
ensure that erroneous packets are not forwarded into the protected
domain. The specifics of this integrity check are documented in
Section 4.2 of [IPSEC-ROHC].
6.1.5. Path MTU Considerations
By encapsulating IP packets with AH/ESP and tunneling IP headers,
IPsec increases the size of IP packets. This increase may result in
Path MTU issues in the unprotected domain. Several approaches to
resolving these path MTU issues are documented in Section 8 of RFC
4301 [IPSEC]; approaches include fragmenting the packet before or
after IPsec processing (if the packet's Don't Fragment (DF) bit is
clear), or possibly discarding packets (if the packet's DF bit is
set).
The addition of ROHC within the IPsec processing model may result in
similar path MTU challenges. For example, under certain
circumstances, ROHC headers are larger than the original uncompressed
headers. In addition, if an integrity algorithm is used to validate
packet headers, the resulting ICV will increase the size of packets.
Both of these properties of ROHCoIPsec increase the size of packets,
Ertekin, et al. Informational [Page 11]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
and therefore may result in additional challenges associated with
path MTU.
Approaches to addressing these path MTU issues are specified in
Section 4.3 of [IPSEC-ROHC].
6.2. ROHCoIPsec Framework Summary
To summarize, the following items are needed to achieve ROHCoIPsec:
o IKEv2 Extensions to Support ROHCoIPsec
o IPsec Extensions to Support ROHCoIPsec
7. Security Considerations
Several security considerations associated with the use of ROHCoIPsec
are covered in Section 6.1.4. These considerations can be mitigated
by using a strong integrity-check algorithm to ensure the valid
decompression of packet headers.
A malfunctioning or malicious ROHCoIPsec compressor (i.e., the
compressor located at the ingress of the IPsec tunnel) has the
ability to send erroneous packets to the decompressor (i.e., the
decompressor located at the egress of the IPsec tunnel) that do not
match the original packets emitted from the end-hosts. Such a
scenario may result in decreased efficiency between compressor and
decompressor, or may cause the decompressor to forward erroneous
packets into the protected domain. A malicious compressor could also
intentionally generate a significant number of compressed packets,
which may result in denial of service at the decompressor, as the
decompression of a significant number of invalid packets may drain
the resources of an IPsec device.
A malfunctioning or malicious ROHCoIPsec decompressor has the ability
to disrupt communications as well. For example, a decompressor may
simply discard a subset of (or all) the packets that are received,
even if packet headers were validly decompressed. Ultimately, this
could result in denial of service. A malicious decompressor could
also intentionally indicate that its context is not synchronized with
the compressor's context, forcing the compressor to transition to a
lower compression state. This will reduce the overall efficiency
gain offered by ROHCoIPsec.
8. IANA Considerations
All IANA considerations for ROHCoIPsec are documented in [IKE-ROHC]
and [IPSEC-ROHC].
Ertekin, et al. Informational [Page 12]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
9. Acknowledgments
The authors would like to thank Sean O'Keeffe, James Kohler, and
Linda Noone of the Department of Defense, as well as Rich Espy of
OPnet for their contributions and support in the development of this
document.
The authors would also like to thank Yoav Nir and Robert A Stangarone
Jr.: both served as committed document reviewers for this
specification.
In addition, the authors would like to thank the following for their
numerous reviews and comments to this document:
o Magnus Westerlund
o Stephen Kent
o Pasi Eronen
o Joseph Touch
o Tero Kivinen
o Jonah Pezeshki
o Lars-Erik Jonsson
o Jan Vilhuber
o Dan Wing
o Kristopher Sandlund
o Ghyslain Pelletier
o David Black
o Tim Polk
o Brian Carpenter
Finally, the authors would also like to thank Tom Conkle, Renee
Esposito, Etzel Brower, and Michele Casey of Booz Allen Hamilton for
their assistance in completing this work.
Ertekin, et al. Informational [Page 13]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
10. Informative References
[ROHC] Sandlund, K., Pelletier, G., and L-E. Jonsson, "The
RObust Header Compression (ROHC) Framework", RFC 5795,
March 2010.
[IPSEC] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[ROHC-TERM] Jonsson, L-E., "Robust Header Compression (ROHC):
Terminology and Channel Mapping Examples", RFC 3759,
April 2004.
[BRA97] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[IKEV2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
RFC 4306, December 2005.
[ESP] Kent, S., "IP Encapsulating Security Payload (ESP)",
RFC 4303, December 2005.
[AH] Kent, S., "IP Authentication Header", RFC 4302,
December 2005.
[IPSEC-ROHC] Ertekin, E., Christou, C., and C. Bormann, "IPsec
Extensions to Support Robust Header Compression over
IPsec", RFC 5858, May 2010.
[IKE-ROHC] Ertekin, E., Christou, C., Jasani, R., Kivinen, T., and
C. Bormann, "IKEv2 Extensions to Support Robust Header
Compression over IPsec", RFC 5857, May 2010.
[PROTOCOL] IANA, "Assigned Internet Protocol Numbers",
<http://www.iana.org>.
[IPCOMP] Shacham, A., Monsour, B., Pereira, R., and M. Thomas,
"IP Payload Compression Protocol (IPComp)", RFC 3173,
September 2001.
[ROHCV2] Pelletier, G. and K. Sandlund, "RObust Header
Compression Version 2 (ROHCv2): Profiles for RTP, UDP,
IP, ESP and UDP-Lite", RFC 5225, April 2008.
[REORDR] Pelletier, G., Jonsson, L-E., and K. Sandlund, "RObust
Header Compression (ROHC): ROHC over Channels That Can
Reorder Packets", RFC 4224, January 2006.
Ertekin, et al. Informational [Page 14]
^L
RFC 5856 Integration of ROHC over IPsec SAs May 2010
Authors' Addresses
Emre Ertekin
Booz Allen Hamilton
5220 Pacific Concourse Drive, Suite 200
Los Angeles, CA 90045
US
EMail: ertekin_emre@bah.com
Rohan Jasani
Booz Allen Hamilton
13200 Woodland Park Dr.
Herndon, VA 20171
US
EMail: ro@breakcheck.com
Chris Christou
Booz Allen Hamilton
13200 Woodland Park Dr.
Herndon, VA 20171
US
EMail: christou_chris@bah.com
Carsten Bormann
Universitaet Bremen TZI
Postfach 330440
Bremen D-28334
Germany
EMail: cabo@tzi.org
Ertekin, et al. Informational [Page 15]
^L
|