| draft-arkko-eap-aka-pfs-03.txt | draft-arkko-eap-aka-pfs.txt | |||
|---|---|---|---|---|
| Network Working Group J. Arkko | Network Working Group J. Arkko | |||
| Internet-Draft K. Norrman | Internet-Draft K. Norrman | |||
| Intended status: Informational V. Torvinen | Intended status: Informational V. Torvinen | |||
| Expires: April 26, 2019 Ericsson | Expires: July 25, 2019 Ericsson | |||
| October 23, 2018 | January 21, 2019 | |||
| Perfect-Forward Secrecy for the Extensible Authentication Protocol | Perfect-Forward Secrecy for the Extensible Authentication Protocol | |||
| Method for Authentication and Key Agreement (EAP-AKA' PFS) | Method for Authentication and Key Agreement (EAP-AKA' PFS) | |||
| draft-arkko-eap-aka-pfs-03 | draft-arkko-eap-aka-pfs-04 | |||
| Abstract | Abstract | |||
| Many different attacks have been reported as part of revelations | Many different attacks have been reported as part of revelations | |||
| associated with pervasive surveillance. Some of the reported attacks | associated with pervasive surveillance. Some of the reported attacks | |||
| involved compromising smart cards, such as attacking SIM card | involved compromising smart cards, such as attacking SIM card | |||
| manufacturers and operators in an effort to compromise shared secrets | manufacturers and operators in an effort to compromise shared secrets | |||
| stored on these cards. Since the publication of those reports, | stored on these cards. Since the publication of those reports, | |||
| manufacturing and provisioning processes have gained much scrutiny | manufacturing and provisioning processes have gained much scrutiny | |||
| and have improved. However, the danger of resourceful attackers for | and have improved. However, the danger of resourceful attackers for | |||
| skipping to change at page 2, line 4 | skipping to change at page 2, line 4 | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 26, 2019. | This Internet-Draft will expire on July 25, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 3, line 35 | skipping to change at page 3, line 35 | |||
| technology; the issue is not vulnerabilities in algorithms or | technology; the issue is not vulnerabilities in algorithms or | |||
| protocols, but rather the possibility of someone gaining unlawful | protocols, but rather the possibility of someone gaining unlawful | |||
| access to key material. While the better protection of manufacturing | access to key material. While the better protection of manufacturing | |||
| and other processes is essential in protecting against this, there is | and other processes is essential in protecting against this, there is | |||
| one question that we as protocol designers can ask. Is there | one question that we as protocol designers can ask. Is there | |||
| something that we can do to limit the consequences of attacks, should | something that we can do to limit the consequences of attacks, should | |||
| they occur? | they occur? | |||
| The authors want to provide a public specification of an extension | The authors want to provide a public specification of an extension | |||
| that helps defend against one aspect of pervasive surveillance. This | that helps defend against one aspect of pervasive surveillance. This | |||
| important, given the large number of users such practices may affect. | is important, given the large number of users such practices may | |||
| It is also a stated goal of the IETF to ensure that we understand the | affect. It is also a stated goal of the IETF to ensure that we | |||
| surveillance concerns related to IETF protocols and take appropriate | understand the surveillance concerns related to IETF protocols and | |||
| countermeasures [RFC7258]. This document does that for EAP-AKA'. | take appropriate countermeasures [RFC7258]. This document does that | |||
| for EAP-AKA'. | ||||
| This specification is an optional extension to the EAP-AKA' | This specification is an optional extension to the EAP-AKA' | |||
| authentication method [RFC5448] (to be superseded by | authentication method [RFC5448] (to be superseded by | |||
| [I-D.ietf-emu-rfc5448bis]). The extension, when negotiated, provides | [I-D.ietf-emu-rfc5448bis]). The extension, when negotiated, provides | |||
| Perfect Forward Secrecy for the session key generated as a part of | Perfect Forward Secrecy for the session key generated as a part of | |||
| the authentication run in EAP-AKA'. This prevents an attacker who | the authentication run in EAP-AKA'. This prevents an attacker who | |||
| has gained access to the long-term pre-shared secret in a SIM card | has gained access to the long-term pre-shared secret in a SIM card | |||
| from being able to decrypt all past communications. In addition, if | from being able to decrypt all past communications. In addition, if | |||
| the attacker stays merely a passive eavesdropper, the extension | the attacker stays merely a passive eavesdropper, the extension | |||
| prevents attacks against future sessions. This forces attackers to | prevents attacks against future sessions. This forces attackers to | |||
| skipping to change at page 8, line 23 | skipping to change at page 8, line 23 | |||
| reports of compromised long term pre-shared keys used in AKA | reports of compromised long term pre-shared keys used in AKA | |||
| [Heist2015]. These attacks are not specific to AKA or EAP-AKA', as | [Heist2015]. These attacks are not specific to AKA or EAP-AKA', as | |||
| all security systems fail at least to some extent if key material is | all security systems fail at least to some extent if key material is | |||
| stolen. However, the reports indicate a need to look into solutions | stolen. However, the reports indicate a need to look into solutions | |||
| that can operate at least to an extent under these types of attacks. | that can operate at least to an extent under these types of attacks. | |||
| It is noted in [Heist2015] that some security can be retained even in | It is noted in [Heist2015] that some security can be retained even in | |||
| the face of the attacks by providing Perfect Forward Security (PFS) | the face of the attacks by providing Perfect Forward Security (PFS) | |||
| [DOW1992] for the session key. If AKA would have provided PFS, | [DOW1992] for the session key. If AKA would have provided PFS, | |||
| compromising the pre-shared key would not be sufficient to perform | compromising the pre-shared key would not be sufficient to perform | |||
| passive attacks; the attacker is, in addition, forced to be a Man-In- | passive attacks; the attacker is, in addition, forced to be a Man-In- | |||
| The-Middle (MITM) during the AKA run. | The-Middle (MITM) during the AKA run and subsequent communication | |||
| between the parties. | ||||
| 4. Requirements Language | 4. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 5. Protocol Overview | 5. Protocol Overview | |||
| skipping to change at page 10, line 30 | skipping to change at page 10, line 30 | |||
| | RAND, AUTN | | | | | RAND, AUTN | | | | |||
| |<---------------| | | | |<---------------| | | | |||
| | | | | | | | | | | |||
| | CK, IK, RES | | | | | CK, IK, RES | | | | |||
| |-------------->| | | | |-------------->| | | | |||
| | | | | | | | | | | |||
| +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | |||
| | The peer now has everything to respond. If it wants | | | | The peer now has everything to respond. If it wants | | | |||
| | to participate in the PFS extension, it will then | | | | to participate in the PFS extension, it will then | | | |||
| | generate its key pair, calculate a shared key based | | | | generate its key pair, calculate a shared key based | | | |||
| | on its key pair the server's public key. Finally, | | | | on its key pair and the server's public key. | | | |||
| | it proceeds to derive all EAP-AKA' key values and | | | | Finally, it proceeds to derive all EAP-AKA' key | | | |||
| | and constructs a full response. | | | | values and and constructs a full response. | | | |||
| +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | |||
| | | | | | | | | | | |||
| | | EAP-Resp/AKA'-Challenge | | | | | EAP-Resp/AKA'-Challenge | | | |||
| | | AT_RES, AT_PUB_ECDHE, | | | | | AT_RES, AT_PUB_ECDHE, | | | |||
| | | AT_MAC | | | | | AT_MAC | | | |||
| | |------------------------->| | | | |------------------------->| | | |||
| | +-------------------------------------------------+ | | +-------------------------------------------------+ | |||
| | | The server now has all the necessary values. | | | | The server now has all the necessary values. | | |||
| | | It generates the ECDHE shared secret | | | | It generates the ECDHE shared secret | | |||
| | | and checks the RES and MAC values received | | | | and checks the RES and MAC values received | | |||
| skipping to change at page 14, line 28 | skipping to change at page 14, line 28 | |||
| internal use within one authentication run as | internal use within one authentication run as | |||
| [I-D.ietf-emu-rfc5448bis] EAP-AKA' does. For instance, K_aut that is | [I-D.ietf-emu-rfc5448bis] EAP-AKA' does. For instance, K_aut that is | |||
| used in AT_MAC is still exactly as it was in EAP-AKA'. The only | used in AT_MAC is still exactly as it was in EAP-AKA'. The only | |||
| change to key derivation is in re-authentication keys and keys | change to key derivation is in re-authentication keys and keys | |||
| exported out of the EAP method, MSK and EMSK. As a result, EAP-AKA' | exported out of the EAP method, MSK and EMSK. As a result, EAP-AKA' | |||
| attributes such as AT_MAC continue to be usable even when this | attributes such as AT_MAC continue to be usable even when this | |||
| extension is in use. | extension is in use. | |||
| When the Key Derivation Function field in the AT_KDF_PFS attribute is | When the Key Derivation Function field in the AT_KDF_PFS attribute is | |||
| set to 1 and the Key Derivation Function field in the AT_KDF | set to 1 and the Key Derivation Function field in the AT_KDF | |||
| attribute is also set to 1, the Master Key (MK) is derived and as | attribute is also set to 1, the Master Key (MK) is derived as follows | |||
| follows below. | below. | |||
| MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | |||
| MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' PFS"|Identity) | MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' PFS"|Identity) | |||
| K_encr = MK[0..127] | K_encr = MK[0..127] | |||
| K_aut = MK[128..383] | K_aut = MK[128..383] | |||
| K_re = MK_ECDHE[0..255] | K_re = MK_ECDHE[0..255] | |||
| MSK = MK_ECDHE[256..767] | MSK = MK_ECDHE[256..767] | |||
| EMSK = MK_ECDHE[768..1279] | EMSK = MK_ECDHE[768..1279] | |||
| Where SHARED_SECRET is the shared secret computed via ECDHE, as | Where SHARED_SECRET is the shared secret computed via ECDHE, as | |||
| skipping to change at page 20, line 14 | skipping to change at page 20, line 14 | |||
| Except of course, if the adversary holds the long-term shared | Except of course, if the adversary holds the long-term shared | |||
| secret and is willing to engage in an active attack. Such an | secret and is willing to engage in an active attack. Such an | |||
| attack can, for instance, forge the negotiation process so that | attack can, for instance, forge the negotiation process so that | |||
| no PFS will be provided. However, as noted above, an attacker | no PFS will be provided. However, as noted above, an attacker | |||
| with these capabilities will in any case be able to impersonate | with these capabilities will in any case be able to impersonate | |||
| any party in the protocol and perform MITM attacks. That is | any party in the protocol and perform MITM attacks. That is | |||
| not a situation that can be improved by a technical solution. | not a situation that can be improved by a technical solution. | |||
| However, as discussed in the introduction, even an attacker | However, as discussed in the introduction, even an attacker | |||
| with access to the long-term keys is required to be a MITM on | with access to the long-term keys is required to be a MITM on | |||
| each AKA run, which makes mass surveillance more laborous. | each AKA run and subsequent communication, which makes mass | |||
| surveillance more laborous. | ||||
| The security properties of the extension also depend on a | The security properties of the extension also depend on a | |||
| policy choice. As discussed in Section 6.5.4, both the peer | policy choice. As discussed in Section 6.5.4, both the peer | |||
| and the server make a policy decision of what to do when it was | and the server make a policy decision of what to do when it was | |||
| willing to peform the extension specified in this protocol, but | willing to peform the extension specified in this protocol, but | |||
| the other side does not wish to use the extension. Allowing | the other side does not wish to use the extension. Allowing | |||
| this has the benefit of allowing backwards compatibility to | this has the benefit of allowing backwards compatibility to | |||
| equipment that did not yet support the extension. When the | equipment that did not yet support the extension. When the | |||
| extension is not supported or negotiated by the parties, no PFS | extension is not supported or negotiated by the parties, no PFS | |||
| can obviously provided. | can obviously provided. | |||
| skipping to change at page 21, line 9 | skipping to change at page 21, line 9 | |||
| after the time that the protected communications are used. When | after the time that the protected communications are used. When | |||
| this extension is used, communications at time t0 can be protected | this extension is used, communications at time t0 can be protected | |||
| if at some later time t1 an adversary learns of long-term shared | if at some later time t1 an adversary learns of long-term shared | |||
| secret and has access to a recording of the encrypted | secret and has access to a recording of the encrypted | |||
| communications. | communications. | |||
| Obviously, this extension is still vulnerable to attackers that | Obviously, this extension is still vulnerable to attackers that | |||
| are willing to perform an active attack and who at the time of the | are willing to perform an active attack and who at the time of the | |||
| attack have access to the long-term shared secret. | attack have access to the long-term shared secret. | |||
| This extension does not change the properties of related to re- | This extension does not change the properties related to re- | |||
| authentication. No new Diffie-Hellman run is performed during the | authentication. No new Diffie-Hellman run is performed during the | |||
| re-authentication allowed by EAP-AKA'. However, if this extension | re-authentication allowed by EAP-AKA'. However, if this extension | |||
| was in use when the original EAP-AKA' authentication was | was in use when the original EAP-AKA' authentication was | |||
| performed, the keys used for re-authentication (K_re) are based on | performed, the keys used for re-authentication (K_re) are based on | |||
| the Diffie-Hellman keys, and hence continue to be equally safe | the Diffie-Hellman keys, and hence continue to be equally safe | |||
| against expose of the long-term secrets as the original | against expose of the long-term secrets as the original | |||
| authentication. | authentication. | |||
| In addition, it is worthwhile to discuss Denial-of-Service attacks | In addition, it is worthwhile to discuss Denial-of-Service attacks | |||
| and their impact on this protocol. The calculations involved in | and their impact on this protocol. The calculations involved in | |||
| skipping to change at page 21, line 52 | skipping to change at page 21, line 52 | |||
| message will not be sent unless the user has been identified as an | message will not be sent unless the user has been identified as an | |||
| active subscriber of the operator in question. While the initial | active subscriber of the operator in question. While the initial | |||
| identity can be spoofed before authentication has succeeded, this | identity can be spoofed before authentication has succeeded, this | |||
| reduces the efficiency of an attack. | reduces the efficiency of an attack. | |||
| o Finally, this memo specifies an order in which computations and | o Finally, this memo specifies an order in which computations and | |||
| checks must occur. When processing the EAP-Request/AKA'-Challenge | checks must occur. When processing the EAP-Request/AKA'-Challenge | |||
| message, for instance, the AKA authentication must be checked and | message, for instance, the AKA authentication must be checked and | |||
| succeed before the peer proceeds to calculating or processing the | succeed before the peer proceeds to calculating or processing the | |||
| PFS related parameters (see Section 6.5.4). The same is true of | PFS related parameters (see Section 6.5.4). The same is true of | |||
| EAP-Response/AKA'-Challenge (see Section 6.5.4. This ensures that | EAP-Response/AKA'-Challenge (see Section 6.5.4). This ensures | |||
| the parties need to show possession of the long-term secret in | that the parties need to show possession of the long-term secret | |||
| some way, and only then will the PFS calculations become active. | in some way, and only then will the PFS calculations become | |||
| This limits the Denial-of-Service to specific, identified | active. This limits the Denial-of-Service to specific, identified | |||
| subscribers. While botnets and other forms of malicious parties | subscribers. While botnets and other forms of malicious parties | |||
| could take advantage of actual subscribers and their key material, | could take advantage of actual subscribers and their key material, | |||
| at least such attacks are (a) limited in terms of subscribers they | at least such attacks are (a) limited in terms of subscribers they | |||
| control, and (b) identifiable for the purposes of blocking the | control, and (b) identifiable for the purposes of blocking the | |||
| affected subscribers. | affected subscribers. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This extension of EAP-AKA' shares its attribute space and subtypes | This extension of EAP-AKA' shares its attribute space and subtypes | |||
| with EAP-SIM [RFC4186], EAP-AKA [RFC4186], and EAP-AKA' | with EAP-SIM [RFC4186], EAP-AKA [RFC4186], and EAP-AKA' | |||
| skipping to change at page 23, line 32 | skipping to change at page 23, line 32 | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [I-D.ietf-emu-rfc5448bis] | [I-D.ietf-emu-rfc5448bis] | |||
| Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, | Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, | |||
| "Improved Extensible Authentication Protocol Method for | "Improved Extensible Authentication Protocol Method for | |||
| 3rd Generation Authentication and Key Agreement (EAP- | 3rd Generation Authentication and Key Agreement (EAP- | |||
| AKA')", draft-ietf-emu-rfc5448bis-03 (work in progress), | AKA')", draft-ietf-emu-rfc5448bis-04 (work in progress), | |||
| October 2018. | January 2019. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [RFC4186] Haverinen, H., Ed. and J. Salowey, Ed., "Extensible | [RFC4186] Haverinen, H., Ed. and J. Salowey, Ed., "Extensible | |||
| Authentication Protocol Method for Global System for | Authentication Protocol Method for Global System for | |||
| Mobile Communications (GSM) Subscriber Identity Modules | Mobile Communications (GSM) Subscriber Identity Modules | |||
| (EAP-SIM)", RFC 4186, DOI 10.17487/RFC4186, January 2006, | (EAP-SIM)", RFC 4186, DOI 10.17487/RFC4186, January 2006, | |||
| <https://www.rfc-editor.org/info/rfc4186>. | <https://www.rfc-editor.org/info/rfc4186>. | |||
| [RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS | [RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS | |||
| skipping to change at page 24, line 37 | skipping to change at page 24, line 37 | |||
| 2015, in https://firstlook.org/theintercept/2015/02/19/ | 2015, in https://firstlook.org/theintercept/2015/02/19/ | |||
| great-sim-heist/ . | great-sim-heist/ . | |||
| [DOW1992] Diffie, W., vanOorschot, P., and M. Wiener, | [DOW1992] Diffie, W., vanOorschot, P., and M. Wiener, | |||
| "Authentication and Authenticated Key Exchanges", June | "Authentication and Authenticated Key Exchanges", June | |||
| 1992, in Designs, Codes and Cryptography 2 (2): pp. | 1992, in Designs, Codes and Cryptography 2 (2): pp. | |||
| 107-125. | 107-125. | |||
| Appendix A. Change Log | Appendix A. Change Log | |||
| The -04 version of this draft made only editorial changes. | ||||
| The -03 version of this draft changed the naming of various protocol | The -03 version of this draft changed the naming of various protocol | |||
| components, values, and notation to match with the use of ECDH in | components, values, and notation to match with the use of ECDH in | |||
| ephemeral mode. The AT_KDF_PFS engotiation process was clarified in | ephemeral mode. The AT_KDF_PFS negotiation process was clarified in | |||
| that exactly one key is ever sent in AT_KDF_ECDHE. The option of | that exactly one key is ever sent in AT_KDF_ECDHE. The option of | |||
| checking for zero key values IN ECDHE was added. The format of the | checking for zero key values IN ECDHE was added. The format of the | |||
| actual key in AT_PUB_ECDHE was specified. Denial-of-service | actual key in AT_PUB_ECDHE was specified. Denial-of-service | |||
| considerations for the PFS process have been updated. Bidding down | considerations for the PFS process have been updated. Bidding down | |||
| attacks against this extension itself are discussed extensively. | attacks against this extension itself are discussed extensively. | |||
| This version also addressed comments from reviewers, including the | This version also addressed comments from reviewers, including the | |||
| August review from Mohit Sethi, and comments made during IETF-102 | August review from Mohit Sethi, and comments made during IETF-102 | |||
| discussion. | discussion. | |||
| Appendix B. Acknowledgments | Appendix B. Acknowledgments | |||
| End of changes. 14 change blocks. | ||||
| 24 lines changed or deleted | 29 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||