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
|
Internet Engineering Task Force (IETF) S. Hartman
Request for Comments: 6863 Painless Security
Category: Informational D. Zhang
ISSN: 2070-1721 Huawei Technologies Co., Ltd.
March 2013
Analysis of OSPF Security According to the
Keying and Authentication for Routing Protocols (KARP) Design Guide
Abstract
This document analyzes OSPFv2 and OSPFv3 according to the guidelines
set forth in Section 4.2 of the "Keying and Authentication for
Routing Protocols (KARP) Design Guidelines" (RFC 6518). Key
components of solutions to gaps identified in this document are
already underway.
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 represents the consensus of the IETF community. It has
received public review and 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/rfc6863.
Copyright Notice
Copyright (c) 2013 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
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.
Hartman & Zhang Informational [Page 1]
^L
RFC 6863 OSPF Analysis March 2013
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements to Meet . . . . . . . . . . . . . . . . . . . 3
1.2. Requirements Notation . . . . . . . . . . . . . . . . . . 3
2. Current State . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. OSPFv2 . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. OSPFv3 . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Impacts of OSPF Replays . . . . . . . . . . . . . . . . . . . 6
4. Gap Analysis and Specific Requirements . . . . . . . . . . . . 7
5. Solution Work . . . . . . . . . . . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Normative References . . . . . . . . . . . . . . . . . . . 10
8.2. Informative References . . . . . . . . . . . . . . . . . . 10
1. Introduction
This document analyzes the current state of OSPFv2 and OSPFv3
according to the requirements of [RFC6518]. It builds on several
previous analysis efforts regarding routing security. The OPSEC
working group put together an analysis of cryptographic issues with
routing protocols [RFC6039]. Earlier, the RPSEC working group put
together a detailed analysis of OSPF vulnerabilities [OSPF-SEC].
Work on solutions to address gaps identified in this analysis is
underway [OSPF-MANKEY] [RFC6506].
OSPF meets many of the requirements expected from a manually keyed
routing protocol. Integrity protection is provided with modern
cryptographic algorithms. Algorithm agility is provided: the
algorithm can be changed as part of rekeying an interface or peer.
Intra-connection rekeying is provided by the specifications, although
apparently some implementations have trouble with this in practice.
OSPFv2 security does not interfere with prioritization of packets.
However, some gaps remain between the current state and the
requirements for manually keyed routing security expressed in
[RFC6862]. This document explores these gaps and proposes directions
for addressing the gaps.
Hartman & Zhang Informational [Page 2]
^L
RFC 6863 OSPF Analysis March 2013
1.1. Requirements to Meet
There are a number of requirements described in Section 3 of
[RFC6862] that OSPF does not currently meet. The gaps are as
follows:
o Secure Simple Pre-Shared Keys (PSKs): Today, OSPF directly uses
the key as specified. Related key attacks, such as those
described in Section 4.1 of [OPS-MODEL], are possible.
o Replay Protection: The requirements document addresses
requirements for both inter-connection replay protection and
intra-connection replay protection. OSPFv3 has no replay
protection at all. OSPFv2 has most of the mechanisms necessary
for intra-connection replay protection. Unfortunately, OSPFv2
does not securely identify the neighbor with whom replay
protection state is associated in all cases. This weakness can be
used to create significant denial-of-service issues using intra-
connection replays. OSPFv2 has no inter-connection replay
protection; this creates significant denial-of-service
opportunities.
o Packet Prioritization: OSPFv3 uses IPsec [RFC4301] to process
packets. This complicates implementations that wish to process
some packets, such as Hellos and Acknowledgements, above others.
In addition, if IPsec replay mechanisms were used, packets would
need to be processed at least by IPsec even if they were low
priority.
o Neighbor Identification: In some cases, OSPF identifies a neighbor
based on the IP address. This operation is never protected with
OSPFv2 and is not typically protected with OSPFv3.
The remainder of this document explains how OSPF fails to meet these
requirements, and it proposes mechanisms for addressing them.
1.2. Requirements Notation
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 [RFC2119].
2. Current State
This section describes the security mechanisms built into OSPFv2 and
OSPFv3. There are two goals to this section. First, this section
gives a brief explanation of the OSPF security mechanisms to those
familiar with connectionless integrity mechanisms but not with OSPF.
Hartman & Zhang Informational [Page 3]
^L
RFC 6863 OSPF Analysis March 2013
Second, this section provides the background necessary to understand
how OSPF fails to meet some of the requirements proposed for routing
security.
2.1. OSPFv2
Appendix D of [RFC2328] describes the basic procedure for
cryptographic authentication in OSPFv2. An authentication data field
in the OSPF packet header contains a key ID, the length of the
authentication data, and a sequence number. A Message Authentication
Code (MAC) is appended to the OSPF packet. This code protects all
fields of the packet including the sequence number but not the IP
header.
RFC 2328 defines the use of a keyed-MD5 MAC. While MD5 has not been
broken as a MAC, it is not the algorithm of choice for new MACs.
However, RFC 5709 [RFC5709] adds support for the SHA family of hashes
[FIPS180] to OSPFv2. The cryptographic authentication described in
RFC 5709 meets modern standards for per-packet integrity protection.
Thus, OSPFv2 meets the requirement for strong algorithms. Since
multiple algorithms are defined and a new algorithm can be selected
with each key, OSPFv2 meets the requirement for algorithm agility.
In order to provide cryptographic algorithms believed to have a
relatively long useful life, RFC 5709 mandates support for SHA-2
rather than SHA-1.
These security services provide integrity protection on each packet.
In addition, limited replay detection is provided. The sequence
number is non-decreasing. So, once a router has increased its
sequence number, an attacker cannot replay an old packet.
Unfortunately, sequence numbers are not required to increase for each
packet. For instance, because existing OSPF security solutions do
not specify how to set the sequence number, it is possible that some
implementations use, for example, "seconds since reboot" as their
sequence numbers. The sequence numbers are thus increased only every
second, permitting an opportunity for intra-connection replay. Also,
no mechanism is provided to deal with the loss of anti-replay state;
if sequence numbers are reused when a router reboots, then inter-
connection replays are straight forward. In [OSPF-MANKEY], the
OSPFv2 sequence number is expanded to 64 bits, with the least
significant 32-bit value containing a strictly increasing sequence
number and the most significant 32-bit value containing the boot
count. The boot count is retained in non-volatile storage for the
deployment life of an OSPF router. Therefore, the sequence number
will never decrease, even after a cold reboot.
Hartman & Zhang Informational [Page 4]
^L
RFC 6863 OSPF Analysis March 2013
Also, because the IP header is not protected, the sequence number may
not be associated with the correct neighbor, a situation that opens
up opportunities for outsiders to perform replay attacks. See
Section 3 for analysis of these attacks. In [OSPF-MANKEY], this
issue is addressed by changing the definition of Apad from a constant
defined in [RFC5709] to the source address in the IP header of the
OSPFv2 protocol packet. In this way, the source address from the IP
header is incorporated in the cryptographic authentication
computation, and any change of the IP source address will be
detected.
The mechanism provides good support for key rollover. There is a key
ID. In addition, mechanisms are described for managing key lifetimes
and starting the use of a new key in an orderly manner. Performing
orderly key rollover requires that implementations support accepting
a new key for received packets before using that key to generate
packets. Section D.3 of RFC 2328 requires this support in the form
of four configurable lifetimes for each key: two lifetimes control
the beginning and ending period for acceptance, while two other
lifetimes control the beginning and ending period for generation.
These lifetimes provide a superset of the functionality in the key
table [CRYPTO-KEYS] regarding lifetime.
The OSPFv2 replay mechanism does not handle prioritized transmission
of OSPF Hello and Link State Acknowledgement (LSA) packets as
recommended in [RFC4222]. When OSPF packets are transmitted with
varied prioritization, they can arrive out of order, which results in
packets with lower prioritization being discarded.
2.2. OSPFv3
"Authentication/Confidentiality for OSPFv3" [RFC4552] describes how
the IPsec authentication header and encapsulating security payload
mechanism can be used to protect OSPFv3 packets. This mechanism
provides per-packet integrity and optional confidentiality using a
wide variety of cryptographic algorithms. Because OSPF uses
multicast traffic, only manual key management is supported. This
mechanism meets requirements related to algorithm selection and
agility.
The Security Parameter Index (SPI) [RFC4301] provides an identifier
for the security association. This identifier, along with other
IPsec facilities, provides a mechanism for moving from one key to
another, meeting the key rollover requirements.
Because manual keying is used, no replay protection is provided for
OSPFv3. Thus, the intra-connection and inter-connection replay
requirements are not met.
Hartman & Zhang Informational [Page 5]
^L
RFC 6863 OSPF Analysis March 2013
There is another serious problem with the OSPFv3 security: rather
than being integrated into OSPF, it is based on IPsec. In practice,
this has lead to deployment problems.
OSPF implementations generally prioritize packets in order to
minimize disruption when router resources such as CPU or memory
experience contention. When IPsec is used with OSPFv3, the offset of
the packet type, which is used to prioritize packets, depends on
which integrity transform is used. For this reason, prioritizing
packets may be more complex for OSPFv3. One approach is to establish
per-SPI filters to find the packet type and then act accordingly.
3. Impacts of OSPF Replays
As discussed, neither version of OSPF meets the requirements of
inter-connection or intra-connection replay protection. In order to
mount a replay, an attacker needs some mechanism to inject a packet.
Physical security can limit a particular deployment's vulnerability
to replay attacks. This section discusses the impacts of OSPF
replays.
In OSPFv2, two facilities limit the scope of replay attacks. First,
when cryptographic authentication is used, each packet includes a
sequence number that is non-decreasing. In the current
specifications, the sequence number is remembered as part of an
adjacency: if an attacker can cause an adjacency to go down, then
replay state is lost. Database Description packets also include a
per-LSA sequence number that is part of the information that is
flooded. Even if a packet is replayed, the per-LSA sequence number
will prevent an old LSA from being installed. Unlike the per-packet
sequence number, the per-LSA sequence number must increase when an
LSA is changed. As a result, replays cannot be used to install old
routing information.
While the LSA sequence number provides some defense, the Routing
Protocol Security Requirements (RPSEC) analysis [OSPF-SEC] describes
a number of attacks that are possible because of per-packet replays.
The most serious appear to be attacks against Hello packets, which
may cause an adjacency to fail. Other attacks may cause excessive
flooding or excessive use of CPU.
Another serious attack concerns Database Description packets. In
addition to the per-packet sequence number that is part of
cryptographic authentication for OSPFv2 and the per-LSA sequence
numbers, Database Description packets also include a Database
Description sequence number. If a Database Description packet with
the incorrect sequence number is received, then the database exchange
process will be restarted.
Hartman & Zhang Informational [Page 6]
^L
RFC 6863 OSPF Analysis March 2013
The per-packet OSPFv2 sequence number can be used to reduce the
window in which a replay is valid. A receiver will harmlessly reject
a packet whose per-packet sequence number is older than the one most
recently received from a neighbor. Replaying the most recent packet
from a neighbor does not appear to create problems. So, if the per-
packet sequence number is incremented on every packet sent, then
replay attacks should not disrupt OSPFv2. Unfortunately, OSPFv2 does
not have a procedure for dealing with sequence numbers reaching the
maximum value. It may be possible to figure out a set of rules
sufficient to disrupt the damage of packet replays while minimizing
the use of the sequence number space.
As mentioned previously, when an adjacency is dropped, replay state
is lost. So, after rebooting or when all adjacencies are lost, a
router may allow its sequence number to decrease. An attacker can
cause significant damage by replaying a packet captured before the
sequence number decrease at a time after the sequence number
decrease. If this happens, then the replayed packet will be accepted
and the sequence number will be updated. However, the legitimate
sender will be using a lower sequence number, so legitimate packets
will be rejected. A similar attack is possible in cases where OSPF
identifies a neighbor based on source address. An attacker can
change the source address of a captured packet and replay it. If the
attacker causes a replay from a neighbor with a high sequence number
to appear to be from a neighbor with a low sequence number, then
connectivity with that neighbor will be disrupted until the adjacency
fails.
OSPFv3 lacks the per-packet sequence number but has the per-LSA
sequence number. As such, OSPFv3 has no defense against denial-of-
service attacks that exploit replay.
4. Gap Analysis and Specific Requirements
The design guide requires each design team to enumerate a set of
requirements for the routing protocol. The only concerns identified
with OSPF are areas in which it fails to meet the general
requirements outlined in the threats and requirements document. This
section explains how some of these general requirements map
specifically onto the OSPF protocol and enumerates the specific gaps
that need to be addressed.
There is a general requirement for inter-connection replay
protection. In the context of OSPF, this means that if an adjacency
goes down between two neighbors and later is re-established,
replaying packets from before the adjacency went down cannot disrupt
the adjacency. In the context of OSPF, intra-connection replay
protection means that replaying a packet cannot prevent an adjacency
Hartman & Zhang Informational [Page 7]
^L
RFC 6863 OSPF Analysis March 2013
from forming or cannot disrupt an existing adjacency. In terms of
meeting the requirements for intra-connection and inter-connection
replay protection, a significant gap exists between the optimal state
and where OSPF is today.
Since OSPF uses fields in the IP header, the general requirement to
protect the IP header and handle neighbor identification applies.
This is another gap that needs to be addressed. Because the replay
protection will depend on neighbor identification, the replay
protection cannot be adequately addressed without handling this issue
as well.
In order to encourage deployment of OSPFv3 security, an
authentication option is required that does not have the deployment
challenges of IPsec.
In order to support the requirement for simple pre-shared keys, OSPF
needs to make sure that when the same key is used for two different
purposes, no problems result.
In order to support packet prioritization, it is desirable for the
information needed to prioritize OSPF packets (the packet type) to be
at a constant location in the packet.
5. Solution Work
It is recommended that the OSPF Working Group develop a solution for
OSPFv2 and OSPFv3 based on the OSPFv2 cryptographic authentication
option. This solution would have the following improvements over the
existing OSPFv2 option:
Address most inter-connection replay attacks by splitting the
sequence number and requiring preservation of state so that the
sequence number increases on every packet.
Add a form of simple key derivation so that if the same pre-shared
key is used for OSPF and other purposes, cross-protocol attacks do
not result.
Support OSPFv3 authentication without use of IPsec.
Specify processing rules sufficient to permit replay detection and
packet prioritization.
Emphasize requirements already present in the OSPF specification
sufficient to permit key migration without disrupting adjacencies.
Specify the proper use of the key table for OSPF.
Hartman & Zhang Informational [Page 8]
^L
RFC 6863 OSPF Analysis March 2013
Protect the source IP address.
Require that sequence numbers be incremented on each packet.
The key components of this solution work are already underway.
OSPFv3 now supports an authentication option [RFC6506] that meets the
requirements of this section; however, this document does not
describe how the key tables are used for OSPF. OSPFv2 is being
enhanced [OSPF-MANKEY] to protect the source address, provide inter-
connection replay and describe how to use the key table.
6. Security Considerations
This memo discusses and compiles vulnerabilities in the existing OSPF
cryptographic handling.
In analyzing proposed improvements to OSPF per-packet security, it is
desirable to consider how these improvements interact with potential
improvements in overall routing security. For example, the impact of
replay attacks currently depends on the LSA sequence number
mechanism. If cryptographic protections against insider attackers
are considered by future work, then that work will need to provide a
solution that meets the needs of the per-packet replay defense as
well as protects routing data from insider attack. An experimental
solution is discussed in [RFC2154] that explores end-to-end
protection of routing data in OSPF. It may be beneficial to consider
how improvements to the per-packet protections would interact with
such a mechanism to future-proof these mechanisms.
Implementations have a number of options in minimizing the potential
denial-of-service impact of OSPF cryptographic authentication. The
Generalized TTL Security Mechanism (GTSM) [RFC5082] might be
appropriate for OSPF packets except for those traversing virtual
links. Using this mechanism requires support of the sender; new OSPF
cryptographic authentication could specify this behavior if desired.
Alternatively, implementations can limit the source addresses from
which they accept packets. Non-Hello packets need only be accepted
from existing neighbors. If a system is under attack, Hello packets
from existing neighbors could be prioritized over Hello packets from
new neighbors. These mechanisms can be considered to limit the
potential impact of denial-of-service attacks on the cryptographic
authentication mechanism itself.
Hartman & Zhang Informational [Page 9]
^L
RFC 6863 OSPF Analysis March 2013
7. Acknowledgements
Funding for Sam Hartman's work on this memo was provided by Huawei.
The authors would like to thank Ran Atkinson, Michael Barnes, and
Manav Bhatia for valuable comments.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
April 1998.
[RFC4552] Gupta, M. and N. Melam, "Authentication/
Confidentiality for OSPFv3", RFC 4552, June 2006.
[RFC6518] Lebovitz, G. and M. Bhatia, "Keying and Authentication
for Routing Protocols (KARP) Design Guidelines",
RFC 6518, February 2012.
[RFC6862] Lebovitz, G., Bhatia, M., and B. Weis, "Keying and
Authentication for Routing Protocols (KARP) Overview,
Threats, and Requirements", RFC 6862, March 2013.
8.2. Informative References
[CRYPTO-KEYS] Housley, R., Polk, T., Hartman, S., and D. Zhang,
"Database of Long-Lived Symmetric Cryptographic Keys",
Work in Progress, October 2012.
[FIPS180] US National Institute of Standards and Technology,
"Secure Hash Standard (SHS)", August 2002.
[OPS-MODEL] Hartman, S. and D. Zhang, "Operations Model for Router
Keying", Work in Progress, October 2012.
[OSPF-MANKEY] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem,
"Security Extension for OSPFv2 when using Manual Key
Management", Work in Progress, October 2012.
[OSPF-SEC] Jones, E. and O. Moigne, "OSPF Security
Vulnerabilities Analysis", Work in Progress,
June 2006.
Hartman & Zhang Informational [Page 10]
^L
RFC 6863 OSPF Analysis March 2013
[RFC2154] Murphy, S., Badger, M., and B. Wellington, "OSPF with
Digital Signatures", RFC 2154, June 1997.
[RFC4222] Choudhury, G., "Prioritized Treatment of Specific OSPF
Version 2 Packets and Congestion Avoidance", BCP 112,
RFC 4222, October 2005.
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., and C.
Pignataro, "The Generalized TTL Security Mechanism
(GTSM)", RFC 5082, October 2007.
[RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes,
M., Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA
Cryptographic Authentication", RFC 5709, October 2009.
[RFC6039] Manral, V., Bhatia, M., Jaeggli, J., and R. White,
"Issues with Existing Cryptographic Protection Methods
for Routing Protocols", RFC 6039, October 2010.
[RFC6506] Bhatia, M., Manral, V., and A. Lindem, "Supporting
Authentication Trailer for OSPFv3", RFC 6506,
February 2012.
Authors' Addresses
Sam Hartman
Painless Security
EMail: hartmans-ietf@mit.edu
URI: http://www.painless-security.com/
Dacheng Zhang
Huawei Technologies Co., Ltd.
Huawei Building No. 3 Xinxi Rd.
Shang-Di Information Industrial Base Hai-Dian District, Beijing
China
EMail: zhangdacheng@huawei.com
Hartman & Zhang Informational [Page 11]
^L
|