Network Working Group                                        M. StJohns
Request for Comments: 5570                                   Consultant
Category: Informational                                     R. Atkinson
                                                       Extreme Networks
                                                              G. Thomas
                                               US Department of Defense
                                                              July 2009
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)




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.




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.

版权所有(c)2009 IETF信托基金和确定为文件作者的人员。版权所有。

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 ( Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

本文件受BCP 78和IETF信托在本文件出版之日生效的与IETF文件有关的法律规定的约束( 请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.


Table of Contents


   1. Introduction ....................................................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
   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
1. Introduction
1. 介绍

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.

RFC 791中的原始IPv4规范包括一个用于标记IP数据包敏感度的选项。该选项由RFC 1038修订,随后由RFC 1108[RFC791][RFC1038][RFC1108]修订。尽管IETF后来反对RFC1108,但该IPv4选项仍在许多封闭的多级安全(MLS)IP网络中积极使用。

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
1.1. 历史

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.

本文件是RFC 1038和RFC 1108的直接后代,与可信系统互操作性小组(TSIG)的商业IP安全选项(CIPSO)工作组的工作密切相关[FIPS-188]。RFC1038定义的IP安全选项的设计有一个特定目的:支持部署名为BLACKER[RFC1038]的IPv4数据包加密设备。正因为如此,这些文件中的定义和假设必然集中在美国国防部和BLACKER装置上。如今,IP数据包敏感标签最常用于多层安全(MLS)环境中,通常由通过局域网(LAN)连接的分区模式工作站(CMW)组成。因此,这里定义的机制相应地比RFC1038或RFC1108更一般。

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.

此外,由于IPv4选项可用空间有限且相对较小,分区模式工作站的部署遇到了操作限制。这导致IPv4数据包标签的一个非IETF规范具有大量子选项。在IPv4标签选项中具有子选项的一个非常不幸的副作用是,实现对强制访问控制的中间系统支持(例如,在路由器或MLS guard系统中)变得更具挑战性,并且仍然能够以或接近线速转发流量。

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.

在过去十年左右的时间里,典型的以太网链路速度已从10 Mbps半双工变为1 Gbps全双工。目前,10 Gbps全双工以太网标准广泛应用于路由器、以太网交换机,甚至某些服务器中。在撰写本文时,IEEE正在积极开发40 Gbps以太网和100 Gbps以太网的标准。以这些速度转发通常需要特定应用集成电路(ASIC)的支持;支持更复杂的数据包格式通常比支持更简单的数据包格式需要更多的门。因此,在过去十年中,单一简单期权格式的压力只会增加,未来也只会增加。

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.

最初开发IPv6时,预计IP安全的可用性,特别是封装安全负载(ESP)和IP身份验证报头(AH),将消除使用IPv6[RFC1825][RFC4301][RFC4302][RFC4303]显式数据包敏感标签的需要。对于实际使用AH或ESP的MLS IPv6部署,建议使用AH和/或ESP。

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


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
1.2. 意图和适用性

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.


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].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[RFC2119]中所述进行解释。

1.3. Deployment Examples
1.3. 部署示例

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


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).

“系统高”操作示例。在这种情况下,包含任何单级终端系统的每个子网都有一个“默认”灵敏度标签,适用于该IP子网上的所有单级系统。由于这些非MLS终端系统无法创建包含敏感标签的数据包,也无法对接收到的数据包应用MAC强制,因此连接到此类子网的安全网关(例如,可能是标签感知IP路由器)需要将敏感标签插入“系统高”发起的数据包要转发到子网之外的终端系统。虽然CALIPSO IPv6选项标记为“如果无法识别,则忽略”,但有些已部署的IPv6终端系统存在漏洞。用户无法修复这些操作系统错误;一些用户需要能够集成其现有的IPv6单级终端系统,以便进行有用的总体MLS部署。因此,对于发送到包含单级终端系统的IP子网的数据包,这些最后一跳安全网关也应用强制访问控制(MAC),然后要么丢弃(如果目标子网不允许该数据包),要么移除敏感标签,并将数据包转发到这些“系统高”子网(如果目标子网上允许该数据包)。

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.


