Network Working Group T. Jinmei Internet-Draft Toshiba Expires: January 10, 2005 July 12, 2004 Clarifications on DHCPv6 Authentication draft-jinmei-dhc-dhcpv6-clarify-auth-00.txt Status of this Memo By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on January 10, 2005. Copyright Notice Copyright (C) The Internet Society (2004). All Rights Reserved. Abstract This document describes issues about the DHCPv6 authentication mechanism identified from implementation experiences. It also tries to propose resolutions to some of the issues. 1. Introduction Several questions arose on the authentication mechanism of DHCPv6 [RFC3315] from implementation experiences, particularly on its delayed authentication protocol. Some of the questions may require a change or addition to the current protocol, and one of them may even Jinmei Expires January 10, 2005 [Page 1] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 cause discussions on a security threat. This document describes the issues based on the questions, and tries to propose resolutions for some of them, hoping the resolutions will be merged, if valid and accepted, to the next version of the base specification. 2. Usage with Information-Request According to [RFC3315], it seems possible to use the authentication mechanism for Information-request and Reply exchanges. The RFC says in Section 21.4.4.4 as follows: If the server has selected a key for the client in a previous message exchange (see section 21.4.5.1), the client MUST use the same key to generate the authentication information throughout the session. However, this description is not really clear. Section 21.4.5.1, which is referred from the above part, actually describes the case of Solicit and Advertise exchange: 21.4.5.1. Receiving Solicit Messages and Sending Advertise Messages The server selects a key for the client and includes authentication information in the Advertise message returned to the client as specified in section 21.4. [...] It does not necessarily mean contradiction because the client and the server may have exchanged Solicit and Advertised with authentication before starting the Information-request and Reply exchange. However, it then restricts the usage scenario of the authentication mechanism for Information-request and Reply exchanges. In particular, this assumption prohibits the use of the mechanism with the "stateless" service using DHCPv6 [RFC3736]. Whereas the specification allows an implementation that only supports the stateless service and does not support Solicit and Advertise messages, the authentication mechanism depends on Solicit and Advertise exchanges. This fact can (partly) invalidate a security consideration in [RFC3736]: Authenticated DHCP, as described in sections 21 and 22.11 of the DHCP specification [1], can be used to avoid attacks mounted through the stateless DHCP service. (where [1] refers to [RFC3315].) In fact, as was just shown above, Jinmei Expires January 10, 2005 [Page 2] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 authenticated DHCP cannot be used unless the implementations also support Solicit and Advertise messages (or the entire [RFC3315] in general). It should also be noted that [RFC3315] does not define how the server should do when it receives an Information-request message containing an authentication option; Section 21.4.5.2 excludes the Information-request message. 2.1 Suggested Resolution Considering the fact that [RFC3736] allows implementations that only support the subset of the full specification [RFC3315], it should make sense to define the authentication usage for Information-request and Reply exchanges separately. One significant difference between Information-request and other "stateful" cases is that there is no explicit notion of "session" in the former. In some cases, however, the same client and server may exchange Information-request and Reply multiple times, where the entire exchanges can be regarded as a "session". For example, the client may want to get different configuration information in multiple exchanges. Also, if the client and the server use the lifetime option, [I-D.ietf-dhc-lifetime] they will restart exchanges when the lifetime expires. The proposed revision of Section 21.4.4.4 is therefore as follows: 21.4.4.4. Sending Information-request Messages When the client sends an Information-request message and wishes to use authentication, it includes an Authentication option with the desired protocol, algorithm and RDM as described in section 21.4. The client does not include any replay detection or authentication information in the Authentication option. If the client authenticated past exchanges of Information-request and Reply, the client MAY reuse the same key used in the previous exchanges to generate the authentication information. In this case, the client generates authentication information for the Information-request message as described in section 21.4. Note that the keys used for these exchanges are separately managed from the keys used for the other exchanges beginning with the Solicit message when the two types of exchanges run concurrently, while the two keys may happen to be the same. For example, replay detection should be performed separately, and validation failure for one type of exchanges does not affect the other. Jinmei Expires January 10, 2005 [Page 3] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 Section 21.4.4.5 will also need to be revised. However, since this section has a separate issue per se as will be discussed in Section 6, we do not discuss further details on this here. The server side behavior needs to be described, too. Along with the change to Section 21.4.4.4 above, we propose to add a new subsection of Section 21.4.5: 21.4.5.x. Receiving Information-request Messages and Sending Reply Messages If the Information-request message includes an authentication option without authentication information, the server selects a key for the client and includes authentication information in the Reply message returned to the client as specified in section 21.4. The server MUST record the identifier of the key selected for the client so that it can validate further Information-request messages from the client if the client reuses the same key for the future exchanges. If the Information-request message includes an authentication option with authentication information, the server uses the key identified in the message and validates the message as specified in section 21.4.2. If the message fails to pass the validation test, the key identified by the authentication information of the message is not identical to the key that the server used in the previous exchange, or the server has not recorded a key for the client, the server MUST discard the message and MAY choose to log the validation failure. If the message passes the validation test, the server responds to the Reply message as described in section 18.2.5. The server MUST include authentication information generated using the key just selected or identified in the received message, as specified in section 21.4. Note that the keys used for these exchanges are separately managed from the keys used for the other exchanges beginning with the Solicit message when the two types of exchanges run concurrently (See Section 21.4.4.4). 3. What If Replay Is Detected It is not clear what the receiver should do when an attempt of replay attack is detected from either Section 21.3 or Section 21.4.2 of [RFC3315]. Jinmei Expires January 10, 2005 [Page 4] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 3.1 Suggested Resolution It should be natural to discard a DHCP message containing an authentication option whose replay detection field indicates a replay attack. Instead of concentrating on this particular case, we propose to revise the entire second paragraph of Section 21.4.2 as follows: 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 specified by the RDM field. If no replay is detected, then the receiver computes the MAC as described in [8]. The entire DHCP message (setting the MAC field of the authentication option to 0) is used as input to the HMAC-MD5 computation function. If the MAC computed by the receiver matches the MAC contained in the authentication option, the message regarded as valid. If the above procedure fails at any stage, the receiver MUST discard the DHCP message. 4. Definition of Unauthenticated Messages [RFC3315] uses the phrase of "unauthenticated message(s)" in Sections 21.4.4.2 and 21.4.4.5 without formally defining the term. A reasonable interpretation of the phrase is probably as follows: a DHCPv6 message is called unauthenticated when it fails the validation test described in Section 21.4.2, it does not contain an authentication option, or when it includes an authentication option but does not have authentication information when necessary. In this document, we assume the above interpretation. 5. Inconsistent Behavior for Unauthenticated Messages [RFC3315] says in Section 21.4.2 (Message Validation) as follows: If the MAC computed by the receiver does not match the MAC contained in the authentication option, the receiver MUST discard the DHCP message. On the other hand, Section 21.4.4.2 allows the client to respond to an Advertise even if it fails to authenticate the message: Client behavior, if no Advertise messages include authentication information or pass the validation test, is controlled by local policy on the client. According to client policy, the client MAY choose to respond to an Advertise message that has not been authenticated. Jinmei Expires January 10, 2005 [Page 5] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 This seems to say, for example, that the client MAY accept an Advertise message based on its local policy, even if the MAC computed by the receiver does not match the MAC contained in the authentication option. Apparently this contradicts with the requirement in Section 21.4.2. 5.1 Suggested Resolution There seems to be no valid reason for accepting an Advertise message if it fails validation. On the other hand, it may make sense in some cases that the client accepts the other type of unauthenticated messages, that is, messages that do not include an authentication option. The suggested change to Section 21.4.4.2 is thus as follows. We use a new term "non-authenticated messages" meaning DHCPv6 messages that do not contain an authentication option. [...] Client behavior, if no Advertise messages include authentication information is controlled by local policy on the client. According to client policy, the client MAY choose to respond to a non-authenticated Advertise message. The decision to set local policy to accept non-authenticated messages should be made with care. Accepting a non-authenticated Advertise message can make the client vulnerable to spoofing and other attacks. If local users are not explicitly informed that the client has accepted a non-authenticated Advertise message, the users may incorrectly assume that the client has received an authenticated address and is not subject to DHCP attacks through non-authenticated messages. A client MUST be configurable to discard non-authenticated messages, and SHOULD be configured by default to discard non-authenticated messages if the client has been configured with an authentication key or other authentication information. If a client does accept a non-authenticated message, the client SHOULD inform any local users and SHOULD log the event. The second paragraph of Section 21.4.4.5 also needs a change: If the client accepted a non-authenticated Advertise message, the client MAY accept a non-authenticated Reply message from the server. If we take this suggestion, then we will not need the notion of Jinmei Expires January 10, 2005 [Page 6] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 "unauthenticated message". As a result, the issue described in Section 4 will become a non issue. 6. Possibility of Dos Attack Section 21.4.4.5 of the RFC says as follows: If the Reply fails to pass the validation test, the client MUST restart the DHCP configuration process by sending a Solicit message. The purpose of this specification is probably to avoid a deadlock scenario when the server suddenly reboots forgetting the authentication key and/or the replay detection counter. However, this behavior can easily cause denial of service (DoS) attacks; the attacker can simply send an invalid Reply message at some valid timing and can invalidate configuration information of the client or can prevent the client from configuring itself. As a side issue, this section seems to not consider Information-request and Reply exchanges. 6.1 Discussion on Resolution Even if a Reply message does not pass the validation tests, it is probably reasonable to wait for an authenticated one until the first timeout. Additionally, if the Reply message is a response to Release, the client will not have to restart the configuration process by Solicit. It can simply quit the session when the first timeout occurs. Reply messages to Information-request will need a separate consideration. Obviously, it does not make sense to send a Solicit message when the validation tests for a Reply message to Information-request fail. The appropriate behavior is probably to resend an Information-request message without including authentication information based on the key previously used, and to restart authentication. 7. Lack of Authentication from Client It is not clear what the server should do when the client does not include an authentication option while the server has previously sent authentication information in the same session. For messages other than Information-request, the appropriate behavior depends on the resolution for the issue discussed in Section 5. Jinmei Expires January 10, 2005 [Page 7] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 Assuming the proposed resolution is adopted, the server should discard the message, since the client should have accepted the key as long as it is valid and then must use the key for succeeding message according to Section 21.4.4.3 of [RFC3315]. The appropriate behavior for Information-request depends on the resolution discussed in Section 2. If we take the proposed resolution, then the server should accept the message and select a new key, which may be the same as the one used before though, for the new exchanges as described in Section 2. 8. Key Consistency [RFC3315] requests in Section 21.4.4.3 that the client use the same key used by the server to generate the authentication information. However, it is not clear from the RFC what the server should do if the client breaks this rule. It says in Section 21.4.5.2 that If the message [...] or the server does not know the key identified by the 'key ID' field, the server MUST discard the message and MAY choose to log the validation failure. It is not clear whether "does not know the key" means a different key from the one the server specified in the Advertise message. If this is the intent, this sentence should be clarified as follows: If the message [...] or the key identified by the authentication information of the message is not identical to the key that the server has been using in the session, the server MUST discard the message and MAY choose to log the validation failure. 9. Security Considerations This document specifically talks about security issues for DHCPv6. It also points out a possibility of DoS attacks, and gives some considerations on how to prevent them. 10. IANA Considerations This document has no actions for IANA. 11. References 11.1 Normative References [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C. and M. Carney, "Dynamic Host Configuration Protocol for IPv6 Jinmei Expires January 10, 2005 [Page 8] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 (DHCPv6)", RFC 3315, July 2003. [RFC3736] Droms, R., "Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6", RFC 3736, April 2004. 11.2 Informative References [I-D.ietf-dhc-lifetime] Venaas, S. and T. Chown, "Lifetime Option for DHCPv6", draft-ietf-dhc-lifetime-00 (work in progress), March 2004. Author's Address Tatuya Jinmei Corporate Research & Development Center, Toshiba Corporation 1 Komukai Toshiba-cho, Saiwai-ku Kawasaki-shi, Kanagawa 212-8582 Japan Phone: +81 44-549-2230 EMail: jinmei@isl.rdc.toshiba.co.jp Jinmei Expires January 10, 2005 [Page 9] Internet-Draft Clarifications on DHCPv6 Authentication July 2004 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. Copyright Statement Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Jinmei Expires January 10, 2005 [Page 10]