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-spki-shrinkwrap-00.txt < prev    next >
Text File  |  1997-08-28  |  15KB  |  439 lines

  1. Network Working Group                             A D Keromytis [U-Penn]
  2. Internet Draft                                  W A Simpson [DayDreamer]
  3. expires in six months                                        August 1997
  4.  
  5.  
  6.                             SPKI: ShrinkWrap
  7.                 draft-simpson-spki-shrinkwrap-00.txt (B)
  8.  
  9.  
  10. Status of this Memo
  11.  
  12.    This document is an Internet-Draft.  Internet Drafts are working doc-
  13.    uments of the Internet Engineering Task Force (IETF), its Areas, and
  14.    its Working Groups.  Note that other groups may also distribute work-
  15.    ing documents as Internet Drafts.
  16.  
  17.    Internet Drafts are draft documents valid for a maximum of six
  18.    months, and may be updated, replaced, or obsoleted by other documents
  19.    at any time.  It is not appropriate to use Internet Drafts as refer-
  20.    ence material, or to cite them other than as a ``working draft'' or
  21.    ``work in progress.''
  22.  
  23.    To learn the current status of any Internet-Draft, please check the
  24.    ``1id-abstracts.txt'' listing contained in the internet-drafts Shadow
  25.    Directories on:
  26.  
  27.       ftp.is.co.za (Africa)
  28.       nic.nordu.net (Europe)
  29.       ds.internic.net (US East Coast)
  30.       ftp.isi.edu (US West Coast)
  31.       munnari.oz.au (Pacific Rim)
  32.  
  33.    Distribution of this memo is unlimited.
  34.  
  35. Abstract
  36.  
  37.    This protocol facilitates the use of Simple Public Key Infrastructure
  38.    [SPKI] certificate chains with Internet Protocol Security [IPS] key
  39.    management protocols.
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. Keromytis & Simpson       expires in six months                 [Page i]
  53. DRAFT                        SPKI ShrinkWrap                 August 1997
  54.  
  55.  
  56. 1.  Raison d'etre
  57.  
  58.    Currently proposed session-key management protocols use UDP [RFC-768]
  59.    for transport.  Internet Protocol version 4 [RFC-791] restricts the
  60.    maximum reassembled datagram to 576 bytes.  Internet Protocol version
  61.    6 [RFC-1883] restricts the maximum reassembled datagram to 1500
  62.    bytes.
  63.  
  64.    Some SPKI certificate chains of delegation could be quite large.
  65.    Should one of these session-key management protocols need to transmit
  66.    a lengthy certificate chain, it is quite possible that the protocol
  67.    will fail.
  68.  
  69.    SPKI allows the verifier to reduce a certificate chain to a single
  70.    certificate.  This ShrinkWrap protocol utilizes TCP [RFC-761,
  71.    RFC-793] to transport long certificate chains, and request a single
  72.    certificate for subsequent use.
  73.  
  74.  
  75. 1.1.  Terminology
  76.  
  77.    In this document, the key words "MAY", "MUST, "MUST NOT", "optional",
  78.    "recommended", "SHOULD", and "SHOULD NOT", are to be interpreted as
  79.    described in [RFC-2119].
  80.  
  81.  
  82. 1.2.  Message Header
  83.  
  84.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  85.    |    Message    |    Counter    |             Value             |
  86.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  87.  
  88.  
  89.    Message          1 byte.  This document defines the following values:
  90.  
  91.                         0  reserved
  92.                         1  Delegation_Certificate
  93.                         2  Reduction_Request
  94.                         3  Reduction_Response
  95.                        11  Resource_Limit
  96.                        12  Verification_Failure
  97.                        13  Message_Reject
  98.  
  99.  
  100.    Counter          1 byte.  Aids in matching requests and responses.
  101.  
  102.                     The first value sent is 1.  Thereafter, the value is
  103.                     monotonically increased for each message sent by the
  104.  
  105.  
  106.  
  107. Keromytis & Simpson       expires in six months                 [Page 1]
  108. DRAFT                        SPKI ShrinkWrap                 August 1997
  109.  
  110.  
  111.                     prover.
  112.  
  113.    Value            2 bytes.  An optional value field.  Although the use
  114.                     of the field is optional, this field is always pre-
  115.                     sent to facilitate 32-bit alignment.
  116.  
  117.    The messages may have additional fields beyond the common header, as
  118.    described later.
  119.  
  120.  
  121. 1.3.  Protocol Overview
  122.  
  123.    The prover is responsible for obtaining any intermediate certificates
  124.    to complete the delegation chain from the verifier to the target sub-
  125.    ject.  The prover sends the intermediate Delegation_Certificates to
  126.    the verifier, followed by a Reduction_Request certificate for the
  127.    target subject.
  128.  
  129.    The verification server (usually residing in the same machine as the
  130.    key management daemon) listens for requests at TCP port XXX.  The
  131.    verifier will attempt to do the chain reduction specified in [SPKI],
  132.    and return a Reduction_Response certificate or an error message.
  133.  
  134.    More than one reduction can be requested in the same session.  The
  135.    prover sends any additional Delegation_Certificates needed, inter-
  136.    leaved by appropriate Reduction_Request certificates, and collects
  137.    the Reduction_Responses from the verifier.
  138.  
  139.    When all desired reduced certificates have been obtained, the prover
  140.    will close the connection.
  141.  
  142. 1.4.  Error Recovery
  143.  
  144.    The Counter limits the number of messages that may be sent.  A maxi-
  145.    mum of 254 intermediate delegations are supported in a single delega-
  146.    tion chain.  Whenever insufficient numbers remain for completion of
  147.    the delegation chain, the prover MUST close the current connection,
  148.    and open another connection.
  149.  
  150.    The Counter is required to be monotonically incremented.  Whenever an
  151.    invalid Counter (zero or out of order) is detected, the verifier MUST
  152.    send a Message_Reject and close the connection.
  153.  
  154.    The verifier is not required to devote enough resources to support
  155.    the maximum of 254 certificates in a single delegation chain.  At any
  156.    particular time, the verifier may not have sufficient resources
  157.  
  158.  
  159.  
  160.  
  161.  
  162. Keromytis & Simpson       expires in six months                 [Page 2]
  163. DRAFT                        SPKI ShrinkWrap                 August 1997
  164.  
  165.  
  166.    available to support reduction of any delegation chain.  Whenever
  167.    insufficient reqources are available, the verifier MUST send a
  168.    Resource_Limit and close the connection.
  169.  
  170.    The verifier SHOULD set an idle timeout for receiving the next mes-
  171.    sage (default 30 seconds).  Following that, the verifier SHOULD close
  172.    the connection.
  173.  
  174.  
  175. 2.  Data Messages
  176. 2.1.  Delegation_Certificate
  177.  
  178.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  179.    |    Message    |    Counter    |           Reserved            |
  180.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  181.    |                            Length                             |
  182.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  183.    |                                                               |
  184.    ~                          Certificate                          ~
  185.    |                                                               |
  186.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  187.  
  188.  
  189.    Message          1
  190.  
  191.    Counter          1 byte.  The value is monotonically increased from
  192.                     the previous message sent.
  193.  
  194.    Reserved         2 bytes.  For future use; MUST be set to zero when
  195.                     transmitted, and MUST be ignored when received.
  196.  
  197.    Length           4 bytes.  Indicates the number of bytes in the fol-
  198.                     lowing certificate.
  199.  
  200.    Certificate      The certificate to use for verification.
  201.  
  202.    Any number of Delegation_Certificates may be sent by the prover prior
  203.    to the Reduction_Request.
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217. Keromytis & Simpson       expires in six months                 [Page 3]
  218. DRAFT                        SPKI ShrinkWrap                 August 1997
  219.  
  220.  
  221. 2.2.  Reduction_Request
  222.  
  223.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  224.    |    Message    |    Counter    |           Reserved            |
  225.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  226.    |                            Length                             |
  227.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  228.    |                                                               |
  229.    ~                          Certificate                          ~
  230.    |                                                               |
  231.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  232.  
  233.  
  234.    Message          2
  235.  
  236.    Counter          1 byte.  The value is monotonically increased from
  237.                     the previous (Delegation_Certificate) message sent.
  238.  
  239.    Reserved         2 bytes.  For future use; MUST be set to zero when
  240.                     transmitted, and MUST be ignored when received.
  241.  
  242.    Length           4 bytes.  Indicates the number of bytes in the fol-
  243.                     lowing certificate.
  244.  
  245.    Certificate      The certificate to be verified and reduced.
  246.  
  247.    Sending the Reduction_Request triggers a Reduction_Response.
  248.  
  249.  
  250. 2.3.  Reduction_Response
  251.  
  252.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  253.    |    Message    |    Counter    |           Reserved            |
  254.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  255.    |                            Length                             |
  256.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  257.    |                                                               |
  258.    ~                          Certificate                          ~
  259.    |                                                               |
  260.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  261.  
  262.  
  263.    Message          3
  264.  
  265.    Counter          1 byte.  Copied from the Reduction_Request.
  266.  
  267.    Reserved         2 bytes.  For future use; MUST be set to zero when
  268.                     transmitted, and MUST be ignored when received.
  269.  
  270.  
  271.  
  272. Keromytis & Simpson       expires in six months                 [Page 4]
  273. DRAFT                        SPKI ShrinkWrap                 August 1997
  274.  
  275.  
  276.    Length           4 bytes.  Indicates the number of bytes in the fol-
  277.                     lowing certificate.
  278.  
  279.    Certificate      The result certificate.
  280.  
  281.    Sent by the verifier to fulfill a Reduction_Request.
  282.  
  283.  
  284. 3.  Error Messages
  285. 3.1.  Resource_Limit
  286.  
  287.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  288.    |    Message    |    Counter    |           Reserved            |
  289.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  290.  
  291.  
  292.    Message          11
  293.  
  294.    Counter          1 byte.  Copied from the offending message.
  295.  
  296.    Reserved         2 bytes.  For future use; MUST be set to zero when
  297.                     transmitted, and MUST be ignored when received.
  298.  
  299.    This error message is sent by the verifier when too many certificates
  300.    are included in a single transaction, a certificate is too large, too
  301.    many other reduction sessions are in progress, or some other resource
  302.    is unavailable.
  303.  
  304.  
  305. 3.2.  Verification_Failure
  306.  
  307.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  308.    |    Message    |    Counter    |           Reserved            |
  309.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  310.  
  311.  
  312.    Message          12
  313.  
  314.    Counter          1 byte.  Copied from the offending message.
  315.  
  316.    Reserved         2 bytes.  For future use; MUST be set to zero when
  317.                     transmitted, and MUST be ignored when received.
  318.  
  319.    This error message is sent by the verifier when unable to fulfill a
  320.    Reduction_Request.  The counter indicates the particular certificate
  321.    for which verification failed.
  322.  
  323.  
  324.  
  325.  
  326.  
  327. Keromytis & Simpson       expires in six months                 [Page 5]
  328. DRAFT                        SPKI ShrinkWrap                 August 1997
  329.  
  330.  
  331. 3.3.  Message_Reject
  332.  
  333.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  334.    |    Message    |    Counter    |           Reserved            |
  335.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  336.    |                            Offset                             |
  337.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  338.  
  339.  
  340.    Message          13
  341.  
  342.    Counter          1 byte.  Copied from the offending message.
  343.  
  344.    Reserved         2 bytes.  For future use; MUST be set to zero when
  345.                     transmitted, and MUST be ignored when received.
  346.  
  347.    Offset           4 bytes.  The number of bytes from the beginning of
  348.                     the offending message where the unrecognized field
  349.                     starts.
  350.  
  351.                     (0) indicates a bad Message number.
  352.                     (1) indicates an invalid Counter.
  353.  
  354.                     Note that the Offset is 8 greater than a correspond-
  355.                     ing Certificate Length.
  356.  
  357.    This error message is sent by the verifier to indicate an unrecog-
  358.    nized message or certificate format.
  359.  
  360.  
  361. Security Considerations
  362.  
  363.    These messages are likely to be used prior to establishing a security
  364.    association between the parties.  Thus, the messages rely upon the
  365.    TCP synchronization handshake, and the security of the certificates
  366.    themselves, to protect against attacks.
  367.  
  368.    There are several opportunities for Denial of Service attacks.  The
  369.    simplest is to swamp the verifier with certificates, exhausting the
  370.    processing resources during verification.  The TCP handshake assists
  371.    in detecting the source of such attacks.  Delegation_Certificates
  372.    SHOULD NOT be verified until the Reduction_Request is received, pre-
  373.    venting an indefinite stream of bogus certificates.  Caching of
  374.    active certificates will mitigate repetitive requests.
  375.  
  376.    An eavesdropper can insert valid TCP sequence numbers with invalid
  377.    data.  This invalid data will be detected by the recipient during
  378.    certificate verification, but the other party will be locked out of
  379.  
  380.  
  381.  
  382. Keromytis & Simpson       expires in six months                 [Page 6]
  383. DRAFT                        SPKI ShrinkWrap                 August 1997
  384.  
  385.  
  386.    the TCP session.  The receipt of TCP acknowledgments beyond the data
  387.    sent MUST cause a reset of the TCP connection.
  388.  
  389.  
  390. Contacts
  391.  
  392.    Comments about this document should be discussed on the spki@c2.net
  393.    mailing list.
  394.  
  395.    Questions about this document can also be directed to:
  396.  
  397.       Angelos D. Keromytis
  398.       Distributed Systems Lab
  399.       Computer and Information Science Department
  400.       University of Pennsylvania
  401.       200 South 33rd Street
  402.       Philadelphia, Pennsylvania  19104-6389
  403.  
  404.           angelos@adk.gr
  405.           angelos@dsl.cis.upenn.edu
  406.  
  407.  
  408.       William Allen Simpson
  409.       DayDreamer
  410.       Computer Systems Consulting Services
  411.       1384 Fontaine
  412.       Madison Heights, Michigan  48071-4818
  413.  
  414.           wsimpson@UMich.edu
  415.           wsimpson@GreenDragon.com (preferred)
  416.           bsimpson@MorningStar.com
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437. Keromytis & Simpson       expires in six months                 [Page 7]
  438.  
  439.