2. Definitions
2. 定义

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
2.1. 解释领域

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].

CALIPSO DOI是一种不透明标识符,用作指向一组特定策略的指针,这些策略定义了DOI中存在的敏感度级别和分区,并通过推断指向“真实世界”(例如,用于纸质文档)等效标签(见下文的“敏感度标签”)。将一组真实世界的安全策略注册或定义为CALIPSO DOI会导致以标准方式标记源于终端系统的IP数据,以“认证”或“批准”在该DOI内运行,以及这些安全策略的约束。例如,如果为美国国防部这样做,将列出所有可接受的标签,如“机密”和“绝密”,并将CALIPSO DOI链接到[DoD5200.28]和[DoD5200.1-R]文件,这些文件定义了如何与美国国防部(DoD)[DoD5200.28][DoD5200.1-R]标记和保护数据。

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
2.2. 灵敏度水平

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
2.3. 隔间

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


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
2.4. 可发布性

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
2.4.1. 可发布性概念示例

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).

例如,两家公司(ABC和XYZ)正在进行技术联盟。ABC将其企业内所有作为联盟一部分共享的信息标记为REL XYZ(例如,公司机密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.

然而,与上面的隔间示例不同,公司机密在公司机密REL XYZ中占主导地位。这意味着,获得公司机密相对XYZ许可的XYZ员工只能访问可发布的材料,而获得公司机密许可的ABC员工可以访问所有信息。

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.

如果将REL XYZ作为一个隔间进行管理,那么获得公司机密REL XYZ许可的用户将有权访问ABC公司的所有机密材料,这是不可取的。

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
2.4.2. 可发布性编码

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
2.4.2. 可发布性编码示例

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.


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 2:  Releasable only to community A and community C:
                   ABCD == 0101
   Example 3:  Releasable only to community B:
                   ABCD == 1011
   Example 3:  Releasable only to community B:
                   ABCD == 1011
   Example 4:  Releasable to communities A,B,C, & D:
                   ABCD == 0000
   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


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.

考虑一个带有标签机密可释放AC的包:1)灵敏度等级比较:(机密<=机密>最高机密),因此该路由器接口的灵敏度水平在“范围内”。2) 隔间位图比较:测试为[(0101>=0101)和(0101<=1111)],因此隔间位图在该路由器接口的“范围内”。

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.

考虑一个带有标签机密可释放ABCD:1)敏感标签比较:(机密<=机密>最高机密),因此该路由器接口的灵敏度水平在“范围内”。2) 隔间位图比较:测试为[(0000>=0101)和(0000<=1111)],因此隔间位图不在该路由器接口的“范围内”。

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.

考虑一个带有标签秘密的包不能释放:1)敏感标签比较:(机密< =机密>最高机密),因此该路由器接口的灵敏度水平在“范围内”。2) 隔间位图比较:测试为[(1111>=0101)和(1111<=1111)],因此隔间位图在该路由器接口的“范围内”。

2.4.3. Limitations of This Releasability Approach
2.4.3. 这种可发布性方法的局限性

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.

例如,如果一个人是“Jane Doe”,他是两个可发布社区(a和B)的成员,她被允许查看标记为“可发布a”、“可发布B”或“可发布AB”的纸质文档,前提是她的许可和隔间分别在敏感度和隔间的范围内这是一份纸质文件。

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".

现在,让我们考虑一个等效的电子例子,如上所述实现和部署。在本文中,我们考虑两个可释放社区(A和B)。对于用户“Jane Doe”使用的电子用户ID,这些位将设置为00。

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.

一些部署通过为电子用户分配多个平行间隙来解决此限制。参考上面的(虚构的)示例,用户“Jane Doe”可能有一个没有任何可发布性的许可证,另一个单独的许可证具有可发布性A,第三个单独的许可证具有可发布性B。尽管这有影响(例如,需要能够将多个单独的平行许可证与单个用户ID关联)对于MLS系统的实施者,本规范不能(也不会)提出任何要求,要求实施者能够将多个许可与每个给定的用户ID相关联,因为该详细程度超出了IP标签选项的范围。

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).


