Back to home page

OSCL-LXR

 
 

    


0001 IETF CIPSO Working Group
0002 16 July, 1992
0003 
0004 
0005 
0006                  COMMERCIAL IP SECURITY OPTION (CIPSO 2.2)
0007 
0008 
0009 
0010 1.    Status
0011 
0012 This Internet Draft provides the high level specification for a Commercial
0013 IP Security Option (CIPSO).  This draft reflects the version as approved by
0014 the CIPSO IETF Working Group.  Distribution of this memo is unlimited.
0015 
0016 This document is an Internet Draft.  Internet Drafts are working documents
0017 of the Internet Engineering Task Force (IETF), its Areas, and its Working
0018 Groups. Note that other groups may also distribute working documents as
0019 Internet Drafts.
0020 
0021 Internet Drafts are draft documents valid for a maximum of six months.
0022 Internet Drafts may be updated, replaced, or obsoleted by other documents
0023 at any time.  It is not appropriate to use Internet Drafts as reference
0024 material or to cite them other than as a "working draft" or "work in
0025 progress."
0026 
0027 Please check the I-D abstract listing contained in each Internet Draft
0028 directory to learn the current status of this or any other Internet Draft.
0029 
0030 
0031 
0032 
0033 2.    Background
0034 
0035 Currently the Internet Protocol includes two security options.  One of
0036 these options is the DoD Basic Security Option (BSO) (Type 130) which allows
0037 IP datagrams to be labeled with security classifications.  This option
0038 provides sixteen security classifications and a variable number of handling
0039 restrictions.  To handle additional security information, such as security
0040 categories or compartments, another security option (Type 133) exists and
0041 is referred to as the DoD Extended Security Option (ESO).  The values for
0042 the fixed fields within these two options are administered by the Defense
0043 Information Systems Agency (DISA).
0044 
0045 Computer vendors are now building commercial operating systems with
0046 mandatory access controls and multi-level security.  These systems are
0047 no longer built specifically for a particular group in the defense or
0048 intelligence communities.  They are generally available commercial systems
0049 for use in a variety of government and civil sector environments.
0050 
0051 The small number of ESO format codes can not support all the possible
0052 applications of a commercial security option.  The BSO and ESO were
0053 designed to only support the United States DoD.  CIPSO has been designed
0054 to support multiple security policies.  This Internet Draft provides the
0055 format and procedures required to support a Mandatory Access Control
0056 security policy.  Support for additional security policies shall be
0057 defined in future RFCs.
0058 
0059 
0060 
0061 
0062 Internet Draft, Expires 15 Jan 93                                 [PAGE 1]
0063 
0064 
0065 
0066 CIPSO INTERNET DRAFT                                         16 July, 1992
0067 
0068 
0069 
0070 
0071 3.    CIPSO Format
0072 
0073 Option type: 134 (Class 0, Number 6, Copy on Fragmentation)
0074 Option length: Variable
0075 
0076 This option permits security related information to be passed between
0077 systems within a single Domain of Interpretation (DOI).  A DOI is a
0078 collection of systems which agree on the meaning of particular values
0079 in the security option.  An authority that has been assigned a DOI
0080 identifier will define a mapping between appropriate CIPSO field values
0081 and their human readable equivalent.  This authority will distribute that
0082 mapping to hosts within the authority's domain.  These mappings may be
0083 sensitive, therefore a DOI authority is not required to make these
0084 mappings available to anyone other than the systems that are included in
0085 the DOI.
0086 
0087 This option MUST be copied on fragmentation.  This option appears at most
0088 once in a datagram.  All multi-octet fields in the option are defined to be
0089 transmitted in network byte order.  The format of this option is as follows:
0090 
0091 +----------+----------+------//------+-----------//---------+
0092 | 10000110 | LLLLLLLL | DDDDDDDDDDDD | TTTTTTTTTTTTTTTTTTTT |
0093 +----------+----------+------//------+-----------//---------+
0094 
0095   TYPE=134    OPTION    DOMAIN OF               TAGS
0096               LENGTH    INTERPRETATION
0097 
0098 
0099                 Figure 1. CIPSO Format
0100 
0101 
0102 3.1    Type
0103 
0104 This field is 1 octet in length.  Its value is 134.
0105 
0106 
0107 3.2    Length
0108 
0109 This field is 1 octet in length.  It is the total length of the option
0110 including the type and length fields.  With the current IP header length
0111 restriction of 40 octets the value of this field MUST not exceed 40.
0112 
0113 
0114 3.3    Domain of Interpretation Identifier
0115 
0116 This field is an unsigned 32 bit integer.  The value 0 is reserved and MUST
0117 not appear as the DOI identifier in any CIPSO option.  Implementations
0118 should assume that the DOI identifier field is not aligned on any particular
0119 byte boundary.
0120 
0121 To conserve space in the protocol, security levels and categories are
0122 represented by numbers rather than their ASCII equivalent.  This requires
0123 a mapping table within CIPSO hosts to map these numbers to their
0124 corresponding ASCII representations.  Non-related groups of systems may
0125 
0126 
0127 
0128 Internet Draft, Expires 15 Jan 93                                 [PAGE 2]
0129 
0130 
0131 
0132 CIPSO INTERNET DRAFT                                         16 July, 1992
0133 
0134 
0135 
0136 have their own unique mappings.  For example, one group of systems may
0137 use the number 5 to represent Unclassified while another group may use the
0138 number 1 to represent that same security level.  The DOI identifier is used
0139 to identify which mapping was used for the values within the option.
0140 
0141 
0142 3.4    Tag Types
0143 
0144 A common format for passing security related information is necessary
0145 for interoperability.  CIPSO uses sets of "tags" to contain the security
0146 information relevant to the data in the IP packet.  Each tag begins with
0147 a tag type identifier followed by the length of the tag and ends with the
0148 actual security information to be passed.  All multi-octet fields in a tag
0149 are defined to be transmitted in network byte order.  Like the DOI
0150 identifier field in the CIPSO header, implementations should assume that
0151 all tags, as well as fields within a tag, are not aligned on any particular
0152 octet boundary.   The tag types defined in this document contain alignment
0153 bytes to assist alignment of some information, however alignment can not
0154 be guaranteed if CIPSO is not the first IP option.
0155 
0156 CIPSO tag types 0 through 127 are reserved for defining standard tag
0157 formats.  Their definitions will be published in RFCs.  Tag types whose
0158 identifiers are greater than 127 are defined by the DOI authority and may
0159 only be meaningful in certain Domains of Interpretation.  For these tag
0160 types, implementations will require the DOI identifier as well as the tag
0161 number to determine the security policy and the format associated with the
0162 tag.  Use of tag types above 127 are restricted to closed networks where
0163 interoperability with other networks will not be an issue.  Implementations
0164 that support a tag type greater than 127 MUST support at least one DOI that
0165 requires only tag types 1 to 127.
0166 
0167 Tag type 0 is reserved. Tag types 1, 2, and 5 are defined in this
0168 Internet Draft.  Types 3 and 4 are reserved for work in progress.
0169 The standard format for all current and future CIPSO tags is shown below:
0170 
0171 +----------+----------+--------//--------+
0172 | TTTTTTTT | LLLLLLLL | IIIIIIIIIIIIIIII |
0173 +----------+----------+--------//--------+
0174     TAG       TAG         TAG
0175     TYPE      LENGTH      INFORMATION
0176 
0177     Figure 2:  Standard Tag Format
0178 
0179 In the three tag types described in this document, the length and count
0180 restrictions are based on the current IP limitation of 40 octets for all
0181 IP options.  If the IP header is later expanded, then the length and count
0182 restrictions specified in this document may increase to use the full area
0183 provided for IP options.
0184 
0185 
0186 3.4.1    Tag Type Classes
0187 
0188 Tag classes consist of tag types that have common processing requirements
0189 and support the same security policy.  The three tags defined in this
0190 Internet Draft belong to the Mandatory Access Control (MAC) Sensitivity
0191 
0192 
0193 
0194 Internet Draft, Expires 15 Jan 93                                 [PAGE 3]
0195 
0196 
0197 
0198 CIPSO INTERNET DRAFT                                         16 July, 1992
0199 
0200 
0201 
0202 class and support the MAC Sensitivity security policy.
0203 
0204 
0205 3.4.2    Tag Type 1
0206 
0207 This is referred to as the "bit-mapped" tag type.  Tag type 1 is included
0208 in the MAC Sensitivity tag type class.  The format of this tag type is as
0209 follows:
0210 
0211 +----------+----------+----------+----------+--------//---------+
0212 | 00000001 | LLLLLLLL | 00000000 | LLLLLLLL | CCCCCCCCCCCCCCCCC |
0213 +----------+----------+----------+----------+--------//---------+
0214 
0215     TAG       TAG      ALIGNMENT  SENSITIVITY    BIT MAP OF
0216     TYPE      LENGTH   OCTET      LEVEL          CATEGORIES
0217 
0218             Figure 3. Tag Type 1 Format
0219 
0220 
0221 3.4.2.1    Tag Type
0222 
0223 This field is 1 octet in length and has a value of 1.
0224 
0225 
0226 3.4.2.2    Tag Length
0227 
0228 This field is 1 octet in length.  It is the total length of the tag type
0229 including the type and length fields.  With the current IP header length
0230 restriction of 40 bytes the value within this field is between 4 and 34.
0231 
0232 
0233 3.4.2.3    Alignment Octet
0234 
0235 This field is 1 octet in length and always has the value of 0.  Its purpose
0236 is to align the category bitmap field on an even octet boundary.  This will
0237 speed many implementations including router implementations.
0238 
0239 
0240 3.4.2.4    Sensitivity Level
0241 
0242 This field is 1 octet in length.  Its value is from 0 to 255.  The values
0243 are ordered with 0 being the minimum value and 255 representing the maximum
0244 value.
0245 
0246 
0247 3.4.2.5    Bit Map of Categories
0248 
0249 The length of this field is variable and ranges from 0 to 30 octets.  This
0250 provides representation of categories 0 to 239.  The ordering of the bits
0251 is left to right or MSB to LSB.  For example category 0 is represented by
0252 the most significant bit of the first byte and category 15 is represented
0253 by the least significant bit of the second byte.  Figure 4 graphically
0254 shows this ordering.  Bit N is binary 1 if category N is part of the label
0255 for the datagram, and bit N is binary 0 if category N is not part of the
0256 label.  Except for the optimized tag 1 format described in the next section,
0257 
0258 
0259 
0260 Internet Draft, Expires 15 Jan 93                                 [PAGE 4]
0261 
0262 
0263 
0264 CIPSO INTERNET DRAFT                                         16 July, 1992
0265 
0266 
0267 
0268 minimal encoding SHOULD be used resulting in no trailing zero octets in the
0269 category bitmap.
0270 
0271         octet 0  octet 1  octet 2  octet 3  octet 4  octet 5
0272         XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX . . .
0273 bit     01234567 89111111 11112222 22222233 33333333 44444444
0274 number             012345 67890123 45678901 23456789 01234567
0275 
0276             Figure 4. Ordering of Bits in Tag 1 Bit Map
0277 
0278 
0279 3.4.2.6    Optimized Tag 1 Format
0280 
0281 Routers work most efficiently when processing fixed length fields.  To
0282 support these routers there is an optimized form of tag type 1.  The format
0283 does not change.  The only change is to the category bitmap which is set to
0284 a constant length of 10 octets.  Trailing octets required to fill out the 10
0285 octets are zero filled.  Ten octets, allowing for 80 categories, was chosen
0286 because it makes the total length of the CIPSO option 20 octets.  If CIPSO
0287 is the only option then the option will be full word aligned and additional
0288 filler octets will not be required.
0289 
0290 
0291 3.4.3    Tag Type 2
0292 
0293 This is referred to as the "enumerated" tag type.  It is used to describe
0294 large but sparsely populated sets of categories.  Tag type 2 is in the MAC
0295 Sensitivity tag type class.  The format of this tag type is as follows:
0296 
0297 +----------+----------+----------+----------+-------------//-------------+
0298 | 00000010 | LLLLLLLL | 00000000 | LLLLLLLL | CCCCCCCCCCCCCCCCCCCCCCCCCC |
0299 +----------+----------+----------+----------+-------------//-------------+
0300 
0301     TAG       TAG      ALIGNMENT  SENSITIVITY         ENUMERATED
0302     TYPE      LENGTH   OCTET      LEVEL               CATEGORIES
0303 
0304                 Figure 5. Tag Type 2 Format
0305 
0306 
0307 3.4.3.1     Tag Type
0308 
0309 This field is one octet in length and has a value of 2.
0310 
0311 
0312 3.4.3.2    Tag Length
0313 
0314 This field is 1 octet in length. It is the total length of the tag type
0315 including the type and length fields.  With the current IP header length
0316 restriction of 40 bytes the value within this field is between 4 and 34.
0317 
0318 
0319 3.4.3.3    Alignment Octet
0320 
0321 This field is 1 octet in length and always has the value of 0.  Its purpose
0322 is to align the category field on an even octet boundary.  This will
0323 
0324 
0325 
0326 Internet Draft, Expires 15 Jan 93                                 [PAGE 5]
0327 
0328 
0329 
0330 CIPSO INTERNET DRAFT                                         16 July, 1992
0331 
0332 
0333 
0334 speed many implementations including router implementations.
0335 
0336 
0337 3.4.3.4    Sensitivity Level
0338 
0339 This field is 1 octet in length. Its value is from 0 to 255.  The values
0340 are ordered with 0 being the minimum value and 255 representing the
0341 maximum value.
0342 
0343 
0344 3.4.3.5    Enumerated Categories
0345 
0346 In this tag, categories are represented by their actual value rather than
0347 by their position within a bit field.  The length of each category is 2
0348 octets.  Up to 15 categories may be represented by this tag.  Valid values
0349 for categories are 0 to 65534.  Category 65535 is not a valid category
0350 value.  The categories MUST be listed in ascending order within the tag.
0351 
0352 
0353 3.4.4    Tag Type 5
0354 
0355 This is referred to as the "range" tag type.  It is used to represent
0356 labels where all categories in a range, or set of ranges, are included
0357 in the sensitivity label.  Tag type 5 is in the MAC Sensitivity tag type
0358 class.  The format of this tag type is as follows:
0359 
0360 +----------+----------+----------+----------+------------//-------------+
0361 | 00000101 | LLLLLLLL | 00000000 | LLLLLLLL |  Top/Bottom | Top/Bottom  |
0362 +----------+----------+----------+----------+------------//-------------+
0363 
0364     TAG       TAG      ALIGNMENT  SENSITIVITY        CATEGORY RANGES
0365     TYPE      LENGTH   OCTET      LEVEL
0366 
0367                      Figure 6. Tag Type 5 Format
0368 
0369 
0370 3.4.4.1     Tag Type
0371 
0372 This field is one octet in length and has a value of 5.
0373 
0374 
0375 3.4.4.2    Tag Length
0376 
0377 This field is 1 octet in length. It is the total length of the tag type
0378 including the type and length fields.  With the current IP header length
0379 restriction of 40 bytes the value within this field is between 4 and 34.
0380 
0381 
0382 3.4.4.3    Alignment Octet
0383 
0384 This field is 1 octet in length and always has the value of 0.  Its purpose
0385 is to align the category range field on an even octet boundary.  This will
0386 speed many implementations including router implementations.
0387 
0388 
0389 
0390 
0391 
0392 Internet Draft, Expires 15 Jan 93                                 [PAGE 6]
0393 
0394 
0395 
0396 CIPSO INTERNET DRAFT                                         16 July, 1992
0397 
0398 
0399 
0400 3.4.4.4    Sensitivity Level
0401 
0402 This field is 1 octet in length. Its value is from 0 to 255.  The values
0403 are ordered with 0 being the minimum value and 255 representing the maximum
0404 value.
0405 
0406 
0407 3.4.4.5    Category Ranges
0408 
0409 A category range is a 4 octet field comprised of the 2 octet index of the
0410 highest numbered category followed by the 2 octet index of the lowest
0411 numbered category.  These range endpoints are inclusive within the range of
0412 categories.  All categories within a range are included in the sensitivity
0413 label.  This tag may contain a maximum of 7 category pairs.  The bottom
0414 category endpoint for the last pair in the tag MAY be omitted and SHOULD be
0415 assumed to be 0.  The ranges MUST be non-overlapping and be listed in
0416 descending order.  Valid values for categories are 0 to 65534.  Category
0417 65535 is not a valid category value.
0418 
0419 
0420 3.4.5     Minimum Requirements
0421 
0422 A CIPSO implementation MUST be capable of generating at least tag type 1 in
0423 the non-optimized form.  In addition, a CIPSO implementation MUST be able
0424 to receive any valid tag type 1 even those using the optimized tag type 1
0425 format.
0426 
0427 
0428 4.    Configuration Parameters
0429 
0430 The configuration parameters defined below are required for all CIPSO hosts,
0431 gateways, and routers that support multiple sensitivity labels.  A CIPSO
0432 host is defined to be the origination or destination system for an IP
0433 datagram.  A CIPSO gateway provides IP routing services between two or more
0434 IP networks and may be required to perform label translations between
0435 networks.  A CIPSO gateway may be an enhanced CIPSO host or it may just
0436 provide gateway services with no end system CIPSO capabilities.  A CIPSO
0437 router is a dedicated IP router that routes IP datagrams between two or more
0438 IP networks.
0439 
0440 An implementation of CIPSO on a host MUST have the capability to reject a
0441 datagram for reasons that the information contained can not be adequately
0442 protected by the receiving host or if acceptance may result in violation of
0443 the host or network security policy.  In addition, a CIPSO gateway or router
0444 MUST be able to reject datagrams going to networks that can not provide
0445 adequate protection or may violate the network's security policy.  To
0446 provide this capability the following minimal set of configuration
0447 parameters are required for CIPSO implementations:
0448 
0449 HOST_LABEL_MAX - This parameter contains the maximum sensitivity label that
0450 a CIPSO host is authorized to handle.  All datagrams that have a label
0451 greater than this maximum MUST be rejected by the CIPSO host.  This
0452 parameter does not apply to CIPSO gateways or routers.  This parameter need
0453 not be defined explicitly as it can be implicitly derived from the
0454 PORT_LABEL_MAX parameters for the associated interfaces.
0455 
0456 
0457 
0458 Internet Draft, Expires 15 Jan 93                                 [PAGE 7]
0459 
0460 
0461 
0462 CIPSO INTERNET DRAFT                                         16 July, 1992
0463 
0464 
0465 
0466 
0467 HOST_LABEL_MIN - This parameter contains the minimum sensitivity label that
0468 a CIPSO host is authorized to handle.  All datagrams that have a label less
0469 than this minimum MUST be rejected by the CIPSO host.  This parameter does
0470 not apply to CIPSO gateways or routers.  This parameter need not be defined
0471 explicitly as it can be implicitly derived from the PORT_LABEL_MIN
0472 parameters for the associated interfaces.
0473 
0474 PORT_LABEL_MAX - This parameter contains the maximum sensitivity label for
0475 all datagrams that may exit a particular network interface port.  All
0476 outgoing datagrams that have a label greater than this maximum MUST be
0477 rejected by the CIPSO system.  The label within this parameter MUST be
0478 less than or equal to the label within the HOST_LABEL_MAX parameter.  This
0479 parameter does not apply to CIPSO hosts that support only one network port.
0480 
0481 PORT_LABEL_MIN - This parameter contains the minimum sensitivity label for
0482 all datagrams that may exit a particular network interface port.  All
0483 outgoing datagrams that have a label less than this minimum MUST be
0484 rejected by the CIPSO system.  The label within this parameter MUST be
0485 greater than or equal to the label within the HOST_LABEL_MIN parameter.
0486 This parameter does not apply to CIPSO hosts that support only one network
0487 port.
0488 
0489 PORT_DOI - This parameter is used to assign a DOI identifier value to a
0490 particular network interface port.  All CIPSO labels within datagrams
0491 going out this port MUST use the specified DOI identifier.  All CIPSO
0492 hosts and gateways MUST support either this parameter, the NET_DOI
0493 parameter, or the HOST_DOI parameter.
0494 
0495 NET_DOI - This parameter is used to assign a DOI identifier value to a
0496 particular IP network address.  All CIPSO labels within datagrams destined
0497 for the particular IP network MUST use the specified DOI identifier.  All
0498 CIPSO hosts and gateways MUST support either this parameter, the PORT_DOI
0499 parameter, or the HOST_DOI parameter.
0500 
0501 HOST_DOI - This parameter is used to assign a DOI identifier value to a
0502 particular IP host address.  All CIPSO labels within datagrams destined for
0503 the particular IP host will use the specified DOI identifier.  All CIPSO
0504 hosts and gateways MUST support either this parameter, the PORT_DOI
0505 parameter, or the NET_DOI parameter.
0506 
0507 This list represents the minimal set of configuration parameters required
0508 to be compliant.  Implementors are encouraged to add to this list to
0509 provide enhanced functionality and control.  For example, many security
0510 policies may require both incoming and outgoing datagrams be checked against
0511 the port and host label ranges.
0512 
0513 
0514 4.1    Port Range Parameters
0515 
0516 The labels represented by the PORT_LABEL_MAX and PORT_LABEL_MIN parameters
0517 MAY be in CIPSO or local format.  Some CIPSO systems, such as routers, may
0518 want to have the range parameters expressed in CIPSO format so that incoming
0519 labels do not have to be converted to a local format before being compared
0520 against the range.  If multiple DOIs are supported by one of these CIPSO
0521 
0522 
0523 
0524 Internet Draft, Expires 15 Jan 93                                 [PAGE 8]
0525 
0526 
0527 
0528 CIPSO INTERNET DRAFT                                         16 July, 1992
0529 
0530 
0531 
0532 systems then multiple port range parameters would be needed, one set for
0533 each DOI supported on a particular port.
0534 
0535 The port range will usually represent the total set of labels that may
0536 exist on the logical network accessed through the corresponding network
0537 interface.  It may, however, represent a subset of these labels that are
0538 allowed to enter the CIPSO system.
0539 
0540 
0541 4.2    Single Label CIPSO Hosts
0542 
0543 CIPSO implementations that support only one label are not required to
0544 support the parameters described above.  These limited implementations are
0545 only required to support a NET_LABEL parameter.  This parameter contains
0546 the CIPSO label that may be inserted in datagrams that exit the host.  In
0547 addition, the host MUST reject any incoming datagram that has a label which
0548 is not equivalent to the NET_LABEL parameter.
0549 
0550 
0551 5.    Handling Procedures
0552 
0553 This section describes the processing requirements for incoming and
0554 outgoing IP datagrams.  Just providing the correct CIPSO label format
0555 is not enough.  Assumptions will be made by one system on how a
0556 receiving system will handle the CIPSO label.  Wrong assumptions may
0557 lead to non-interoperability or even a security incident.  The
0558 requirements described below represent the minimal set needed for
0559 interoperability and that provide users some level of confidence.
0560 Many other requirements could be added to increase user confidence,
0561 however at the risk of restricting creativity and limiting vendor
0562 participation.
0563 
0564 
0565 5.1    Input Procedures
0566 
0567 All datagrams received through a network port MUST have a security label
0568 associated with them, either contained in the datagram or assigned to the
0569 receiving port.  Without this label the host, gateway, or router will not
0570 have the information it needs to make security decisions.  This security
0571 label will be obtained from the CIPSO if the option is present in the
0572 datagram.  See section 4.1.2 for handling procedures for unlabeled
0573 datagrams.  This label will be compared against the PORT (if appropriate)
0574 and HOST configuration parameters defined in section 3.
0575 
0576 If any field within the CIPSO option, such as the DOI identifier, is not
0577 recognized the IP datagram is discarded and an ICMP "parameter problem"
0578 (type 12) is generated and returned.  The ICMP code field is set to "bad
0579 parameter" (code 0) and the pointer is set to the start of the CIPSO field
0580 that is unrecognized.
0581 
0582 If the contents of the CIPSO are valid but the security label is
0583 outside of the configured host or port label range, the datagram is
0584 discarded and an ICMP "destination unreachable" (type 3) is generated
0585 and returned.  The code field of the ICMP is set to "communication with
0586 destination network administratively prohibited" (code 9) or to
0587 
0588 
0589 
0590 Internet Draft, Expires 15 Jan 93                                 [PAGE 9]
0591 
0592 
0593 
0594 CIPSO INTERNET DRAFT                                         16 July, 1992
0595 
0596 
0597 
0598 "communication with destination host administratively prohibited"
0599 (code 10).  The value of the code field used is dependent upon whether
0600 the originator of the ICMP message is acting as a CIPSO host or a CIPSO
0601 gateway.  The recipient of the ICMP message MUST be able to handle either
0602 value.  The same procedure is performed if a CIPSO can not be added to an
0603 IP packet because it is too large to fit in the IP options area.
0604 
0605 If the error is triggered by receipt of an ICMP message, the message
0606 is discarded and no response is permitted (consistent with general ICMP
0607 processing rules).
0608 
0609 
0610 5.1.1    Unrecognized tag types
0611 
0612 The default condition for any CIPSO implementation is that an
0613 unrecognized tag type MUST be treated as a "parameter problem" and
0614 handled as described in section 4.1.  A CIPSO implementation MAY allow
0615 the system administrator to identify tag types that may safely be
0616 ignored.  This capability is an allowable enhancement, not a
0617 requirement.
0618 
0619 
0620 5.1.2    Unlabeled Packets
0621 
0622 A network port may be configured to not require a CIPSO label for all
0623 incoming  datagrams.  For this configuration a CIPSO label must be
0624 assigned to that network port and associated with all unlabeled IP
0625 datagrams.  This capability might be used for single level networks or
0626 networks that have CIPSO and non-CIPSO hosts and the non-CIPSO hosts
0627 all operate at the same label.
0628 
0629 If a CIPSO option is required and none is found, the datagram is
0630 discarded and an ICMP "parameter problem" (type 12) is generated and
0631 returned to the originator of the datagram.  The code field of the ICMP
0632 is set to "option missing" (code 1) and the ICMP pointer is set to 134
0633 (the value of the option type for the missing CIPSO option).
0634 
0635 
0636 5.2    Output Procedures
0637 
0638 A CIPSO option MUST appear only once in a datagram.  Only one tag type
0639 from the MAC Sensitivity class MAY be included in a CIPSO option.  Given
0640 the current set of defined tag types, this means that CIPSO labels at
0641 first will contain only one tag.
0642 
0643 All datagrams leaving a CIPSO system MUST meet the following condition:
0644 
0645         PORT_LABEL_MIN <= CIPSO label <= PORT_LABEL_MAX
0646 
0647 If this condition is not satisfied the datagram MUST be discarded.
0648 If the CIPSO system only supports one port, the HOST_LABEL_MIN and the
0649 HOST_LABEL_MAX parameters MAY be substituted for the PORT parameters in
0650 the above condition.
0651 
0652 The DOI identifier to be used for all outgoing datagrams is configured by
0653 
0654 
0655 
0656 Internet Draft, Expires 15 Jan 93                                 [PAGE 10]
0657 
0658 
0659 
0660 CIPSO INTERNET DRAFT                                         16 July, 1992
0661 
0662 
0663 
0664 the administrator.  If port level DOI identifier assignment is used, then
0665 the PORT_DOI configuration parameter MUST contain the DOI identifier to
0666 use.  If network level DOI assignment is used, then the NET_DOI parameter
0667 MUST contain the DOI identifier to use.  And if host level DOI assignment
0668 is employed, then the HOST_DOI parameter MUST contain the DOI identifier
0669 to use.  A CIPSO implementation need only support one level of DOI
0670 assignment.
0671 
0672 
0673 5.3    DOI Processing Requirements
0674 
0675 A CIPSO implementation MUST support at least one DOI and SHOULD support
0676 multiple DOIs.  System and network administrators are cautioned to
0677 ensure that at least one DOI is common within an IP network to allow for
0678 broadcasting of IP datagrams.
0679 
0680 CIPSO gateways MUST be capable of translating a CIPSO option from one
0681 DOI to another when forwarding datagrams between networks.  For
0682 efficiency purposes this capability is only a desired feature for CIPSO
0683 routers.
0684 
0685 
0686 5.4    Label of ICMP Messages
0687 
0688 The CIPSO label to be used on all outgoing ICMP messages MUST be equivalent
0689 to the label of the datagram that caused the ICMP message.  If the ICMP was
0690 generated due to a problem associated with the original CIPSO label then the
0691 following responses are allowed:
0692 
0693   a.  Use the CIPSO label of the original IP datagram
0694   b.  Drop the original datagram with no return message generated
0695 
0696 In most cases these options will have the same effect.  If you can not
0697 interpret the label or if it is outside the label range of your host or
0698 interface then an ICMP message with the same label will probably not be
0699 able to exit the system.
0700 
0701 
0702 6.    Assignment of DOI Identifier Numbers                                   =
0703 
0704 Requests for assignment of a DOI identifier number should be addressed to
0705 the Internet Assigned Numbers Authority (IANA).
0706 
0707 
0708 7.    Acknowledgements
0709 
0710 Much of the material in this RFC is based on (and copied from) work
0711 done by Gary Winiger of Sun Microsystems and published as Commercial
0712 IP Security Option at the INTEROP 89, Commercial IPSO Workshop.
0713 
0714 
0715 8.    Author's Address
0716 
0717 To submit mail for distribution to members of the IETF CIPSO Working
0718 Group, send mail to: cipso@wdl1.wdl.loral.com.
0719 
0720 
0721 
0722 Internet Draft, Expires 15 Jan 93                                 [PAGE 11]
0723 
0724 
0725 
0726 CIPSO INTERNET DRAFT                                         16 July, 1992
0727 
0728 
0729 
0730 
0731 To be added to or deleted from this distribution, send mail to:
0732 cipso-request@wdl1.wdl.loral.com.
0733 
0734 
0735 9.    References
0736 
0737 RFC 1038, "Draft Revised IP Security Option", M. St. Johns, IETF, January
0738 1988.
0739 
0740 RFC 1108, "U.S. Department of Defense Security Options
0741 for the Internet Protocol", Stephen Kent, IAB, 1 March, 1991.
0742 
0743 
0744 
0745 
0746 
0747 
0748 
0749 
0750 
0751 
0752 
0753 
0754 
0755 
0756 
0757 
0758 
0759 
0760 
0761 
0762 
0763 
0764 
0765 
0766 
0767 
0768 
0769 
0770 
0771 
0772 
0773 
0774 
0775 
0776 
0777 
0778 
0779 
0780 
0781 
0782 
0783 
0784 
0785 
0786 
0787 
0788 Internet Draft, Expires 15 Jan 93                                 [PAGE 12]
0789 
0790 
0791