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
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
|
Network Working Group M. StJohns
Request for Comments: 5570 Consultant
Category: Informational R. Atkinson
Extreme Networks
G. Thomas
US Department of Defense
July 2009
Common Architecture Label IPv6 Security Option (CALIPSO)
Abstract
This document describes an optional method for encoding explicit
packet Sensitivity Labels on IPv6 packets. It is intended for use
only within Multi-Level Secure (MLS) networking environments that are
both trusted and trustworthy.
Status of This Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
IESG Note
This RFC specifies the use of an IPv6 hop-by-hop option. The IESG
notes that general deployment of protocols with hop-by-hop options
are problematic, and the development of such protocols is
consequently discouraged. After careful review, the IETF has
determined that a hop-by-hop option is an appropriate solution for
this specific limited environment and use case. Furthermore, the
mechanism specified in this RFC is only applicable to closed IP
networks. It is unsuitable for use and ineffective on the global
public Internet.
Copyright Notice
Copyright (c) 2009 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 in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
StJohns, et al. Informational [Page 1]
^L
RFC 5570 CALIPSO July 2009
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
StJohns, et al. Informational [Page 2]
^L
RFC 5570 CALIPSO July 2009
Table of Contents
1. Introduction ....................................................4
1.1. History ....................................................4
1.2. Intent and Applicability ...................................6
1.3. Deployment Examples ........................................7
2. Definitions .....................................................9
2.1. Domain of Interpretation ...................................9
2.2. Sensitivity Level .........................................10
2.3. Compartment ...............................................10
2.4. Releasability .............................................11
2.5. Sensitivity Label .........................................16
2.6. Import ....................................................17
2.7. Export ....................................................17
2.8. End System ................................................18
2.9. Intermediate System .......................................18
2.10. System Security Policy ...................................19
3. Architecture ...................................................19
4. Defaults .......................................................24
5. Format .........................................................26
5.1. Option Format .............................................27
5.2. Packet Word Alignment Considerations ......................30
6. Usage ..........................................................31
6.1. Sensitivity Label Comparisons .............................31
6.2. End System Processing .....................................34
6.3. Intermediate System Processing ............................37
6.4. Translation ...............................................40
7. Architectural and Implementation Considerations ................41
7.1. Intermediate Systems ......................................42
7.2. End Systems ...............................................43
7.3. Upper-Layer Protocols .....................................43
8. Security Considerations ........................................46
9. IANA Considerations ............................................48
9.1. IP Option Number ..........................................48
9.2. CALIPSO DOI Values Registry ...............................49
10. Acknowledgments ...............................................50
11. References ....................................................50
11.1. Normative References .....................................50
11.2. Informative References ...................................50
StJohns, et al. Informational [Page 3]
^L
RFC 5570 CALIPSO July 2009
1. Introduction
The original IPv4 specification in RFC 791 includes an option for
labeling the sensitivity of IP packets. That option was revised by
RFC 1038 and later by RFC 1108 [RFC791] [RFC1038] [RFC1108].
Although the IETF later deprecated RFC 1108, that IPv4 option
continues to be in active use within a number of closed Multi-Level
Secure (MLS) IP networks.
One or another IP Sensitivity Label option has been in limited
deployment for about two decades, most usually in governmental or
military internal networks. There are also some commercial sector
deployments, where corporate security policies require Mandatory
Access Controls be applied to sensitive data. Some banks use MLS
technology to restrict sensitive information, for example information
about mergers and acquisitions. This IPv6 option, like its IPv4
predecessors, is only intended for deployment within private
internetworks, disconnected from the global Internet. This document
specifies the explicit packet labeling extensions for IPv6 packets.
1.1. History
This document is a direct descendent of RFC 1038 and RFC 1108 and is
a close cousin to the work done in the Commercial IP Security Option
(CIPSO) Working Group of the Trusted Systems Interoperability Group
(TSIG) [FIPS-188]. The IP Security Option defined by RFC 1038 was
designed with one specific purpose in mind: to support the fielding
of an IPv4 packet-encryption device called a BLACKER [RFC1038].
Because of this, the definitions and assumptions in those documents
were necessarily focused on the US Department of Defense and the
BLACKER device. Today, IP packet Sensitivity Labeling is most
commonly deployed within Multi-Level Secure (MLS) environments, often
composed of Compartmented Mode Workstations (CMWs) connected via a
Local Area Network (LAN). So the mechanism defined here is
accordingly more general than either RFC 1038 or RFC 1108 were.
Also, the deployment of Compartmented Mode Workstations ran into
operational constraints caused by the limited, and relatively small,
space available for IPv4 options. This caused one non-IETF
specification for IPv4 packet labeling to have a large number of
sub-options. A very unfortunate side effect of having sub-options
within an IPv4 label option was that it became much more challenging
to implement Intermediate System support for Mandatory Access
Controls (e.g., in a router or MLS guard system) and still be able to
forward traffic at, or near, wire-speed.
StJohns, et al. Informational [Page 4]
^L
RFC 5570 CALIPSO July 2009
In the last decade or so, typical Ethernet link speeds have changed
from 10 Mbps half-duplex to 1 Gbps full-duplex. The 10 Gbps full-
duplex Ethernet standard is widely available today in routers,
Ethernet switches, and even in some servers. The IEEE is actively
developing standards for both 40 Gbps Ethernet and 100 Gbps Ethernet
as of this writing. Forwarding at those speeds typically requires
support from Application-Specific Integrated Circuits (ASICs);
supporting more complex packet formats usually requires significantly
more gates than supporting simpler packet formats. So the pressure
to have a single simple option format has only increased in the past
decade, and is only going to increase in the future.
When IPv6 was initially being developed, it was anticipated that the
availability of IP Security, in particular the Encapsulating Security
Payload (ESP) and the IP Authentication Header (AH), would obviate
the need for explicit packet Sensitivity Labels with IPv6 [RFC1825]
[RFC4301] [RFC4302] [RFC4303]. For MLS IPv6 deployments where the
use of AH or ESP is practical, the use of AH and/or ESP is
recommended.
However, some applications (e.g., distributed file systems), most
often those not designed for use with Compartmented Mode Workstations
or other Multi-Level Secure (MLS) computers, multiplex different
transactions at different Sensitivity Levels and/or with different
privileges over a single IP communications session (e.g., with the
User Datagram Protocol). In order to maintain data Sensitivity
Labeling for such applications, to be able to implement routing and
Mandatory Access Control decisions in routers and guards on a per-
IP-packet basis, and for other reasons, there is a need to have a
mechanism for explicitly labeling the sensitivity information for
each IPv6 packet.
Existing Layer 3 Virtual Private Network (VPN) technology can't solve
the set of issues addressed by this specification, for several
independent reasons. First, in a typical deployment, many labeled
packets will flow from an MLS End System through some set of networks
to a receiving MLS End System. The received per-packet label is used
by the receiving MLS End System to determine which Sensitivity Label
to associate with the user data carried in the packet. Existing
Layer 3 VPN specifications do not specify any mechanism to carry a
Sensitivity Label. Second, existing Layer 3 VPN technologies are not
implemented in any MLS End Systems, nor in typical single-level End
System operating systems, but instead typically are only implemented
in routers. Adding a Layer 3 VPN implementation to the networking
stack of an MLS End System would be a great deal more work than
adding this IPv6 option to that same MLS End System. Third, existing
Layer 3 VPN specifications do not support the use of Sensitivity
Labels to select a VPN to use in carrying a packet, which function is
StJohns, et al. Informational [Page 5]
^L
RFC 5570 CALIPSO July 2009
essential if one wanted to obviate this IPv6 option. Substantial new
standards development, along with significant new implementation work
in End Systems, would be required before a Layer 3 VPN approach to
these issues could be used. Developing such specifications, and then
implementing them in MLS systems, would need substantially greater
effort than simply implementing this IPv6 label option in an MLS End
System (or in a label-aware router). Further, both the MLS user
community and the MLS implementer community prefer the approach
defined in this specification.
1.2. Intent and Applicability
Nothing in this document applies to any system that does not claim to
implement this document.
This document describes a generic way of labeling IPv6 datagrams to
reflect their particular sensitivity. Provision is made for
separating data based on domain of interpretation (e.g., an agency, a
country, an alliance, or a coalition), the relative sensitivity
(i.e., Sensitivity Levels), and need-to-know or formal access
programs (i.e., compartments or categories).
A commonly used method of encoding Releasabilities as if they were
Compartments is also described. This usage does not have precisely
the same semantics as some formal Releasability policies, but
existing Multi-Level Secure operating systems do not contain
operating system support for Releasabilities as a separate concept
from compartments. The semantics for this sort of Releasability
encoding is close to the formal policies and has been deployed by a
number of different organizations for at least a decade now.
In particular, the authors believe that this mechanism is suitable
for deployment in United Nations (UN) peace-keeping operations, in
North Atlantic Treaty Organisation (NATO) or other coalition
operations, in all current US Government MLS environments, and for
deployment in other similar commercial or governmental environments.
This option would not normally ever be visible in an IP packet on the
global public Internet.
Because of the unusually severe adverse consequences (e.g., loss of
life, loss of very large sums of money) likely if a packet labeled
with this IPv6 Option were to escape onto the global public Internet,
organizations deploying this mechanism have unusually strong
incentives to configure security controls to prevent labeled packets
from ever appearing on the global public Internet. Indeed, a primary
purpose of this mechanism is to enable deployment of Mandatory Access
Controls for IPv6 packets.
StJohns, et al. Informational [Page 6]
^L
RFC 5570 CALIPSO July 2009
However, to ensure interoperability of both End Systems and
Intermediate Systems within such a labeled deployment of IPv6, it is
essential to have an open specification for this option.
This option is NOT designed to be an all-purpose label option and
specifically does not include support for generic Domain Type
Enforcement (DTE) mechanisms. If such a DTE label option is desired,
it ought to be separately specified and have its own (i.e.,
different) IPv6 option number.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
1.3. Deployment Examples
Two deployment scenarios for IP packet Sensitivity Labels are most
common. We should first note that in typical deployments, all people
having access to an unencrypted link are cleared for all unencrypted
information traversing that link. Also, MLS system administrators
normally have previously been cleared to see all of the information
processed or stored by that MLS system. This specification does not
seek to eliminate all potential covert channels relating to this IPv6
option.
In the first scenario, all the connected nodes in a given private
internetwork are trusted systems that have Multi-Level Secure (MLS)
operating systems, such as Compartmented Mode Workstations (CMWs),
that support per-packet Sensitivity Labels [TCSEC] [TNI] [CMW]
[MLOSPP]. In this type of deployment, all IP packets carried within
the private internetwork are labeled, the IP routers apply mandatory
access controls (MAC) based on the packet labels and the sensitivity
ranges configured into the routers, all End Systems include packet
Sensitivity Labels in each originated packet, and all End Systems
apply Mandatory Access Controls to each received packet. Packets
received by a router or End System that have a Sensitivity Label
outside the permitted range for the receiving interface (or, in the
case of a router, outside the permitted range for either the incoming
or the outgoing interface) are dropped because they violate the MAC
policy.
The second scenario is a variation of the first, where End Systems
with non-MLS operating systems are present on certain subnetworks of
the private internetwork. By definition, these non-MLS End Systems
operate in "system high" mode. In "system high" mode, all
information on the system is considered to have the sensitivity of
the most sensitive data on the system. If a system happens to
contain data only at one Sensitivity Level, this would also be an
StJohns, et al. Informational [Page 7]
^L
RFC 5570 CALIPSO July 2009
example of "system high" operation. In this scenario, each
subnetwork that contains any single-level End Systems has one single
"default" Sensitivity Label that applies to all single-level systems
on that IP subnetwork. Because those non-MLS End Systems are unable
to create packets containing Sensitivity Labels and are also unable
to apply MAC enforcement on received packets, security gateways
(which might, for example, be label-aware IP routers) connected to
such subnetworks need to insert sensitivity labels to packets
originated by the "system high" End Systems that are to be forwarded
off subnet. While the CALIPSO IPv6 option is marked as "ignore if
unrecognized", there are some deployed IPv6 End Systems with bugs.
Users can't fix these operating system bugs; some users need to be
able to integrate their existing IPv6 single-level End Systems to
have a useful overall MLS deployment. So, for packets destined for
IP subnetworks containing single-level End Systems, those last-hop
security gateways also apply Mandatory Access Controls (MAC) and then
either drop (if the packet is not permitted on that destination
subnet) exclusive-or remove Sensitivity Labels and forward packets
onto those "system high" subnetworks (if the packet is permitted on
that destination subnetwork).
The authors are not aware of any existing MLS network deployments
that use a commercial Network Address Translation (NAT), Network
Address and Port Translation (NAPT), or any other commercial
"middlebox" device. For example, NAT boxes aren't used, unlike
practices in some segments of the public Internet.
Similarly, the authors are not aware of any existing MLS network
deployments that use a commercial firewall. MLS networks normally
are both physically and electronically isolated from the global
Internet, so operators of MLS networks are not concerned about
external penetration (e.g., by worms, viruses, or the like).
Similarly, all users of the MLS network have been cleared using some
process specific to that organization, and hence are believe to be
trustworthy. In a typical deployment, all computers connected to the
MLS network are in a physically secure room or building (e.g.,
protected by guards with guns). Electronic equipment that enters
such a space typically does not leave. Items such as USB memory
sticks are generally not permitted; in fact, often the USB ports on
MLS computers have been removed or otherwise made inoperable to
prevent people from adding or removing information.
Also, for security reasons, content transformation in the middle of
an MLS network is widely considered undesirable, and so is not
typically undertaken. Hypothetically, if such content transformation
were undertaken, it would be performed by a certified MLS system that
has been suitably accredited for that particular purpose in that
particular deployment.
StJohns, et al. Informational [Page 8]
^L
RFC 5570 CALIPSO July 2009
2. Definitions
This section defines several terms that are important to
understanding and correctly implementing this specification. Because
of historical variations in terminology in different user
communities, several terms have defined synonyms.
The verb "dominate" is used in this document to describe comparison
of two Sensitivity Labels within a given Domain of Interpretation.
Sensitivity Label A dominates Sensitivity Label B if the Sensitivity
Level of A is greater than or equal to the Sensitivity Level of B AND
the Compartment Set of A is a superset (proper or improper) of the
Compartment Set of B. This term has been used in Multi-Level Secure
circles with this meaning for at least two decades.
2.1. Domain of Interpretation
A Domain of Interpretation (DOI) is a shorthand way of identifying
the use of a particular labeling, classification, and handling system
with respect to data, the computers and people who process it, and
the networks that carry it. The DOI policies, combined with a
particular Sensitivity Label (which is defined to have meaning within
that DOI) applied to a datum or collection of data, dictates which
systems, and ultimately which persons may receive that data.
In other words, a label of "SECRET" by itself is not meaningful; one
also must know that the document or data belongs to some specific
organization (e.g., US Department of Defense (DoD), US Department of
Energy (DoE), UK Ministry of Defence (MoD), North Atlantic Treaty
Organisation (NATO), United Nations (UN), a specific commercial firm)
before one can decide on who is allowed to receive the data.
A CALIPSO DOI is an opaque identifier that is used as a pointer to a
particular set of policies, which define the Sensitivity Levels and
Compartments present within the DOI, and by inference, to the "real-
world" (e.g., used on paper documents) equivalent labels (See
"Sensitivity Label" below). Registering or defining a set of real-
world security policies as a CALIPSO DOI results in a standard way of
labeling IP data originating from End Systems "accredited" or
"approved" to operate within that DOI and the constraints of those
security policies. For example, if one did this for the US
Department of Defense, one would list all the acceptable labels such
as "SECRET" and "TOP SECRET", and one would link the CALIPSO DOI to
the [DoD5200.28] and [DoD5200.1-R] documents, which define how to
mark and protect data with the US Department of Defense (DoD)
[DoD5200.28] [DoD5200.1-R].
StJohns, et al. Informational [Page 9]
^L
RFC 5570 CALIPSO July 2009
The scope of the DOI is dependent on the organization creating it.
In some cases, the creator of the DOI might not be identical to a
given user of the DOI. For example, a multi-national organization
(e.g., NATO) might create a DOI, while a given member nation or
organization (e.g., UK MoD) might be using that multi-national DOI
(possibly along with other DOIs created by others) within its private
networks. To provide a different example, the United States might
establish a DOI with specific meanings, which correspond to the
normal way it labels classified documents and which would apply
primarily to the US DoD, but those specific meanings might also apply
to other associated agencies. A company or other organization also
might establish a DOI, which applies only to itself.
NOTE WELL: A CALIPSO Domain of Interpretation is different from, and
is disjoint from, an Internet Security Association and Key Management
Protocol (ISAKMP) / Internet Key Exchange (IKE) Domain of
Interpretation. It is important not to confuse the two different
concepts, even though the terms might superficially appear to be
similar.
2.2. Sensitivity Level
A Sensitivity Level represents a mandatory separation of data based
on relative sensitivity. Sensitivity Levels ALWAYS have a specific
ordering within a DOI. Clearance to access a specific level of data
also implies access to all levels whose sensitivity is less than that
level. For example, if the A, B, and C are levels, and A is more
sensitive than B, which is in turn more sensitive than C (A > B > C),
access to data at the B level implies access to C as well. As an
example, common UK terms for a Sensitivity Level include (from low to
high) "UNCLASSIFIED", "RESTRICTED", "CONFIDENTIAL", "SECRET", and
"MOST SECRET".
NOTE WELL: A Sensitivity Level is only one component of a Sensitivity
Label. It is important not to confuse the two terms. The term
"Sensitivity Level" has the same meaning as the term "Security
Level".
2.3. Compartment
A Compartment represents a mandatory segregation of data based on
formal information categories, formal information compartments, or
formal access programs for specific types of data. For example, a
small startup company creates "FINANCE" and "R&D" compartments to
protect data critical to its success -- only employees with a
specific need to know (e.g., the accountants and controller for
"FINANCE", specific engineers for "R&D") are given access to each
compartment. Each Compartment is separate and distinct. Access to
StJohns, et al. Informational [Page 10]
^L
RFC 5570 CALIPSO July 2009
one Compartment does not imply access to any other Compartment. Data
may be protected in multiple compartments (e.g., "FINANCE" data about
a new "R&D" project) at the same time, in which case access to ALL of
those compartments is required to access the data. Employees only
possessing clearance for a given Sensitivity Level (i.e., without
having clearance for any specific compartments at that Sensitivity
Level) do not have access to any data classified in any compartments
(e.g., "SECRET FINANCE" dominates "SECRET").
NOTE WELL: The term "category" has the same meaning as "compartment".
Some user communities have used the term "category", while other user
communities have used the term "compartment", but the terms have
identical meaning.
2.4. Releasability
A Releasability represents a mandatory segregation of data, based on
a formal decision to release information to others.
Historically, most MLS deployments handled Releasability as if it
were an inverted Compartment. Strictly speaking, this provides
slightly different semantics and behavior than a paper marked with
the same Releasabilities would obtain, because the formal semantics
of Compartments are different from the formal semantics of
Releasability. The differences in behavior are discussed in more
detail later in this sub-section.
In practice, for some years now some relatively large MLS deployments
have been encoding Releasabilities as if they were inverted
Compartments. The results have been tolerable and those deployments
are generally considered successful by their respective user
communities. This description is consistent with these MLS
deployments, so has significant operational experience behind it.
2.4.1. Releasability Conceptual Example
For example, two companies (ABC and XYZ) are engaging in a technical
alliance. ABC labels all information present within its enterprise
that is to be shared as part of the alliance as REL XYZ (e.g.,
COMPANY CONFIDENTIAL REL XYZ).
However, unlike the compartment example above, COMPANY CONFIDENTIAL
dominates COMPANY CONFIDENTIAL REL XYZ. This means that XYZ
employees granted a COMPANY CONFIDENTIAL REL XYZ clearance can only
access releasable material, while ABC employees with a COMPANY
CONFIDENTIAL clearance can access all information.
StJohns, et al. Informational [Page 11]
^L
RFC 5570 CALIPSO July 2009
If REL XYZ were managed as a compartment, then users granted a
COMPANY CONFIDENTIAL REL XYZ clearance would have access to all of
ABC's COMPANY CONFIDENTIAL material, which is undesirable.
Releasabilities can be combined (e.g., COMPANY CONFIDENTIAL REL
XYZ/ABLE). In this case, users possessing a clearance of either
COMPANY CONFIDENTIAL, COMPANY CONFIDENTIAL REL XYZ, COMPANY
CONFIDENTIAL REL ABLE, or COMPANY CONFIDENTIAL REL XYZ/ABLE can
access this information.
2.4.2. Releasability Encoding
Individual bits in this option's Compartment Bitmap field MAY be used
to encode "releasability" information. The process for making this
work properly is described below.
This scheme is carefully designed so that intermediate systems need
not know whether a given bit in the Compartment Bitmap field
represents a compartment or a Releasability. All that an
Intermediate System needs to do is apply the usual comparison
(described in Section 2.5.1 and 2.5.2) to determine whether or not a
packet's label is in-range for an interface. This simplifies both
the configuration and implementation of a label-aware Intermediate
System.
Unlike bits that represent compartments, bits that represent a
Releasability are "active low".
If a given Releasability bit in the Compartment Bitmap field is "0",
the information may be released to that community. If the
compartment bit is "1", the information may not be released to that
community.
Only administrative interfaces used to present or construct binary
labels in human-readable form need to understand the distinction
between Releasability bits and non-Releasability bits. Implementers
are encouraged to describe Releasability encoding in the
documentation supplied to users of systems that implement this
specification.
2.4.2. Releasability Encoding Examples
For objects, such as IP packets, let bits 0-3 of the Compartment
Bitmap field be dedicated to controlling Releasability to the
communities A, B, C, and D, respectively.
StJohns, et al. Informational [Page 12]
^L
RFC 5570 CALIPSO July 2009
Example 1: Not releasable to any community:
This is usually how handling restrictions
such as "No Foreigners (NO FORN)" are encoded.
ABCD == 1111
Example 2: Releasable only to community A and community C:
ABCD == 0101
Example 3: Releasable only to community B:
ABCD == 1011
Example 4: Releasable to communities A,B,C, & D:
ABCD == 0000
For subjects, such as clearances of users, the same bit encodings are
used for Releasabilities as are used for objects (see above).
Example 1: Clearance not belonging to any community:
This user can see information belonging
to any Releasability community, since s/he
is not in any Releasability community.
ABCD = 1111
Example 2: Clearance belonging to community A and C:
This user can only see Releasable AC information,
and cannot see Releasable A information.
ABCD == 0101
Example 3: Clearance belonging to community B:
This user can only see Releasable B information.
ABCD == 1011
Example 4: Clearance belongs to communities A,B,C, and D:
This user can only see Releasable ABCD information,
and cannot (for example) see Releasable AB or
Releasable BD information.
ABCD == 0000
Now we consider example comparisons for an IP router that is
enforcing MAC by using CALIPSO labels on some interface:
Let the MINIMUM label for that router interface be:
CONFIDENTIAL RELEASABLE AC
Therefore, this interface has a minimum Releasability of 0101.
Let the MAXIMUM label for that router interface be:
TOP SECRET NOT RELEASABLE
StJohns, et al. Informational [Page 13]
^L
RFC 5570 CALIPSO July 2009
Therefore, this interface has a maximum Releasability of 1111.
For the range comparisons, the bit values for the current packet need
to be "greater than or equal to" the minimum value for the interface
AND also the bit values for the current packet need to be "less than
or equal to" the maximum value for the interface, just as with
compartment comparisons. The inverted encoding scheme outlined above
ensures that the proper results occur.
Consider a packet with label CONFIDENTIAL RELEASABLE AC:
1) Sensitivity Level comparison:
(CONFIDENTIAL <= CONFIDENTIAL <= TOP SECRET)
so the Sensitivity Level is "within range" for that
router interface.
2) Compartment bitmap comparison:
The test is [(0101 >= 0101) AND (0101 <= 1111)],
so the Compartment bitmap is "within range" for
that router interface.
Consider a packet with label CONFIDENTIAL RELEASABLE ABCD:
1) Sensitivity Label comparison:
(CONFIDENTIAL <= CONFIDENTIAL <= TOP SECRET)
so the Sensitivity Level is "within range" for that
router interface.
2) Compartment bitmap comparison:
The test is [(0000 >= 0101) AND (0000 <= 1111)],
so the Compartment Bitmap is NOT "within range" for
that router interface.
Consider a packet with label SECRET NOT RELEASABLE:
1) Sensitivity Label comparison:
(CONFIDENTIAL <= SECRET <= TOP SECRET)
so the Sensitivity Level is "within range" for that
router interface.
2) Compartment bitmap comparison:
The test is [(1111 >= 0101) AND (1111 <= 1111)],
so the Compartment bitmap is "within range" for that
router interface.
2.4.3. Limitations of This Releasability Approach
For example, if one considers a person "Jane Doe" who is a member of
two Releasability communities (A and also B), she is permitted to see
a paper document that is marked "Releasable A", "Releasable B", or
"Releasable AB" -- provided that her Clearance and Compartments are
in-range for the Sensitivity Level and Compartments (respectively) of
the paper document.
StJohns, et al. Informational [Page 14]
^L
RFC 5570 CALIPSO July 2009
Now, let us consider an equivalent electronic example implemented and
deployed as outlined above. In this, we consider two Releasability
communities (A and B). Those bits will be set to 00 for the
electronic user ID used by user "Jane Doe".
However, the electronic Releasability approach above will ONLY permit
her to see information marked as "Releasable AB". The above
electronic approach will deny her the ability to read documents
marked "Releasable A" or "Releasable B". This is because "Releasable
A" is encoded as "01", "Releasable B" is encoded as "10", while
"Releasable AB" is encoded as "00". If one looks at the compartment
dominance computation, "00" dominates "00", but "00" does NOT
dominate "01", and "00" also does NOT dominate "10".
Users report that the current situation is tolerable, but not ideal.
Users also report that various operational complexities can arise
from this approach.
Several deployments work around this limitation by assigning an
electronic user several parallel clearances. Referring to the
(fictitious) example above, the user "Jane Doe" might have one
clearance without any Releasability, another separate clearance with
Releasability A, and a third separate clearance with Releasability B.
While this has implications (e.g., a need to be able to associate
multiple separate parallel clearances with a single user ID) for
implementers of MLS systems, this specification cannot (and does not)
levy any requirements that an implementation be able to associate
multiple clearances with each given user ID because that level of
detail is beyond the scope of an IP labeling option.
Separating the Releasability bits into a separate bitmap within the
CALIPSO option was seriously considered. However, existing MLS
implementations lack operating system support for Releasability. So
even if CALIPSO had a separate bitmap field, those bits would have
been mapped to Compartment bits by the sending/receiving nodes, so
the operational results would not have been different than those
described here.
Several MLS network deployments connect MLS End Systems both to a
labeled national network and also to a labeled coalition network
simultaneously. Depending on whether the data is labeled according
to national rules or according to coalition rules, the set of
Releasability marks will vary. Some choices are likely to lead to
more (or fewer) incorrect Releasability decisions (although the
results of the above Releasability encodings are believed to be
fail-safe).
StJohns, et al. Informational [Page 15]
^L
RFC 5570 CALIPSO July 2009
2.5. Sensitivity Label
A Sensitivity Label is a quadruple consisting of a DOI, a Sensitivity
Level, a Compartment Set, and a Releasability Set. The Compartment
Set may be the empty set if and only if no compartments apply. A
Releasability Set may be the empty set if and only if no
Releasabilities apply. A DOI used within an End System may be
implicit or explicit depending on its use. CALIPSO Sensitivity
Labels always have an explicit DOI. A CALIPSO Sensitivity Label
consists of a Sensitivity Label in a particular format (defined
below). A CALIPSO Sensitivity Label ALWAYS contains an explicit DOI
value. In a CALIPSO Sensitivity Label, the Compartment Bitmap field
is used to encode both the logical Compartment Set and also the
logical Releasability Set.
End Systems using operating systems with MLS capabilities that also
implement IPv6 normally will be able to include CALIPSO labels in
packets they originate and will be able to enforce MAC policy on the
CALIPSO labels in any packets they receive.
End Systems using an operating system that lacks Multi-Level Secure
capabilities operate in "system high" mode. This means that all data
on the system is considered to have the Sensitivity Label of the most
sensitive data on the system. Such a system normally is neither
capable of including CALIPSO labels in packets that it originates nor
of enforcing CALIPSO labels in packets that it receives.
NOTE WELL: The term "Security Marking" has the same meaning as
"Sensitivity Label".
2.5.1. Sensitivity Label Comparison
Two Sensitivity Labels (A and B) can be compared. Indeed,
Sensitivity Labels exist primarily so they can be compared as part of
a Mandatory Access Control decision. Comparison is critical to
determining if a subject (a person, network, etc.) operating at one
Sensitivity Label (A) should be allowed to access an object (file,
packet, route, etc.) classified at another Sensitivity Label (B).
The comparison of two labels (A and B) can return one (and only one)
of the following results:
1) A dominates B (e.g., A=SECRET, B=UNCLASSIFIED);
A can read B,
2) B dominates A (e.g., A=UNCLASSIFIED, B=SECRET);
A cannot access B,
StJohns, et al. Informational [Page 16]
^L
RFC 5570 CALIPSO July 2009
3) A equals B (e.g., A=SECRET, B=SECRET);
A can read/write B,
exclusive-or
4) A is incomparable to B (e.g., A=SECRET R&D, B=SECRET FINANCE);
A cannot access B, and also, B cannot access A.
By definition, if A and B are members of different DOIs, the result
of comparison is always incomparable. It is possible to overcome
this if and only if A and/or B can be translated into some common
DOI, such that the labels are then interpretable.
2.5.2. Sensitivity Label Range
A range is a pair of Sensitivity Labels, which indicate both a
minimum and a maximum acceptable Sensitivity Label for objects
compared against it. A range is usually expressed as "<minimum> :
<maximum>" and always has the property that the maximum Sensitivity
Label dominates the minimum Sensitivity Label. In turn, this
requires that the two Sensitivity Labels MUST be comparable.
A range where <minimum> equals <maximum> may be expressed simply as
"<minimum>"; in this case, the only acceptable Sensitivity Label is
<minimum>.
2.6. Import
The act of receiving a datagram and translating the CALIPSO
Sensitivity Label of that packet into the appropriate internal (i.e.,
end-system-specific) Sensitivity Label.
2.7. Export
The act of selecting an appropriate DOI for an outbound datagram,
translating the internal (end-system-specific) label into an CALIPSO
Sensitivity Label based on that DOI, and sending the datagram. The
selection of the appropriate DOI may be based on many factors
including, but not necessarily limited to:
StJohns, et al. Informational [Page 17]
^L
RFC 5570 CALIPSO July 2009
Source Port
Destination Port
Transport Protocol
Application Protocol
Application Information
End System
Subnetwork
Network
Sending Interface
System Implicit/Default DOI
Regardless of the DOI selected, the Sensitivity Label of the outbound
datagram must be consistent with the security policy monitor of the
originating system and also with the DOI definition used by all other
devices cognizant of that DOI.
2.8. End System
An End System is a host or router from which a datagram originates or
to which a datagram is ultimately delivered.
The IPv6 community has defined the term Node to include both
Intermediate Systems and End Systems [RFC2460].
2.9. Intermediate System
An Intermediate System (IS) is a node that receives and transmits a
particular datagram without being either the source or destination of
that datagram. An Intermediate System might also be called a
"gateway", "guard", or "router" in some user communities.
So an IPv6 router is one example of an Intermediate System. A
firewall or security guard device that applies security policies and
forwards IPv6 packets that comply with those security policies is
another example of an Intermediate System.
An Intermediate System may handle ("forward") a datagram destined for
some other node without necessarily importing or exporting the
datagram to/from itself.
NOTE WELL: Any given system can be both an End System and an
Intermediate System -- which role the system assumes at any given
time depends on the address(es) of the datagram being considered and
the address(es) associated with that system.
StJohns, et al. Informational [Page 18]
^L
RFC 5570 CALIPSO July 2009
2.10. System Security Policy
A System Security Policy (SSP) consists of a Sensitivity Label and
the organizational security policies associated with content labeled
with a given security policy. The SSP acts as a bridge between how
the organization's Mandatory Access Control (MAC) policy is stated
and managed and how the network implements that policy. Typically,
the SSP is a document created by the Information Systems Security
Officer (ISSO) of the site or organization covered by that SSP.
3. Architecture
This document describes a convention for labeling an IPv6 datagram
within a particular system security policy. The labels are designed
for use within a Mandatory Access Control (MAC) system. A real-world
example is the security classification system in use within the UK
Government. Some data held by the government is "classified", and is
therefore restricted by law to those people who have the appropriate
"clearances".
Commercial examples of information labeling schemes also exist
[CW87]. For example, one global electrical equipment company has a
formal security policy that defines six different Sensitivity Levels
for its internal data, ranging from "Class 1" to "Class 6"
information. Some financial institutions use multiple compartments
to restrict access to certain information (e.g., "mergers and
acquisitions", "trading") to those working directly on those projects
and to deny access to other groups within the company (e.g., equity
trading). A CALIPSO Sensitivity Label is the network instantiation
of a particular information security policy, and the policy's related
labels, classifications, compartments, and Releasabilities.
Some years ago, the Mandatory Access Control (MAC) policy for US
Government classified information was specified formally in
mathematical notation [BL73]. As it happens, many other
organizations or governments have the same basic Mandatory Access
Control (MAC) policy for information with differing ("vertical")
Sensitivity Levels. This document builds upon the formal definitions
of Bell-LaPadula [BL73]. There are two basic principles: "no write
down" and "no read up".
The first rule means that an entity having minimum Sensitivity Level
X must not be able to write information that is marked with a
Sensitivity Level below X. The second rule means that an entity
having maximum Sensitivity Level X must not be able to read
information having a Sensitivity Level above X. In a normal
deployment, information downgrading ("write down") must not occur
automatically, and is permitted if and only if a person with
StJohns, et al. Informational [Page 19]
^L
RFC 5570 CALIPSO July 2009
appropriate "downgrade" privilege manually verifies the information
is permitted to be downgraded before s/he manually relabels (i.e.,
"downgrades") the information. Subsequent to the original work by
Bell and LaPadula in this area, this formal model was extended to
also support ("horizontal") Compartments of information.
This document extends Bell-LaPadula to accommodate the notion of
separate Domains of Interpretation (DOI) [BL73]. Each DOI
constitutes a single comparable domain of Sensitivity Labels as
stated by Bell-LaPadula. Sensitivity Labels from different domains
cannot be directly compared using Bell-LaPadula semantics.
This document is focused on providing specifications for (1) encoding
Sensitivity Labels in packets, and (2) how such Sensitivity Labels
are to be interpreted and enforced at the IP layer. This document
recognizes that there are several kinds of application processing
that occur above the IP layer that significantly impact end-to-end
system security policy enforcement, but are out of scope for this
document. In particular, how the network labeling policy is enforced
within processing in an End System is critical, but is beyond the
scope of a network (IP) layer Sensitivity Label encoding standard.
Other specifications exist, which discuss such details [TCSEC] [TNI]
[CMW] [ISO-15408] [CC] [MLOSPP].
This specification does not preclude an End System capable of
providing labeled packets across some range of Sensitivity Labels. A
Compartmented Mode Workstation (CMW) is an example of such an End
System [CMW]. This is useful if the End System is capable of, and
accredited to, separate processing across some range of Sensitivity
Labels. Such a node would have a range associated with it within the
network interface connecting the node to the network. As an example,
an End System has the range "SECRET: TOP SECRET" associated with it
in the Intermediate System to which the node is attached. SECRET
processing on the node is allowed to traverse the network to other
"SECRET : SECRET" segments of the network, ultimately to a "SECRET :
SECRET" node. Likewise, TOP SECRET processing on the node is allowed
to traverse a network through "TOP SECRET: TOP SECRET" segments,
ultimately to some "TOP SECRET: TOP SECRET" node. The node in this
case can allow a user on this node to access SECRET and TOP SECRET
resources, provided the user holds the appropriate clearances and has
been correctly configured.
With respect to a given network, each distinct Sensitivity Label
represents a separate virtual network, which shares the same physical
network. There are rules for moving information between the various
virtual networks. The model we use within this document is based on
StJohns, et al. Informational [Page 20]
^L
RFC 5570 CALIPSO July 2009
the Bell-LaPadula model, but is extended to cover the concept of
differing Domains of Interpretation. Nodes that implement this
protocol MUST enforce this mandatory separation of data.
CALIPSO provides for both horizontal ("Compartment") and vertical
("Sensitivity Level") separation of information, as well as
separation based on DOI. The basic rule is that data MUST NOT be
delivered to a user or system that is not approved to receive it.
NOTE WELL: Wherever we say "not approved", we also mean "not
cleared", "not certified", and/or "not accredited" as applicable in
one's operational community.
This specification does not enable AUTOMATIC relabeling of
information, within a DOI or to a different DOI. That is, neither
automatic "upgrading" nor automatic "downgrading" of information are
enabled by this specification. Local security policies might allow
some limited downgrading, but this normally requires the intervention
of some human entity and is usually done within an End System with
respect to the internal Sensitivity Label, rather than on a network
or in an intermediate-system (e.g., router, guard). Automatic
downgrading is not suggested operational practice; further discussion
of downgrading is outside the scope of this protocol specification.
Implementers of this specification MUST NOT permit automatic
upgrading or downgrading of information in the default configuration
of their implementation. Implementers MAY add a configuration knob
that would permit a System Security Officer holding appropriate
privilege to enable automatic upgrading or downgrading of
information. If an implementation supports such a knob, the
existence of the configuration knob must be clearly documented and
the default knob setting MUST be that automatic upgrading or
downgrading is DISABLED. Automatic information upgrading and
downgrading is not recommended operational practice.
Many existing MLS deployments already use (and operationally need to
use) more than one DOI concurrently. User feedback from early
versions of this specification indicates that it is common at present
for a single network link (i.e., IP subnetwork) to carry traffic for
both a particular coalition (or joint-venture) activity and also for
the government (or other organization) that owns and operates that
particular network link. On such a link, one CALIPSO DOI would
typically be used for the coalition traffic and some different
CALIPSO DOI would typically be used for non-coalition traffic (i.e.,
traffic that is specific to the government that owns and operates
that particular network link). For example, a UK military network
that is part of a NATO deployment might have and use a UK MoD DOI for
StJohns, et al. Informational [Page 21]
^L
RFC 5570 CALIPSO July 2009
information originating/terminating on another UK system, while
concurrently using a different NATO DOI for information
originating/terminating on a non-UK NATO system.
Additionally, operational experience with existing MLS systems has
shown that if a system only supports a single DOI at a given time,
then it is impossible for a deployment to migrate from using one DOI
value to a different DOI value in a smooth, lossless, zero downtime,
manner.
Therefore, a node that implements this specification MUST be able to
support at least two CALIPSO DOIs concurrently. Support for more
than two concurrent CALIPSO DOIs is encouraged. This requirement to
support at least two CALIPSO DOIs concurrently is not necessarily an
implementation constraint upon MLS operating system internals that
are unrelated to the network.
Indeed, use of multiple DOIs is also operationally useful in
deployments having a single administration that also have very large
numbers of compartments. For example, such a deployment might have
one set of related compartments in one CALIPSO DOI and a different
set of compartments in a different CALIPSO DOI. Some compartments
might be present in both DOIs, possibly at different bit positions of
the compartment bitmap in different DOIs. While this might make some
implementations more complex, it might also be used to reduce the
typical size of the IPv6 CALIPSO option in data packets.
Moving information between any two DOIs is permitted -- if and only
if -- the owners of the DOIs:
1) Agree to the exchange,
AND
2) Publish a document with a table of equivalencies that
maps the CALIPSO values of one DOI into the other
and make that document available to security
administrators of MLS systems within the deployment
scope of those two DOIs.
The owners of two DOIs may choose to permit the exchange on or
between any of their systems, or may restrict exchange to a small
subset of the systems they own/accredit. One-way agreements are
permissible, as are agreements that are a subset of the full table of
equivalences. Actual administration of inter-DOI agreements is
outside the scope of this document.
StJohns, et al. Informational [Page 22]
^L
RFC 5570 CALIPSO July 2009
When data leaves an End System it is exported to the network, and
marked with a particular DOI, Sensitivity Level, and Compartment Set.
(This triple is collectively termed a Sensitivity Label.) This
Sensitivity Label is derived from the internal Sensitivity Label (the
end-system-specific implementation of a given Sensitivity Label), and
the Export DOI. Selection of the Export DOI is described in detail
in Section 6.2.1.
When data arrives at an End System, it is imported from the network
to the End System. The data from the datagram takes on an internal
Sensitivity Label based on the Sensitivity Label contained in the
datagram. This assumes the datagram is marked with a recognizable
DOI, there is a corresponding internal Sensitivity Label equivalent
to the CALIPSO Sensitivity Label, and the datagram is "within range"
for the receiving logical interface.
A node has one or more physical interfaces. Each physical interface
is associated with a physical network segment used to connect the
node, router, LAN, or WAN. One or more Sensitivity Label ranges are
associated with each physical network interface. Sensitivity Label
ranges from multiple DOIs must be enumerated separately. Multiple
ranges from the same DOI are permissible.
Each node also might have one or more logical network interfaces.
A given logical network interface might be associated with more than
one physical interface. For example, a switch/router might have two
separate Ethernet ports that are associated with the same Virtual
Local Area Network (VLAN), where that one VLAN mapped to a single
IPv6 subnetwork [IEEE802.1Q].
A given physical network interface might have more than one
associated logical interface. For example, a node might have 2
logical network interfaces, each for a different IP subnetwork
("super-netting"), on a single physical network interface (e.g., on a
single Network Interface Card of a personal computer).
Alternatively, also as an example, a single Ethernet port might have
multiple Virtual LANs (VLANs) associated with it, where each VLAN
could be a separate logical network interface.
One or more Sensitivity Label ranges are associated with each logical
network interface. Sensitivity Label ranges from multiple DOIs must
be enumerated separately. Multiple ranges from the same DOI are
permissible. Each range associated with a logical interface must
fall within a range separately defined for the corresponding physical
interface.
StJohns, et al. Informational [Page 23]
^L
RFC 5570 CALIPSO July 2009
There is specific user interest in having IPv6 routers that can apply
per-logical-interface mandatory access controls based on the contents
of the CALIPSO Sensitivity Labels in IPv6 packets. The authors note
that since the early 1990s, and continuing through today, some
commercial IPv4 router products provide MAC enforcement for the RFC
1108 IP Security Option.
In transit, a datagram is handled based on its CALIPSO Sensitivity
Label, and is usually neither imported to or exported from the
various Intermediate Systems it transits. There also is the concept
of "CALIPSO Gateways", which import data from one DOI and export it
to another DOI such that the effective Sensitivity Label is NOT
changed, but is merely represented using a different DOI. In other
words, such devices would be trustworthy, trusted, and authorized to
provide on-the-fly relabeling of packets at the boundaries between
complete systems of End Systems within a single DOI. Typically, such
systems require specific certification(s) and accreditation(s) before
deployment or use.
4. Defaults
This Section describes the default behavior of CALIPSO-compliant End
Systems and Intermediate Systems. Implementers MAY implement
configuration knobs to vary from this behavior, provided that the
default behavior (i.e., if the system administrator does not
explicitly change the configured behavior of the device) is as
described below. If implementers choose to implement such
configuration knobs, the configuration parameters and the behaviors
that they enable and disable SHOULD be documented for the benefit of
system administrators of those devices.
Each Intermediate System or End System is responsible for properly
interpreting and enforcing the MLS Mandatory Access Control policy.
Practically, this means that each node must evaluate the label on the
inbound packet, ensure that this Sensitivity Label is valid (i.e.,
within range) for the receiving interface, and at a minimum only
forward the packet to an interface and node where the Sensitivity
Label of the packet falls within the assigned range of that node's
receiving interface.
Packets with an invalid (e.g., out-of-range) Sensitivity Label for
the receiving interface MUST be dropped upon receipt. A Sensitivity
Label is valid if and only if the Sensitivity Label falls within the
range assigned to the transmitting interface on the sending system
and within the range assigned to the receiving interface on the
receiving system. These rules also need to be applied by
Intermediate Systems on each hop that a CALIPSO-labeled packet
traverses, not merely at the end points of a labeled IP session. As
StJohns, et al. Informational [Page 24]
^L
RFC 5570 CALIPSO July 2009
an example, it is a violation of the default MLS MAC policy for a
packet with a higher Sensitivity Level (e.g., "MOST SECRET") to
transit a link whose maximum Sensitivity Level is less than that
first Sensitivity Level (e.g., "SECRET").
If an unlabeled packet is received from a node that does not support
CALIPSO Sensitivity Labels (i.e., unable to assign Sensitivity Labels
itself) and the packet is destined for a node that supports CALIPSO
Sensitivity Labels, then the receiving intermediate system needs to
insert a Sensitivity Label. This Sensitivity Label MUST be equal to
the maximum Sensitivity Label assigned to the originating node if and
only if that is known to the receiving node. If this receiving
Intermediate System does not know which Sensitivity Label is assigned
to the originating node, then the maximum Sensitivity Label of the
interface that received the unlabeled packet MUST be inserted.
NOTE WELL: The procedure in the preceding paragraph is NOT a label
upgrade -- because it is not changing an existing label; instead, it
is simply inserting a Sensitivity Label that has the only "safe"
value, given that no other information is known to the receiving
node. In large-scale deployments, it is very unlikely that a given
node will have any authoritative a priori information about the
security configuration of any node that is NOT on a directly attached
link.
If a packet is to be sent to a node that is defined to not be
Sensitivity Label aware, from a node that is label aware, then the
Sensitivity Label MAY be removed upon transmission if and only if
local security policy explicitly permits this. The originating node
is still responsible for ensuring that the Sensitivity Label on the
packet falls within the Sensitivity Label range associated with the
receiving node. If the packet will traverse more than one subnetwork
between origin and destination, and those subnetworks are labeled,
then the packet SHOULD normally contain a Sensitivity Label so that
the packet will be able to reach the destination and the Intermediate
Systems will be able to apply the requisite MAC policy to the packet.
NOTE WELL: In some IPv4 MLS network deployments that exist as of the
publication date, if a first-hop router receives an unlabeled IPv4
packet, the router inserts an appropriate Sensitivity Label into that
IPv4 packet, in the manner described above. So sending a packet
without a label across a multiple subnetwork path to a destination
does not guarantee that the packet will arrive containing no
Sensitivity Label.
StJohns, et al. Informational [Page 25]
^L
RFC 5570 CALIPSO July 2009
5. Format
This section describes the format of the CALIPSO option for use with
IPv6 datagrams. CALIPSO is an IPv6 Hop-By-Hop Option, rather than an
IPv6 Destination Option, to ensure that a security gateway or router
can apply access controls to IPv6 packets based on the CALIPSO label
carried by the packet.
An IPv6 datagram that has not been tunneled contains at most one
CALIPSO label. In the special case where (1) a labeled IPv6 datagram
is tunneled inside another labeled IPv6 datagram AND (2) IP Security
is NOT providing confidentiality protection for the inner packet, the
outer CALIPSO Sensitivity Label must have the same meaning as the
inner CALIPSO Sensitivity Label. For example, it would be invalid to
encapsulate an unencrypted IPv6 packet with a Sensitivity Label of
(SECRET, no compartments) inside a packet with an outer Sensitivity
Label of (UNCLASSIFIED).
If the inner IPv6 packet is tunneled inside the Encapsulating
Security Payload (ESP) and confidentiality is being provided to that
inner packet, then the outer packet MAY have a different CALIPSO
Sensitivity Label -- subject to local security policy.
As a general principle, the meaning of the Sensitivity Labels must be
identical when one has a labeled cleartext IP packet that has been
encapsulated (tunneled) inside another labeled IP packet. This is
true whether one has IPv6 tunneled in IPv6, IPv4 tunneled in IPv6, or
IPv6 tunneled in IPv4. This is essential to maintaining proper
Mandatory Access Controls.
This option's syntax has been designed with intermediate systems in
mind. It is now common for an MLS network deployment to contain an
Intermediate Systems acting as a guard (sometimes several acting as
guards). Such a guard device needs to be able to very rapidly parse
the Sensitivity Label in each packet, apply ingress interface MAC
policy, forward the packet while aware of the packet's Sensitivity
Label, and then apply egress interface MAC policy.
At least one prior IP Sensitivity Label option [FIPS-188] used a
syntax that was unduly complex to parse in IP routers, hence that
option never was implemented in an IP router. So there is a
deliberate effort here to choose a streamlined option syntax that is
easy to parse, encode, and implement in more general terms.
StJohns, et al. Informational [Page 26]
^L
RFC 5570 CALIPSO July 2009
5.1. Option Format
The CALIPSO option is an IPv6 Hop-by-Hop Option and is designed to
comply with IPv6 optional header rules. Following the nomenclature
of Section 4.2 of RFC 2460, the Option Type field of this option must
have 4n+2 alignment [RFC2460].
The CALIPSO Option Data MUST NOT change en route, except when (1)
"DOI translation" is performed by a trusted Intermediate System, (2)
a CALIPSO Option is inserted by a trusted Intermediate System upon
receipt of an unlabeled IPv6 packet, or (3) a CALIPSO Option is
removed by a last-hop trusted Intermediate System immediately prior
to forwarding the packet to a destination node that does not
implement support for CALIPSO labels. The details of these three
exceptions are described elsewhere in this document.
If the option type is not recognized by a node examining the packet,
the option is ignored. However, all implementations of this
specification MUST be able to recognize this option and therefore
MUST NOT ignore this option if it is present in an IPv6 packet.
This option is designed to comply with the IPv6 optional header rules
[RFC2460]. The CALIPSO option is always carried in a Hop-By-Hop
Option Header, never in any other part of an IPv6 packet. This rule
exists because IPv6 routers need to be able to see the CALIPSO label
so that those routers are able to apply MLS Mandatory Access Controls
to those packets.
The diagram below shows the CALIPSO option along with the required
(first) two fields of the Hop-By-Hop Option Header that envelops the
CALIPSO option. The design of the CALIPSO option is arranged to
avoid the need for 16 bits of padding between the HDR EXT LEN field
and the start of the CALIPSO option. Also, the CALIPSO Domain of
Interpretation field is laid out so that it normally will be 32-bit
aligned.
------------------------------------------------------------
| Next Header | Hdr Ext Len | Option Type | Option Length|
+-------------+---------------+-------------+--------------+
| CALIPSO Domain of Interpretation |
+-------------+---------------+-------------+--------------+
| Cmpt Length | Sens Level | Checksum (CRC-16) |
+-------------+---------------+-------------+--------------+
| Compartment Bitmap (Optional; variable length) |
+-------------+---------------+-------------+--------------+
StJohns, et al. Informational [Page 27]
^L
RFC 5570 CALIPSO July 2009
5.1.1. Option Type Field
This field contains an unsigned 8-bit value. Its value is 00000111
(binary).
Nodes that do not recognize this option should ignore it. In many
cases, not all routers in a given MLS deployment will contain support
for this CALIPSO option. For interoperability reasons, it is
important that routers that do not support the CALIPSO forward this
packet normally, even though those routers do not recognize the
CALIPSO option.
In the event the IPv6 packet is fragmented, this option MUST be
copied on fragmentation. Virtually all users want the choice of
using the IP Authentication Header (a) to authenticate this option
and (b) to bind this option to the associated IPv6 packet.
5.1.2. Option Length Field
This field contains an unsigned integer one octet in size. Its
minimum value is eight (e.g., when the Compartment Bitmap field is
absent). This field specifies the Length of the option data field of
this option in octets. The Option Type and Option Length fields are
not included in the length calculation.
5.1.3. Compartment Length Field
This field contains an unsigned 8-bit integer. The field specifies
the size of the Compartment Bitmap field in 32-bit words. The
minimum value is zero, which is used only when the information in
this packet is not in any compartment. (In that situation, the
CALIPSO Sensitivity Label has no need for a Compartment Bitmap).
Note that measuring the Compartment Bitmap field length in 32-bit
words permits the header to be 64-bit aligned, following IPv6
guidelines, without wasting 32 bits. Using 64-bit words for the size
of the Compartment Bitmap field length would force 32 bits of padding
with every option in order to maintain 64-bit alignment; wasting
those bits in every CALIPSO option is undesirable.
Because this specification represents Releasabilities on the wire as
inverted Compartments, the size of the Compartment Bitmap field needs
to be large enough to hold not only the set of logical Compartments,
but instead to hold both the set of logical Compartments and the set
of logical Releasabilities.
Recall that the overall length of this option MUST follow IPv6
optional header rules, including the word alignment rules. This has
implications for the valid values for this field. In some cases, the
StJohns, et al. Informational [Page 28]
^L
RFC 5570 CALIPSO July 2009
length of the Compartment Bitmap field might need to exceed the
number of bits required to hold the sum of the logical Compartments
and the logical Releasabilities, in order to comply with IPv6
alignment rules.
5.1.5. Domain of Interpretation Field
This field contains an unsigned 32-bit integer. IANA maintains a
registry with assignments of the DOI values used in this field. The
DOI identifies the rules under which this datagram must be handled
and protected. The NULL DOI, in which this field is all zeros, MUST
NOT appear in any IPv6 packet on any network.
NOTE WELL: The Domain Of Interpretation value where all 4 octets
contain zero is defined to be the NULL DOI. The NULL DOI has no
compartments and has a single level whose value and CALIPSO
representation are each zero. The NULL DOI MUST NOT ever appear on
the wire. If a packet is received containing the NULL DOI, that
packet MUST be dropped and the event SHOULD be logged as a security
fault.
5.1.6. Sensitivity Level Field
This contains an unsigned 8-bit value. This field contains an opaque
octet whose value indicates the relative sensitivity of the data
contained in this datagram in the context of the indicated DOI. The
values of this field MUST be ordered, with 00000000 being the lowest
Sensitivity Level and 11111111 being the highest Sensitivity Level.
However, in a typical deployment, not all 256 Sensitivity Levels will
be in use. So the set of valid Sensitivity Level values depends upon
the CALIPSO DOI in use. This sensitivity ordering rule is necessary
so that Intermediate Systems (e.g., routers or MLS guards) will be
able to apply MAC policy with minimal per-packet computation and
minimal configuration.
5.1.7. 16-Bit Checksum Field
This 16-bit field contains the a CRC-16 checksum as defined in
Appendix C of RFC 1662 [RFC1662]. The checksum is calculated over
the entire CALIPSO option in this packet, including option header,
zeroed-out checksum field, option contents, and any required padding
zero bits.
The checksum MUST always be computed on transmission and MUST always
be verified on reception. This checksum only provides protection
against accidental corruption of the CALIPSO option in cases where
StJohns, et al. Informational [Page 29]
^L
RFC 5570 CALIPSO July 2009
neither the underlying medium nor other mechanisms, such as the IP
Authentication Header (AH), are available to protect the integrity of
this option.
Note that the checksum field is always required, even when other
integrity protection mechanisms (e.g., AH) are used. This method is
chosen for its reliability and simplicity in both hardware and
software implementations, and because many implementations already
support this checksum due to its existing use in various IETF
specifications.
5.1.8. Compartment Bitmap Field
This contains a variable number of 64-bit words. Each bit represents
one compartment within the DOI. Each "1" bit within an octet in the
Compartment Bitmap field represents a separate compartment under
whose rules the data in this packet must be protected. Hence, each
"0" bit indicates that the compartment corresponding with that bit is
not applicable to the data in this packet. The assignment of
identity to individual bits within a Compartment Bitmap for a given
DOI is left to the owner of that DOI.
This specification represents a Releasability on the wire as if it
were an inverted Compartment. So the Compartment Bitmap holds the
sum of both logical Releasabilities and also logical Compartments for
a given DOI value. The encoding of the Releasabilities in this field
is described elsewhere in this document. The Releasability encoding
is designed to permit the Compartment Bitmap evaluation to occur
without the evaluator necessarily knowing the human semantic
associated with each bit in the Compartment Bitmap. In turn, this
facilitates the implementation and configuration of Mandatory Access
Controls based on the Compartment Bitmap within IPv6 routers or guard
devices.
5.2. Packet Word Alignment Considerations
The basic option is variable length, due to the variable length
Compartment Bitmap field.
Intermediate Systems that lack custom silicon processing capabilities
and most End Systems perform best when processing fixed-length,
fixed-location items. So the IPv6 base specification levies certain
requirements on all IPv6 optional headers.
StJohns, et al. Informational [Page 30]
^L
RFC 5570 CALIPSO July 2009
The CALIPSO option must maintain this IPv6 64-bit alignment rule for
the option overall. Please note that the Compartment Bitmap field
has a length in quanta of 32-bit words (e.g., 0 bits, 32 bits, 64
bits, 96 bits), which permits the overall CALIPSO option length to be
64-bit aligned -- without requiring 32 bits of NULL padding with
every CALIPSO option.
6. Usage
This section describes specific protocol processing steps required
for systems that claim to implement or conform with this
specification.
6.1. Sensitivity Label Comparisons
This section describes how comparisons are made between two
Sensitivity Labels. Implementing this comparison correctly is
critical to the MLS system providing the intended Mandatory Access
Controls (MACs) to network traffic entering or leaving the system.
A Sensitivity Label consists of a DOI, a Sensitivity Level, and zero
or more Compartments. The following notation will be used:
A.DOI = the DOI portion of Sensitivity Label A
A.LEV = the Sensitivity Level portion of Sensitivity Label A
A.COMP = the Compartments portion of Sensitivity Label A
6.1.1. "Within Range"
A Sensitivity Label "M" is "within range" for a particular range
"LO:HI" if and only if:
1. M, LO, and HI are members of the same DOI.
(M.DOI == LO.DOI == HI.DOI)
2. The range is a valid range. A given range LO:HI is
valid if and only if HI dominates LO.
((LO.LEV <= HI.LEV) && (LO.COMP <= HI.COMP))
3. The Sensitivity Level of M dominates the low-end (LO)
Sensitivity Level AND the Sensitivity Level of M is
dominated by the high-end (HI) Sensitivity Level.
(LO.LEV <= M.LEV <= HI.LEV)
AND
StJohns, et al. Informational [Page 31]
^L
RFC 5570 CALIPSO July 2009
4. The Sensitivity Label M has a Compartment Set that
dominates the Compartment Set contained in the
Sensitivity Label from the low-end range (LO), and
that is dominated by the Compartment Set contained
in the high-end Sensitivity Label (HI) from the range.
(LO.COMP <= M.COMP <= HI.COMP)
6.1.2. "Less Than" or "Below Range"
A Sensitivity Label "M" is "less than" some other Sensitivity Label
"LO" if and only if:
1. The DOI for the Sensitivity Label M is identical
to the DOI for both the low-end and high-end of
the range.
(M.DOI == LO.DOI == HI.DOI)
AND EITHER
2. The Sensitivity Level of M is less than the
Sensitivity Level of LO.
(M.LEV < LO.LEV)
OR
3. The Compartment Set of Sensitivity Label M is
dominated by the Compartment Set of Sensitivity
Label LO.
(M.COMP <= LO.COMP)
A Sensitivity Label "M" is "below range" for a Sensitivity Label
"LO:HI", if LO dominates M and LO is not equal to M.
6.1.3. "Greater Than" or "Above Range"
A Sensitivity Label "M" is "greater than" some Sensitivity Label "HI"
if and only if:
1. Their DOI's are identical.
(M.DOI == HI.DOI)
AND EITHER
StJohns, et al. Informational [Page 32]
^L
RFC 5570 CALIPSO July 2009
2A. M's Sensitivity Level is above HI's Sensitivity Level.
(M.LEV > HI.LEV)
OR
2B. M's Compartment Set is greater than HI's Compartment Set.
(M.COMP > HI.COMP)
A Sensitivity Label "M" is "above range" for a Sensitivity Label,
"LO:HI", if M dominates HI and M is not equal to HI.
6.1.4. "Equal To"
A Sensitivity Label "A" is "equal to" another Sensitivity Label "B"
if and only if:
1. They have the exact same DOI.
(A.DOI == B.DOI)
2. They have identical Sensitivity Levels.
(A.LEV == B.LEV)
3. Their Compartment Sets are identical.
(A.COMP == B.COMP)
6.1.5. "Disjoint" or "Incomparable"
A Sensitivity Label "A" is disjoint from another Sensitivity Label
"B" if any of these conditions are true:
1. Their DOI's differ.
(A.DOI <> B.DOI)
2. B does not dominate A, A does not dominate B,
and A is not equal to B.
(^( (A < B) || (A > B) || (A == B) ))
StJohns, et al. Informational [Page 33]
^L
RFC 5570 CALIPSO July 2009
3. Their Compartment Sets are disjoint from each other;
A's Compartment Set does not dominate B's Compartment
Set AND B's Compartment Set does not dominate A's
Compartment Set.
(^( (A.COMP >= B.COMP) || (A.COMP <= B.COMP) ))
6.2. End System Processing
This section describes CALIPSO-related processing for IPv6 packets
imported or exported from an End System claiming to implement or
conform with this specification. This document places no additional
requirements on IPv6 nodes that do not claim to implement or conform
with this document.
6.2.1. Export
An End System that sends data to the network is said to "export" it
to the network. Before a datagram can leave an end system and be
transmitted over a network, the following ordered steps must occur:
1. Selection of the export DOI:
a) If the upper-level protocol selects a DOI,
then that DOI is selected.
b) Else, if there are tables defining a specific default
DOI for the specific destination End System address
or for the network address, then that DOI is selected.
c) Else, if there is a specific DOI associated with the
sending logical interface (i.e., IP address), then that
DOI is selected.
d) Else the default DOI for the system is selected.
NOTE WELL: A connection-oriented transport-layer protocol session
(e.g., Transmission Control Protocol (TCP) session, Stream Control
Transmission Protocol (SCTP) session) MUST have the same DOI and same
Sensitivity Label for the life of that connection. The DOI is
selected at connection initiation and MUST NOT change during the
session.
A trusted multi-level application that possesses appropriate
privilege MAY use multiple connection-oriented transport-layer
protocol sessions with differing Sensitivity Labels concurrently.
StJohns, et al. Informational [Page 34]
^L
RFC 5570 CALIPSO July 2009
Some trusted UDP-based applications (e.g., remote procedure call
service) multiplex different transactions having different
Sensitivity Levels in different packets for the same IP session
(e.g., IP addresses and UDP ports are constant for a given UDP
session). In such cases, the Trusted Computing Base MUST ensure that
each packet is labeled with the correct Sensitivity Label for the
information carried in that particular packet.
In the event the End System selects and uses a specific DOI and that
DOI is not recognized by the originating node's first-hop router, the
packet MUST be dropped by the first-hop router. In such a case, the
networking API should indicate the connection failure (e.g., with
some appropriate error, such as ENOTREACH). This fault represents
(1) incorrect configuration of either the Intermediate System or of
the End System or (2) correct operation for a node that is not
permitted to send IPv6 packets with that DOI through that
Intermediate System.
When an MLS End System is connected to an MLS LAN, it is possible
that there would be more than one first-hop Intermediate System
concurrently, with different Intermediate Systems having different
valid Sensitivity Label ranges. Thoughtful use of the IEEE 802
Virtual LAN (VLAN) standard (e.g., with different VLAN IDs
corresponding to different sensitivity ranges) might ease proper
system configuration in such deployments.
2. Export Labeling:
Once the DOI is selected, the CALIPSO Sensitivity
Label and values are determined based on the internal
Sensitivity Label and the DOI. In the event the internal
Sensitivity Level does not map to a valid CALIPSO
Sensitivity Label, then an error SHOULD be returned
to the upper-level protocol and that error MAY be
logged. No further attempt to send this datagram
should be made.
3. Access Control:
Once the datagram is marked and the sending logical
interface is selected (by the routing code), the
datagram's Sensitivity Label is compared against the
Sensitivity Label range(s) associated with that logical
interface. For the datagram to be sent, the interface
MUST list the DOI of the datagram Sensitivity Label as
one of the permissible DOI's and the datagram Sensitivity
Label must be within range for the range associated with
that DOI. If the datagram fails this access test, then
StJohns, et al. Informational [Page 35]
^L
RFC 5570 CALIPSO July 2009
an error SHOULD be returned to the upper-level protocol
and MAY be logged. No further attempt to send this
datagram should be made.
6.2.2. Import
When a datagram arrives at an interface on an End System, the
receiving End System MUST:
1. Verify the CALIPSO checksum. Datagrams with
invalid checksums MUST be silently dropped.
Such a drop event SHOULD be logged as a security
fault with an indication of what happened.
2. Verify the CALIPSO has a known and valid DOI.
Datagrams with unrecognized or illegal DOIs MUST
be silently dropped. Such an event SHOULD be
logged as a security fault with an indication
of what happened.
3. Verify the DOI is a permitted one for the receiving
interface. Datagrams with prohibited DOI values
MUST be silently dropped. Such an event SHOULD
be logged as a security fault with an indication
of what happened.
4. Verify the CALIPSO Sensitivity Label is within
the permitted range for the receiving interface:
NOTE WELL: EACH permitted DOI on an interface has
a separate table describing the permitted range
for that DOI.
A datagram with a Sensitivity Label within the
permitted range is accepted for further processing.
A datagram with a Sensitivity Label disjoint with
the permitted range MUST be silently dropped.
Such an event SHOULD be logged as a security fault,
with an indication that the packet was dropped
because of a disjoint Sensitivity Label. An ICMP
error message MUST NOT be sent in this case.
A datagram with a Sensitivity Label below the
permitted range MUST be dropped. This event
SHOULD be logged as a security fault, with an
indication that the packet was below range.
An ICMP error message MUST NOT be sent in this case.
StJohns, et al. Informational [Page 36]
^L
RFC 5570 CALIPSO July 2009
A datagram with a Sensitivity Label above the
permitted range MUST be dropped. This event
SHOULD be logged as a security fault, with an
indication that the packet was above range.
An ICMP error message MUST NOT be sent in this case.
5. Once the datagram has been accepted, the receiving
system MUST use the import Sensitivity Label and DOI
to associate the appropriate internal Sensitivity Label
with the data in the received datagram. This label
information MUST be carried as part of the information
returned to the upper-layer protocol.
6.3. Intermediate System Processing
This section describes CALIPSO-related processing for IPv6 packets
transiting an IPv6 Intermediate System that claims to implement and
comply with this specification. This document places no additional
requirements on IPv6 Intermediate Systems that do not claim to comply
or conform with this document.
The CALIPSO packet format has been designed so that one can configure
an Intermediate System with the minimum sensitivity level, maximum
Sensitivity Level, minimum compartment bitmap, and maximum
compartment bitmap -- and then deploy that system without forcing the
system to know the detailed human meaning of each Sensitivity Level
or compartment bit value. Instead, once the minimum and maximum
labels have been configured, the Intermediate System can apply a
simple algorithm to determine whether or not a packet is within range
for a given interface. This design should be straight-forward to
implement in Application-Specific Integrated Circuit (ASIC) or Field
Programmable Gate Array (FPGA) hardware, because the option format is
simple and easy to parse, and because only a single comparison
algorithm (defined in this RFC, hence known in advance) is needed.
6.3.1. Input
Intermediate Systems have slightly different rules for processing
marked datagrams than do End Systems. Primarily, Intermediate
Systems do not IMPORT or EXPORT transit datagrams, they just forward
them. Also, in most deployments intermediate systems are used to
provide Mandatory Access Controls to packets traversing more than one
subnetwork.
The following checks MUST occur before any other processing. Upon
receiving a CALIPSO-labeled packet, an Intermediate System must:
StJohns, et al. Informational [Page 37]
^L
RFC 5570 CALIPSO July 2009
1. Determine whether or not this datagram is destined
for (addressed to) this Intermediate System. If
so, then the Intermediate System becomes an End
System for the purposes of receiving this
particular datagram and the rules for IMPORTing
described above are followed.
2. Verify the CALIPSO checksum. Datagrams with
invalid checksums MUST be silently dropped. The
drop event SHOULD be logged as a security fault
with an indication of what happened and MAY
additionally be logged as a network fault.
NOTE WELL:
A checksum failure could indicate a general network
problem (e.g., noise on a radio link) that is
unrelated to the presence of a CALIPSO option, but
it also could indicate an attempt by an adversary
to tamper with the value of a CALIPSO label.
3. Verify the CALIPSO has a known and valid DOI.
Datagrams with unrecognized or illegal DOIs MUST
be silently dropped. Such an event SHOULD be
logged as a security fault with an indication of
what happened.
4. Verify the DOI is a permitted one for the receiving
interface. Datagrams with prohibited DOIs MUST be
silently dropped. Such a drop SHOULD be logged as
a security fault with an indication of what
happened.
5. Verify the Sensitivity Label within the CALIPSO
is within the permitted range for the receiving
interface:
NOTE WELL:
Each permitted DOI on an interface has a separate
table describing the permitted range for that DOI.
A rejected datagram with a Sensitivity Label below
or disjoint with the permitted range MUST be
silently dropped. Such an event SHOULD be logged
as a security fault with an indication of what
happened. An ICMP error message MUST NOT be sent
in this case.
StJohns, et al. Informational [Page 38]
^L
RFC 5570 CALIPSO July 2009
A rejected datagram with a Sensitivity Label above
the permitted range MUST be dropped. The drop
event SHOULD be logged as a security fault with an
indication of what happened. An ICMP error message
MUST NOT be sent in this case.
If and only if all the above conditions are met is the datagram
accepted by the IPv6 Intermediate System for further processing and
forwarding.
At this point, the datagram is within the permitted range for the
Intermediate System, so appropriate ICMP error messages MAY be
created by the IP module back to the originating End System regarding
the forwarding of the datagram. These ICMP messages MUST be created
with the exact same Sensitivity Label as the datagram causing the
error. Standard rules about generating ICMP error messages (e.g.,
never generate an ICMP error message in response to a received ICMP
error message) continue to apply. Note that these locally generated
ICMP messages must go through the same outbound checks (including MAC
checks) as any other forwarded datagram as described in the following
paragraphs.
6.3.2. Translation by Intermediate Systems
It is at this point, after input processing and before output
processing, that translation of the CALIPSO from one DOI to another
DOI takes place in an Intermediate System, if at all. Section 6.4
describes the two possible approaches to translation.
6.3.3. Output
Once the forwarding code has selected the interface through which the
datagram will be transmitted, the following takes place:
1. If the output interface requires that all packets
contain a CALIPSO label, then verify that the packet
contains a CALIPSO label.
2. Verify the DOI is a permitted one for the sending
interface and that the datagram is within the
permitted range for the DOI and for the interface.
3. Datagrams with prohibited DOIs or with out-of-range
Sensitivity Labels MUST be dropped. Any drop event
SHOULD be logged as a security fault, including
appropriate details about which datagram was
dropped and why.
StJohns, et al. Informational [Page 39]
^L
RFC 5570 CALIPSO July 2009
4. Datagrams with prohibited DOIs or out-of-range
Sensitivity Labels MAY result in an ICMP "Destination
Unreachable" error message, depending upon the
security configuration of the system.
If the cause of the dropped packet is that the
DOI is prohibited or unrecognized, then a reason
code of "No Route to Host" is used. If the dropped
packet's DOI is valid, but the Sensitivity Label
is out of range, then a reason code of
"Administratively Prohibited" is used. If an
unlabeled packet has been dropped because the
packet is required to be labeled, then a reason
code of "Administratively Prohibited" is used.
In all cases, if an ICMP Error Message is sent,
then it MUST be sent with the same Sensitivity
Label as the rejected datagram.
The choice of whether or not to send an ICMP
message, if sending an ICMP message for this case
is implemented, MUST be configurable, and SHOULD
default to not sending an ICMP message. Standard
conditions about generating ICMP error messages
(e.g., never send an ICMP error message about a
received ICMP error message) continue to apply.
6.4. Translation
A system that provides on-the-fly relabeling is said to "translate"
from one DOI to another. There are basically two ways a datagram can
be relabeled:
Either the Sensitivity Label can be converted from a CALIPSO
Sensitivity Label, to an internal Sensitivity Label, and then back to
a new CALIPSO Sensitivity Label, exclusive-or a CALIPSO Sensitivity
Label can be directly remapped into a new CALIPSO Sensitivity Label.
The first of these methods is the functional equivalent of
"importing" the datagram then "exporting" it and is covered in detail
in the "Import" (Section 6.2.2) and "Export" (Section 6.2.1) sections
above.
The remainder of this section describes the second method, which is
direct relabeling. The choice of which method to use for relabeling
is an implementation decision outside the scope of this document.
StJohns, et al. Informational [Page 40]
^L
RFC 5570 CALIPSO July 2009
A system that provides on-the-fly relabeling without importing or
exporting is basically a special case of the Intermediate System
rules listed above. Translation or relabeling takes place AFTER all
input checks take place, but before any output checks are done.
Once a datagram has passed the Intermediate System input processing
and input validation described in Section 6.3.1, and has been
accepted as valid, the CALIPSO in that datagram may be relabeled. To
determine the new Sensitivity Label, first determine the new output
DOI.
The selection of the output DOI may be based on any of Incoming DOI,
Incoming Sensitivity Label, Destination End System, Destination
Network, Destination Subnetwork, Sending Interface, or Receiving
Interface, or combinations thereof. Exact details on how the output
DOI is selected are implementation dependent, with the caveat that it
should be consistent and reversible. If a datagram from End System A
to End System B with DOI X maps into DOI Y, then a datagram from B to
A with DOI Y should map into DOI X.
Once the output DOI is selected, the output Sensitivity Label is
determined based on (1) the input DOI and input Sensitivity Label and
(2) the output DOI. In the event the input Sensitivity Label does
not map to a valid output Sensitivity Label for the output DOI, then
the datagram MUST be silently dropped and the drop event SHOULD be
logged as a security fault.
Once the datagram has been relabeled, the Intermediate System output
procedures described in Section 6.3.3 are followed, with the
exception that any error that would cause an ICMP error message to be
generated back to the originating End System instead MUST silently
drop the datagram without sending an ICMP error message. Such a drop
SHOULD be logged as a security fault.
7. Architectural and Implementation Considerations
This section contains "implementation considerations"; it does not
contain "requirements". Implementation experience might eventually
turn some of them into implementation requirements in some future
version of this specification.
This IPv6 option specification is only a small part of an overall
distributed Multi-Level Secure (MLS) deployment. Detailed
instructions on how to build a Multi-Level Secure (MLS) device are
well beyond the scope of this specification. Additional information
on implementing a Multi-Level Secure operating system, for example
implementing an MLS End System, is available from a range of sources
[TCSEC] [TNI] [CMW] [CC] [ISO-15408] [MLOSPP].
StJohns, et al. Informational [Page 41]
^L
RFC 5570 CALIPSO July 2009
Because the usual 5-tuple (i.e., Source IP address, Destination IP
address, Transport protocol, Source Port, and Destination Port) do
not necessarily uniquely identify a flow within a labeled MLS network
deployment, some applications or services might be impacted by
multiple flows mapping to a single 5-tuple. This might have
unexpected impacts in a labeled MLS network deployment using such
application protocols. For example, Resource Reservation Protocol
(RSVP), Session Initiation Protocol (SIP), and Session Description
Protocol (SDP) might be impacted by this.
A number of Commercial-Off-The-Shelf (COTS) applications (e.g.,
Remote Access Dial-In User Service (RADIUS), Hyper-Text Transfer
Protocol (HTTP), and Transport-Layer Security (TLS) web content
access) have been included in MLS network deployments for about two
decades, without operational difficulties or a need for special
modifications. The ability to use these common applications
demonstrates that the basic Internet architecture remains unchanged
in an MLS deployment, although certain details (e.g., adding labels
to IP datagrams) do change.
7.1. Intermediate Systems
Historically, RFC 1108 was supported by one commercial label-aware IP
router. Neither RFC 1038 nor FIPS-188 were supported in any
commercial IP router, so far as the authors are aware. A label-aware
router does not necessarily use an MLS operating system. Instead, a
label-aware router might use a conventional router operating system,
adding extensions to permit application of per-logical-interface
label-oriented Access Control Lists (ACLs) to IP packets entering and
leaving that router's network interface(s).
This proposal does not change IP routing in any way. Existing
label-aware routers do not use Sensitivity Labels in path
calculations, Routing Information Base (RIB) or Forwarding
Information Base (FIB) calculations, their routing protocols, or
their packet forwarding decisions.
Similarly, existing MLS network deployments use many protocols or
specifications, for example, Differentiated Services, without
modification. For Differentiated Services, this might mean that
multiple IP flows (i.e., flows differing only in their CALIPSO label
value) would be categorized and handled by Intermediate Systems as if
they were a single flow.
Router performance is optimized if there is hardware support for
applying the Mandatory Access Controls based on this label option.
An issue with CIPSO is that the option syntax is remarkably complex
[FIPS-188]. So this label option uses a simplified syntax. This
StJohns, et al. Informational [Page 42]
^L
RFC 5570 CALIPSO July 2009
should make it more practical to create custom logic (e.g., in
Verilog) with support for this option and the associated Mandatory
Access Controls.
7.2. End Systems
It is possible for a system administrator to create two DOIs with
different overlapping compartment ranges. This can be used to reduce
the size of the IPv6 Sensitivity Label option in some deployments.
7.3. Upper-Layer Protocols
As CALIPSO is an IP option, this document focuses upon the network-
layer handling of IP packets containing CALIPSO options. This
section provides some discussion of some upper-layer protocol issues.
This section is not a complete specification for how an MLS End
System handles information internally after the decision has been
made to accept a received IPv6 packet containing a CALIPSO option.
Implementers of MLS systems might wish also to consult [TCSEC],
[TNI], [CMW], [CC], [ISO-15408], and [MLOSPP].
In a typical MLS End System, the information received from the
network (i.e., information not dropped by the network layer as a
result of the CALIPSO processing described in this document) is
assigned an internal Sensitivity Label while inside the End System
operating system. The MLS End System uses the Bell-LaPadula
Mandatory Access Control policy [BL73] to determine how that
information is processed, including to which transport-layer sessions
or to which applications the information is delivered.
Within this section, we use one additional notation, in an attempt to
be both clear and concise. Here, the string "W:XY" defines a
Sensitivity Label where the Sensitivity Level is W and where X and Y
are the only compartments enabled, while the string "W::" defines a
Sensitivity Label where the Sensitivity Level is W and there are no
compartments enabled.
7.3.1. TCP-Related Issues
With respect to a network, each distinct Sensitivity Label represents
a separate virtual network, which shares the same physical network.
The above statement, taken from Section 3, has a non-obvious, but
critical, corollary. If there are separate virtual networks, then it
is possible for a system that exists in multiple virtual networks to
have identical TCP connections, each one existing in a different
virtual network.
StJohns, et al. Informational [Page 43]
^L
RFC 5570 CALIPSO July 2009
TCP connections are normally identified by source and destination
port, and source and destination address. If a system labels
datagrams with the CALIPSO option (which it must do if it exists in
multiple virtual networks - e.g., a "Multi-Level Secure" system),
then TCP connections are identified by source and destination port,
source and destination address, and an internal Sensitivity Label
(optionally, a Sensitivity Label range). This corrects a technical
error in RFC 793, and is consistent with all known MLS operating
system implementations [TNI] [RFC793]. There are no known currently
deployed TCP instances that actually comply with this specific detail
of RFC 793.
7.3.2. UDP-Related Issues
Unlike TCP or SCTP, UDP is a stateless protocol, at least
conceptually. However, many implementations of UDP have some session
state (e.g., Protocol Control Blocks in 4.4 BSD), although the UDP
protocol specifications do not require any state.
One consequence of this is that in widely used End System
implementations of UDP and IPv6, a UDP listener might be bound only
to a particular UDP port on its End System -- without binding to a
particular remote IP address or local IP address.
UDP can be used with unicast or with multicast. Some existing UDP
End System implementations permit a single UDP packet to be delivered
to more than one listener at the same time. Except for the
application of Mandatory Access Controls, the behavior of a given
system should remain the same (so that application behavior does not
change in some unexpected way) with respect to delivery of UDP
datagrams to listeners.
For example, if a listener on UDP port X has a Sensitivity Label
range with a minimum of "S:AB" and a maximum of "S:AB", then only
datagrams with a destination of UDP port X and a Sensitivity Label of
"S:AB" will be delivered to that listener.
For example, if a listener on UDP port Y has a Sensitivity Label
range with a minimum of "W::" and a maximum of "X:ABC" (where X
dominates W), then a datagram addressed to UDP port Y with a
Sensitivity Label of "W:A" normally would be delivered to that
listener.
7.3.3. SCTP-Related Issues
With respect to a network, each distinct Sensitivity Label represents
a separate virtual network, which shares the same physical network.
StJohns, et al. Informational [Page 44]
^L
RFC 5570 CALIPSO July 2009
The above statement, taken from Section 3, has a non-obvious, but
critical, corollary. If there are separate virtual networks, then it
is possible for a system that exists in multiple virtual networks to
have identical SCTP connections, each one existing in a different
virtual network.
As with TCP, SCTP is a connection-oriented transport protocol and has
substantial session state. Unlike TCP, SCTP can support session-
endpoint migration among IP addresses at the same end node(s), and
SCTP can also support both one-to-one and one-to-many communication
sessions.
In single-level End Systems, in the one-to-one mode, the SCTP session
state for a single local SCTP session includes the set of remote IP
addresses for the single remote SCTP instance, the set of local IP
addresses, the remote SCTP port number, and the local SCTP port
number.
In single-level End Systems, in the one-to-many mode, the SCTP
session state for a single local SCTP instance can have multiple
concurrent connections to several different remote SCTP peers. There
cannot be more than one connection from a single SCTP instance to any
given remote SCTP instance. Thus, in single-level End Systems, in
the one-to-many mode, the local SCTP session state includes the set
of remote IP addresses, the set of local IP addresses, the remote
SCTP port number for each remote SCTP instance, and the (single)
local SCTP port number.
In MLS End Systems, for either SCTP mode, the SCTP session state
additionally includes the Sensitivity Label for each SCTP session. A
single SCTP session, whether in the one-to-one mode or in the one-
to-many mode, MUST have a single Sensitivity Label, rather than a
Sensitivity Label range.
Unlike TCP, SCTP has the ability to shift an existing SCTP session
from one endpoint IP address to a different IP address that belongs
to the same endpoint, when one or more endpoints have multiple IP
addresses. If such shifting occurs within an MLS deployment, it is
important that it only move to an IP address with a Sensitivity Label
range that includes that SCTP session's own Sensitivity Label.
Further, although a node might be multi-homed, it is entirely
possible that only one of those interfaces is reachable for a given
Sensitivity Label value. For example, one network interface on a
node might have a Sensitivity Label range from "A::" to "B:XY" (where
B dominates A), while a different network interface on the same node
might have a Sensitivity Label range from "U::" "U::" (where A
dominates U). In that example, if a packet has a CALIPSO label of
StJohns, et al. Informational [Page 45]
^L
RFC 5570 CALIPSO July 2009
"A:X", then that packet will not be able to use the "U"-only network
interface. Hence, an SCTP implementation needs to consider the
Sensitivity Label of each SCTP instance on the local system when
deciding which of its own IP addresses to communicate to the remote
SCTP instance(s) for that SCTP instance. This issue might lead to
novel operational issues with SCTP sessions. Implementers ought to
give special attention to this SCTP-specific issue.
7.3.4. Security Logging
This option is recommended for deployment only in well-protected
private networks that are NOT connected to the global Internet. By
definition, such private networks are also composed only of trusted
systems that are believed to be trustworthy. So the risk of a
denial-of-service attack upon the logging implementation is much
lower in the intended deployment environment than it would have been
for general Internet deployments.
8. Security Considerations
This document describes a mechanism for adding explicit Sensitivity
Labels to IPv6 datagrams. The primary purpose of these labels is to
facilitate application of Mandatory Access Controls (MAC) in End
Systems or Intermediate Systems that implement this specification.
As such, correct implementation of this mechanism is very critical to
the overall security of the systems and networks where this
mechanisms is deployed. Use of high-assurance development techniques
is encouraged. End users should carefully consider the assurance
requirements of their particular deployment, in the context of that
deployment's prospective threats.
A concern is that since this label is used for Mandatory Access
Controls, some method of binding the Sensitivity Label option to the
rest of the packet is needed. Without such binding, malicious
modification of the Sensitivity Label in a packet would go
undetected. So, implementations of this Sensitivity Label option
MUST also implement support for the IP Authentication Header (AH).
Implementations MUST permit the system administrator to configure
whether or not AH is used.
ESP with null encryption mechanism can only protect the payload of an
IPv6 packet, not any Hop-by-Hop Options. By contrast, AH protects
all invariant headers and data of an IPv6 packet, including the
CALIPSO Hop-by-Hop Option. The CALIPSO option defined in this
document is always an IPv6 Hop-by-Hop Option, because the CALIPSO
option needs to be visible to, and parsable by, IPv6 routers and
security gateways so that they can apply MAC policy to packets.
StJohns, et al. Informational [Page 46]
^L
RFC 5570 CALIPSO July 2009
It is anticipated that if AH is being used with a symmetric
authentication algorithm, then not only the recipient End System, but
also one or more security gateways along the path, will have
knowledge of the symmetric key -- so that AH can be used to
authenticate the packet, including the CALIPSO label. In this case,
all devices knowing that symmetric authentication key would need to
be trusted. Alternatively, AH may be used with an asymmetric
authentication algorithm, so that the recipient and any security
gateways with knowledge of the authentication key can authenticate
the packet, including the CALIPSO label.
If AH or ESP are employed to provide "labeled IP Security" within
some CALIPSO deployment, then the Sensitivity Label of the IP
Security Association used for a given packet MUST have the same
meaning as the Sensitivity Label carried in the CALIPSO option of
that packet, in order that MAC policy can and will be correctly
applied.
Because the IP Authentication Header will include the CALIPSO option
among the protected IPv6 header fields, modification of a CALIPSO-
labeled packet that also contains an IP Authentication Header will
cause the resulting packet to fail authentication at the destination
node for the AH security session. Therefore, CALIPSO labels cannot
be inserted, deleted, or translated for IPv6 packets that contain an
IP Authentication Header.
NOTE WELL: The "not modified during transit" bit for IPv6 option
types was really created to be the "include in AH calculations"
signal. There was no other reason to define that bit in IPv6.
In situations where a modification by an Intermediate System is
required by policy, but is not possible due to AH, then the packet
MUST be dropped instead. If the packet must be dropped for this
reason, then an ICMP "Destination Unreachable" error message SHOULD
be sent back to the originator of the dropped packet with a reason
code of "Administratively Prohibited". If the packet can be
forwarded properly without violating the MLS MAC policy of the
Intermediate System, then (by definition) such a packet modification
is not required.
Note that in a number of error situations with labeled networking, an
ICMP error message MUST NOT be sent in order to avoid creating
security problems. In certain other error situations, an ICMP error
message might be sent. Such ICMP handling details have been
described earlier in this document. Even if an ICMP error message is
sent, it might be dropped along the way before reaching its intended
destination -- due to MAC rules, DOI differences, or other configured
security policies along the way from the node creating the ICMP error
StJohns, et al. Informational [Page 47]
^L
RFC 5570 CALIPSO July 2009
message to the intended destination node. In turn, this can mean
operational faults (e.g., fibre cut, misconfiguration) in a labeled
network deployment might be more difficult to identify and resolve.
This mechanism is only intended for deployment in very limited
circumstances where a set of systems and networks are in a well-
protected operating environment and the threat of external or
internal attack on this mechanism is considered acceptable to the
accreditor of those systems and networks. IP packets containing
visible packet labels ought never traverse the public Internet.
This specification does not seek to eliminate all possible covert
channels. The TCP specification clarification in Section 7.3.1
happens to reduce the bandwidth of a particular known covert channel,
but is present primarily to clarify how networked MLS systems have
always been implemented [TNI] [MLOSPP].
Of course, subject to local security policies, encrypted IPv6 packets
with CALIPSO labels might well traverse the public Internet after
receiving suitable cryptographic protection. For example, a
CALIPSO-labeled packet might travel either through a Tunnel-mode ESP
(with encryption) VPN tunnel that connects two or more MLS-labeled
network segments. Alternatively, a CALIPSO-labeled IPv6 packet might
travel over some external link that has been protected by the
deployment of evaluated, certified, and accredited bulk encryptors
that would encrypt the labeled packet before transmission onto the
link and decrypt the labeled packet after reception from the link.
Accreditors of a given CALIPSO deployment should consider not only
personnel clearances and physical security issues, but also
electronic security (e.g., TEMPEST), network security (NETSEC),
communications security (COMSEC), and other issues. This
specification is only a small component of an overall MLS network
deployment.
9. IANA Considerations
9.1. IP Option Number
An IPv6 Option Number [RFC2460] has been registered for CALIPSO.
HEX BINARY
act chg rest
--- --- --- -----
7 00 0 00111 CALIPSO
StJohns, et al. Informational [Page 48]
^L
RFC 5570 CALIPSO July 2009
For the IPv6 Option Number, the first two bits indicate that the IPv6
node skip over this option and continue processing the header if it
does not recognize the option type. The third bit indicates that the
Option Data must not change en route.
This document is listed as the reference document.
9.2. CALIPSO DOI Values Registry
IANA has created a registry for CALIPSO DOI values. The initial
values for the CALIPSO DOI registry, shown in colon-separated quad
format, are as follows:
DOI Value Organization or Use
======================= ============================
0:0:0:0 NULL DOI. This ought not
be used on any network.
0:0:0:1 to 0:255:255:255 For private use among
consenting parties within
private networks.
1:0:0:0 to 254:255:255:255 For assignment by IANA to
organizations following the
Expert Review procedure
[RFC5226].
255:0:0:0 to 255:255:255:255 Reserved to the IETF for
future use by possible
revisions of this specification.
The CALIPSO DOI value 0:0:0:0 is the NULL DOI and is not to be used
on any network or in any deployment.
All other CALIPSO DOI values beginning with decimal 0: are reserved
for private use amongst consenting parties; values in this range will
not be allocated by IANA to any particular user or user community.
For the CALIPSO DOI values 1:0:0:0 through 254:255:255:255
(inclusive), IANA should follow the Expert Review procedure when DOI
Allocation requests are received.
CALIPSO DOI values beginning with decimal 255 are reserved to the
IETF for potential future use in revisions of this specification.
IESG approval is required for allocation of DOI values within that
range.
StJohns, et al. Informational [Page 49]
^L
RFC 5570 CALIPSO July 2009
10. Acknowledgments
This document is directly derived from an Internet-Draft titled "Son
of IPSO (SIPSO)" written by Mike StJohns circa 1992. Various changes
have been made since then, primarily to support IPv6 instead of IPv4.
The concepts, most definitions, and nearly all of the processing
rules here are identical to those in that earlier document.
Steve Brenneman, L.C. Bruzenak, James Carlson, Pasi Eronen, Michael
Fidler, Bob Hinden, Alfred Hoenes, Russ Housley, Suresh Krishnan,
Jarrett Lu, Dan McDonald, Paul Moore, Joe Nall, Dave Parker, Tim
Polk, Ken Powell, Randall Stewart, Bill Sommerfeld, and Joe Touch
(listed in alphabetical order by family name) provided specific
feedback on earlier versions of this document.
The authors also would like to thank the several anonymous reviewers
for their feedback, and particularly for sharing their insights into
operational considerations with MLS networking.
The authors would like to thank the IESG as a whole for providing
feedback on earlier versions of this document.
11. References
11.1. Normative References
[RFC1662] Simpson, W., Ed., "PPP in HDLC-like Framing", STD 51,
RFC 1662, July 1994.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version
6 (IPv6) Specification", RFC 2460, December 1998.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing
an IANA Considerations Section in RFCs", BCP 26, RFC
5226, May 2008.
11.2. Informative References
[BL73] Bell, D.E. and LaPadula, L.J., "Secure Computer Systems:
Mathematical Foundations and Model", Technical Report
M74-244, MITRE Corporation, Bedford, MA, May 1973.
[CW87] D.D. Clark and D.R. Wilson, "A Comparison of Commercial
and Military Computer Security Policies", in
Proceedings of the IEEE Symposium on Security and
Privacy, pp. 184-194, IEEE Computer Society, Oakland,
CA, May 1987.
StJohns, et al. Informational [Page 50]
^L
RFC 5570 CALIPSO July 2009
[CMW] US Defense Intelligence Agency, "Compartmented Mode
Workstation Evaluation Criteria", Technical Report
DDS-2600-6243-91, Washington, DC, November 1991.
[DoD5200.1-R]
US Department of Defense, "Information Security Program
Regulation", DoD 5200.1-R, 17 January 1997.
[DoD5200.28] US Department of Defense, "Security Requirements for
Automated Information Systems," Directive 5200.28, 21
March 1988.
[MLOSPP] US Department of Defense, "Protection Profile for
Multi-level Operating Systems in Environments requiring
Medium Robustness", Version 1.22, 23 May 2001.
[ISO-15408] International Standards Organisation, "Evaluation
Criteria for IT Security", ISO/IEC 15408, 2005.
[CC] "Common Criteria for Information Technology Security
Evaluation", Version 3.1, Revision 1, CCMB-2006-09-001,
September 2006.
[TCSEC] US Department of Defense, "Trusted Computer System
Evaluation Criteria", DoD 5200.28-STD, 26 December
1985.
[TNI] (US) National Computer Security Center, "Trusted
Network Interpretation (TNI) of the Trusted Computer
System Evaluation Criteria", NCSC-TG-005, Version 1, 31
July 1987.
[FIPS-188] US National Institute of Standards and Technology,
"Standard Security Labels for Information Transfer",
Federal Information Processing Standard (FIPS) 188,
September 1994.
[IEEE802.1Q] IEEE, "Virtual Bridged Local Area Networks", IEEE
Standard for Local and metropolitan area networks,
802.1Q - 2005, ISBN 0-7381-4876-6, IEEE, New York, NY,
USA, 19 May 2006.
[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791,
September 1981.
[RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC
793, September 1981.
StJohns, et al. Informational [Page 51]
^L
RFC 5570 CALIPSO July 2009
[RFC1038] St. Johns, M., "Draft revised IP security option", RFC
1038, January 1988.
[RFC1108] Kent, S., "U.S. Department of Defense Security Options
for the Internet Protocol", RFC 1108, November 1991.
[RFC1825] Atkinson, R., "Security Architecture for the Internet
Protocol", RFC 1825, August 1995.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302,
December 2005.
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)",
RFC 4303, December 2005.
Authors' Addresses
Michael StJohns
Germantown, MD
USA
EMail: mstjohns@comcast.net
Randall Atkinson
Extreme Networks
3585 Monroe Street
Santa Clara, CA
USA 95051
EMail: rja@extremenetworks.com
Phone: +1 (408)579-2800
Georg Thomas
US Department of Defense
Washington, DC
USA
StJohns, et al. Informational [Page 52]
^L
|