2.5. Sensitivity Label
2.5. 灵敏度标签

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
2.5.1. 灵敏度标签比较

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,

1) A支配B(例如,A=秘密,B=未分类);A可以读B,

2) B dominates A (e.g., A=UNCLASSIFIED, B=SECRET); A cannot access B,

2) B支配A(例如,A=未分类,B=秘密);A无法访问B,

3) A equals B (e.g., A=SECRET, B=SECRET); A can read/write B,

3) A等于B(例如,A=秘密,B=秘密);A可以读/写B,



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.

4) A是B所无法比拟的(例如,A=秘密研发,B=秘密金融);A不能访问B,B也不能访问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
2.5.2. 灵敏度标签范围

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
2.6. 进口

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
2.7. 出口

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:


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
2.8. 末端系统

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
2.9. 中间系统

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.


2.10. System Security Policy
2.10. 系统安全策略

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
3. 建筑学

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".

几年前,美国政府机密信息的强制访问控制(MAC)政策在数学符号[BL73]中正式规定。事实上,许多其他组织或政府对不同(“垂直”)敏感度级别的信息都有相同的基本强制访问控制(MAC)策略。本文件以Bell LaPadula[BL73]的正式定义为基础。有两个基本原则:“不写”和“不读”。

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


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.

本文件扩展了Bell-LaPadula,以适应不同解释领域(DOI)的概念[BL73]。如Bell LaPadula所述,每个DOI构成一个单一的可比较敏感度标签域。使用Bell-LaPadula语义无法直接比较来自不同领域的敏感度标签。

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.

本规范不排除终端系统能够提供一些灵敏度标签范围内的标签数据包。分隔式工作站(CMW)就是这种终端系统[CMW]的一个例子。如果终端系统能够并认可在某些灵敏度标签范围内进行单独处理,则此功能非常有用。这样的节点将在连接节点到网络的网络接口内具有与其相关联的范围。例如,终端系统在节点所连接的中间系统中具有与其关联的范围“SECRET:TOP SECRET”。允许节点上的秘密处理穿过网络到达网络的其他“SECRET:SECRET”段,最终到达“SECRET:SECRET”节点。同样,允许节点上的绝密处理通过“绝密:绝密”段穿越网络,最终到达某个“绝密:绝密”节点。本例中的节点可以允许该节点上的用户访问机密和绝密资源,前提是该用户持有适当的许可证并已正确配置。

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


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

许多现有MLS部署已经同时使用(并且在操作上需要使用)多个DOI。本规范早期版本的用户反馈表明,目前单个网络链路(即IP子网)承载特定联盟(或合资企业)活动以及拥有和运营该特定网络链路的政府(或其他组织)的流量是很常见的。在这种链路上,一个CALIPSO DOI通常用于联盟流量,而一些不同的CALIPSO DOI通常用于非联盟流量(即,特定于拥有和运营该特定网络链路的政府的流量)。例如,作为北约部署一部分的英国军事网络可能拥有并使用英国国防部DOI进行部署

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.

因此,实现此规范的节点必须能够同时支持至少两个CALIPSO DOI。鼓励支持两个以上的并发CALIPSO DOI。同时支持至少两个CALIPSO DOI的要求不一定是对与网络无关的MLS操作系统内部的实现约束。

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.

事实上,使用多个DOI在部署具有单一管理且具有大量隔间的部署中也非常有用。例如,这样的部署可能在一个CALIPSO DOI中有一组相关的隔室,在另一个CALIPSO DOI中有一组不同的隔室。两个DOI中可能都存在一些隔室,可能位于不同DOI中隔室位图的不同位位置。虽然这可能使某些实现更加复杂,但也可能用于减少数据包中IPv6 CALIPSO选项的典型大小。

