RFC 3118
Authentication for DHCP Messages
RFC 3118: Authentication for DHCP Messages ๐
Okay bestie, this one is all about DHCP (the thing that hands your device its network settings). It's by R. Droms (Editor, Cisco Systems) and W. Arbaugh (Editor, University of Maryland). It's a Standards Track doc from June 2001, and it's published as "Network Working Group" material. Nothing is listed as obsoleted or updated. ๐
Status of This Memo โจ
This doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements. Check the current edition of "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. It can be distributed freely. ๐
Copyright Notice ๐
Copyright (C) The Internet Society (2001). All Rights Reserved. ๐ฆ
Abstract ๐
This doc defines a new Dynamic Host Configuration Protocol (DHCP) option. With it, authorization tickets are easy to generate, and newly attached hosts with proper authorization can get configured automatically by an authenticated DHCP server. DHCP is the framework for passing configuration info to hosts on a TCP/IP network. Sometimes network admins want to limit which authorized hosts get addresses, and some want to authenticate where DHCP messages come from and what's inside them. Super relevant. ๐
1. Introduction โจ
DHCP [1] moves protocol stack configuration parameters from centrally administered servers to TCP/IP hosts. One of those parameters is an IP address. DHCP servers can be set up to hand out addresses from a pool, so nobody has to do that manual config step on each TCP/IP host. Iconic. ๐
Some network admins want to authenticate the source and contents of DHCP messages. Clients can get hit by denial of service attacks from bogus DHCP servers, or they can just get misconfigured by accidentally started DHCP servers. Admins may want to limit address allocation to authorized hosts so they can avoid denial of service attacks in "hostile" places where the network medium isn't physically secured, like wireless networks or college residence halls. Not me, lowkey terrifying. ๐
This doc defines a technique that can give both entity authentication and message authentication. The protocol here combines the original Schiller-Huitema-Droms authentication mechanism (from an earlier work in progress) with the "delayed authentication" proposal developed by Bill Arbaugh. The two-in-one energy is unmatched. ๐ซถ
1.1 DHCP threat model ๐
The threat to DHCP is basically an insider threat (assuming a properly configured network where BOOTP ports are blocked on the enterprise's perimeter gateways.) Still, no matter how the gateways are configured, the potential attacks from insiders and outsiders are the same. ๐ฅ
The attack that's specific to a DHCP client is a "rogue" server that's set up to give the client incorrect configuration info. The point of doing that might be a "man in the middle" attack, or it might just be a "denial of service" attack. Chaotic. ๐ญ
There's another threat to DHCP clients from DHCP servers that were configured by mistake or by accident. They answer client requests with configuration parameters that are wrong, even though nobody meant for that to happen. ๐ง
The threat that's specific to a DHCP server is an invalid client pretending to be a valid one. It might be "theft of service," or someone trying to dodge auditing for any number of shady reasons. ๐ โโ๏ธ
The threat both the client and the server deal with is the resource "denial of service" (DoS) attack. These attacks usually involve running out of valid addresses, or running out of CPU or network bandwidth. They show up anywhere there's a shared resource. In current practice, redundancy is the best way to mitigate DoS attacks. ๐ธ
1.2 Design goals ๐
These are the goals used to develop the authentication protocol, listed in order of importance:
- Address the threats presented in Section 1.1.
- Avoid changing the current protocol.
- Limit state required by the server.
- Limit complexity (complexity breeds design and implementation errors).
1.3 Requirements Terminology ๐
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [5]. Those are the official words. Pay attention to them. ๐
1.4 DHCP Terminology ๐ฆ
This document uses the following terms:
- "DHCP client"
A DHCP client or "client" is an Internet host using DHCP to obtain configuration parameters such as a network address.
- "DHCP server"
A DHCP server or "server" is an Internet host that returns configuration parameters to DHCP clients.
2. Format of the authentication option ๐
The following diagram defines the format of the DHCP authentication option:
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Length | Protocol | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RDM | Replay Detection (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. | |
+-+-+-+-+-+-+-+-+ |
| |
| Authentication Information |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code for the authentication option is 90. The length field holds the length, in octets, of the protocol, RDM, algorithm, Replay Detection fields and authentication information fields. ๐
The protocol field picks the particular authentication technique used in the option. New protocols get defined the way Section 6 describes. โจ
The algorithm field picks the specific algorithm inside the technique that the protocol field named. ๐ง
The Replay Detection field follows the RDM, and the authentication information field follows whatever protocol is in use. ๐ซง
The Replay Detection Method (RDM) field decides what type of replay detection goes in the Replay Detection field. ๐
If the RDM field contains 0x00, the replay detection field MUST be set to the value of a monotonically increasing counter. Using a counter value like the current time of day (for example, an NTP-format timestamp [4]) can reduce the danger of replay attacks. This method MUST be supported by all protocols. Periodt. ๐
3. Interaction with Relay Agents ๐ฆ
A DHCP relay agent can change the values of the giaddr and hops fields in the DHCP message. Because of that, the contents of those two fields MUST be set to zero when computing any hash function over the message header. A relay agent can also tack the DHCP relay agent information option 82 [7] on as the last option in a message going to servers. If a server finds option 82 in a message it received, the server MUST compute any hash function as if the option were NOT included in the message, and it MUST NOT change the order of options. Whenever the server sends option 82 back to a relay agent, the server MUST not include the option in the computation of any hash function over the message. ๐งโโ๏ธ
4. Configuration token ๐
If the protocol field is 0, the authentication information field holds a simple configuration token:
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Length |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Replay Detection (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. | |
|-+-+-+-+-+-+-+-+ |
| |
| Authentication Information |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The configuration token is an opaque, unencoded value that both the sender and the receiver know. The sender puts the configuration token in the DHCP message, and the receiver matches the token from the message against the shared token. If the configuration option is present and the token from the message doesn't match the shared token, the receiver MUST discard the message. ๐ โโ๏ธ
A configuration token can carry a plain-text configuration token, and it only gives weak entity authentication with no message authentication. This protocol is only good for rudimentary protection against accidentally started DHCP servers. Be realistic, bestie. ๐ธ
DISCUSSION:
The intent here is to pass a constant, non-computed token such as a plain-text password. Other types of entity authentication that use computed tokens, like Kerberos tickets or one-time passwords, will be defined as separate protocols. ๐งฉ
5. Delayed authentication ๐
If the protocol field is 1, the message is using the "delayed authentication" mechanism. In delayed authentication, the client asks for authentication in its DHCPDISCOVER message, and the server replies with a DHCPOFFER message that includes authentication information. That authentication information has a nonce value that the source generates as a message authentication code (MAC), which gives message authentication and entity authentication. Main character energy. โจ
This document defines the use of one particular technique, based on the HMAC protocol [3] using the MD5 hash [2]. ๐
5.1 Management Issues ๐
The "delayed authentication" protocol doesn't try to handle situations where a client roams from one administrative domain to another, which is interdomain roaming. This protocol focuses on the intradomain problem, where swapping a shared secret out-of-band is doable. Keep it within the domain, babe. ๐
5.2 Format โจ
Okay bestie, here's how the authentication request looks in a DHCPDISCOVER or DHCPINFORM message for delayed authentication ๐ง:
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Length |0 0 0 0 0 0 0 1| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RDM | Replay Detection (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. |
+-+-+-+-+-+-+-+-+
And the authentication information in a DHCPOFFER, DHCPREQUEST or DHCPACK message for delayed authentication looks like this ๐ :
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Length |0 0 0 0 0 0 0 1| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RDM | Replay Detection (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Replay cont. | Secret ID (32 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| secret id cont| HMAC-MD5 (128 bits) ....
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Next up are the definitions for the authentication information in delayed authentication, algorithm 1 ๐ธ:
Replay Detection - as defined by the RDM field
K - a secret value shared between the source and
destination of the message; each secret has a
unique identifier (secret ID)
secret ID - the unique identifier for the secret value
used to generate the MAC for this message
HMAC-MD5 - the MAC generating function [3, 2].
So the sender works out the MAC using the HMAC generation algorithm [3] and the MD5 hash function [2] ๐ฅ. The whole DHCP message goes into the HMAC-MD5 computation, including the DHCP message header and the options field, with one exception that's noted below. The 'secret ID' field MUST be set to the identifier of the secret used to generate the MAC.
DISCUSSION: ๐
Algorithm 1 is all about HMAC-MD5. If you want a different technique, like HMAC-SHA, that'll be specified as its own separate protocol ๐ฆ.
Delayed authentication needs a shared secret key for each client on each DHCP server that the client might want to talk to. Every secret key gets its own unique identifier, so a receiver can figure out which secret was used to generate the MAC in a given DHCP message. Ngl, that also means delayed authentication may not scale well in an architecture where a DHCP client connects to multiple administrative domains ๐ญ.
5.3 Message validation ๐ง
To validate an incoming message, the receiver first checks that the value in the replay detection field is acceptable according to the replay detection method that the RDM field specifies. Next, the receiver computes the MAC as described in [3]. The receiver MUST set the 'MAC' field of the authentication option to all 0s for the computation of the MAC. Also, because a DHCP relay agent may alter the values of the 'giaddr' and 'hops' fields in the DHCP message, the contents of those two fields MUST also be set to zero for the MAC computation. If the MAC the receiver computes doesn't match the MAC in the authentication option, the receiver MUST discard the DHCP message ๐ซ.
Section 3 has more info on handling messages that include option 82 (Relay Agents) ๐.
5.4 Key utilization ๐
Each DHCP client has a key, K. The client uses its key to encode any messages it sends to the server, and to authenticate and verify any messages it gets back from the server ๐. The client's key SHOULD be distributed to the client at first through some out-of-band mechanism, and SHOULD be stored locally on the client so it can be used in all authenticated DHCP messages. Once the client has its key, it SHOULD use that same key for all transactions, even if the client's configuration changes, like when it gets a new network address.
Each DHCP server MUST know the keys for all authorized clients, or be able to obtain them in a secure manner. If all clients share the same key, clients can do both entity and message authentication for every message they receive from servers. Hot take though: sharing keys is strongly discouraged ๐ โโ๏ธ, because it lets unauthorized clients pretend to be authorized clients by getting a copy of the shared key. So to authenticate individual clients, each client MUST be configured with a unique key. Appendix A describes a technique for key management ๐.
5.5 Client considerations ๐ฌ
This section is all about how a DHCP client behaves when it's using delayed authentication.
5.5.1 INIT state ๐ท
When a client is in INIT state, it uses delayed authentication like this:
- The client MUST include the authentication request option in its DHCPDISCOVER message, along with a client identifier option [6] so the server knows exactly who it is ๐ซถ.
- The client MUST perform the validation test described in section 5.3 on any DHCPOFFER messages that include authentication information. If one or more DHCPOFFER messages pass the validation test, the client picks one of the offered configurations โจ.
What the client does when no DHCPOFFER messages include authentication information, or none of them pass the validation test, is up to its local policy. According to that policy, the client MAY choose to respond to a DHCPOFFER message that hasn't been authenticated ๐.
Setting local policy to accept unauthenticated messages should be done with care ๐. Accepting an unauthenticated DHCPOFFER message can leave the client open to spoofing and other attacks. And if local users aren't explicitly told that the client accepted an unauthenticated DHCPOFFER, they might wrongly assume the client got an authenticated address and isn't exposed to DHCP attacks through unauthenticated messages. Yikes ๐.
A client MUST be configurable to decline unauthenticated messages, and SHOULD be configured by default to decline them ๐ก๏ธ. A client MAY choose to treat DHCPOFFER messages with no authentication information differently from DHCPOFFER messages that fail the validation test. For example, a client might accept the first kind and discard the second. If a client does accept an unauthenticated message, it SHOULD inform any local users and SHOULD log the event ๐.
- The client replies with a DHCPREQUEST message that MUST include authentication information encoded with the same secret the server used in the selected DHCPOFFER message ๐.
- If the client authenticated the DHCPOFFER it accepted, the client MUST validate the DHCPACK message from the server. The client MUST discard the DHCPACK if it fails validation, and MAY log the validation failure ๐ชต. If the DHCPACK fails validation, the client MUST revert to INIT state and returns to step 1 ๐. The client MAY choose to remember which server sent a DHCPACK message that failed validation, and discard later messages from that server ๐ท.
If the client accepted a DHCPOFFER message that either had no authentication information or didn't pass the validation test, the client MAY accept an unauthenticated DHCPACK message from the server ๐คทโโ๏ธ.
5.5.2 INIT-REBOOT state ๐
When a client is in INIT-REBOOT state, it MUST use the secret it used in its DHCPREQUEST message to get its current configuration, and use that to generate authentication information for the DHCPREQUEST message. The client MAY choose to accept unauthenticated DHCPACK/DHCPNAK messages if it didn't receive any authenticated messages. The client MUST treat the receipt (or lack of receipt) of any DHCPACK/DHCPNAK messages as specified in section 3.2 of [1] ๐.
5.5.3 RENEWING state ๐ฟ
When a client is in RENEWING state, it uses the secret it used in its initial DHCPREQUEST message to get its current configuration, and uses that to generate authentication information for the DHCPREQUEST message. If the client receives no DHCPACK messages, or none of the DHCPACK messages pass validation, it behaves as if it had not received a DHCPACK message, per section 4.4.5 of the DHCP specification [1] ๐ซ .
5.5.4 REBINDING state ๐ช๏ธ
When a client is in REBINDING state, it uses the secret it used in its initial DHCPREQUEST message to get its current configuration, and uses that to generate authentication information for the DHCPREQUEST message. If the client receives no DHCPACK messages, or none of the DHCPACK messages pass validation, it behaves as if it had not received a DHCPACK message, per section 4.4.5 of the DHCP specification [1] ๐ซ .
5.5.5 DHCPINFORM message ๐ญ
Since the client already has some configuration information, it may also have set up a shared secret value, K, with a server. So when a shared secret value exists, the client SHOULD use the authentication request the same way it does in a DHCPDISCOVER message ๐. The client MUST treat any DHCPACK messages it receives the same way it treats DHCPOFFER messages, see section 5.5.1.
5.5.6 DHCPRELEASE message ๐
The client is already in the BOUND state, so it already has a security association with the server. That means the client MUST include authentication information with the DHCPRELEASE message ๐.
5.6 Server considerations ๐ฅ๏ธ
This section describes how a server responds to client messages when delayed authentication is in use ๐.
5.6.1 General considerations โจ
okay so every server keeps a list of secrets, plus an identifier for each secret, for the clients it shares them with (and the clients it might share them with later) ๐ this info must be kept in a way that lets the server do two things:
- Find the right secret and its identifier for a client it may never have talked to before ๐ธ
- Grab the secret and identifier that a client was using, for a client it already gave configuration info to ๐
Each server MUST save the counter from the previous authenticated message. And a server MUST discard any incoming message that fails the replay detection check as defined by the RDM avoid replay attacks ๐ซ no replays allowed, bestie ๐
DISCUSSION:
The authenticated DHCPREQUEST from a client in INIT-REBOOT state can only be validated by servers that used the same secret in their DHCPOFFER messages. Everyone else will just toss that DHCPREQUEST ๐๏ธ so only the servers that used the client's chosen secret can tell that their offered config wasn't picked, and that the offered network address can go back into their pool of available addresses ๐ฆ the servers that can't validate it will eventually return their offered addresses to the pool too, as described in section 3.1 of the DHCP specification [1]. it's giving "patient, but make it secure" ๐ซถ
5.6.2 After receiving a DHCPDISCOVER message
The server picks a secret for the client and puts authentication info in the DHCPOFFER message, as specified in section 5, above ๐ The server MUST record the identifier of the secret it picked for the client, and it MUST use that same secret for validating later messages with that client. main character consistency, literally ๐
5.6.3 After receiving a DHCPREQUEST message
The server uses the secret identified in the message and validates the message as specified in section 5.3. If the message fails validation, or the server doesn't know the secret named in the 'secret ID' field, the server MUST discard the message and MAY choose to log the validation failure ๐ no cap, that's a hard no โ
If the message passes validation, the server responds the way the DHCP specification describes ๐ The server MUST include authentication info generated as specified in section 5.2. โจ
5.6.4 After receiving a DHCPINFORM message
The server MAY choose to accept unauthenticated DHCPINFORM messages, or only accept authenticated ones, depending on site policy ๐ it's the server's call, bestie.
When a client includes the authentication request in a DHCPINFORM message, the server MUST respond with an authenticated DHCPACK message ๐ฅ If the server doesn't have a shared secret established with the DHCPINFORM sender, then the server MAY respond with an unauthenticated DHCPACK message, or a DHCPNAK if the server doesn't accept unauthenticated clients based on site policy, or the server MAY choose not to respond to the DHCPINFORM message at all ๐ three options, all valid, pick your fighter ๐ง
6. IANA Considerations ๐
Section 2 defines a new DHCP option called the Authentication Option, and its option code is 90 ๐
This document sets up three new name spaces for the Authentication Option, which IANA will create and maintain: Protocol, Algorithm and RDM ๐
The initial Protocol values are 0 (for the configuration token Protocol in section 4) and 1 (for the delayed authentication Protocol in section 5). More Protocol values will be handed out through IETF Consensus, as defined in RFC 2434 [8] ๐
The Algorithm name space belongs to each individual Protocol. so every Protocol gets its own Algorithm name space ๐ฆ whoever defines a new Protocol should also say how Algorithm values get assigned for it.
For the configuration token Protocol, the Algorithm field MUST be 0 ๐ For the delayed authentication Protocol, Algorithm value 1 is assigned to the HMAC-MD5 generating function as defined in section 5 ๐ More Algorithm values for Algorithm 1 will come through IETF Consensus, as defined in RFC 2434.
The initial value 0 in the RDM name space is for using a monotonically increasing value, as defined in section 2 โญ More RDM values will be assigned through IETF Consensus, as defined in RFC 2434. โจ
7. References ๐
- [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997.
- [2] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.
- [3] Krawczyk H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.
- [4] Mills, D., "Network Time Protocol (Version 3)", RFC 1305, March 1992.
- [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2219, March 1997.
- [6] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, March 1997.
- [7] Patrick, M., "DHCP Relay Agent Information Option", RFC 3046, January 2001.
- [8] Narten, T. and H. Alvestrand, "Guidelines for Writing and IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
8. Acknowledgments ๐ซถ
Jeff Schiller and Christian Huitema developed the original version of this authentication protocol in a terminal room BOF at the Dallas IETF meeting, December 1995 ๐ธ One of the editors (Droms) transcribed the notes from that discussion, and those notes became the basis for this document ๐ The editors appreciate Jeff's and Christian's patience in reviewing this document and its earlier drafts ๐
The "delayed authentication" mechanism used in section 5 is due to Bill Arbaugh ๐ง The threat model and requirements in sections 1.1 and 1.2 come from Bill's negotiation protocol proposal ๐ฆ The attendees of an interim meeting of the DHC WG held in June, 1998, including Peter Ford, Kim Kinnear, Glenn Waters, Rob Stevens, Bill Arbaugh, Baiju Patel, Carl Smith, Thomas Narten, Stewart Kwan, Munil Shah, Olafur Gudmundsson, Robert Watson, Ralph Droms, Mike Dooley, Greg Rabil and Arun Kapur, developed the threat model and reviewed several alternative proposals ๐ The replay detection method field is due to Vipul Gupta ๐ Other input from Bill Sommerfield is gratefully acknowledged ๐ And thanks to John Wilkins, Ran Atkinson, Shawn Mamros and Thomas Narten for reviewing earlier drafts of this document โจ
9. Security Considerations ๐
This document describes authentication and verification mechanisms for DHCP. Serious stuff, bestie ๐ Read the next bit carefully ๐
9.1 Protocol vulnerabilities
The configuration token authentication mechanism is vulnerable to interception, and it only gives the most rudimentary protection against inadvertently instantiated DHCP servers ๐ญ
The delayed authentication mechanism described in this document is vulnerable to a denial of service attack through flooding with DHCPDISCOVER messages, which aren't authenticated by this protocol ๐จ Such an attack may overwhelm the computer the DHCP server runs on, and may exhaust the addresses available for assignment by the DHCP server ๐
Delayed authentication may also be vulnerable to a denial of service attack through flooding with authenticated messages ๐ฑ That can overwhelm the computer the DHCP server runs on, because the authentication keys for the incoming messages have to be computed.
9.2 Protocol limitations
Delayed authentication does not support interdomain authentication ๐
A real digital signature mechanism such as RSA would provide better security. It's currently computationally infeasible, but still, it's giving "future goals" ๐ฎ
10. Editors' Addresses ๐ฎ
Ralph Droms
Cisco Systems
300 Apollo Drive
Chelmsford, MA 01824
Phone: (978) 244-4733
EMail: rdroms@cisco.com
Bill Arbaugh
Department of Computer Science
University of Maryland
A.V. Williams Building
College Park, MD 20742
Phone: (301) 405-2774
EMail: waa@cs.umd.edu
Appendix A - Key Management Technique ๐๏ธ
To avoid managing a centralized list of random keys, suppose K for each client is generated from the pair (client identifier [6], subnet address, e.g., 192.168.1.0), which must be unique to that client ๐งฉ That is, K = MAC(MK, unique-id), where MK is a secret master key and MAC is a keyed one-way function such as HMAC-MD5 ๐
Without knowing the master key MK, an unauthorized client can't generate its own key K ๐ซ The server can quickly validate an incoming message from a new client by regenerating K from the client-id โก For known clients, the server can choose to recover the client's K dynamically from the client-id in the DHCP message, or it can precompute and cache all of the Ks a priori ๐พ
By deriving all keys from one master key, the DHCP server doesn't need access to clear text passwords, and it can compute and verify the keyed MACs without help from a centralized authentication server ๐
To avoid compromising this key management system, the master key, MK, MUST NOT be stored by any clients ๐ The client SHOULD only be given its key, K. If MK is compromised, a new MK SHOULD be chosen and all clients given new individual keys ๐
Full Copyright Statement
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the Internet Society. ๐โจ
๐ฆ where this page comes from
- ietf: rfc3118 2001-06
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms