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
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
|
Network Working Group S. Murphy
Request for Comments: 2154 M. Badger
Category: Experimental B. Wellington
Trusted Information Systems
June 1997
OSPF with Digital Signatures
Status of this Memo
This memo defines an Experimental Protocol for the Internet
community. This memo does not specify an Internet standard of any
kind. Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.
Abstract
This memo describes the extensions to OSPF required to add digital
signature authentication to Link State data, and to provide a
certification mechanism for router data. Added LSA processing and
key management is detailed. A method for migration from, or co-
existence with, standard OSPF V2 is described.
Table of Contents
1 Acknowledgements ............................................. 2
2 Introduction ................................................. 2
3 LSA Processing ............................................... 4
3.1 Signed LSA ................................................. 4
3.2 Router Public Key LSA (PKLSA) .............................. 5
3.3 MaxAge Processing .......................................... 7
4 Key Management ............................................... 8
4.1 Identifying Keys ........................................... 8
4.1.1 Identifying Router Keys and PKLSAs ....................... 8
4.1.2 Identifying TE Public Keys ............................... 8
4.1.3 Key to use for Signing ................................... 9
4.1.4 Key to use for Verification .............................. 9
4.2 Trusted Entity (TE) Requirements ........................... 10
4.3 Scope for Keys and Signature Algorithms..................... 10
4.4 Router Key Replacement ..................................... 11
4.5 Trusted Entity Key Replacement ............................. 12
4.6 Flexible Cryptographic Environments ........................ 14
4.6.1 Multiple Signature Algorithms ............................ 14
4.6.2 Multiple Trusted Entities ................................ 15
4.6.3 Multiple Keys for One Router ............................. 16
5 Compatibility with Standard OSPF V2 .......................... 16
6 Special Considerations/Restrictions for the ABR-ASBR ......... 17
7 LSA formats .................................................. 18
Murphy, et. al. Experimental [Page 1]
^L
RFC 2154 OSPF with Digital Signatures June 1997
7.1 Router Public Key LSA (PKLSA) .............................. 18
7.2 Router Public Key Certificate .............................. 20
7.3 Signed LSA ................................................. 23
8 Configuration Information .................................... 26
9 Remaining Vulnerabilities .................................... 26
9.1 Area Border Routers ........................................ 27
9.2 Internal Routers ........................................... 27
9.3 Autonomous System Border Routers ........................... 28
10 Security Considerations ..................................... 28
11 References .................................................. 29
12 Authors' Addresses .......................................... 29
1. Acknowledgements
The idea of signing routing information is not new. Foremost, of
course, there is the design that Radia Perlman reported in her thesis
[4] and in her book [5] for signing link state information and for
distribution of the public keys used in the signing. IDPR [7] also
recommends the use of public key based signatures of link state
information. Kumar and Crowcroft [2] discuss the use of secret and
public key authentication of inter-domain routing protocols. Finn [1]
discusses the use of secret and public key authentication of several
different routing protocols. The design reported here is closest to
that reported in [4] and [7]. It should be noted that [4] also
presents techniques for protecting the forwarding of data packets, a
topic that is not considered here, as we consider it not within the
scope of the OSPF working group.
The authors would also like to acknowledge many fruitful discussions
with many members of the OSPF working group, particularly Fred Baker
of Cisco Systems, Dennis Ferguson of MCI Telecommunications Corp.,
John Moy of Cascade Communications Corp., Curtis Villamizar of ANS,
Inc., and Rob Coltun of FORE Systems.
2. Introduction
It is well recognized that there is a need for greater security in
routing protocols. OSPF currently provides "simple password"
authentication where the password travels "in the clear", and there
is work in progress[11] to provide keyed MD5 authentication for OSPF
protocol packets between neighbors. The simple password
authentication is vulnerable because any listener can discover and
use the password. Keyed MD5 authentication is very useful for
protection of protocol packets passed between neighbors, but does not
address authentication of routing data that is flooded from source to
eventual destination, through routers which may themselves be faulty
or subverted.
Murphy, et. al. Experimental [Page 2]
^L
RFC 2154 OSPF with Digital Signatures June 1997
The basic idea of this proposal is to add digital signatures to OSPF
LSA data, distribute certified router information and keys, and use a
neighbor-to-neighbor authentication algorithm (like keyed MD5) to
protect local protocol exchanges. The content of a Hello packet,
Link State Request, Link State Update, or Database Description will
be protected by the neighbor-to-neighbor algorithm. The LSAs that
are being flooded inside the Link State Update packets are
individually protected by a digital signature. Each LSA will be
signed by the originator of that information and the signature will
stay with the data in its travels via OSPF flooding. This will
provide end-to-end integrity and authentication for LSA data. The
digital signature attached to an LSA by the source router provides
assurance that the data comes from the advertising router. It will
also ensure that the data has not been modified by some other router
in the course of flooding. In the case where incorrect routing data
is originated by a faulty router, the signature will identify the
source of the problem.
Digital signatures are implemented using public key cryptography.
There are some good books on the subject of cryptography [6], but the
high level view of how this design uses public key cryptography is as
follows: Each router has a pair of keys, a public key and a private
key. The private key is used to generate a unique signature of a
block of data (in this case, the LSA). Each router signs its LSAs by
first running a one-way hash algorithm (like MD5 or SHA) on the data,
and then using its private key to sign the digest. The signature of
an LSA is appended to the LSA. The public key can be used by any
other router to verify the signature. The private key must be kept
secret by one router and the public key must be distributed to all
the routers that will receive link state information from the signer.
The distribution is accomplished by creating a new LSA, the Public
Key LSA (PKLSA), and distributing it via the standard OSPF flooding
procedure. Flooding will ensure that a router public key is sent
everywhere that the router's signed LSAs are sent.
Any router can send out a public key and claim to be a given router,
so the public key itself provides no assurance of the actual identity
of the sender. This assurance must be provided by a Trusted Entity.
The Trusted Entity (TE) is a system that generates certificates for
routers. A certificate is a packet of information about a router
that identifies the router and supplies a public key. Certified
router information will include the router id, its role, the address
ranges that the router may advertise, a timestamp and the router's
public key. The certificate is signed by the TE. Each router must be
configured with a certificate and a TE public key to use in verifying
other routers' certificates. A router PKLSA contains the certificate
for that router. A router receiving a PKLSA verifies the certificate
using the TE public key, and then verifies the whole LSA using the
Murphy, et. al. Experimental [Page 3]
^L
RFC 2154 OSPF with Digital Signatures June 1997
router public key contained in the certificate. Successful
verification provides assurance that the PKLSA is from the correct
router, and that it has not been altered by any other router in the
flood path.
OSPF with Digital Signatures is backward compatible with standard
OSPF V2 in a limited way. Within an AS there may be "signed" areas
and "unsigned" areas. The behavior of a mixed AS is discussed in
section 5.
Digital signatures for OSPF LSAs can be implemented with the
following major functions:
(1) Support for a digital signature algorithm
(2) Support for a signed version of all routing information LSAs
(3) Support for a new LSA: Router Public Key LSA (PKLSA)
(4) A mechanism for key certification and certificate distribution
(5) Extra configuration data (detail in section 7):
Trusted Entity (TE) information and key(s)
Router certification data and key
Area environment flag (signed/unsigned)
Timing intervals
An implementation of this design exists, based on the OSPF in Gated
version 3.5Beta3. This implementation is available for
use/experimentation. Please contact the authors for information.
3. LSA Processing
3.1. Signed LSA
A signed LSA contains the standard OSPF V2 header and data plus key
identification information, a signature length and a signature. The
top bit of the LS type field is set to indicate the presence of a
signature. The signature covers the LSA header (starting with the
options field), the LSA data, and the key identification information
and the signature length that must be appended to the LSA data.
There are two exceptions to this coverage: first, an LSA created with
age=MaxAge has a signature that begins with the age field (see
section on maxage); second, the LSA header checksum is set to zero
for the generation of the signature. To assist in parsing the
message, the key id information and the signature length fields are
placed at the end of the LSA, following the signature. However, the
Murphy, et. al. Experimental [Page 4]
^L
RFC 2154 OSPF with Digital Signatures June 1997
message must be signed and verified with these fields immediately
appended to the LSA data. This can be accomplished either by doing
the sign and verify "in parts" (allowed by RSAREF), or by storing the
LSA data with appended fields and the LSA signature separately in the
link state database (LSDB).
When a signed LSA is received, the signature can be verified using
the public key of the advertising router contained in the advertising
router's PKLSA. If the signature verifies, then the signed LSA is
stored for use in routing calculations. If the signature verification
fails, the LSA must be discarded. If the identified key is not
available (in a PKLSA from the advertising router), then the signed
LSA must be stored for a period of time defined by the configurable
MAX_TRANSIT_DELAY interval. If the key arrives within this interval,
the LSA will be processed then. If the key does not arrive within
this interval, the LSA will be discarded. This delay period prevents
loss of routing information due to LSAs arriving prior to their
associated PKLSAs (which should not normally be the case, but could
happen).
If the LSA is a Router Links LSA, the router's advertised links must
be checked against the allowed address ranges stored in the PKLSA for
the advertising router. All network links (link types 2 and 3) must
have an IP address that fits in one of the ranges defined by the list
of address ranges in the PKLSA (format 7.2). If there is a link that
does not fit into one of these ranges, then an error must be logged
and the LSA must be discarded. Careful subnetting and corresponding
ranges can provide very tight control on what is advertised. A much
less restrictive, but still useful, level of control can be obtained
by defining allowed address ranges for an area, so that all routers
in an area could be configured with the same set. To trivially
satisfy this checking, one range with a zero address and mask can be
defined that contains all IP addresses.
Link State Acknowledgements must be sent for all LSAs that are
discarded due to verification failures, that are stored waiting for
keys, and that are discarded because they are advertising a link that
they are not allowed to advertise.
3.2. Router Public Key LSA (PKLSA)
A Router Public Key LSA (PKLSA) is sent in the same manner as all
other LSAs. This LSA contains the router's public key and
identifying information that has been certified by a Trusted Entity.
The router public key is used to verify signatures produced by this
router. There is only one PKLSA stored per router in the LSDB for an
area, so the Router Id and LS type can be used to retrieve a given
PKLSA. The Router Id is stored in the PKLSA Link State Id field to
Murphy, et. al. Experimental [Page 5]
^L
RFC 2154 OSPF with Digital Signatures June 1997
use in retrieving the PKLSA. Identification information in the
certified data (TE Id, Rtr Key Id) can be used to uniquely identify
the current router key (section 7.2).
To assist in parsing the message, the router signature length and the
certification length fields are at the end of the LSA, following the
signature. The message must be signed and verified with these fields
immediately appended to the LSA data. The router signature of the
PKLSA is verified in the same manner as other signed LSAs. In
addition, the certification must be verified using the referenced TE
public key. If either verification fails, for any reason, the PKLSA
is discarded.
A successfully verified PKLSA is stored for use in verifying signed
LSAs from the advertising router. For every router that this router
is in contact with, there may be one PKLSA stored at any given time.
Each PKLSA is uniquely identified by the values (TE Id, Rtr Key Id)
in the certified data (format in 7.2). When a PKLSA arrives for a
given router, and there is already a PKLSA stored for that router,
the PKLSA with the most recent "Create Time" is the one kept.
Whenever groups of LSAs are sent by a router (as when synchronizing
databases or sending updates), the PKLSAs must be sent/requested
before other LSAs to minimize the time spent processing LSAs that
arrive prior to their associated keys. The PKLSA is sent at
intervals like all other LSAs, and it is sent immediately if a router
obtains a new key to distribute. A PKLSA is sent via OSPF flooding
within an OSPF area. PKLSAs are not flooded outside an area with the
exception of an Autonomous System Border Router's PKLSAs which must
be flooded wherever AS external LSAs are flooded. The decision to
flood or not flood can be implemented by checking the router role
(Rtr, ABR, ASBR, ABR-ASBR) stored in the certified part of the PKLSA.
A router may flush its keys from routing tables by flooding a PKLSA
for that key with age=MaxAge. This is called premature aging of the
PKLSA. A key can also be removed from routing tables (superseded) by
a PKLSA from the same router, containing a valid certificate for a
new key with a more recent Create Time. If a key is superseded by a
more recent key it is not necessary to flush the old key with a
"MaxAge" PKLSA.
When a new key is received, the LSAs stored in the LSDB that are
signed with the old key must be replaced within MAX_TRANSIT_DELAY.
if the sending router is working properly. This is because a router
distributing a new key sends all of its self-originated LSAs signed
with the new key immediately after sending the new PKLSA. (See
section 4.4 on Router Key Replacement). To ensure that data signed
with an old (possibly subverted) key does not persist in the LSDB in
Murphy, et. al. Experimental [Page 6]
^L
RFC 2154 OSPF with Digital Signatures June 1997
error, all LSAs signed with a flushed or superseded key are aged to
within MAX_TRANSIT_DELAY of MaxAge. This should allow time for the
new LSAs signed with the new key to arrive. If new LSAs do not
arrive, or if the key has been flushed and not replaced, then the old
LSA data will disappear from the LSDB in a timely fashion.
Link State Acknowledgements must be sent for PKLSAs that are
discarded due to verification failures or because the PKLSA was less
recent than the one already stored.
3.3. MaxAge Processing
The age field in the OSPF LSA header is used to keep track of how
long a given LSA has been in the system. When the age field reaches
MaxAge, a router stops using the LSA for routing, and it floods the
MaxAge LSA to make sure that all routers stop using this LSA. In the
normal course of the OSPF protocol, an LSA is always replaced by an
updated version before the age reaches MaxAge, unless the advertising
router fails, or changes in the AS have made the routing information
in the LSA inaccurate. An LSA with age=MaxAge is either:
(1) being intentionally flushed from the AS by the advertising router
because the information in it is no longer accurate, or
(2) an orphan LSA that has aged to MaxAge because its originating
router has not refreshed it at the normal refresh intervals.
The age field cannot generally be included in the signature, because
it must be updated by routers other than the originating router. For
the same reason, the age field is not included in the checksum
computation. The age field must be protected, because if a faulty
router started to age out other router's LSAs, it would effectively
deny service to those other routers.
To protect the age field, the signature must include the age field if
and only if the originating router creates an LSA with age=MaxAge.
Verification of the signature on a signed LSA must include the age
field if and only if the age field value is MaxAge. In this manner,
the originating router can flush an LSA, but other routers cannot.
An LSA that ages to MaxAge in the LSDB of any router is still
discarded by that router, but it is not synchronously flushed from
the AS.
Murphy, et. al. Experimental [Page 7]
^L
RFC 2154 OSPF with Digital Signatures June 1997
An LSA will be removed from a router's Link State Database in one of
two ways: 1) the router receives a version of the LSA with the age
field set to MaxAge and a valid signature that covers the age field,
or 2) the LSA incrementally reaches MaxAge while it is stored by the
router.
If a standard OSPF V2 router goes down, an LSA from that router will
age in the LSDBs of each remaining router until it reaches MaxAge
somewhere. As soon as it reaches MaxAge in some router's LSDB it is
flooded, and this causes it to be flushed from the AS in a
synchronized fashion. If router running OSPF with digital signatures
goes down, its signed LSAs will be aged out by each remaining router
individually. This will slow database convergence but the databases
will still converge, and a fairly obvious security hole will be
closed.
4. Key Management
4.1. Identifying Keys
4.1.1. Identifying Router Keys and PKLSAs
A router key is identified by the Router Id, and the identifiers
associated with the particular key in its certificate: TE Id and
Router Key Id. All three of these values are stored in a PKLSA
(format in 7.1). The Router Id is the standard LSA header
Advertising Router. The (TE Id, Rtr Key Id) are stored in the PKLSA
certified data. The TE Id is a number assigned to a Trusted Entity
that must uniquely identify one TE in the AS. The TE Id in a
certificate identifies the TE that produced the certificate. The Rtr
Key Id is associated with a key by the Trusted Entity that produced
the certificate. The Trusted Entity must produce a stream of Rtr Key
Ids for one router such that the router will not re-use a key id
until all references to the last key having that id are gone from the
AS. If a key is re-played, or re-used too soon, the Create Time in
the key certification will determine which key is current. Rtr Key
Ids do not have to be sequential.
4.1.2. Identifying TE Public Keys
Each TE public key has an associated TE Id, TE Key Id. The
combination of (TE Id, TE Key Id) uniquely identifies one TE public
key in the AS. The TE Id is a number assigned to a Trusted Entity
Murphy, et. al. Experimental [Page 8]
^L
RFC 2154 OSPF with Digital Signatures June 1997
that uniquely identifies one TE in the AS. The TE Key Id must
identify one particular key for a TE at any given time. The TE Key
Id distinguishes between a new key and an old key for the same TE.
The TE Key Id also differentiates between keys for different
signature algorithms if one TE serves multiple algorithms. Each TE
can have at most one current key per signature algorithm.
There can be multiple TE keys stored on each router. A TE public key
is used to verify the certificates issued by other routers, and in an
AS with several TEs, any given router may need several TE public
keys. TE Key Ids do not have to be used sequentially, and they can
be re-used. There is no timestamp for TE keys because these are not
certified.
It is the responsibility of Configuration Management to ensure that
TE Key Ids are not re-used before all references to a previously used
key with the same (TE Id, TE Key Id) are gone from the AS, that a
given (TE Id, TE Key Id) on one router identifies the same key as it
does on any other router, and that the rules for TE Key Replacement
(section 4.5) are followed.
4.1.3. Key to use for Signing
A router is configured with a pair of keys. The private key is
protected from disclosure and is used for signing. The public key is
flooded in a PKLSA and is used for verifying signatures. A router
may have one key per area to use for signing at any given time. A
router may use the same key for several or all areas.
4.1.4. Key to use for Verification
There are three uses of signature verification in this design:
(1) The signature in a signed LSA (format in 7.3) can be verified
with the public key distributed by the advertising router in a
Public Key LSA. A signed LSA contains the (TE Id, Rtr Key Id) of
the key used to sign it. The signed LSA's Advertising Router Id
is used to retrieve the router's PKLSA , and the (TE Id, Rtr Key
Id) indicates if the router key in the PKLSA is the same as the
one used to generate the signature.
(2) The router's signature in a PKLSA (format in 7.1) is verified
with the public key contained in that PKLSA.
Murphy, et. al. Experimental [Page 9]
^L
RFC 2154 OSPF with Digital Signatures June 1997
(3) The PKLSA contains data certified with a signature generated
by a TE. The PKLSA certified data contains the (TE Id, TE Key
Id) for the TE key that can be used to verify the certificate
(format in 7.2). TE public keys must be configured on each
router.
4.2. Trusted Entity (TE) Requirements
This design does not specify how the Trusted Entity (TE) must be
implemented, where it must reside, or how it must communicate with
routers. There are several very different possible approaches to the
implementation of a Trusted Entity (e.g., an offline system with
distribution of keys by floppy or secure e-mail, an online automated
key distribution center, etc.) This design does mandate certain
requirements for what a Trusted Entity must do. A Trusted Entity
must generate a certificate for each signing router that contains
individualized information about that router (format in 7.2) and is
signed with the Trusted Entity private key. The Trusted Entity must
have a unique TE Id for itself, it must create a Rtr Key Id for each
router key that is unique for the given Router for this TE at this
time, and it must timestamp certificates with a Create Time that is
consistent for itself and for any other Trusted Entities operating in
the AS. Note: routers do not have to be time-synched, but TEs do.
Create Time is used by routers as a relative measure to determine
which key is more recent.
The TE Public key, TE Id, TE Key Id and Signature Algorithm must be
made available to each router processing certificates from this TE.
A TE can theoretically create certificates for more than one
signature algorithm. The TE key and the router public key certified
do not have to be of the same signature algorithm.
There can be more than one TE in an AS but the TE Id must identify a
unique TE.
4.3. Scope for Keys and Signature Algorithms
The concept of "scope" relates to Router Keys, TE Keys, and Signature
Algorithms.
(1) The scope of a PKLSA and therefore a router key, is defined to
be the set of routers that will receive and store that PKLSA in
the course of OSPF flooding. A router produces a PKLSA for each
attached area. In a router with more than one area, the PKLSAs
for each area may match, or each may contain a different key.
The scope of PKLSA for an internal router is all the routers in
that area. An ABR has multiple PKLSAs, each having a scope of
Murphy, et. al. Experimental [Page 10]
^L
RFC 2154 OSPF with Digital Signatures June 1997
one attached area. The scope of an ASBR's PKLSA is the same as
the scope of the ASBRs ASEs - all the routers in all the non-stub
areas in the AS. An ASBR that is an ABR produces multiple PKLSAs
that each have a scope of all the routers in all the non-stub
areas in the AS. (This last case results in some situations that
require special management - section 6)
(2) The scope of a TE key is defined to be the set of routers that are
configured with this key. If a system is configured properly,
then a TE public key will be configured on all the routers that
will receive PKLSAs certified by that TE key. The minimum scope
for a TE key is an area. If one router distributes a key
certified with a given TE key, then all the routers in the area
must be able toverify the certificate. A TE Key certifying an
ASBRs key must have a scope of all non-stub areas in the AS. If
the TE key is not on some router that receives PKLSAs certified by
that TE key, then those PKLSAs and all the LSAs that require them
will be discarded. A TE key gets to all the routers in its scope
via out-of-band configuration.
(3) The scope of a signature algorithm is defined to be the set of
routers that are capable of verifying the given algorithm's
signatures. The minimum scope for a signature algorithm is an
area. All routers in an area must be able to verify any signature
algorithm used for signing by any router in the area. The
algorithm used to certify an ASBRs key must have a scope of all
non-stub areas in the AS if the ASEs are to be accessible
everywhere (see section 6). If a signature algorithm is not
available to verify an LSA, then the LSA must be discarded. If a
signature algorithm is not available to verify the certification
in a PKLSA, then the PKLSA must be discarded.
4.4. Router Key Replacement
Router keys should be changed periodically, and immediately if a key
is found to be compromised. The regular period for changing a key is
some locally determined function of the size of the key and the level
of security needed.
Each router can have ONE valid key per area at any given time.
Restricting the number of keys at a given time to one key per router
per area allows key replacement to also serve the purpose of key
revocation, without having a revocation list and without routers
having synchronized time. Each key for the router/area revokes the
last key, provided the "new" key has a more recent Create Time than
the last key. The Create Time in each certificate is used to prevent
an old key from being reused, but this Create Time is used only for
comparing the relative ages of certificates, and does not require the
Murphy, et. al. Experimental [Page 11]
^L
RFC 2154 OSPF with Digital Signatures June 1997
router to run a time synchronization protocol itself. An ABR can use
the same key for all it's attached areas, or it can have a unique key
for each area. This allows an AS to be managed by area with each
area potentially having a different TE, signature algorithm, key
size, and/or key.
When a new key replaces an old key, the router must quickly replace
LSAs signed with the old key with LSAs signed with the new key. To
change a router key the following steps must be followed:
(1) A valid certificate for the new key must be obtained for the
router.
(2) The router builds and sends a new PKLSA with the new certificate.
(3) The router signs each self-originated LSA with the new key and
sends them.
When a PKLSA is received:
(1) If the PKLSA's age = MaxAge, remove the PKLSA from the LSDB and
age LSAs signed with this key to be MaxAge - MAX_TRANSIT_DELAY,
if they were not already older than this. This is a way to get
rid of a key that should no longer be used.
(2) If the PKLSA is a refresh LSA for an existing key, update the
LSDB.
(3) If the PKLSA contains a different key than the one currently
stored for this router, compare the certificate Create Time. If
the PKLSA key is less recent, discard it. If the PKLSA key is
more recent, install it in the LSDB and remove the old key from
the LSDB. If an old key was deleted from the LSDB, age LSAs
signed with this key to be MaxAge - MAX_TRANSIT_DELAY, if they
were not already older than this.
4.5. Trusted Entity Key Replacement
It is necessary to change a TE public key periodically. It is
recommended that the TE public key be relatively large, so that it
does not frequently require replacement. A router may store multiple
TE public keys. Each key is uniquely identified by TE Id and TE Key
Id. TE keys are used to verify certificates received from other
routers in their PKLSAs. When a router sends a new certificate
signed with a new TE Key, all the routers that receive the PKLSA
containing the certificate must have that new TE Key in order to
verify, store, and use that PKLSA. Management of TE public keys is
done outside the OSPF protocol, and a method is suggested, but not
Murphy, et. al. Experimental [Page 12]
^L
RFC 2154 OSPF with Digital Signatures June 1997
mandated by this design. Initially all routers must be configured
with the TE Keys they will need to verify the certificates they will
receive. To prevent use of a (possibly compromised) TE Key, that key
must be replaced by a new (possibly null) TE Key having the same TE
Id and signature algorithm. A compromised or faulty router can
continue using certificates signed with the old TE key, but none of
the properly configured routers will be able to verify them.
Changing a TE public key presents a design challenge. When a TE
Public Key is changed, all the certificates depending on that key
must also change. The router keys in the certificates may or may not
be changed at the same time. When the TE key and certificates
change, all PKLSAs depending on these must be reissued. In order to
verify these new certificates, all routers receiving the new PKLSAs
must have the new TE Public Key. So, the TE key replacement must be
a synchronized event. Routers are not required to have synchronized
clocks. The TE public key may well be distributed to the routers via
an out-of-band mechanism (like a smart-card reader or other sneaker-
net method). It is not reasonable to require that all the routers
obtain the TE public key at the same time. There are probably
several methods for meeting these requirements. The method tested in
our implementation is as follows:
(1) Define a period of time needed to get the new TE key on all
routers. This could be minutes, hours, even days depending on
how the distribution is accomplished. This time period is a
configuration value for each router (TE_KEY_DIST_INT) and must be
the same for all routers sharing a TE.
(2) Install a new TE key and associated certificates (if there are
any) on each router. Signal the router code when the new TE key
is available to be accessed.
(3) The router sets a timer for the TE_KEY_DIST_INT. The router
sets a flag indicating the presence of a new TE key.
(4) For each router, if the timer goes off:
Access the new TE key.
If there are new certificates, build and send a new PKLSA.
Age all PKLSAs in the LSDB certified by the old TE Key
to MaxAge - MAX_TRANSIT_DELAY.
Murphy, et. al. Experimental [Page 13]
^L
RFC 2154 OSPF with Digital Signatures June 1997
(5) For each router, if a PKLSA certified by a new TE key comes in
before the timer goes off:
If the new TE key cannot be accessed, discard the PKLSA and
log an ERROR.
Access the new TE key.
Process the received PKLSA.
If there are new certificates, build and send a new PKLSA.
Age all PKLSAs in the LSDB certified by the old TE key
to MaxAge - MAX_TRANSIT_DELAY.
The effect of this method is that it takes a predetermined interval
of time to change the TE public key. That interval is the amount of
time from the installation of the new TE key on the FIRST router
installed, until the time that router reads the key in. By the time
the first router reads the key in, all other routers should have the
new key. If some router does not get the new TE key in time, it will
be unable to verify all the new PKLSAs that are received. It will
log error messages and route data based on it's old database until
those LSAs time out. The simple way to fix a router in this error
condition is to load the new TE key and restart the router. If this
error is expected to occur, and restarting the router is not
acceptable, then some special purpose code will be needed to read in
the TE key after it has been otherwise distributed, and do database
synchronization to catch up with the other routers.
The group of routers that need the new TE key are all the routers in
the scope of that Trusted Entity.
4.6. Flexible Cryptographic Environments
It is likely that an AS will have one cryptographic environment in
use throughout the AS, with one trusted entity, one signature
algorithm in use, and one key in use per router. To allow those
cases where this is not true, multiple signature algorithms, multiple
trusted entities, and multiple keys per router are allowed.
4.6.1. Multiple Signature Algorithms
It is possible to support multiple signature algorithms. Each router
and TE key has a signature algorithm associated with it. All routers
sending a key with a given algorithm must be capable of generating
signatures of that kind, and all routers receiving keys with a given
algorithm must be able to verify the signatures. If a router
receives an LSA signed with a signature algorithm that it does not
support, the LSA must be discarded. LSAs that cannot be verified by
a router are not flooded by that router. When using multiple
signature algorithms, the scope of each algorithm must be determined
Murphy, et. al. Experimental [Page 14]
^L
RFC 2154 OSPF with Digital Signatures June 1997
(see section 4.3), and routers must be configured with support for
these algorithms accordingly.
If an Area supports two signature algorithms and is to have full
connectivity, some routers may sign with algorithm A and others with
algorithm B, but all routers in the area must be able to verify
signatures for A and B. In an AS that is divided into areas, it is
possible for each area to have a different signature algorithm. The
ABR connecting two areas would have to support both algorithms, but
the internal routers in a given area would only have to know one
algorithm.
ASBRs present a problem for this sort of division. ASEs flood
throughout the non-stub areas of an AS. Any router that cannot
verify an ASE will discard it without flooding. So, to have access
to an ASE, a router, and all the routers in the flooding path, must
support the algorithm used by the ASBR. One way around these
difficulties is to have a lowest-common-denominator algorithm that is
used for signing by all ASBRs and is supported for verification
throughout the AS in addition to other algorithms used. Another
approach is to place ASBRs on the backbone, and configure all areas
using a signature algorithm different from the ASBR to have a default
route to the backbone. A combined approach will allow an ASBR to be
in a non-backbone area if it uses a signature algorithm supported on
the backbone, and the areas using different signature algorithms are
configured with a default to the backbone. There are special
limitations in the case of a router that is an ABR and also an ASBR:
see section 6.
There is currently only one signature algorithm (RSA_MD5) defined for
use by this design. The RSA algorithm is defined in PKCS #1 [9] and
the signature and key formats used by this design are defined in
RFC2065 [10].
4.6.2. Multiple Trusted Entities
It is possible to have multiple Trusted Entities in an AS. Each TE
has a unique TE identifier. Every router receiving PKLSAs certified
by a given TE must have that TE's public key. If a router receives a
PKLSA certified by a TE for which it does not have a public key, the
PKLSA must be discarded. When using multiple TEs, the scope of each
TE must be determined (see section 4.3), and routers in this scope
must be configured with the TE key.
Murphy, et. al. Experimental [Page 15]
^L
RFC 2154 OSPF with Digital Signatures June 1997
4.6.3. Multiple Keys for One Router
An ABR may have one key for each attached area. These keys may
differ in size, algorithm and/or certifying TE. Generally, each key
will have a "scope" of the attached area, and there will be no
conflict between keys.
There are special limitations in the case of a router that is an ABR
and also an ASBR: see section 6.
5. Compatibility with Standard OSPF V2
OSPF with Digital Signatures is compatible with standard OSPF V2 in
an autonomous system. Within an AS, there may be "signed" areas and
"unsigned" areas. There will never be both signed and unsigned LSAs
used in any one area. Each area will have an environment flag
indicating whether it is "signed" or "unsigned". The environment
flag is a per area configuration value for the router. The signed
areas must contain all routers running OSPF with Digital Signatures,
and the unsigned areas contain routers running standard OSPF V2 code
(or OSPF with Digital Signatures with all areas set to be unsigned).
An area border router connecting a signed to an unsigned area must be
running OSPF with Digital Signatures with one area set to be
unsigned.
In order to arrange this limited compatibility, a router running OSPF
with Digital Signatures must be able to process both signed and
unsigned LSAs. The only router that will actually be processing both
kinds of LSAs is an Area Border Router connecting a signed area to an
unsigned area. An ABR connecting a signed to an unsigned area will
generate signed summaries for one area and unsigned summaries for the
other. An ABR must not flood signed LSAs into unsigned areas. An
ABR must not flood unsigned LSAs into signed areas. This will result
in AS External LSAs being dropped if they reach an area that has a
different environment from the one in which they were created. There
are special limitations in the case of a router that is an ABR and
also an ASBR: see section 6.
Complete connectivity is provided within the AS, because of the
summarization provided by ABRs connecting signed and unsigned areas.
There are limitations on connectivity to AS external routes in an AS
with a mixture of signed and unsigned areas, depending on the
location of AS border routers. An ASBR in a signed area will
generate signed ASE LSAs. These LSAs will be flooded to every
contiguously connected signed area. The connected signed areas are
the "scope" of these ASEs. A host located in an area that is not in
this scope, will not have connectivity to these external routes. An
ASBR in an unsigned area will generate unsigned ASE LSAs. These LSAs
Murphy, et. al. Experimental [Page 16]
^L
RFC 2154 OSPF with Digital Signatures June 1997
will have a scope of all the contiguously connected unsigned areas,
and will be available to hosts in this scope. To arrange complete
connectivity to an ASE route in an AS with signed and unsigned areas:
(1) Place the ASBR on the backbone.
(2) Signed Backbone: have some ABR in each unsigned area advertise a
default route to the backbone.
(3) Unsigned Backbone: have some ABR in each signed area advertise a
default route to the backbone.
Given this design for a mixed AS, routing is available throughout the
AS, but the authentication and integrity provided by this design will
be effective only for routes that are inside a signed area, or
traverse only signed areas. There is no mechanism for a data packet
to state a preference for signed routes. The basic rules of the OSPF
protocol ensure that intra-area routes are preferred to inter-area
routes, that routes within the AS are preferred to AS external
routes, and that inter-area routes go from area1->backbone->area2.
OSPF does not allow looping, or routes of the form area1->area2-
>area3. Because of these properties of OSFP routing, an AS can
contain signed and unsigned areas, and achieve a predictable level of
authentication.
6. Special Considerations/Restrictions for the ABR-ASBR
There are special restrictions and configuration considerations for a
router running OSPF with Digital Signatures that is both an Area
Border Router and an Autonomous System Border Router. An ASBR
produces AS external LSAs that are flooded throughout the non-stub
areas of the AS. An ABR that is generating digital signatures may be
using a different key, certifying Trusted Entity, or signature
algorithm for each of its attached areas, or it might be signing in
some areas and not in others.
An ABR/ASBR with no restrictions on its configuration could produce
multiple versions of an ASE that would all be flooded throughout the
non-stub areas of the AS. The results of this production of multiple
versions of LSAs would be detrimental to performance, and could
produce unpredictable routing behavior.
Murphy, et. al. Experimental [Page 17]
^L
RFC 2154 OSPF with Digital Signatures June 1997
The PKLSA of an ASBR is also flooded throughout the non-stub areas of
the AS, and in the case of an ABR/ASBR there could be multiple,
distinct PKLSAs for a given router, one per attached area, all being
flooded throughout the AS. If two distinct PKLSAs from one ABR/ASBR
router were present in one area, the key with the most recent create
time would be stored, and all LSAs signed with a less recent key
would be unverifiable.
The simplest way to deal with this problem, and the method
recommended by this document, is the following:
If an ASBR must also be an ABR, then the security configuration (key,
signature algorithm, certifying Trusted Entity, environment =
signed/unsigned) for all attached areas must be the same. This way
the PKLSA and the ASEs produced for each area match, and there is no
proliferation of versions of LSAs.
7. LSA formats
7.1. Router Public Key LSA (PKLSA)
This LSA is the vehicle for distribution of a router public key. The
PKLSA is sent by one router, and stored by all the other routers in
the flooding scope. The PKLSA contains the public key that other
routers will use to verify the signatures created by this router. A
Router PKLSA will be communicated in the usual database exchange and
via flooding mechanisms. The regular period for sending this LSA is
LSRefreshTime. The Router PKLSA will also be sent when there is a
new key, or a key to be flushed from the system.
The flooding scope of a PKLSA is the area, except in the case of
ASBRs. The flooding scope of an ASBR's PKLSA is the same as that of
the ASEs. The "role" of the router (RTR, ABR, ASBR, ABR-ASBR) is
stored in the PKLSA inside the certificate, and can be checked during
flooding.
Murphy, et. al. Experimental [Page 18]
^L
RFC 2154 OSPF with Digital Signatures June 1997
ROUTER PUBLIC KEY LSA
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LS Age | Options | LS Type |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LS Sequence Number |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LS Checksum | Length |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Certificate (format in 7.2) /
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Signature /
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Cert Length | Sign Length |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
LS AGE Defined in OSPF RFC [3].
OPTIONS Defined in OSPF RFC [3].
LS TYPE 16 for Router Public Key LSA.
First bit set to indicate a signed LSA.
LINK STATE ID Contains the Advertising Router Id (see next field).
ADVERTISING ROUTER Defined in OSPF RFC [3].
LS SEQUENCE NUMBER Defined in OSPF RFC [3].
LS CHECKSUM Defined in OSPF RFC [3].
Checksum does not cover the signature.
LENGTH Defined in OSPF RFC [3]. Length does include the
Signature field, Cert Length and Sign Length.
CERTIFICATE Format in section 7.2.
Murphy, et. al. Experimental [Page 19]
^L
RFC 2154 OSPF with Digital Signatures June 1997
SIGNATURE The advertising router's signature of this LSA. This
can be verified using the enclosed Router Public Key.
The signature covers the LSA header and message
starting with the LSA header options field and ending
with the Trusted Entity certification field. For
sign and verify, the last two fields (Cert Length and
Sign Length) are appended immediately after the
Certificate. When complete, the signature is
inserted between the Certification and the Cert
Length. There are two exceptions to this coverage:
1) If the LSA was generated with an age=MaxAge, then
the signature begins with the age field (see section
3.3).
2) The checksum in the LSA Header is set to zero for
the computation of the signature.
A pad is added to the end of the signature field to
allow the next field to begin on a (4 byte) word
boundary.
The format used for an RSA-MD5 signature is defined
in section 4.1.2 of RFC2065 [10].
CERT LENGTH The length in bytes of the Certification inside the
Certificate.
Does not include pad that may follow Certification.
SIGN LENGTH The length in bytes of the Signature.
Does not include pad that may follow Signature.
7.2. Router Public Key Certificate
A router public key certificate is a package of data signed by a
Trusted Entity. This certificate is included in the router PKLSA and
in the router configuration information. To change any of the values
in the certificate, a new certificate must be obtained from a TE.
Murphy, et. al. Experimental [Page 20]
^L
RFC 2154 OSPF with Digital Signatures June 1997
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Router Id |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| TE Id | TE Key Id | Rtr Key Id | Sig Alg |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Create Time |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Key Field Length | Router Role | #Net Ranges |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| IP Address |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Address Mask |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| IP Address/Address Mask for each Net Range ... /
| ... /
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Router Public Key |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Certification /
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
ROUTER ID Advertising Router.
TE ID TE Id must uniquely identify one TE in the AS.
A number between 1-250. 0 reserved for null.
251-255 reserved for future needs.
TE KEY ID Must uniquely identify a particular key for a given
TE at any given time. A TE Key Id may be re-used
after all references to it are gone from the AS. A
number between 1-250. 0 reserved for null. 251-255
reserved for future needs.
RTR KEY ID Must be unique for the TE and Router at any given
time. The combination of (TE Id, Rtr Id, Rtr Key Id)
uniquely identifies a particular router key at a
given time. A Rtr Key Id may be re-used after all
references to it are gone from the AS. Create Time
resolves any conflict that could be caused by
replaying old keys. A number between 1-250. 0
reserved for null. 251-255 reserved for future
needs.
Murphy, et. al. Experimental [Page 21]
^L
RFC 2154 OSPF with Digital Signatures June 1997
SIG ALG The signature algorithm for the Router Public Key.
The signature algorithm encompasses the hash
algorithm used as well. Currently defined value =
RSA-MD5(1). Values 2-252 are available for future
definition. Values 0 and 253-255 are reserved. The
Sig Alg value is registered with IANA. Future
signature algorithms will have to be defined or
referenced in this document, and registered with
IANA.
CREATE TIME Timestamp set by the TE. An unsigned number of
seconds since the start of January 1, 1970, GMT,
ignoring leap seconds. Used to compare two
certificates and determine which is more recent.
Requires that time synchronization for TEs, but not
for routers.
KEY FIELD LENGTH The length in bytes of the Router Public Key.
Does not include pad that may follow Router Public
Key field.
ROUTER ROLE Router (R=1), Area Border Router (ABR=2), Autonomous
System Border Router (ASBR=4), ABR and ASBR (ABR-
ASBR=6).
#NET RANGES The number of network ranges that follow. A network
range is defined to be an IP Address and an Address
Mask. This list of ranges defines the addresses that
the Router is permitted to advertise in its Router
Links LSA. Valid values are 0-255. If there are 0
ranges the router cannot advertise anything. This is
not generally useful. One range with address=0 and
mask=0 will allow a router to advertise any address.
IP ADDRESS & ADDRESS MASK
Define a range of addresses that this router may
advertise. Each is a 32 bit value. One range with
address=0 and mask=0 will allow a router to advertise
any address.
Murphy, et. al. Experimental [Page 22]
^L
RFC 2154 OSPF with Digital Signatures June 1997
ROUTER PUBLIC KEY A key that can be used to verify the signatures
produced by this router. The internal format for the
Router Public Key is signature algorithm dependent.
A pad is added to the end of the Router Public Key
field to allow the next field to begin on a (4 byte)
word boundary.
The format used for an RSA-MD5 public key is defined
in section 3.5 of RFC2065 [10].
CERTIFICATION The Trusted Entity's signature of the certified data.
This signature can be verified with the TE public key
identified by TE Id and TE Key Id given in this
packet. The length of the certification depends on
the key size, and is stored in the PKLSA Cert Length
field. A pad is added to the end of the
Certification to allow the next field to begin on a
(4 byte) word boundary.
The format used for an RSA-MD5 signature is defined
in section 4.1.2 of RFC2065 [10].
7.3 Signed LSA
A signed LSA is an OSPF LSA with signature data and a digital
signature attached. The first bit of the LSA Type field is set to
indicate the presence of a signature. The signature follows the LSA
Data. Signature length and id fields are positioned at the end of
the signed LSA.
Murphy, et. al. Experimental [Page 23]
^L
RFC 2154 OSPF with Digital Signatures June 1997
ANY SIGNED LSA
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LS Age | Options | LS Type |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LS Sequence Number |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LS Checksum | Length |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| LSA Data /
/ ... /
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Signature /
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
| Rtr Key Id | TE Id | Sign Length |
+-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
LS AGE Defined in OSPF RFC [3].
OPTIONS Defined in OSPF RFC [3].
LS TYPE Standard LSA Type with the first bit set to indicate
the presence of security data and a signature. This
creates a new signed LSA type for each existing type.
LINK STATE ID Defined in OSPF RFC [3].
ADVERTISING ROUTER Defined in OSPF RFC [3].
LS SEQUENCE NUMBER Defined in OSPF RFC [3].
LS CHECKSUM Defined in OSPF RFC [3].
Checksum does not cover the signature.
LENGTH Defined in OSPF RFC [3].
Length does include the Signature and security
related fields at the end of the LSA.
Murphy, et. al. Experimental [Page 24]
^L
RFC 2154 OSPF with Digital Signatures June 1997
SIGNATURE The advertising router's signature of this LSA. The
signature covers the LSA header and data starting
with the LSA header options field and ending with the
Trusted Entity certification field. For sign and
verify, the last three fields (Rtr Key Id, TE Id,
Sign Length) are appended to the Certificate. When
complete, the signature is inserted between the
Certification and the Rtr Key Id. There are two
exceptions to this coverage:
1) If the LSA was generated with an age=MaxAge, then
the signature begins with the age field (see section
3.3).
2) The checksum in the LSA Header is set to zero for
the computation & verification of the signature.
A pad is added to the end of the signature to allow
the next field to begin on a (4 byte) word boundary.
The format used for an RSA-MD5 signature is defined
in section 4.1.2 of RFC2065 [10].
RTR KEY ID Used to identify the router key used to sign this
LSA. The combination of (TE Id, Rtr Id, Rtr Key Id)
uniquely identifies a particular router key at a
given time, and can be used to look up the PKLSA for
the router key needed to verify this Signed LSA. A
number between 1-250. 0 reserved for null. 251-255
reserved for future needs.
TE ID The id of the Trusted Entity that produced the
certificate. TE Id must uniquely identify one TE in
the AS. A number between 1-250. 0 reserved for
null. 251-255 reserved for future needs.
SIGN LENGTH The length in bytes of the Signature.
Does not include pad that may follow Signature.
Murphy, et. al. Experimental [Page 25]
^L
RFC 2154 OSPF with Digital Signatures June 1997
8. Configuration Information
Trusted Entity Information Set: (one per Trusted Entity used by this
router)
Trusted Entity ID - TE Id
Identifies the Trusted Entity within the AS (defined in 7.2).
Trusted Entity Key Id - TE Key Id
Identifies the particular key for this Trusted Entity
(defined in 7.2).
Trusted Entity Public Key
A public key for this Trusted Entity.
The format used for an RSA-MD5 public key is defined in
section 3.5 of RFC2065 [10].
Signature Algorithm < and optional parameters >
The signature algorithm for the public key (defined in 7.2).
Router Information Set: (at least one for the router)
Router Private Key
The router's private key that goes with the public key in the
certificate following. The format used for the private key
depends on the crypto package used by your implementation.
This key is not transmitted as part of this design. Our
implementation uses the private key format compatible with
RSAREF [9].
Router Certificate (format in 7.2).
Timing Intervals:
Trusted Entity Key Distribution Interval (TE_KEY_DIST_INT)
The period of time, in seconds, needed to get a TE public key
installed on all the routers in the TE's scope.
Maximum Transit Delay (MAX_TRANSIT_DELAY)
The maximum period of time, in seconds, that it should take
for an LSA to reach all the routers in the AS.
Router Information per attached Area:
Environment flag
Signed=1, Unsigned=0
9. Remaining Vulnerabilities
Note that with this mechanism, one router can still distribute
incorrect data in the information for which it itself is responsible.
Consequently, an autonomous system employing digital signatures with
this mechanism will not be completely invulnerable to routing
Murphy, et. al. Experimental [Page 26]
^L
RFC 2154 OSPF with Digital Signatures June 1997
disruptions from a single router. For example, the area border
routers and autonomous system border routers will still be able to
inject incorrect routing information. Also, any single internal
router can be incorrect in the routing information it originates
about its own links.
9.1. Area Border Routers
Even with the design proposed here, the area border routers can
inject incorrect routing information into their attached areas about
the backbone and the other areas in Summary LSA's. They can also
inject incorrect routing information into the backbone about their
attached area.
Because all the area border routers in one area work from the same
database of LSA's received in their common area, it would be possible
for the area border routers to corroborate each other. Any area
border router for an area could double check the Summary LSA's
received over the backbone from other ABR's from the area, and could
double check the Summary LSA's flooded through the area from the
other area border routers. The other routers in the area or backbone
should be warned of a failure of this check. The warning could be a
signed message from the area border router detecting the failure,
flooded in the usual mechanism.
Another possibility would be that the area border routers in an area
could originate multiple sets of Summary LSA's -- one for itself
containing its own information and one for each of the area border
routers in the area containing the information each of them should
originate. Each router in the area or backbone could then determine
for itself whether the area border routers agreed. This distribution
of information but coordination of processing is in keeping with the
paradigm of link state protocols, where information and processing is
duplicated in each router.
Both alternatives mean much additional processing and additional
message transmission, over and above the additional processing
required for signature generation and verification. Because the
vulnerability is isolated to a few points in each area, because the
source of incorrect information is detectable (in those situations
where the incorrect information is spotted) and because the
protection is costly, we have not added this protection to this
design.
9.2. Internal Routers
The internal routers can be incorrect about information they
themselves originate.
Murphy, et. al. Experimental [Page 27]
^L
RFC 2154 OSPF with Digital Signatures June 1997
A router could announce an incorrect metric for a valid link. There
is no way to guard against this, but the damage would be small and
localized even if the router is announcing that the link is up when
it is down or vice versa.
A router could announce a connection that does not in fact exist. If
a router announces a non-existent connection to a transit network,
the OSPF Dijkstra computation will not consider the connection
without a similar announcement from another router at the other
"end". Therefore, no damage would result (above network impact to
transmit and store the incorrect information) without the cooperation
of another router. A router could also announce a connection to a
stub network or a host route that does not exist. The Dijkstra
computation can not perform the same check for a similar announcement
from the other "end", because no other end exists. This is a
vulnerability.
A faulty router announcing a nonexistent connection to a stub network
or host could result in the faulty router receiving IP packets bound
for that network or host. Unless the faulty router then forwarded
the packets to the correct destination by source routing, the failure
of packet delivery could expose the incorrect routing. To exploit
the vulnerability deliberately, the faulty router would have to be
able to handle and pass on the received traffic for the incorrectly
announced destination. Furthermore, if the incorrect routing were
discovered, the signatures on the routing information would identify
the faulty router as the source of the incorrect information.
Finally, this design checks router advertisements against allowed
address ranges certified by a trusted entity. A faulty router could
announce nonexistent host or stub network routes, but only to
addresses within its allowed ranges.
9.3. Autonomous System Border Routers
The autonomous system boundary routers can produce incorrect routing
information in the external routes information they originate. There
is no way to double check or corroborate this information, as there
is with area border routers. No authority within an autonomous
system exists to authorize the networks an autonomous system boundary
router could announce, as is the case for the internal networks an
internal router could announce. Consequently, the autonomous system
boundary routers remain a unprotected vulnerability. With this in
mind, special care should be taken to protect the autonomous system
boundary routers with other means.
10. Security Considerations
This entire memo is about security considerations.
Murphy, et. al. Experimental [Page 28]
^L
RFC 2154 OSPF with Digital Signatures June 1997
11. References
[1] Finn, Gregory G., "Reducing the Vulnerability of Dynamic Computer
Networks," ISI Research Report ISI/RR-88-201, University of
Southern California Information Sciences Institute,
Marina del Rey, California, June 1988.
[2] Kumar,B and Crowcroft,J., "Integrating Security in Inter-Domain
Routing Protocols", Computer Communications Review, Vol 23,
No. 5, October 1993.
[3] Moy, J., "OSPF Version 2," RFC 1583, Proteon, Inc., March 1994.
[4] Perlman, R., "Network Layer Protocols with Byzantine Robustness",
Ph.D. Thesis, Department of Electrical Engineering and Computer
Science, MIT, August 1988.
[5] Perlman, R., "Interconnections: Bridges and Routers",
Addison-Wesley, Reading, Mass., 1992.
[6] Schneier, B., "Applied Cryptography: Protocols, Algorithms, and
Source Code in C," John Wiley & Sons, Inc., New York, 1994.
[7] Steenstrup, M., "Inter-Domain Policy Routing Protocol
Specification: Version 1", RFC 1479, BBN Systems and
Technologies, July 1993.
[9] PKCS #1: RSA Encryption Standard, RSA Data Security, Inc., June
1991, Version 1.4.
[10] Eastlake D. & Kaufman C., "Domain Name System Security
Extensions", RFC2065, January 1997.
[11] Moy J., "OSPF Version 2", Cascade Communications Corp,
Work In Progress.
12. Authors' Addresses
Sandra Murphy murphy@tis.com
Madelyn Badger mrb@tis.com
Brian Wellington bwelling@tis.com
Trusted Information Systems
3060 Washington Road
Glenwood, MD 21738
Murphy, et. al. Experimental [Page 29]
^L
|