Moving information between any two DOIs is permitted -- if and only if -- the owners of the DOIs:


1) Agree to the exchange,

1) 同意交换,


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.

2) 发布一份带有等效表的文档,该表将一个DOI的CALIPSO值映射到另一个DOI,并将该文档提供给这两个DOI部署范围内MLS系统的安全管理员。

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.


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.


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.

用户特别感兴趣的是,IPv6路由器可以根据IPv6数据包中CALIPSO敏感标签的内容对每个逻辑接口应用强制访问控制。作者们注意到,自20世纪90年代初至今,一些商用IPv4路由器产品为RFC1108 IP安全选项提供MAC强制。

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
4. 默认值

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


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").

例如,对于具有较高灵敏度级别(例如,“最机密”)的分组来说,传输其最大灵敏度级别小于该第一灵敏度级别(例如,“机密”)的链路是违反缺省MLS MAC策略的。

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.

请注意:在一些截至发布日期的IPv4 MLS网络部署中,如果第一跳路由器接收到未标记的IPv4数据包,则路由器将以上述方式向该IPv4数据包中插入适当的敏感度标签。因此,通过多个子网路径将没有标签的数据包发送到目的地并不保证数据包到达时不包含敏感标签。

5. Format
5. 总体安排

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.


5.1. Option Format
5.1. 选项格式

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].

CALIPSO选项是一个IPv6逐跳选项,旨在遵守IPv6可选标头规则。按照RFC 2460第4.2节的命名法,该选项的选项类型字段必须具有4n+2对齐[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.

下图显示了CALIPSO选项以及封装CALIPSO选项的逐跳选项标头的必需(前)两个字段。CALIPSO选项的设计旨在避免HDR EXT LEN字段和CALIPSO选项开始之间需要16位填充。此外,解释字段的CALIPSO域被布置为通常32位对齐。

   | 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)      |
   | 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)      |
5.1.1. Option Type Field
5.1.1. 选项类型字段

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
5.1.2. 选项长度字段

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
5.1.3. 隔间长度字段

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


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
5.1.5. 解释领域

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
5.1.6. 灵敏度水平场

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.

但是,在典型部署中,并非所有256个敏感度级别都将使用。因此,有效的灵敏度级别值集取决于使用的CALIPSO DOI。这种敏感性排序规则是必要的,以便中间系统(例如路由器或MLS警卫)能够以最小的每包计算和最小的配置应用MAC策略。

5.1.7. 16-Bit Checksum Field
5.1.7. 16位校验和字段

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.

该16位字段包含RFC 1662[RFC1662]附录C中定义的CRC-16校验和。校验和是在该数据包中的整个CALIPSO选项上计算的,包括选项头、清零校验和字段、选项内容和任何所需的填充零位。

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


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
5.1.8. 隔间位图字段

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
5.2. 包字对齐注意事项

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.


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.

CALIPSO选项必须为整个选项维护此IPv6 64位对齐规则。请注意,隔间位图字段的长度以32位字(例如,0位、32位、64位、96位)为单位,这允许整个CALIPSO选项长度为64位对齐,而不需要每个CALIPSO选项使用32位空填充。

6. Usage
6. 用法

This section describes specific protocol processing steps required for systems that claim to implement or conform with this specification.


6.1. Sensitivity Label Comparisons
6.1. 灵敏度标签比较

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"
6.1.1. “在范围内”

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.

1. M、 LO和HI是同一DOI的成员。

            (M.DOI == LO.DOI == HI.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.

2. 该范围是一个有效范围。给定的LO:HI范围当且仅当HI支配LO时有效。

            ((LO.LEV  <= HI.LEV)  &&  (LO.COMP <= HI.COMP))
            ((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.

3. M的灵敏度水平主导低端(LO)灵敏度水平,M的灵敏度水平主导高端(HI)灵敏度水平。

            (LO.LEV <= M.LEV <= HI.LEV)
            (LO.LEV <= M.LEV <= HI.LEV)


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.

4. 灵敏度标签M具有一个隔室集,该隔室集控制低端范围(LO)的灵敏度标签中包含的隔室集,并由高端范围的灵敏度标签(HI)中包含的隔室集控制。

            (LO.COMP <= M.COMP <= HI.COMP)
            (LO.COMP <= M.COMP <= HI.COMP)
6.1.2. "Less Than" or "Below Range"
6.1.2. “小于”或“低于范围”

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.

1. 灵敏度标签M的DOI与该范围低端和高端的DOI相同。

             (M.DOI == LO.DOI == HI.DOI)
             (M.DOI == LO.DOI == HI.DOI)



2. The Sensitivity Level of M is less than the Sensitivity Level of LO.

2. M的灵敏度水平小于LO的灵敏度水平。




3. The Compartment Set of Sensitivity Label M is dominated by the Compartment Set of Sensitivity Label LO.

3. 灵敏度标签M的隔室组主要由灵敏度标签LO的隔室组控制。



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"
6.1.3. “大于”或“高于范围”

A Sensitivity Label "M" is "greater than" some Sensitivity Label "HI" if and only if:


1. Their DOI's are identical.

1. 他们的内政部是一样的。





2A. M's Sensitivity Level is above HI's Sensitivity Level.





2B. M's Compartment Set is greater than HI's Compartment Set.




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"
6.1.4. “等于”

A Sensitivity Label "A" is "equal to" another Sensitivity Label "B" if and only if:


1. They have the exact same DOI.

1. 他们有完全相同的DOI。

(A.DOI == B.DOI)


2. They have identical Sensitivity Levels.

2. 它们具有相同的灵敏度水平。

(A.LEV == B.LEV)


3. Their Compartment Sets are identical.

3. 他们的隔间是相同的。



6.1.5. "Disjoint" or "Incomparable"
6.1.5. “不相交”或“不可比较”

A Sensitivity Label "A" is disjoint from another Sensitivity Label "B" if any of these conditions are true:


1. Their DOI's differ.

1. 他们的内政部不同。

(A.DOI <> B.DOI)


2. B does not dominate A, A does not dominate B, and A is not equal to B.

2. B不支配A,A不支配B,A不等于B。

           (^( (A < B) || (A > B) || (A == B) ))
           (^( (A < B) || (A > B) || (A == B) ))

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.

3. 它们的隔室组彼此不相交;A的隔间集不支配B的隔间集,B的隔间集不支配A的隔间集。

             (^( (A.COMP >= B.COMP) || (A.COMP <= B.COMP) ))
             (^( (A.COMP >= B.COMP) || (A.COMP <= B.COMP) ))
6.2. End System Processing
6.2. 终端系统处理

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
6.2.1. 出口

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:

1. 选择导出DOI:

a) If the upper-level protocol selects a DOI, then that DOI is selected.

a) 如果上层协议选择一个DOI,则选择该DOI。

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.

b) 否则,如果有表定义了特定目标端系统地址或网络地址的特定默认DOI,则选择该DOI。

c) Else, if there is a specific DOI associated with the sending logical interface (i.e., IP address), then that DOI is selected.

c) 否则,如果存在与发送逻辑接口(即IP地址)关联的特定DOI,则选择该DOI。

d) Else the default DOI for the system is selected.

d) 否则将选择系统的默认DOI。

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.


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.

当MLS终端系统连接到MLS LAN时,可能会同时存在多个第一跳中间系统,不同的中间系统具有不同的有效灵敏度标签范围。深思熟虑地使用IEEE 802虚拟局域网(VLAN)标准(例如,不同的VLAN ID对应不同的敏感度范围)可能会简化此类部署中的适当系统配置。

2. Export Labeling:

2. 出口标签:

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:

3. 访问控制:

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


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
6.2.2. 进口

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.

1. 验证CALIPSO校验和。必须以静默方式删除具有无效校验和的数据报。此类丢弃事件应记录为安全故障,并指示发生了什么。

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.

