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-ipsec-enhancement-01.txt < prev    next >
Text File  |  1997-04-30  |  15KB  |  496 lines

  1.  
  2. Network Working Group                           W A Simpson (DayDreamer)
  3. Internet Draft                                     D A Wagner (Berkeley)
  4. expires in six months                                         April 1997
  5.  
  6.  
  7.                 Internet Security Transform Enhancements                 -
  8.                  draft-simpson-ipsec-enhancement-01.txt                  |
  9.  
  10.  
  11. Status of this Memo
  12.  
  13.    This document is an Internet-Draft.  Internet Drafts are working doc-
  14.    uments of the Internet Engineering Task Force (IETF), its Areas, and
  15.    its Working Groups.  Note that other groups may also distribute work-
  16.    ing documents as Internet Drafts.
  17.  
  18.    Internet Drafts are draft documents valid for a maximum of six
  19.    months, and may be updated, replaced, or obsoleted by other documents
  20.    at any time.  It is not appropriate to use Internet Drafts as refer-
  21.    ence material, or to cite them other than as a ``working draft'' or
  22.    ``work in progress.''
  23.  
  24.    To learn the current status of any Internet-Draft, please check the
  25.    ``1id-abstracts.txt'' listing contained in the internet-drafts Shadow
  26.    Directories on:
  27.  
  28.       ftp.is.co.za (Africa)
  29.       nic.nordu.net (Europe)
  30.       ds.internic.net (US East Coast)
  31.       ftp.isi.edu (US West Coast)
  32.       munnari.oz.au (Pacific Rim)
  33.  
  34.    Distribution of this memo is unlimited.
  35.  
  36. Abstract
  37.  
  38.    This document describes several generic security transform enhance-
  39.    ments for the IP Security Protocols (AH and ESP).
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Simpson                   expires in six months                 [Page i]
  54. DRAFT                     Transform Enhancement               April 1997
  55.  
  56.  
  57. 1.  Introduction
  58.  
  59.    The implementation of automated key management provides the opportu-
  60.    nity for enhancement of the basic Internet Protocol Security trans-
  61.    forms.  Rapid key updates are available for better replay protection.
  62.    Larger quantities of key material are available to improve the qual-
  63.    ity of the security transforms.
  64.  
  65.    These features are not always fundamental to operation of Internet    |
  66.    Security, when they duplicate features already available through
  67.    other protocol mechanisms or more powerful transforms.  However,
  68.    automated key management makes these features cheaply available.
  69.  
  70.    Selection of these enhancements are the domain of particular key man-
  71.    agement mechanisms.  Operational policy considerations are outside
  72.    the scope of this document.
  73.  
  74.  
  75. 2.  Replay Protection
  76.  
  77.    When an adversary resends an earlier intercepted IP datagram, the
  78.    target would like to detect and discard that datagram.  It is desir-
  79.    able that detection occur before computationally intensive opera-
  80.    tions, such as decryption.
  81.  
  82.    Replay protection provides cryptographically secure at-most-once
  83.    datagram delivery.  This is distinguished from the ordinary trans-
  84.    port-layer delivery mechanisms that would be exercised later in the
  85.    protocol processing.
  86.  
  87.    To provide replay protection, each implementation maintains one (or   |
  88.    more) sequence numbers for each security association.  A sequence     |
  89.    number is unique for each IP Destination and SPI.  Replay protection  |
  90.    is accomplished by authenticating the sequence numbers.  Secure
  91.    replay protection requires that the key used for authentication be
  92.    changed before the sequence number repeats.  This is made practical
  93.    through automated key management.
  94.  
  95.    When sending, each sequence number MUST be initialized to 1 for the   |
  96.    first datagram, and MUST be incremented (as an unsigned integer)
  97.    after each datagram is sent.
  98.  
  99.    On receipt, the sequence number is checked against a list of previ-   |
  100.    ously accepted numbers.  There is no requirement that datagrams
  101.    arrive in order.  As each datagram arrives, the sequence number is
  102.    stored so that it won't be accepted again.
  103.  
  104.    The exact algorithm is implementation dependent.  The implementation  |
  105.  
  106.  
  107.  
  108. Simpson                   expires in six months                 [Page 1]
  109. DRAFT                     Transform Enhancement               April 1997
  110.  
  111.  
  112.    MUST reject datagrams with duplicate sequence numbers, and SHOULD     |
  113.    make an effort to accept non-duplicate out-of-order datagrams.
  114.  
  115.  
  116. 2.1.  AH Sequencing
  117.  
  118.    A 16-bit sequence number MAY be sent in the previously Reserved field |
  119.    of the Authentication Header (AH) [RFC-1826].  When this feature is   |
  120.    implemented by the sender, the value zero MUST NOT be sent.
  121.  
  122.    The receiver validates this number within an implementation dependent
  123.    range of expected values.  Any AH protected datagram that fails this
  124.    test is silently discarded.
  125.  
  126.    Receipt of the value zero indicates that the range has been
  127.    exhausted, or that the sender has not correctly implemented replay
  128.    protection.
  129.  
  130.  
  131. 2.2.  ESP Sequencing
  132.  
  133.    A 32-bit sequence number MAY be sent immediately following the SPI in |
  134.    the Encapsulating Security Payload (ESP) [RFC-1827].  When this fea-  +
  135.    ture is implemented by the sender, the value zero MUST NOT be sent.   +
  136.  
  137.    The receiver validates this number within an implementation dependent +
  138.    range of expected values.  Any ESP protected datagram that fails this +
  139.    test is silently discarded.                                           +
  140.  
  141.    Receipt of the value zero indicates that the range has been           +
  142.    exhausted, or that the sender has not correctly implemented replay    +
  143.    protection.                                                           +
  144.  
  145.    When an Initialization Vector (IV) is required by the transform (as
  146.    in [RFC-1829]), this sequence number can be used in formulating the   |
  147.    IV.
  148.  
  149.  
  150. 2.3.  Combination
  151.  
  152.    When both AH and ESP Sequencing are present, or multiple AH or ESP    |
  153.    headers are present, the sequence numbers are unique to each header   |
  154.    and likely to be different for each SPI.  Each sequence number is     |
  155.    checked independently.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. Simpson                   expires in six months                 [Page 2]
  164. DRAFT                     Transform Enhancement               April 1997
  165.  
  166.  
  167. 2.4.  Implementation
  168.  
  169.    A full-size (2**16 or 2**32 bit) array for storing the status of each
  170.    sequence number received is probably impractical.  The following sim-
  171.    ple algorithm is one possible improvement for single IP Source traf-
  172.    fic.
  173.  
  174.    A low-water mark L is maintained; arriving sequence numbers less than
  175.    (earlier than) the low-water mark are automatically rejected.
  176.  
  177.    A fixed window size W is chosen, depending on storage constraints.
  178.  
  179.    An array A[L..L+W-1] of size W is maintained, where each element
  180.    maintains the state (stale or fresh) of the corresponding sequence
  181.    number.
  182.  
  183.    The following steps are applied to each incoming sequence number S:
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. Simpson                   expires in six months                 [Page 3]
  219. DRAFT                     Transform Enhancement               April 1997
  220.  
  221.  
  222.       1. If S < L
  223.             discard the datagram.
  224.  
  225.       2. If S < L+W
  226.          2a. If A[S] == stale
  227.                 discard the datagram.
  228.          2b. Else
  229.                 set A[S] = stale,
  230.                 accept the datagram.
  231.  
  232.       (note: S > L+W-1)
  233.  
  234.       3. If A[L] == stale
  235.             Let x = L;
  236.             While A[x] == stale
  237.                Do set x = x + 1.
  238.  
  239.             Let y = L;
  240.             Let L = x.
  241.             (shift the array A[] down by y-L elements in memory if necessary,
  242.              so now A[] has the new bounds L..L+W-1)
  243.             Set A[j] = fresh for y+W-1 < j < L+W.
  244.             Goto Step 1.
  245.  
  246.       (note: S > L+W-1 and A[L] == fresh)
  247.  
  248.       4. Let y = L;
  249.          Let L = S-W+1.
  250.          Shift the array A[] down by y-L elements in memory if necessary,
  251.            so now A[] has the new bounds L..L+W-1 (or L..S).
  252.          Set A[j] = fresh for y+W-1 < j < L+W.
  253.          Set A[S] = stale and accept the datagram.
  254.  
  255.    Two invariants are maintained in this algorithm.  First, all sequence
  256.    numbers S < L are stale.  Second, all sequence numbers S > L+W-1 are
  257.    fresh.
  258.  
  259.    Note that step 4 forgets some state information, and may cause out-
  260.    of-order datagrams that were sent earlier but received later to be
  261.    (incorrectly) judged stale and discarded.  Though this algorithm may
  262.    inadvertenly reject a fresh datagram as stale, the important point is
  263.    that it will never accept a replayed datagram.
  264.  
  265.    An implementation may wish to go through with step 4 only for packets
  266.    that pass the authentication verification.
  267.  
  268.    This is only one possible algorithm; implementators may choose
  269.    another, so long as it rejects replayed datagrams with duplicate
  270.  
  271.  
  272.  
  273. Simpson                   expires in six months                 [Page 4]
  274. DRAFT                     Transform Enhancement               April 1997
  275.  
  276.  
  277.    sequence numbers.
  278.  
  279.  
  280. 3.  Secret Initialization Vector
  281.  
  282.    When an Initialization Vector (IV) is specified by the transform (as
  283.    in [RFC-1829]), this IV may be enhanced by combination with a secret
  284.    value.  Provision of a secret IV for each security association is
  285.    made practical through automated key management.
  286.  
  287.    In most cases, a secret IV is not a requirement, as the [VK83] speci-
  288.    fied attacks are impractical for the current Internet Security trans-
  289.    forms.  The existing transforms already provide that the IV is dif-
  290.    ferent for each datagram in the same security association.  Choosing
  291.    a secret IV during session establishment may ensure that the result-
  292.    ing IV is more likely to be different for every security association
  293.    when there are a large number of security associations between the
  294.    same parties.
  295.  
  296.  
  297. 3.1.  XOR
  298.  
  299.    The most simple technique is to generate a secret IV of the appropri-
  300.    ate size, and XOR the secret value with the IV carried in the ESP
  301.    header.
  302.  
  303.  
  304. 3.2.  Hash
  305.  
  306.    A more robust technique is to regenerate a new IV using a one-way
  307.    hash function of a (variable length) secret key and the IV carried in
  308.    each ESP header, extracting an appropriate size IV from the result.
  309.    This provides a stronger IV that does not appear related to previous
  310.    IVs.
  311.  
  312.  
  313. 4.  Whitening
  314.  
  315.    A simple method for strengthening common block cipher transforms (as
  316.    in [RFC-1829]) involves XOR of additional secret values with each
  317.    block.  Provision of these additional secret values for each security
  318.    association is made practical through automated key management.
  319.  
  320.    Indeed, so-called "whitening" is merely an application of repeated
  321.    key XOR, the most common cheap method of hiding data.  It is insecure
  322.    without combination with a robust cipher.
  323.  
  324.  
  325.  
  326.  
  327.  
  328. Simpson                   expires in six months                 [Page 5]
  329. DRAFT                     Transform Enhancement               April 1997
  330.  
  331.  
  332. 4.1.  Ciphertext
  333.  
  334.    The ciphertext may be XOR'd with a secret value before output to the
  335.    datagram.  This requires a secret the same size as the block.  When
  336.    Cipher Block Chaining (CBC) is used, this hides the chaining values
  337.    used as an IV for the next block.
  338.  
  339.  
  340. 4.2.  Plaintext
  341.  
  342.    The plaintext may be XOR'd with a secret value before input to the
  343.    block cipher.  This requires a secret the same size as the block.
  344.    The effect is similar to a secret IV applied to all the blocks.
  345.  
  346.  
  347. 4.3.  With Pseudo-random Sequence
  348.  
  349.    Another variant is to generate a pseudo-random sequence of secrets to
  350.    XOR with either the ciphertext or plaintext.  This requires a (vari-
  351.    able length) secret to be used as a seed to the sequence generator.
  352.  
  353.  
  354. 4.4.  With Hash Sequence
  355.  
  356.    A more robust variant is to generate a sequence of secrets using a
  357.    one-way hash function of a (variable length) secret key and each
  358.    block chaining vector (CV), extracting an appropriate size block from
  359.    the result.  This effect is similar to a secret hash IV applied to
  360.    all the blocks.
  361.  
  362.  
  363. 4.5.  Combinations
  364.  
  365.    These variants can be easily combined.  For example, an XOR of a
  366.    secret with both the ciphertext and plaintext when used as a sandwich
  367.    around DES is called DES-XEX2 (DES key plus one XOR key) or DES-XEX3
  368.    (DES key plus two separate XOR keys) [KR96].
  369.  
  370.  
  371. Security Considerations
  372.  
  373.    Analyses of these simple techniques are readily available in the lit-
  374.    erature.  Further details may be found in [Schneier95].
  375.  
  376.    The IV or CV hashing techniques are particularly useful in conjunc-
  377.    tion with replay protection, as they prevent undetectable modifica-
  378.    tion of the predictable Sequence numbers.
  379.  
  380.  
  381.  
  382.  
  383. Simpson                   expires in six months                 [Page 6]
  384. DRAFT                     Transform Enhancement               April 1997
  385.  
  386.  
  387. Acknowledgements
  388.  
  389.    Much of the text and implementation details of Replay Protection were
  390.    provided by David Wagner.  Additional suggestions were provided by
  391.    Steve Kent.
  392.  
  393.    Special thanks to John Ioannidis for inspiration and experimentation
  394.    which began this most recent round of IP Mobility and IP Security
  395.    development.  Some of the text on Replay Protection was derived from
  396.    [swIPe].
  397.  
  398.    Robert Baldwin suggested the XOR protection of the IV.
  399.  
  400.    Bart Preneel suggested the hash protection of the IV.
  401.  
  402.    The use of "whitening" is further described in [Schneier95].          +
  403.  
  404.    Angelos Keromytis, and Bill Sommerfeld provided useful critiques of   +
  405.    earlier versions of this document.
  406.  
  407.    This specification has been awaiting RFC publication since April 1996. +
  408.  
  409.  
  410. References
  411.  
  412.    [KR96]   Kaliski, B., and Robshaw, M., "Multiple Encryption: Weighing
  413.             Security and Performance", Dr. Dobbs Journal, January 1996.
  414.  
  415.    [RFC-1826]
  416.             Atkinson, R., "IP Authentication Header", RFC-1826, Naval
  417.             Research Laboratory, July 1995.
  418.  
  419.    [RFC-1827]
  420.             Atkinson, R., "IP Encapsulating Security Protocol (ESP)",
  421.             RFC-1827, Naval Research Laboratory, July 1995.
  422.  
  423.    [RFC-1829]
  424.             Karn, P., Metzger, P., Simpson, W., "The ESP DES-CBC Trans-
  425.             form", July 1995.
  426.  
  427.    [Schneier95]
  428.             Schneier, B., "Applied Cryptography Second Edition", John
  429.             Wiley & Sons, New York, NY, 1995.  ISBN 0-471-12845-7.
  430.  
  431.    [swIPe]  Ioannidis, J., and Blaze, M., "The Architecture and Imple-
  432.             mentation of Network-Layer Security Under Unix", Fourth
  433.             Usenix Security Symposium Proceedings, October 1993.
  434.  
  435.  
  436.  
  437.  
  438. Simpson                   expires in six months                 [Page 7]
  439. DRAFT                     Transform Enhancement               April 1997
  440.  
  441.  
  442.    [VK83]   Voydock, V.L., and Kent, S.T., "Security Mechanisms in High-
  443.             level Networks", ACM Computing Surveys, Vol. 15, No. 2, June
  444.             1983.
  445.  
  446.  
  447.  
  448. Contacts
  449.  
  450.    Comments about this document should be discussed on the               |
  451.    ipsec-dev@terisa.com mailing list.
  452.  
  453.    Questions about this document can also be directed to:                |
  454.  
  455.       William Allen Simpson
  456.       DayDreamer                                                         |
  457.       Computer Systems Consulting Services
  458.       1384 Fontaine
  459.       Madison Heights, Michigan  48071
  460.  
  461.           wsimpson@UMich.edu
  462.           wsimpson@GreenDragon.com (preferred)
  463.           bsimpson@MorningStar.com
  464.  
  465.  
  466.       David A Wagner
  467.       Computer Science Department
  468.       University of California
  469.       Berkeley, California  94720
  470.  
  471.           daw@cs.berkeley.edu
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493. Simpson                   expires in six months                 [Page 8]
  494.  
  495.  
  496.