revert between 56095 -> 55830 in arch
[AROS.git] / workbench / network / stacks / AROSTCP / dhcp / doc / draft-ietf-dhc-authentication-14.txt
blob43a1f8ae57063170c63b4e931ef428de85c7c98c
1 Network Working Group                                   R. Droms, Editor
2 INTERNET DRAFT                                       Bucknell University
3 Obsoletes: draft-ietf-dhc-authentication-13.txt       W. Arbaugh, Editor
4                                                   University of Maryland
5                                                                July 2000
6                                                    Expires December 2000
9                     Authentication for DHCP Messages
10                  <draft-ietf-dhc-authentication-14.txt>
12 Status of this memo
14    This document is an Internet-Draft and is in full conformance with
15    all provisions of Section 10 of RFC2026. Internet-Drafts are working
16    documents of the Internet Engineering Task Force (IETF), its areas,
17    and its working groups. Note that other groups may also distribute
18    working documents as Internet-Drafts.
20    Internet-Drafts are draft documents valid for a maximum of six months
21    and may be updated, replaced, or obsoleted by other documents at any
22    time.  It is inappropriate to use Internet- Drafts as reference
23    material or to cite them other than as "work in progress."
25    The list of current Internet-Drafts can be accessed at
26    http://www.ietf.org/ietf/1id-abstracts.txt, and the list of
27    Internet-Draft Shadow Directories can be accessed at
28    http://www.ietf.org/shadow.html.
31 Abstract
33    The Dynamic Host Configuration Protocol (DHCP) provides a framework
34    for passing configuration information to hosts on a TCP/IP network.
35    In some situations, network administrators may wish to constrain the
36    allocation of addresses to authorized hosts.  Additionally, some
37    network administrators may wish to provide for authentication of the
38    source and contents of DHCP messages.  This document defines a new
39    DHCP option through which authorization tickets can be easily
40    generated and newly attached hosts with proper authorization can be
41    automatically configured from an authenticated DHCP server.
43 1. Introduction
45    DHCP [1] transports protocol stack configuration parameters from
46    centrally administered servers to TCP/IP hosts.  Among those
47    parameters are an IP address.  DHCP servers can be configured to
48    dynamically allocate addresses from a pool of addresses, eliminating
52 Droms, Arbaugh                                                  [Page 1]
54 DRAFT               Authentication for DHCP Messages          March 2000
57    a manual step in configuration of TCP/IP hosts.
59    Some network administrators may wish to provide authentication of the
60    source and contents of DHCP messages.  For example, clients may be
61    subject to denial of service attacks through the use of bogus DHCP
62    servers, or may simply be misconfigured due to unintentionally
63    instantiated DHCP servers.  Network administrators may wish to
64    constrain the allocation of addresses to authorized hosts to avoid
65    denial of service attacks in "hostile" environments where the network
66    medium is not physically secured, such as wireless networks or
67    college residence halls.
69    This document defines a technique that can provide both entity
70    authentication and message authentication.
72    DISCUSSION:
74       This draft combines the original Schiller-Huitema-Droms
75       authentication mechanism defined in a previous Internet Draft with
76       the "delayed authentication" proposal developed by Bill Arbaugh.
78 1.1 DHCP threat model
80    The threat to DHCP is inherently an insider threat (assuming a
81    properly configured network where BOOTP ports are blocked on the
82    enterprise's perimeter gateways.)  Regardless of the gateway
83    configuration, however, the potential attacks by insiders and
84    outsiders are the same.
86    The attack specific to a DHCP client is the possibility of the
87    establishment of a "rogue" server with the intent of providing
88    incorrect configuration information to the client. The motivation for
89    doing so may be to establish a "man in the middle" attack or it may
90    be for a "denial of service" attack.
92    There is another threat to DHCP clients from mistakenly or
93    accidentally configured DHCP servers that answer DHCP client requests
94    with unintentionally incorrect configuration parameters.
96    The threat specific to a DHCP server is an invalid client
97    masquerading as a valid client. The motivation for this may be for
98    "theft of service", or to circumvent auditing for any number of
99    nefarious purposes.
101    The threat common to both the client and the server is the resource
102    "denial of service" (DoS) attack. These attacks typically involve the
103    exhaustion of valid addresses, or the exhaustion of CPU or network
104    bandwidth, and are present anytime there is a shared resource. In
108 Droms, Arbaugh                                                  [Page 2]
110 DRAFT               Authentication for DHCP Messages          March 2000
113    current practice, redundancy mitigates DoS attacks the best.
115 1.2 Design goals
117    These are the goals that were used in the development of the
118    authentication protocol, listed in order of importance:
120    1. Address the threats presented in Section 1.1.
121    2. Avoid changing the current protocol.
122    3. Limit state required by the server.
123    4. Limit complexity (complexity breeds design and implementation
124       errors).
126 1.3 Requirements Terminology
128    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
129    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this
130    document are to be interpreted as described in RFC 2119 [5].
132 1.4 DHCP Terminology
134    This document uses the following terms:
136       o "DHCP client"
138         A DHCP client or "client" is an Internet host using DHCP to obtain
139         configuration parameters such as a network address.
141       o "DHCP server"
143         A DHCP server or "server" is an Internet host that returns
144         configuration parameters to DHCP clients.
146 2. Format of the authentication option
148    The following diagram defines the format of the DHCP
149    authentication option:
152    0                   1                   2                   3
153    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
154    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
155    |     Code      |    Length     |  Protocol     |   Algorithm   |
156    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
157    |     RDM       | Replay Detection (64 bits)                    |
158    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
159    |  Replay cont. |                                               |
160    +-+-+-+-+-+-+-+-+                                               |
164 Droms, Arbaugh                                                  [Page 3]
166 DRAFT               Authentication for DHCP Messages          March 2000
169    |                                                               |
170    |           Authentication Information                          |
171    |                                                               |
172    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
176    The code for the authentication option is TBD, and the length field
177    contains the length of the protocol, RDM, algorithm, Replay Detection
178    fields and authentication information fields in octets.
180    The protocol field defines the particular technique for
181    authentication used in the option.  New protocols are defined as
182    described in Section 6.
184    The algorithm field defines the specific algorithm within the
185    technique identified by the protocol field.
187    The Replay Detection field is per the RDM, and the authentication
188    information field is per the protocol in use.
190    The Replay Detection Method (RDM) field determines the type of replay
191    detection used in the Replay Detection field.
193       If the RDM field contains 0x00, the replay detection field MUST be
194       set to the value of a monotonically increasing counter.  Using a
195       counter value such as the current time of day (e.g., an NTP-format
196       timestamp [4]) can reduce the danger of replay attacks. This
197       method MUST be supported by all protocols.
199       Other values of the RDM field are reserved for future definition
200       according to the procedures described in section 6.
202    This document defines two protocols in sections 4 and 5, encoded with
203    protocol field values 0 and 1.  Protocol field values 2-254 are
204    reserved for future use.  Other protocols may be defined according to
205    the procedure described in section 6.
207 3. Interaction with Relay Agents
209    Because a DHCP relay agent may alter the values of the 'giaddr' and
210     'hops' fields in the DHCP message, the contents of those two fields
211    MUST be set to zero for the computation of any hash function over the
212    message header. Additionally, a relay agent may append the DHCP relay
213    agent information option 82 [7] as the last option in a message to
214    servers. If a server finds option 82 included in a received message,
215    the server MUST compute any hash function as if the option were NOT
216    included in the message without changing the order of options.
220 Droms, Arbaugh                                                  [Page 4]
222 DRAFT               Authentication for DHCP Messages          March 2000
225    Whenever the server sends back option 82 to a relay agent, the server
226    MUST not include the option in the computation of any hash function
227    over the message.
230 4. Protocol 0
232    If the protocol field is 0, the authentication information field
233    holds a simple authentication token:
236    0                   1                   2                   3
237    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
238    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
239    |     Code      |    Length     |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0|
240    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
241    |0 0 0 0 0 0 0 0| Replay Detection (64 bits)                    |
242    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
243    |  Replay cont. |                                               |
244    +-+-+-+-+-+-+-+-+                                               |
245    |                                                               |
246    |           Authentication Information                          |
247    |                                                               |
248    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
251    The authentication token is an opaque, unencoded value known to both
252    the sender and receiver.  The sender inserts the authentication token
253    in the DHCP message and the receiver matches the token from the
254    message to the shared token.  If the authentication option is present
255    and the token from the message does not match the shared token, the
256    receiver MUST discard the message.
258    Protocol 0 may be used to pass a plain-text password and provides
259    only weak entity authentication and no message authentication.  This
260    protocol is only useful for rudimentary protection against
261    inadvertently instantiated DHCP servers.
263    DISCUSSION:
265       The intent here is to pass a constant, non-computed token such as
266       a plain-text password.  Other types of entity authentication using
267       computed tokens such as Kerberos tickets or one-time passwords
268       will be defined as separate protocols.
271 5. Protocol 1
276 Droms, Arbaugh                                                  [Page 5]
278 DRAFT               Authentication for DHCP Messages          March 2000
281    If the protocol field is 1, the message is using the "delayed
282    authentication" mechanism.  In delayed authentication, the client
283    requests authentication in its DHCPDISCOVER message and the server
284    replies with a DHCPOFFER message that includes authentication
285    information. This authentication information contains a nonce value
286    generated by the source as a message authentication code (MAC) to
287    provide message authentication and entity authentication.
289    This document defines the use of a particular technique based on the
290    HMAC protocol [3] using the MD5 hash [2].
292 5.1 Management Issues
294    The "delayed authentication" protocol does not attempt to address
295    situations where a client may roam from one administrative domain to
296    another, i.e. interdomain roaming.  This protocol is focused on
297    solving the intradomain problem where the out-of-band exchange of a
298    shared secret is feasible.
300 5.2 Format
302    The format of the authentication request in a DHCPDISCOVER message
303    for protocol 1 is:
307    0                   1                   2                   3
308    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
309    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
310    |     Code      |    Length     |0 0 0 0 0 0 0 1|   Algorithm   |
311    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
312    |     RDM       | Replay Detection (64 bits)                    |
313    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
314    |  Replay cont. |
315    +-+-+-+-+-+-+-+-+
318    The format of the authentication information for protocol 1 is:
332 Droms, Arbaugh                                                  [Page 6]
334 DRAFT               Authentication for DHCP Messages          March 2000
337    0                   1                   2                   3
338    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
339    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
340    |     Code      |    Length     |0 0 0 0 0 0 0 1|   Algorithm   |
341    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
342    |     RDM       | Replay Detection (64 bits)                    |
343    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
344    |  Replay cont. | Secret ID (32 bits)                           |
345    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
346    | secret id cont| HMAC-MD5 (128 bits) ....
347    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
350    This document defines one technique for use with protocol 1, which is
351    identified by setting the algorithm field to 1.  Other techniques
352    that use different algorithms may be defined by future
353    specifications, see section 6.  The following definitions will be
354    used in the description of the authentication information for
355    protocol 1, algorithm 1:
357    Replay Detection       - as defined by the RDM field
358    K                      - a secret value shared between the source and
359                             destination of the message; each secret has a
360                             unique identifier (not shown in figures)
361    secret ID              - the unique identifier for the secret value
362                             used to generate the MAC for this message
363    HMAC-MD5               - the MAC generating function [3, 2].
365    The sender computes the MAC using the HMAC generation algorithm [3]
366    and the MD5 hash function [2].  The entire DHCP message (except as
367    noted below), including the DHCP message header and the options
368    field, is used as input to the HMAC-MD5 computation function.  The
369    'secret ID' field MUST be set to the identifier of the secret used to
370    generate the MAC.
372    DISCUSSION:
374       Algorithm 1 specifies the use of HMAC-MD5.  Use of a different
375       technique, such as HMAC-SHA, will be specified as a separate
376       protocol.
378       Protocol 1 requires a shared secret key for each client on each
379       DHCP server with which that client may wish to use the DHCP
380       protocol.  Each secret key has a unique identifier that can be
381       used by a receiver to determine which secret was used to generate
382       the MAC in the DHCP message.  Therefore, protocol 1 may not scale
383       well in an architecture in which a DHCP client connects to
384       multiple administrative domains.
388 Droms, Arbaugh                                                  [Page 7]
390 DRAFT               Authentication for DHCP Messages          March 2000
393       Note that the meaning of an authentication option can be changed
394       by removing the secret ID, and MAC, transforming an authentication
395       option with authentication information into a request for
396       authentication.  Therefore, the authentication request form of
397       this option can only appear in a DHCPDISCOVER message or a
398       DHCPINFORM message.
400 5.3 Message validation
402       To validate an incoming message, the receiver first checks that
403       the value in the replay detection field is acceptable according to
404       the replay detection method specified by the RDM field.  Next, the
405       receiver computes the MAC as described in [3]. The receiver MUST
406       set the 'MAC' field of the authentication option to all 0s for
407       computation of the MAC, and because a DHCP relay agent may alter
408       the values of the 'giaddr' and 'hops' fields in the DHCP message,
409       the contents of those two fields MUST also be set to zero for the
410       computation of the MAC. If the MAC computed by the receiver does
411       not match the MAC contained in the authentication option, the
412       receiver MUST discard the DHCP message.
414       Section 3 provides additional information on handling messages
415       that include option 82 (Relay Agents).
417 5.4 Key utilization
419       Each DHCP client has a key, K.  The client uses its key to encode
420       any messages it sends to the server and to authenticate and verify
421       any messages it receives from the server.  The client's key SHOULD
422       be initially distributed to the client through some out-of-band
423       mechanism, and SHOULD be stored locally on the client for use in
424       all authenticated DHCP messages.  Once the client has been given
425       its key, it SHOULD use that key for all transactions even if the
426       client's configuration changes; e.g., if the client is assigned a
427       new network address.
429       Each DHCP server MUST know, or be able to obtain in a secure
430       manner, the keys for all authorized clients.  If all clients use
431       the same key, clients can perform both entity and message
432       authentication for all messages received from servers.  However,
433       the sharing of keys is strongly discouraged as it allows for
434       unauthorized clients to masquerade as authorized clients by
435       obtaining a copy of the shared key. To authenticate the identity
436       of individual clients, each client MUST be configured with a
437       unique key.  Appendix A describes a technique for key management.
439 5.5 Client considerations
444 Droms, Arbaugh                                                  [Page 8]
446 DRAFT               Authentication for DHCP Messages          March 2000
449       This section describes the behavior of a DHCP client using
450       authentication protocol 1.
452 5.5.1 INIT state
454       When in INIT state, the client uses protocol 1 as follows:
456       1. The client MUST include the authentication request option in
457          its DHCPDISCOVER message along with option 61 [6] to identify
458          itself uniquely to the server.
460       2. The client MUST validate any DHCPOFFER messages that include
461          authentication information using the mechanism specified in
462          section 5.3.  The client MUST discard any messages which fail
463          to pass validation and MAY log the validation failure.  The
464          client selects one DHCPOFFER message as its selected
465          configuration.  If none of the DHCPOFFER messages received by
466          the client include authentication information, the client MAY
467          choose an unauthenticated message as its selected
468          configuration.  The client SHOULD be configurable to accept or
469          reject unauthenticated DHCPOFFER messages.
470       3. The client replies with a DHCPREQUEST message that MUST include
471          authentication information encoded with the same secret used by
472          the server in the selected DHCPOFFER message.
473       4. The client MUST validate the DHCPACK message from the server.
474          The client MUST discard the DHCPACK if the message fails to
475          pass validation and MAY log the validation failure.  If the
476          DHCPACK fails to pass validation, the client MUST revert to
477          INIT state and returns to step 1.  The client MAY choose to
478          remember which server replied with a DHCPACK message that
479          failed to pass validation and discard subsequent messages from
480          that server.
482 5.5.2 INIT-REBOOT state
484       When in INIT-REBOOT state, the client MUST use the secret it used
485       in its DHCPREQUEST message to obtain its current configuration to
486       generate authentication information for the DHCPREQUEST message.
487       The client MAY choose to accept unauthenticated DHCPACK/DHCPNAK
488       messages if no authenticated messages were received.  The client
489       MUST treat the receipt (or lack thereof) of any DHCPACK/DHCPNAK
490       messages as specified in section 3.2 of [1].
492 5.5.3 RENEWING state
494       When in RENEWING state, the client uses the secret it used in its
495       initial DHCPREQUEST message to obtain its current configuration to
496       generate authentication information for the DHCPREQUEST message.
500 Droms, Arbaugh                                                  [Page 9]
502 DRAFT               Authentication for DHCP Messages          March 2000
505       If client receives no DHCPACK messages or none of the DHCPACK
506       messages pass validation, the client behaves as if it had not
507       received a DHCPACK message in section 4.4.5 of the DHCP
508       specification [1].
510 5.5.4 REBINDING state
512       When in REBINDING state, the client uses the secret it used in its
513       initial DHCPREQUEST message to obtain its current configuration to
514       generate authentication information for the DHCPREQUEST message.
515       If client receives no DHCPACK messages or none of the DHCPACK
516       messages pass validation, the client behaves as if it had not
517       received a DHCPACK message in section 4.4.5 of the DHCP
518       specification [1].
520 5.5.5 DHCPINFORM message
522       Since the client already has some configuration information, the
523       client may also have established a shared secret value, K, with a
524       server. Therefore, the client SHOULD use the authentication
525       request as in a DHCPDISCOVER message when a shared secret value
526       exists. The client MUST treat any received DHCPACK messages as it
527       does DHCPOFFER messages, see section 5.5.1.
529 5.5.6 DHCPRELEASE message
531       Since the client is already in the BOUND state, the client will
532       have a security association already established with the server.
533       Therefore, the client MUST include authentication information with
534       the DHCPRELEASE message.
536 5.6 Server considerations
538       This section describes the behavior of a server in response to
539       client messages using authentication protocol 1.
541 5.6.1 General considerations
543       Each server maintains a list of secrets and identifiers for those
544       secrets that it shares with clients and potential clients.  This
545       information must be maintained in such a way that the server can:
547       * Identify an appropriate secret and the identifier for that
548         secret for use with a client that the server may not have
549         previously communicated with
550       * Retrieve the secret and identifier used by a client to which the
551         server has provided previous configuration information
556 Droms, Arbaugh                                                 [Page 10]
558 DRAFT               Authentication for DHCP Messages          March 2000
561       Each server MUST save the counter from the previous authenticated
562       message.  A server MUST discard any incoming message which fails
563       the replay detection check as defined by the RDM avoid replay
564       attacks.
566       DISCUSSION:
568          The authenticated DHCPREQUEST message from a client in INIT-
569          REBOOT state can only be validated by servers that used the
570          same secret in their DHCPOFFER messages.  Other servers will
571          discard the DHCPREQUEST messages.  Thus, only servers that used
572          the secret selected by the client will be able to determine
573          that their offered configuration information was not selected
574          and the offered network address can be returned to the server's
575          pool of available addresses.  The servers that cannot validate
576          the DHCPREQUEST message will eventually return their offered
577          network addresses to their pool of available addresses as
578          described in section 3.1 of the DHCP specification [1].
580 5.6.2 After receiving a DHCPDISCOVER message
582       The server selects a secret for the client and includes
583       authentication information in the DHCPOFFER message as specified
584       in section 5, above. The server MUST record the identifier of the
585       secret selected for the client and use that same secret for
586       validating subsequent messages with the client.
588 5.6.3 After receiving a DHCPREQUEST message
590       The server uses the secret identified in the message and validates
591       the message as specified in section 5.3.  If the message fails to
592       pass validation or the server does not know the secret identified
593       by the 'secret ID' field, the server MUST discard the message and
594       MAY choose to log the validation failure.
596       If the message passes the validation procedure, the server
597       responds as described in the DHCP specification.  The server MUST
598       include authentication information generated as specified in
599       section 5.2.
601 5.6.4 After receiving a DHCPINFORM message
603       The server MAY choose to accept unauthenticated DHCPINFORM
604       messages, or only accept authenticated DHCPINFORM messages based
605       on a site policy.
607       When a client includes the authentication request in a DHCPINFORM
608       message, the server MUST respond with an authenticated DHCPACK
612 Droms, Arbaugh                                                 [Page 11]
614 DRAFT               Authentication for DHCP Messages          March 2000
617       message. If the server does not have a shared secret value
618       established with the sender of the DHCPINFORM message, then the
619       server MAY respond with an unauthenticated DHCPACK message, or a
620       DHCPNAK if the server does not accept unauthenticated clients
621       based on the site policy, or the server MAY choose not to respond
622       to the DHCPINFORM message.
624 6. IANA Considerations
626       The author of a new DHCP authentication protocol, algorithm or
627       replay detection method will follow these steps to obtain
628       acceptance of the new procedure as a part of the DHCP Internet
629       Standard:
631       1. The author devises the new authentication protocol, algorithm
632          or replay detection method.
633       2. The author documents the new technique as an Internet Draft.
634          The protocol, algorithm or RDM code for any new procedure is
635          left as "To Be Determined" (TBD).
636       3. The author submits the Internet Draft for review through the
637          IETF standards process as defined in "Internet Official
638          Protocol Standards" (STD 1).
639       4. The new protocol progresses through the IETF standards process;
640          the specification of the new protocol will be reviewed by the
641          Dynamic Host Configuration Working Group (if that group still
642          exists), or as an Internet Draft not submitted by an IETF
643          working group.  If the option is accepted as a Standard, the
644          specification for the option is published as a separate RFC.
645       5. At the time of acceptance as a Proposed Internet Standard and
646          publication as an RFC, IANA assigns a DHCP authentication
647          protocol number to the new protocol.
649       This procedure for defining new authentication protocols will
650       ensure that:
652       * allocation of new protocol numbers is coordinated from a single
653         authority,
654       * new protocols are reviewed for technical correctness and
655         appropriateness, and
656       * documentation for new protocols is complete and published.
659       DISCUSSION:
660          This procedure is patterned after the procedure for acceptance
661          of new DHCP options.
663 7. References
668 Droms, Arbaugh                                                 [Page 12]
670 DRAFT               Authentication for DHCP Messages          March 2000
673       [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131,
674           Bucknell University, March 1997.
676       [2] Rivest, R., "The MD5 Message-Digest Algorithm",
677           RFC-1321, April 1992.
679       [3] Krawczyk H., M. Bellare and R. Canetti, "HMAC: Keyed-Hashing for
680           Message Authentication," RFC-2104, February 1997.
682       [4] Mills, D., "Network Time Protocol (Version 3)", RFC-1305, March
683           1992.
685       [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement
686           Levels," RFC-2219, March 1997.
688       [6] Henry, M., "DHCP Option 61 UUID Type Definition,"
689           <draft-henry-DHCP-opt61-UUID-type-00.txt> (work in
690           progress, November 1998.
692       [7] Patrick, M., "DHCP Relay Agent Information Option,"
693           <draft-ietf-dhc-agent-options-05.txt> (work in progress),
694           November 1998.
696       [8] Gupta, V., "Flexible Authentication for DHCP Messages,"
697           <draft-gupta-dhcp-auth-00.txt> (work in progress, June
698           1998.
700 8. Acknowledgments
702       Jeff Schiller and Christian Huitema developed this scheme during a
703       terminal room BOF at the Dallas IETF meeting, December 1995.  The
704       editor transcribed the notes from that discussion, which form the
705       basis for this document.  The editor appreciates Jeff's and
706       Christian's patience in reviewing this document and its earlier
707       drafts.
709       The "delayed authentication" mechanism used in section 5 is due to
710       Bill Arbaugh.  The threat model and requirements in sections 1.1
711       and 1.2 come from Bill's negotiation protocol proposal. The
712       attendees of an interim meeting of the DHC WG held in June, 1998,
713       including Peter Ford, Kim Kinnear, Glenn Waters, Rob Stevens, Bill
714       Arbaugh, Baiju Patel, Carl Smith, Thomas Narten, Stewart Kwan,
715       Munil Shah, Olafur Gudmundsson, Robert Watson, Ralph Droms, Mike
716       Dooley, Greg Rabil and Arun Kapur, developed the threat model and
717       reviewed several alternative proposals.
719       The replay detection method field is due to Vipul Gupta [8].
724 Droms, Arbaugh                                                 [Page 13]
726 DRAFT               Authentication for DHCP Messages          March 2000
729       Other input from Bill Sommerfield is gratefully acknowledged.
731       Thanks also to John Wilkins, Ran Atkinson, Shawn Mamros and Thomas
732       Narten for reviewing earlier drafts of this document.
734 9. Security considerations
736       This document describes authentication and verification mechanisms
737       for DHCP.
739 10. Editors' addresses
741    Ralph Droms
742    Computer Science Department
743    323 Dana Engineering
744    Bucknell University
745    Lewisburg, PA 17837
747    Phone: (717) 524-1145
748    EMail: droms@bucknell.edu
750    Bill Arbaugh
751    Department of Computer Science
752    University of Maryland
753    A.V. Williams Building
754    College Park, MD 20742
756    Phone: (301) 455-2774
757    Email: waa@cs.umd.edu
759 10. Expiration
761    This document will expire on December 31, 2000.
780 Droms, Arbaugh                                                 [Page 14]
782 DRAFT               Authentication for DHCP Messages          March 2000
785    Full Copyright Statement
787    Copyright (C) The Internet Society (2000).  All Rights Reserved.
789    This document and translations of it may be copied and furnished to
790    others, and derivative works that comment on or otherwise explain it
791    or assist in its implementation may be prepared, copied, published and
792    distributed, in whole or in part, without restriction of any kind,
793    provided that the above copyright notice and this paragraph are
794    included on all such copies and derivative works.  However, this
795    document itself may not be modified in any way, such as by removing
796    the copyright notice or references to the Internet Society or other
797    Internet organizations, except as needed for the purpose of developing
798    Internet standards in which case the procedures for copyrights defined
799    in the Internet Standards process must be followed, or as required to
800    translate it into languages other than English.
802    The limited permissions granted above are perpetual and will not be
803    revoked by the Internet Society or its successors or assigns.
805    This document and the information contained herein is provided on an
806    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
807    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
808    NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN
809    WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
810    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
836 Droms, Arbaugh                                                 [Page 15]
838 DRAFT               Authentication for DHCP Messages          March 2000
841    Appendix A - Key Management Technique
843    To avoid centralized management of a list of random keys, suppose K
844    for each client is generated from the pair (client identifier [6],
845    subnet address, e.g. 192.168.1.0), which must be unique to that
846    client.  That is, K = MAC(MK, unique-id), where MK is a secret master
847    key and MAC is a keyed one-way function such as HMAC-MD5.
849    Without knowledge of the master key MK, an unauthorized client cannot
850    generate its own key K.  The server can quickly validate an incoming
851    message from a new client by regenerating K from the client-id.  For
852    known clients, the server can choose to recover the client's K
853    dynamically from the client-id in the DHCP message, or can choose to
854    precompute and cache all of the Ks a priori.
856    To avoid compromis of this key management system, the master key, MK,
857    MUST NOT be stored by any clients.  The client SHOULD only be given
858    its key, K.  If MK is compromised, a new MK SHOULD be chosen and all
859    clients given new individual keys.
892 Droms, Arbaugh                                                 [Page 16]