2. 验证CALIPSO是否具有已知且有效的DOI。具有无法识别或非法DOI的数据报必须静默删除。此类事件应记录为安全故障,并指示发生了什么。

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.

3. 验证DOI是否为接收接口允许的DOI。具有禁止的DOI值的数据报必须以静默方式删除。此类事件应记录为安全故障,并指示发生了什么。

4. Verify the CALIPSO Sensitivity Label is within the permitted range for the receiving interface:

4. 验证CALIPSO灵敏度标签是否在接收接口的允许范围内:

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.


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.

5. 一旦数据报被接受,接收系统必须使用导入灵敏度标签和DOI将适当的内部灵敏度标签与接收到的数据报中的数据相关联。该标签信息必须作为返回上层协议的信息的一部分携带。

6.3. Intermediate System Processing
6.3. 中间系统处理

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
6.3.1. 输入

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:


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.

1. 确定此数据报是否发往(发往)此中间系统。如果是这样,则中间系统就成为接收该特定数据报的终端系统,并且遵循上述导入规则。

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.

2. 验证CALIPSO校验和。必须以静默方式删除具有无效校验和的数据报。丢弃事件应记录为安全故障,并指示发生了什么,还可记录为网络故障。

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.

3. 验证CALIPSO是否具有已知且有效的DOI。具有无法识别或非法DOI的数据报必须静默删除。此类事件应记录为安全故障,并指示发生了什么。

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.

4. 验证DOI是否为接收接口允许的DOI。具有禁止的DOI的数据报必须以静默方式丢弃。这种下降应记录为安全故障,并指示发生了什么。

5. Verify the Sensitivity Label within the CALIPSO is within the permitted range for the receiving interface:

5. 验证CALIPSO内的灵敏度标签是否在接收接口的允许范围内:

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.


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
6.3.2. 中间系统翻译

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
6.3.3. 输出

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.

1. 如果输出接口要求所有数据包都包含CALIPSO标签,则验证该数据包是否包含CALIPSO标签。

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.

2. 验证DOI是发送接口允许的,并且数据报在DOI和接口允许的范围内。

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.

3. 必须删除带有禁止DOI或超出范围敏感标签的数据报。任何丢弃事件都应记录为安全故障,包括关于丢弃哪个数据报以及为什么丢弃的适当详细信息。

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.

4. 根据系统的安全配置,带有禁止DOI或超出范围敏感标签的数据报可能会导致ICMP“Destination Unreachable”错误消息。

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
6.4. 翻译

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.


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.

输出DOI的选择可以基于传入DOI、传入灵敏度标签、目的地端系统、目的地网络、目的地子网络、发送接口或接收接口中的任何一个,或其组合。关于如何选择输出DOI的确切细节取决于实现,需要注意的是,它应该是一致的和可逆的。如果从端系统a到端系统B的带有DOI X的数据报映射到DOI Y,那么从B到a的带有DOI Y的数据报应该映射到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
7. 架构和实现方面的考虑

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].


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
7.1. 中间系统

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


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
7.2. 终端系统

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
7.3. 上层协议

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
7.3.1. TCP相关问题

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.


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.

TCP连接通常由源和目标端口以及源和目标地址标识。如果系统使用CALIPSO选项标记数据报(如果存在于多个虚拟网络中,则必须这样做-例如,“多级安全”系统),则TCP连接通过源和目标端口、源和目标地址以及内部敏感标签(可选,敏感标签范围)进行标识。这纠正了RFC 793中的一个技术错误,并且与所有已知的MLS操作系统实现[TNI][RFC793]一致。目前没有已知部署的TCP实例真正符合RFC 793的这一特定细节。

7.3.2. UDP-Related Issues
7.3.2. UDP相关问题

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.

与TCP或SCTP不同,UDP是一种无状态协议,至少在概念上是这样。然而,UDP的许多实现都有一些会话状态(例如,4.4 BSD中的协议控制块),尽管UDP协议规范不需要任何状态。

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
7.3.3. SCTP相关问题

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 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


