home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_s_z / draft-simpson-esp-v2-00.txt < prev    next >
Text File  |  1997-08-02  |  31KB  |  881 lines

  1.  
  2. Network Working Group                                W A Simpson, Editor
  3. Internet Draft                                              [DayDreamer]
  4. expires in six months                                          July 1997
  5.  
  6.  
  7.                 IP Encapsulating Security Payload (ESP)
  8.                             for Implementors
  9.                       draft-simpson-esp-v2-00.txt
  10.  
  11.  
  12. Status of this Memo
  13.  
  14.    This document is an Internet-Draft.  Internet Drafts are working doc-
  15.    uments of the Internet Engineering Task Force (IETF), its Areas, and
  16.    its Working Groups.  Note that other groups may also distribute work-
  17.    ing documents as Internet Drafts.
  18.  
  19.    Internet Drafts are draft documents valid for a maximum of six
  20.    months, and may be updated, replaced, or obsoleted by other documents
  21.    at any time.  It is not appropriate to use Internet Drafts as refer-
  22.    ence material, or to cite them other than as a ``working draft'' or
  23.    ``work in progress.''
  24.  
  25.    To learn the current status of any Internet-Draft, please check the
  26.    ``1id-abstracts.txt'' listing contained in the internet-drafts Shadow
  27.    Directories on:
  28.  
  29.       ftp.is.co.za (Africa)
  30.       nic.nordu.net (Europe)
  31.       ds.internic.net (US East Coast)
  32.       ftp.isi.edu (US West Coast)
  33.       munnari.oz.au (Pacific Rim)
  34.  
  35.    Distribution of this memo is unlimited.
  36.  
  37. Abstract
  38.  
  39.    This document describes a confidentiality mechanism for IP datagrams.
  40.    Payload headers are encapsulated within an opaque envelope.  Under
  41.    some circumstances, authentication and integrity are optionally pro-
  42.    vided for IP datagrams.
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Simpson                   expires in six months                 [Page i]
  54. DRAFT                             ESP2                         July 1997
  55.  
  56.  
  57. 1.  Introduction
  58.  
  59.    The Encapsulating Security Payload (ESP) provides confidentiality for
  60.    IP datagrams by encrypting the payload data to be protected.  Depend-
  61.    ing on the user's security requirements, either an upper protocol-
  62.    layer segment (such as TCP or UDP) is encrypted (transport-mode), or
  63.    an entire IP datagram is encrypted and tunneled to the destination
  64.    within another IP datagram (tunnel-mode).
  65.  
  66.    To work properly without changing the entire Internet infrastructure
  67.    (particularly non-participating routers), ESP is carried in a data-
  68.    gram with transparent IP headers.  The information in these outer IP
  69.    headers is used to route the protected datagram.
  70.  
  71.    For more details about ESP in various network environments, see
  72.    "Security Architecture for the Internet Protocol" [RFC-1825x].  That
  73.    document provides important background for this specification, such
  74.    as an explanation of Security Associations, forms of Security Associ-
  75.    ation management, guidelines on transport and tunnel modes of opera-
  76.    tion, and interaction between ESP and the Authentication Header (AH)
  77.    [RFC-1826x].
  78.  
  79.    ESP may optionally provide authentication and integrity.  Users
  80.    desiring authentication and/or integrity without confidentiality
  81.    should use AH instead of ESP.
  82.  
  83.    ESP may also provide a form of anti-replay service, depending upon
  84.    the selection of integrity.  The enforcement of replay protection is
  85.    solely at the discretion of the receiver.
  86.  
  87.    Security services can be provided between:
  88.  
  89.    -  a pair of single user hosts,
  90.  
  91.    -  a single user host and a security firewall router, or
  92.  
  93.    -  a pair of firewall routers.
  94.  
  95.    In the latter case, together with the tunnel mode of encapsulation,
  96.    ESP may provide traffic flow confidentiality.  Traffic aggregation at
  97.    the firewalls may be able to mask source to destination patterns of
  98.    the protected internal users.
  99.  
  100.    In this document, the key words "MAY", "MUST", "optional", "recom-
  101.    mended", "required", "SHOULD", and "SHOULD NOT", are to be inter-
  102.    preted as described in [RFC-2119].
  103.  
  104.  
  105.  
  106.  
  107.  
  108. Simpson                   expires in six months                 [Page 1]
  109. DRAFT                             ESP2                         July 1997
  110.  
  111.  
  112. 1.1.  Performance
  113.  
  114.    Use of this specification will increase the protocol processing costs
  115.    in participating systems, and will also increase the communications
  116.    latency.  The increased latency is primarily due to time required for
  117.    encryption and decryption of each datagram.  This can be very time
  118.    intensive to implement.
  119.  
  120.  
  121. 1.2.  Construction
  122.  
  123.    ESP will always appear as the final payload header.  The header imme-
  124.    diately preceding the ESP Header will contain the value 50 (0x32) in
  125.    its Next Header (Protocol) field.
  126.  
  127.     <--             Transparent              --> <-- Opaque -->
  128.    +-----------+-----------------+--------------+--------------+
  129.    | IP Header |  other headers  |  ESP Header  |   ESP Data   |
  130.    +-----------+-----------------+--------------+--------------+
  131.  
  132.    The Encapsulating Security Payload has two components.
  133.  
  134.    The transparent ESP Header consists of the unencrypted field(s) of
  135.    the payload.  The transparent field(s) of the unencrypted ESP Header
  136.    inform the intended recipient how to properly process the opaque
  137.    data.
  138.  
  139.    The opaque ESP Data consists of protected fields for the ESP trans-
  140.    form(s).
  141.  
  142.  
  143. 1.3.  Transforms
  144.  
  145.    Cipher and authenticator algorithms, and the precise format of opaque
  146.    ESP data associated with them, are known as "ESP transforms".  It is
  147.    intended that the ESP format should be sufficiently general to permit
  148.    the specification of new transforms as new cryptographic algorithms
  149.    are developed.
  150.  
  151.    The parameter description requirements for companion transform docu-
  152.    ments are described in [RFC-ffff].
  153.  
  154.    When the authenticator transform requires a separate key, that key is
  155.    generated after any cipher keys.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. Simpson                   expires in six months                 [Page 2]
  164. DRAFT                             ESP2                         July 1997
  165.  
  166.  
  167. 2.  Field Format
  168.  
  169.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  170.    |                Security Parameters Index (SPI)                | A
  171.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  172.    |                        Sequence Number                        | A
  173.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  174.    |                                                               | A E
  175.    ~                        Transform Data                         ~ A E
  176.    |                                                               | A E
  177.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  178.              ... Padding           |  Pad Length   | Payload Type  | A E
  179.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  180.    |                                                               |
  181.    ~                   Authenticator (optional)                    ~
  182.    |                                                               |
  183.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  184.  
  185.    All fields are transmitted in network order (most significant byte
  186.    first).
  187.  
  188.    Fields that may be authenticated are designated by a trailing A.
  189.  
  190.    Fields that may be encrypted are designated by a trailing E.
  191.  
  192.  
  193. 2.1.  Security Parameters Index (SPI)
  194.  
  195.    The SPI is a 32-bit (4 byte) unsigned value identifying the Security
  196.    Association parameters for the ESP transform.  The value is relative
  197.    to the IP Destination in the preceding IP Header of the datagram.
  198.  
  199.    The use of this value is orthogonal to usage of similar values by
  200.    other related security protocols, such as the Authentication Header
  201.    (AH).  That is, the same value MAY be used by multiple protocols to
  202.    concurrently indicate different Security Association parameters.
  203.  
  204.    The value zero (0) indicates that no Security Association has been
  205.    established, and is primarily used for testing.
  206.  
  207.    Values in the range 1 through 255 are reserved to the Internet
  208.    Assigned Numbers Authority (IANA) for future use.  A reserved SPI
  209.    value will not normally be assigned by IANA unless the specification
  210.    is openly available and documented in the RFC publication series.
  211.  
  212.    Values in the range 256 through 65535 are recommended for manual con-
  213.    figuration.
  214.  
  215.  
  216.  
  217.  
  218. Simpson                   expires in six months                 [Page 3]
  219. DRAFT                             ESP2                         July 1997
  220.  
  221.  
  222.    Remaining values are utilized by automated Security Association man-
  223.    agement.  These values are recommended to be generated by a crypto-
  224.    graphically random method, to protect against replay attacks and
  225.    traffic analysis.
  226.  
  227.    This field is mandatory and transparent.  That is, the field is
  228.    always present, and the value is not concealed by encryption.
  229.  
  230.    Rationale:
  231.  
  232.       Even when many SPIs are part of the same Security Association,
  233.       there is no numerical relation between SPIs in different direc-
  234.       tions, and no requirement that SPIs be defined in pairs or other
  235.       multiples.
  236.  
  237.       It should be understood that the same SPI value for different pro-
  238.       tocols will indicate different parameters.  For example, one might
  239.       indicate a cipher algorithm, and another an authenticator algo-
  240.       rithm.
  241.  
  242.       The requirement for SPI orthogonality between protocols arises
  243.       whenever the values are assigned for multiple protocols in the
  244.       same transaction by automated or manual configuration using a sin-
  245.       gle common value, or the values are assigned independently by an
  246.       outside agent (such as a Key Distribution Center).  Orthogonality
  247.       may also be desirable in future multicast implementations.
  248.  
  249.       A small range of values for manual configuration is utilized to
  250.       promote ease of configuration and interoperability.  Experience
  251.       has shown that large random numbers are not easily remembered and
  252.       checked by human operators.
  253.  
  254.       This does not preclude automated configuration from utilizing
  255.       unused values in the reserved and/or recommended manual configura-
  256.       tion ranges during operation.
  257.  
  258.  
  259. 2.2.  Sequence Number
  260.  
  261.    The Sequence Number is a 32-bit (4 byte) unsigned counter.  This
  262.    field protects against replay attacks, and may also be used for syn-
  263.    chronization by stream or block-chaining ciphers.
  264.  
  265.    Manual configuration can only detect replay of consecutive duplicate
  266.    Seqeunce Numbers, and during short runs of Sequence Numbers within
  267.    the round trip time for the parties.  The limited anti-replay secu-
  268.    rity of the sequence of datagrams depends upon the unpredictability
  269.    of the values.  When configured manually, the first value sent SHOULD
  270.  
  271.  
  272.  
  273. Simpson                   expires in six months                 [Page 4]
  274. DRAFT                             ESP2                         July 1997
  275.  
  276.  
  277.    be a random number.
  278.  
  279.    Long term replay prevention requires automated configuration.  When
  280.    configured via an automated Security Association management protocol,
  281.    the first value sent is 1, unless otherwise negotiated.
  282.  
  283.    Thereafter, the value is monotonically increased for each datagram
  284.    sent.  A replacement SPI SHOULD be established before the value rolls
  285.    over and repeats.
  286.  
  287.    This field is mandatory and transparent.  That is, the field is
  288.    always present, and the value is not concealed by encryption.
  289.  
  290.    Although sending this field is mandatory, verification of the
  291.    sequence of values is at the discretion of the receiver.  When
  292.    integrity checking is available, either through the optional Authen-
  293.    ticator field or an external Authentication Header (AH), the imple-
  294.    mentation SHOULD NOT accept duplicate values.  This may be achieved
  295.    by accepting only those datagrams that contain a different value than
  296.    previously received, or by maintaining a small window of acceptable
  297.    values.  See Operational Considerations.
  298.  
  299.    Rationale:
  300.  
  301.       To prevent replay of payloads by substitution of a fresh Sequence
  302.       Number, anti-replay must be coupled with authentication and/or
  303.       integrity.
  304.  
  305.       Less than 2**32 datagrams are sent under any single key when anti-
  306.       replay protection is enforced.
  307.  
  308.  
  309. 2.3.  Transform Data
  310.  
  311.    An implementation will use the SPI to determine the Transform Data
  312.    contents and use.  It retains the same general format for all data-
  313.    grams of any given IP Destination and SPI.  The length of this field
  314.    is variable, but is always an integral number of bytes.
  315.  
  316.    If the transform requires a separate synchronization field, then such
  317.    data SHOULD be carried at the beginning of this field.
  318.  
  319.    This field is optional and opaque.  That is, the field is not inter-
  320.    pretable without knowledge of the Security Association parameters.
  321.    Refer to each Security Transform specification for more information
  322.    regarding the contents of this field.
  323.  
  324.  
  325.  
  326.  
  327.  
  328. Simpson                   expires in six months                 [Page 5]
  329. DRAFT                             ESP2                         July 1997
  330.  
  331.  
  332. 2.4.  Padding
  333.  
  334.    If a cipher algorithm requires the plaintext to be a multiple of some
  335.    number of bytes (such as the block size of a block cipher), the
  336.    Padding field is used to fill the plaintext to the size required by
  337.    the algorithm.  All implementations MUST support generation and con-
  338.    sumption of such padding.
  339.  
  340.    In addition, padding may be used to conceal the actual length of the
  341.    plaintext.  However, inclusion of such additional padding has adverse
  342.    bandwidth implications and thus its use should be undertaken with
  343.    care.
  344.  
  345.    Finally, when the Authenticator field is present, padding also may be
  346.    required to ensure that the resulting ciphertext terminates on a
  347.    32-bit (4 byte) boundary.
  348.  
  349.    Prior to encryption, this field is filled with a series of integer
  350.    values, to align the Pad Length and Payload Type fields at the end of
  351.    the required boundary (measured from the beginning of the Transform
  352.    Data).  By default, Self-Describing-Padding is used [RFC-1790].  Each
  353.    byte of padding contains the index of that byte.  The first pad byte
  354.    contains the value one (1).  The final pad byte indicates the number
  355.    of pad bytes to remove.  For example, three pad bytes would contain
  356.    the values 1, 2, and 3.
  357.  
  358.    After decryption, this field MAY be examined for a valid series of
  359.    integer values.  Verification of the sequence of values is at the
  360.    discretion of the receiver.
  361.  
  362.    This field is optional and opaque.  That is, the value (when present)
  363.    is set prior to encryption, and is examined only after decryption.
  364.  
  365.    Rationale:
  366.  
  367.       The default padding values were selected for simplicity, ease of
  368.       implementation in hardware, and compatibility with other internet
  369.       security efforts.
  370.  
  371.  
  372. 2.5.  Pad Length
  373.  
  374.    The Pad Length (1 byte) indicates the amount of Padding immediately
  375.    preceding it.  The value does not include the Pad Length and Payload
  376.    Type fields.
  377.  
  378.    The range of valid values is 0 through 255.  A value of zero indi-
  379.    cates that no Padding is present.
  380.  
  381.  
  382.  
  383. Simpson                   expires in six months                 [Page 6]
  384. DRAFT                             ESP2                         July 1997
  385.  
  386.  
  387.    This field is mandatory and opaque.  That is, the value is set prior
  388.    to encryption, and is examined only after decryption.
  389.  
  390.    Rationale:
  391.  
  392.       This extra field is appended to Self-Describing-Padding for com-
  393.       patibility with earlier implementations that used random padding
  394.       values.
  395.  
  396.  
  397. 2.6.  Payload Type
  398.  
  399.    The Payload Type (1 byte) indicates the contents of the Transform
  400.    Data field, using the IP Next Header (Protocol) value.  Up-to-date
  401.    values of the IP Next Header (Protocol) are specified in the most
  402.    recent "Assigned Numbers" [RFC-1700].
  403.  
  404.    For example, when encrypting an entire IP datagram (Tunnel-Mode),
  405.    this field will contain the value 4, indicating IP-in-IP encapsula-
  406.    tion.
  407.  
  408.    This field is mandatory and opaque.  That is, the value is set prior
  409.    to encryption, and is examined only after decryption.
  410.  
  411.  
  412. 2.7.  Authenticator
  413.  
  414.    When the ESP data is not otherwise validated (externally using AH or
  415.    internally by the transform algorithm itself), it is recommended (but
  416.    not required) that an Integrity Check Value (ICV) be provided here.
  417.    The ICV is computed over the ESP data after encryption, beginning
  418.    with the SPI and ending with the Payload Type.  A keyed algorithm
  419.    must be employed to compute the ICV.  The length of the field depends
  420.    upon the authenticator transform selected.
  421.  
  422.    For some authenticator transforms, the bytes over which the computa-
  423.    tion is performed must be a multiple of a block size specified by the
  424.    algorithm, or the block must be "strengthed" by appending a length.
  425.    Implicit padding is appended to the end of the ESP packet, prior to
  426.    Authenticator computation.  The size and form of the padding is spec-
  427.    ified by the transform specification.  This implicit padding is not
  428.    transmitted with the datagram.
  429.  
  430.    This field is optional and opaque.  That is, the field (when present)
  431.    is not concealed by encryption, but is not interpretable without
  432.    knowledge of the Security Association parameters.
  433.  
  434.  
  435.  
  436.  
  437.  
  438. Simpson                   expires in six months                 [Page 7]
  439. DRAFT                             ESP2                         July 1997
  440.  
  441.  
  442.    Rationale:
  443.  
  444.       The order of processing (authentication "outside" encryption)
  445.       facilitates rapid detection of bogus datagrams by the receiver
  446.       prior to decrypting, potentially reducing the impact of denial of
  447.       service attacks.  It also allows for the possibility of parallel
  448.       processing at the receiver; decryption can take place in parallel
  449.       with authentication, but care must be taken to avoid race condi-
  450.       tions for packet access and reconstruction of the decrypted
  451.       packet.
  452.  
  453.  
  454. 3.  Processing
  455.  
  456.    The Security Parameters Index (SPI) is the only coupling between ESP
  457.    and Security Association management mechanisms.  This permits differ-
  458.    ent management mechanisms to be used concurrently.  More importantly,
  459.    it permits any automated management protocol to be changed or cor-
  460.    rected without unduly impacting the security protocol implementa-
  461.    tions.  In order to facilitate early adoption, manual configuration
  462.    is the only mechanism required by this specification.
  463.  
  464.    The Security Association management mechanism specifies a number of
  465.    parameters for each Security Association between the communicating
  466.    parties.  Manually configurable parameters are summarized in "Opera-
  467.    tional Considerations".
  468.  
  469.    These Security Association determinations are described in more
  470.    detail in the Security Architecture document [RFC-1825].
  471.  
  472.  
  473. 3.1.  Outgoing
  474.  
  475.    ESP is applied to an outgoing datagram only after an implementation
  476.    determines that an existing Security Association calls for ESP pro-
  477.    cessing, based on the IP Destination.  If not, then the Security
  478.    Association management mechanism is used to establish the SPI for
  479.    this communication session prior to the use of ESP.
  480.  
  481.    The indicated SPI begins the ESP Header.
  482.  
  483.  
  484. 3.1.1.  Compression
  485.  
  486.    When configured, perform data compression of the payload.  If expan-
  487.    sion occurs, the outgoing SPI may be changed to a value that indi-
  488.    cates unexpanded data.
  489.  
  490.  
  491.  
  492.  
  493. Simpson                   expires in six months                 [Page 8]
  494. DRAFT                             ESP2                         July 1997
  495.  
  496.  
  497. 3.1.2.  Sequence Number
  498.  
  499.    Check to ensure that the Sequence Number for this SPI has not over-
  500.    flowed.  If the implementation detects that 2**32 datagrams have
  501.    already been sent, the datagram is discarded, and an auditable event
  502.    is indicated.
  503.  
  504.    Otherwise, insert the next value into the Sequence Number field.
  505.  
  506.  
  507. 3.1.3.  Padding
  508.  
  509.    Append zero or more bytes of padding to the plaintext, as required by
  510.    the transform.
  511.  
  512.    Append a Pad Length byte containing the number of padding bytes just
  513.    added.
  514.  
  515.       For example, if the plaintext length is 41, and the block size is
  516.       64-bits (8 bytes), padding is needed to make its modulo 8 length
  517.       equal to 6, leaving 2 bytes for the Pad Length and Payload Type.
  518.  
  519.       The padding values are 1, 2, 3, 4, 5, and the following Pad Length
  520.       is 5.
  521.  
  522.  
  523. 3.1.4.  Payload Type
  524.  
  525.    Append a Payload Type byte containing the IP Next Header (Protocol)
  526.    value which identifies the protocol header that begins the payload.
  527.  
  528.  
  529. 3.1.5.  Encryption
  530.  
  531.    Provide an Initialization Variable (IV) of the form indicated by the
  532.    cipher transform specification.
  533.  
  534.    Encrypt the plaintext, Padding, Pad Length and Payload Type, produc-
  535.    ing a ciphertext in the form indicated by the cipher transform speci-
  536.    fication.
  537.  
  538.  
  539. 3.1.6.  Authentication
  540.  
  541.    When configured, calculate and append the optional Authenticator in
  542.    the form indicated by the authenticator transform specification.
  543.  
  544.  
  545.  
  546.  
  547.  
  548. Simpson                   expires in six months                 [Page 9]
  549. DRAFT                             ESP2                         July 1997
  550.  
  551.  
  552. 3.1.7.  Completion
  553.  
  554.    Construct an appropriate IP datagram for the target Destination.
  555.  
  556.    The IP Total/Payload Length is adjusted to reflect the length of the
  557.    encrypted payload, with the SPI, Sequence Number, and optional
  558.    Authenticator.
  559.  
  560.  
  561. 3.2.  Incoming
  562.  
  563.    Upon receipt of a (reassembled) incoming datagram containing an ESP
  564.    Header, the implementation determines the appropriate Security Asso-
  565.    ciation, based on the IP Destination and the SPI.  If the SPI is
  566.    invalid, then the datagram is discarded, and the "Bad SPI" error is
  567.    indicated.
  568.  
  569.    The SPI field is used as an index into the local Security Association
  570.    table to find the negotiated parameters and key(s).
  571.  
  572.  
  573. 3.2.1.  Sequence Number
  574.  
  575.    When replay checking is enabled, ensure that the Sequence Number is
  576.    in the appropriate window for this SPI, and that it has not been pre-
  577.    viously received.
  578.  
  579.    If the Sequence Number appears to be valid, then the implementation
  580.    proceeds to authentication.  The receive window is updated only when
  581.    authentication, decryption and decompression succeed.
  582.  
  583.    If the Sequence Number is invalid, then the datagram is discarded,
  584.    and the "Authentication Failed" error is indicated.
  585.  
  586.  
  587. 3.2.2.  Authentication
  588.  
  589.    When present, remove and verify the optional Authenticator.  If the
  590.    Authenticator is invalid, then the datagram is discarded, and the
  591.    "Authentication Failed" error is indicated.
  592.  
  593.  
  594. 3.2.3.  Decryption
  595.  
  596.    If the length of the data to be decrypted is not an integral multiple
  597.    of the transform block size, then the datagram is discarded, and the
  598.    "Decryption Failed" error is indicated.
  599.  
  600.  
  601.  
  602.  
  603. Simpson                   expires in six months                [Page 10]
  604. DRAFT                             ESP2                         July 1997
  605.  
  606.  
  607.    Provide an Initialization Variable (IV) of the form indicated by the
  608.    cipher transform specification.
  609.  
  610.    Decrypt the ciphertext, producing a plaintext, Padding, Pad Length
  611.    and Payload Type, in the form indicated by the cipher transform spec-
  612.    ification.
  613.  
  614.  
  615. 3.2.4.  Payload Type
  616.  
  617.    The Payload Type is removed and examined.  If it is unrecognized,
  618.    then the datagram is discarded, and the "Decryption Failed" error is
  619.    indicated.
  620.  
  621.  
  622. 3.2.5.  Padding
  623.  
  624.    The Pad Length is removed and examined.  If pad checking is config-
  625.    ured, and the padding bytes are not the correct values for the Pad
  626.    Length, then the datagram is discarded, and the "Decryption Failed"
  627.    error is indicated.
  628.  
  629.    The specified number of padding bytes are removed from the end of the
  630.    decrypted payload.
  631.  
  632.  
  633. 3.2.6.  Decompression
  634.  
  635.    As indicated by the configured SPI, perform decompression of the
  636.    plaintext.  If it is invalid, then the datagram is discarded, and the
  637.    "Decompression Failed" error is indicated.
  638.  
  639.  
  640. 3.2.7.  Completion
  641.  
  642.    The IP Total/Payload Length is adjusted to reflect the length of the
  643.    resulting payload, without the SPI, Sequence Number, Padding, Pad
  644.    Length, Payload Type, and optional Authenticator.
  645.  
  646.    The IP Header(s) and the remaining portion of the payload are passed
  647.    to the protocol processing routine specified by the Payload Type
  648.    field.
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658. Simpson                   expires in six months                [Page 11]
  659. DRAFT                             ESP2                         July 1997
  660.  
  661.  
  662. 3.3.  Error Procedures
  663.  
  664.    When an error is indicated by this specification, an ICMP error mes-
  665.    sage of that type is transmitted [RFC-xxxx].
  666.  
  667.    In addition, the implementation SHOULD record the event in a statis-
  668.    tics counter, and SHOULD generate an audit log containing date and
  669.    time, IP Source, IP Destination, IP Flow Label (when present), SPI,
  670.    Sequence Number, and/or the entire contents of the discarded data-
  671.    gram.
  672.  
  673.    Not all systems that implement ESP will implement auditing.  However,
  674.    if ESP is incorporated into a system that supports auditing, then the
  675.    ESP implementation MUST also support auditing, and MUST allow a sys-
  676.    tem administrator to enable or disable auditing for ESP.
  677.  
  678.    Additional events not explicitly called out in this specification MAY
  679.    result in audit log entries.
  680.  
  681.  
  682. Operational Considerations
  683.  
  684.    This specification provides only a few manually configurable parame-
  685.    ters:
  686.  
  687.    SPI
  688.       Manually configured SPIs are limited in range to aid operations.
  689.       Automated SPIs are pseudo-randomly distributed throughout the
  690.       remaining 2**32 values.
  691.  
  692.       Default: 0 (none).  Range: 256 to 65,535.
  693.  
  694.    SPI LifeTime (SPILT)
  695.       Manually configured LifeTimes are generally measured in days.
  696.       Automated LifeTimes are specified in seconds.
  697.  
  698.       Default: 32 days (2,764,800 seconds).  Maximum: 182 days
  699.       (15,724,800 seconds).
  700.  
  701.    Replay Window
  702.       Some earlier implementations use pseudo-random values in the pre-
  703.       sent Sequence Number field.  This check must only be used with
  704.       those peers that are known to have implemented this feature.
  705.  
  706.       Default: 0 (checking off).  Range: 32 to 256.
  707.  
  708.    Pad Values
  709.       New implementations use verifiable values.  Some earlier
  710.  
  711.  
  712.  
  713. Simpson                   expires in six months                [Page 12]
  714. DRAFT                             ESP2                         July 1997
  715.  
  716.  
  717.       implementations used random values.  This check must only be used
  718.       with those peers that are known to have implemented this feature.
  719.  
  720.       Also, some operations desire additional padding to inhibit traffic
  721.       analysis.  This feature can be combined with verifiable values to
  722.       provide limited integrity checking.
  723.  
  724.       The value zero (0) indicates that no checking is done, and the
  725.       range of padding values is defined by the default required for the
  726.       cipher algorithm.
  727.  
  728.       Default: 0 (checking off).  Range: 3 to 255, defined per cipher.
  729.  
  730.    Encryption
  731.       Each cipher document will describe the keying material needed.
  732.  
  733.       Default: DES-CBC with derived IV.
  734.  
  735.    Compression
  736.       Default: none.
  737.  
  738.    Authentication
  739.       Each authenticator document will describe the keying material
  740.       needed.
  741.  
  742.       Default: none.
  743.  
  744.    Each party configures a list of known SPIs and symmetric secret-keys.
  745.  
  746.    In addition, each party configures local policy that determines what
  747.    access (if any) is granted to the holder of a particular SPI.  For
  748.    example, a party might allow FTP, but prohibit Telnet.  Such consid-
  749.    erations are outside the scope of this document.
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768. Simpson                   expires in six months                [Page 13]
  769. DRAFT                             ESP2                         July 1997
  770.  
  771.  
  772. Security Considerations
  773.  
  774.    This specification is principly concerned with a security mechanism
  775.    for use with IP.  This mechanism is not a panacea, but it does pro-
  776.    vide an important component useful in creating a secure internetwork
  777.    environment.
  778.  
  779.    Users need to understand that the quality of the security provided by
  780.    this specification depends completely on the strength of whichever
  781.    cryptographic algorithm that has been implemented, the correctness of
  782.    that algorithm's implementation, the security of the key management
  783.    mechanism and its implementation, the strength of the key [CN94], and
  784.    upon the correctness of the implementations in all of the participat-
  785.    ing systems.
  786.  
  787.    If any of these assumptions do not hold, then little or no real secu-
  788.    rity will be provided to the user.  Implementers are encouraged to
  789.    use high assurance development techniques to develop all of the secu-
  790.    rity relevant parts of their products.
  791.  
  792.    Note that it is possible, when some cryptographic algorithms are
  793.    employed without an authentication mechanism, for a third party to
  794.    alter the cleartext of a message, even though that party does not
  795.    possess the key.  It is important that applications requiring both
  796.    confidentiality and authentication select transforms that prevents
  797.    this.
  798.  
  799.    The padding bytes have a predictable value.  They provide a small
  800.    measure of tamper detection on their own block and the previous block
  801.    in CBC mode.  This makes it somewhat harder to perform appending
  802.    attacks in the absence of other integrity protection.  Also, this
  803.    avoids a possible large covert channel (although the amount of
  804.    padding itself could provide a covert channel), and aids in mechani-
  805.    cal certification of the implementation.  This small amount of poten-
  806.    tial known plaintext does not create any problems for modern ciphers.
  807.  
  808.    This mechanism alone does not provide complete immunity from traffic
  809.    analysis.  Users seeking further protection from traffic analysis
  810.    might consider the use of appropriate link encryption.  These details
  811.    are outside the scope of this specification.
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823. Simpson                   expires in six months                [Page 14]
  824. DRAFT                             ESP2                         July 1997
  825.  
  826.  
  827. Acknowledgements
  828.  
  829.    This document benefited greatly from earlier work done by Randall
  830.    Atkinson, Perry Metzger, William Simpson, and Phil Karn, for the SIP,
  831.    SIPP, and IPv6 Working Groups.
  832.  
  833.    Many of the concepts here are derived from the swIPe security proto-
  834.    col [IBK93a, IBK93b], or were influenced through community diffusion
  835.    of knowledge regarding the US Government's SP3 security protocol
  836.    specification [SDN.301], and the ISO/IEC's NLSP specification
  837.    [ISO-11577].
  838.  
  839.    Steve Bellovin, Steve Deering, Steve Kent, Dave Mihelcic, and Hilarie
  840.    Orman provided useful critiques of earlier versions of this document.
  841.  
  842.  
  843. Contacts
  844.  
  845.    Comments about this document should be discussed on the ipsec@tis.com
  846.    mailing list.
  847.  
  848.    Questions about this document can also be directed to:
  849.  
  850.       William Allen Simpson
  851.       DayDreamer
  852.       Computer Systems Consulting Services
  853.       1384 Fontaine
  854.       Madison Heights, Michigan  48071
  855.  
  856.           wsimpson@UMich.edu
  857.           wsimpson@GreenDragon.com (preferred)
  858.           bsimpson@MorningStar.com
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878. Simpson                   expires in six months                [Page 15]
  879.  
  880.  
  881.