"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
7.3.4. 安全日志

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
8. 安全考虑

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.


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.

如果策略要求中间系统进行修改,但由于AH而无法进行修改,则必须丢弃数据包。如果出于此原因必须丢弃数据包,则应将ICMP“Destination Unreachable”(目的地不可到达)错误消息发送回丢弃数据包的发起人,原因代码为“管理禁止”。如果可以在不违反中间系统的MLS MAC策略的情况下正确地转发分组,则(根据定义)不需要这样的分组修改。

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


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. IANA考虑
9.1. IP Option Number
9.1. IP选项号

An IPv6 Option Number [RFC2460] has been registered for CALIPSO.


      HEX             BINARY
                act   chg   rest
      ---       ---   ---   -----
        7        00     0   00111          CALIPSO
      HEX             BINARY
                act   chg   rest
      ---       ---   ---   -----
        7        00     0   00111          CALIPSO

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
9.2. CALIPSO DOI值注册表

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:

IANA已经为CALIPSO DOI值创建了一个注册表。CALIPSO DOI注册表的初始值以冒号分隔的四元格式显示,如下所示:

      DOI Value                     Organization or Use
      =======================       ============================
      0:0:0:0                       NULL DOI.  This ought not
                                    be used on any network.
      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.

CALIPSO DOI值0:0:0:0是空DOI,不能在任何网络或任何部署中使用。

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.

以小数点0:开头的所有其他CALIPSO DOI值保留给同意方私人使用;IANA不会将此范围内的值分配给任何特定用户或用户社区。

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值1:0:0:0至254:255:255:255(含),IANA在收到DOI分配请求时应遵循专家评审程序。

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.

以十进制255开头的CALIPSO DOI值保留给IETF,以备将来在本规范修订版中使用。在该范围内分配DOI值需要IESG批准。

10. Acknowledgments
10. 致谢

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.

本文件直接来源于Mike StJohns大约于1992年撰写的题为“IPSO之子(SIPSO)”的互联网草案。从那时起,已经进行了各种更改,主要是为了支持IPv6而不是IPv4。这里的概念、大多数定义和几乎所有的处理规则都与前面文档中的相同。

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.

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和Joe Touch(按姓氏字母顺序排列)提供了有关本文档早期版本的具体反馈。

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. 工具书类
11.1. Normative References
11.1. 规范性引用文件

[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.

[RFC2460]Deering,S.和R.Hinden,“互联网协议,第6版(IPv6)规范”,RFC 2460,1998年12月。

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.

[RFC5226]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 5226,2008年5月。

11.2. Informative References
11.2. 资料性引用

[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.


[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.

[ISO-15408]国际标准组织,“IT安全评估标准”,ISO/IEC 154082005。

[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.

[IEEE802.1Q]IEEE,“虚拟桥接局域网”,IEEE局域网和城域网标准,802.1Q-2005,ISBN 0-7381-4876-6,IEEE,纽约,纽约,美国,2006年5月19日。

[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.


[RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981.

[RFC793]Postel,J.,“传输控制协议”,标准7,RFC 793,1981年9月。

[RFC1038] St. Johns, M., "Draft revised IP security option", RFC 1038, January 1988.

[RFC1038]圣约翰,M.,“修订后的IP安全选项草案”,RFC 1038,1988年1月。

[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.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005.

[RFC4301]Kent,S.和K.Seo,“互联网协议的安全架构”,RFC 43012005年12月。

[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, December 2005.


[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005.

[RFC4303]Kent,S.,“IP封装安全有效载荷(ESP)”,RFC 4303,2005年12月。

Authors' Addresses


Michael StJohns Germantown, MD USA

Michael StJohns Germantown,美国医学博士


Randall Atkinson Extreme Networks 3585 Monroe Street Santa Clara, CA USA 95051

美国加利福尼亚州圣克拉拉门罗街3585号Randall Atkinson极端网络公司95051

   Phone: +1 (408)579-2800
   Phone: +1 (408)579-2800

Georg Thomas US Department of Defense Washington, DC USA