| < draft-ietf-emu-eaptlscert-06.txt | draft-ietf-emu-eaptlscert-07.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Sethi | Network Working Group M. Sethi | |||
| Internet-Draft J. Mattsson | Internet-Draft J. Mattsson | |||
| Intended status: Informational Ericsson | Intended status: Informational Ericsson | |||
| Expires: May 1, 2021 S. Turner | Expires: May 23, 2021 S. Turner | |||
| sn3rd | sn3rd | |||
| October 28, 2020 | November 19, 2020 | |||
| Handling Large Certificates and Long Certificate Chains | Handling Large Certificates and Long Certificate Chains | |||
| in TLS-based EAP Methods | in TLS-based EAP Methods | |||
| draft-ietf-emu-eaptlscert-06 | draft-ietf-emu-eaptlscert-07 | |||
| Abstract | Abstract | |||
| The Extensible Authentication Protocol (EAP), defined in RFC3748, | The Extensible Authentication Protocol (EAP), defined in RFC3748, | |||
| provides a standard mechanism for support of multiple authentication | provides a standard mechanism for support of multiple authentication | |||
| methods. EAP-Transport Layer Security (EAP-TLS) and other TLS-based | methods. EAP-Transport Layer Security (EAP-TLS) and other TLS-based | |||
| EAP methods are widely deployed and used for network access | EAP methods are widely deployed and used for network access | |||
| authentication. Large certificates and long certificate chains | authentication. Large certificates and long certificate chains | |||
| combined with authenticators that drop an EAP session after only 40 - | combined with authenticators that drop an EAP session after only 40 - | |||
| 50 round-trips is a major deployment problem. This document looks at | 50 round-trips is a major deployment problem. This document looks at | |||
| the this problem in detail and describes the potential solutions | this problem in detail and describes the potential solutions | |||
| available. | available. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 May 1, 2021. | This Internet-Draft will expire on May 23, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Experience with Deployments . . . . . . . . . . . . . . . . . 4 | 3. Experience with Deployments . . . . . . . . . . . . . . . . . 4 | |||
| 4. Handling of Large Certificates and Long Certificate Chains . 5 | 4. Handling of Large Certificates and Long Certificate Chains . 5 | |||
| 4.1. Updating Certificates and Certificate Chains . . . . . . 5 | 4.1. Updating Certificates and Certificate Chains . . . . . . 5 | |||
| 4.1.1. Guidelines for Certificates . . . . . . . . . . . . . 5 | 4.1.1. Guidelines for Certificates . . . . . . . . . . . . . 6 | |||
| 4.1.2. Pre-distributing and Omitting CA certificates . . . . 7 | 4.1.2. Pre-distributing and Omitting CA certificates . . . . 7 | |||
| 4.1.3. Using Fewer Intermediate Certificates . . . . . . . . 7 | 4.1.3. Using Fewer Intermediate Certificates . . . . . . . . 7 | |||
| 4.2. Updating TLS and EAP-TLS Code . . . . . . . . . . . . . . 7 | 4.2. Updating TLS and EAP-TLS Code . . . . . . . . . . . . . . 7 | |||
| 4.2.1. URLs for Client Certificates . . . . . . . . . . . . 7 | 4.2.1. URLs for Client Certificates . . . . . . . . . . . . 7 | |||
| 4.2.2. Caching Certificates . . . . . . . . . . . . . . . . 8 | 4.2.2. Caching Certificates . . . . . . . . . . . . . . . . 8 | |||
| 4.2.3. Compressing Certificates . . . . . . . . . . . . . . 8 | 4.2.3. Compressing Certificates . . . . . . . . . . . . . . 8 | |||
| 4.2.4. Compact TLS 1.3 . . . . . . . . . . . . . . . . . . . 9 | 4.2.4. Compact TLS 1.3 . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.2.5. Suppressing Intermediate Certificates . . . . . . . . 9 | 4.2.5. Suppressing Intermediate Certificates . . . . . . . . 9 | |||
| 4.2.6. Raw Public Keys . . . . . . . . . . . . . . . . . . . 9 | 4.2.6. Raw Public Keys . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.2.7. New Certificate Types and Compression Algorithms . . 9 | 4.2.7. New Certificate Types and Compression Algorithms . . 10 | |||
| 4.3. Updating Authenticators . . . . . . . . . . . . . . . . . 10 | 4.3. Updating Authenticators . . . . . . . . . . . . . . . . . 10 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 12 | 7.2. Informative References . . . . . . . . . . . . . . . . . 12 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 1. Introduction | 1. Introduction | |||
| The Extensible Authentication Protocol (EAP), defined in [RFC3748], | The Extensible Authentication Protocol (EAP), defined in [RFC3748], | |||
| provides a standard mechanism for support of multiple authentication | provides a standard mechanism for support of multiple authentication | |||
| methods. EAP-Transport Layer Security (EAP-TLS) [RFC5216] | methods. EAP-Transport Layer Security (EAP-TLS) [RFC5216] | |||
| [I-D.ietf-emu-eap-tls13] relies on TLS [RFC8446] to provide strong | [I-D.ietf-emu-eap-tls13] relies on TLS [RFC8446] to provide strong | |||
| mutual authentication with certificates [RFC5280] and is widely | mutual authentication with certificates [RFC5280] and is widely | |||
| deployed and often used for network access authentication. There are | deployed and often used for network access authentication. There are | |||
| also many other TLS-based EAP methods, such as Flexible | also many other TLS-based EAP methods, such as Flexible | |||
| Authentication via Secure Tunneling (EAP-FAST) [RFC4851], Tunneled | Authentication via Secure Tunneling (EAP-FAST) [RFC4851], Tunneled | |||
| Transport Layer Security (EAP-TTLS) [RFC5281], Tunnel Extensible | Transport Layer Security (EAP-TTLS) [RFC5281], Tunnel Extensible | |||
| Authentication Protocol (EAP-TEAP) [RFC7170], and possibly many | Authentication Protocol (EAP-TEAP) [RFC7170], and possibly many | |||
| vendor specific EAP methods. | vendor-specific EAP methods. | |||
| Certificates in EAP deployments can be relatively large, and the | Certificates in EAP deployments can be relatively large, and the | |||
| certificate chains can be long. Unlike the use of TLS on the web, | certificate chains can be long. Unlike the use of TLS on the web, | |||
| where typically only the TLS server is authenticated; EAP-TLS | where typically only the TLS server is authenticated; EAP-TLS | |||
| deployments typically authenticates both the EAP peer and the EAP | deployments typically authenticate both the EAP peer and the EAP | |||
| server. Also, from deployment experience, EAP peers typically have | server. Also, from deployment experience, EAP peers typically have | |||
| longer certificate chains than servers. This is because EAP peers | longer certificate chains than servers. This is because EAP peers | |||
| often follow organizational hierarchies and tend to have many | often follow organizational hierarchies and tend to have many | |||
| intermediate certificates. Thus, EAP-TLS authentication usually | intermediate certificates. Thus, EAP-TLS authentication usually | |||
| involves exchange of significantly more octets than when TLS is used | involves exchange of significantly more octets than when TLS is used | |||
| as part of HTTPS. | as part of HTTPS. | |||
| Section 3.1 of [RFC3748] states that EAP implementations can assume a | Section 3.1 of [RFC3748] states that EAP implementations can assume a | |||
| MTU of at least 1020 octets from lower layers. The EAP fragment size | Maximum Transmission Unit (MTU) of at least 1020 octets from lower | |||
| in typical deployments is just 1020 - 1500 octets (since the maximum | layers. The EAP fragment size in typical deployments is just 1020 - | |||
| Ethernet frame size is ~ 1500 bytes). Thus, EAP-TLS authentication | 1500 octets (since the maximum Ethernet frame size is ~ 1500 bytes). | |||
| needs to be fragmented into many smaller packets for transportation | Thus, EAP-TLS authentication needs to be fragmented into many smaller | |||
| over the lower layers. Such fragmentation can not only negatively | packets for transportation over the lower layers. Such fragmentation | |||
| affect the latency, but also results in other challenges. For | not only can negatively affect the latency, but also results in other | |||
| example, some EAP authenticator (access point) implementations will | challenges. For example, some EAP authenticator (access point) | |||
| drop an EAP session if it has not finished after 40 - 50 round-trips. | implementations will drop an EAP session if it has not finished after | |||
| This is a major problem and means that in many situations, the EAP | 40 - 50 round-trips. This is a major problem and means that in many | |||
| peer cannot perform network access authentication even though both | situations, the EAP peer cannot perform network access authentication | |||
| the sides have valid credentials for successful authentication and | even though both the sides have valid credentials for successful | |||
| key derivation. | authentication and key derivation. | |||
| Not all EAP deployments are constrained by the MTU of the lower | Not all EAP deployments are constrained by the MTU of the lower | |||
| layer. For example, some implementations support EAP over Ethernet | layer. For example, some implementations support EAP over Ethernet | |||
| "Jumbo" frames that can easily allow very large EAP packets. Larger | "Jumbo" frames that can easily allow very large EAP packets. Larger | |||
| packets will naturally help lower the number of round trips required | packets will naturally help lower the number of round trips required | |||
| for successful EAP-TLS authentication. However, deployment | for successful EAP-TLS authentication. However, deployment | |||
| experience has shown that these jumbo frames are not always | experience has shown that these jumbo frames are not always | |||
| implemented correctly. Additionally, EAP fragment size is also | implemented correctly. Additionally, EAP fragment size is also | |||
| restricted by protocols such as RADIUS [RFC2865] which are | restricted by protocols such as RADIUS [RFC2865] which are | |||
| responsible for transporting EAP messages between an authenticator | responsible for transporting EAP messages between an authenticator | |||
| skipping to change at page 4, line 28 ¶ | skipping to change at page 4, line 28 ¶ | |||
| TLS, the EAP peer implements the TLS client role. | TLS, the EAP peer implements the TLS client role. | |||
| EAP server The entity that terminates the EAP authentication method | EAP server The entity that terminates the EAP authentication method | |||
| with the peer. In the case where no backend authentication | with the peer. In the case where no backend authentication | |||
| server is used, the EAP server is part of the authenticator. | server is used, the EAP server is part of the authenticator. | |||
| In the case where the authenticator operates in pass-through | In the case where the authenticator operates in pass-through | |||
| mode, the EAP server is located on the backend authentication | mode, the EAP server is located on the backend authentication | |||
| server. In EAP-TLS, the EAP server implements the TLS server | server. In EAP-TLS, the EAP server implements the TLS server | |||
| role. | role. | |||
| The document additionally uses the terms trust anchor and | The document additionally uses the terms "trust anchor" and | |||
| certification path defined in [RFC5280]. | "certification path" defined in [RFC5280]. | |||
| 3. Experience with Deployments | 3. Experience with Deployments | |||
| As stated earlier, the EAP fragment size in typical deployments is | As stated earlier, the EAP fragment size in typical deployments is | |||
| just 1020 - 1500 octets. Certificate sizes can however be large for | just 1020 - 1500 octets. A certificate can, however, be large for a | |||
| a number of reasons: | number of reasons: | |||
| o Long Subject Alternative Name field. | o It can have a long Subject Alternative Name field. | |||
| o Long Public Key and Signature fields. | o It can have long Public Key and Signature fields. | |||
| o Can contain multiple object identifiers (OID) that indicate the | o It can contain multiple object identifiers (OID) that indicate the | |||
| permitted uses of the certificate as noted in Section 5.3 of | permitted uses of the certificate as noted in Section 5.3 of | |||
| [RFC5216]. Most implementations verify the presence of these OIDs | [RFC5216]. Most implementations verify the presence of these OIDs | |||
| for successful authentication. | for successful authentication. | |||
| o Multiple user groups in the certificate. | o It can contain multiple organization fields to reflect the | |||
| multiple group memberships of a user (in a client certificate). | ||||
| A certificate chain (called a certification path in [RFC5280]) can | A certificate chain (called a certification path in [RFC5280]) in | |||
| commonly have 2 - 6 intermediate certificates between the end-entity | EAP-TLS can commonly have 2 - 6 intermediate certificates between the | |||
| certificate and the trust anchor. | end-entity certificate and the trust anchor. | |||
| The size of certificates (and certificate chains) may also increase | ||||
| many-fold in the future with the introduction of quantum-safe | ||||
| cryptography. For example, lattice-based cryptography would have | ||||
| public keys of approximately 1000 bytes and signatures of | ||||
| approximately 2000 bytes. | ||||
| Many access point implementations drop EAP sessions that do not | Many access point implementations drop EAP sessions that do not | |||
| complete within 50 round-trips. This means that if the chain is | complete within 40 - 50 round-trips. This means that if the chain is | |||
| larger than ~ 60 kbytes, EAP-TLS authentication cannot complete | larger than ~ 60 kbytes, EAP-TLS authentication cannot complete | |||
| successfully in most deployments. | successfully in most deployments. | |||
| 4. Handling of Large Certificates and Long Certificate Chains | 4. Handling of Large Certificates and Long Certificate Chains | |||
| This section discusses some possible alternatives for overcoming the | This section discusses some possible alternatives for overcoming the | |||
| challenge of large certificates and long certificate chains in EAP- | challenge of large certificates and long certificate chains in EAP- | |||
| TLS authentication. Section 4.1 considers recommendations that | TLS authentication. Section 4.1 considers recommendations that | |||
| require an update of the certificates or certificate chains used for | require an update of the certificates or certificate chains used for | |||
| EAP-TLS authentication without requiring changes to the existing EAP- | EAP-TLS authentication without requiring changes to the existing EAP- | |||
| skipping to change at page 5, line 31 ¶ | skipping to change at page 5, line 37 ¶ | |||
| Finally, Section 4.3 briefly discusses what could be done to update | Finally, Section 4.3 briefly discusses what could be done to update | |||
| or reconfigure authenticators when it is infeasible to replace | or reconfigure authenticators when it is infeasible to replace | |||
| deployed components giving a solution which can be deployed without | deployed components giving a solution which can be deployed without | |||
| changes to existing certificates or code. | changes to existing certificates or code. | |||
| 4.1. Updating Certificates and Certificate Chains | 4.1. Updating Certificates and Certificate Chains | |||
| Many IETF protocols now use elliptic curve cryptography (ECC) | Many IETF protocols now use elliptic curve cryptography (ECC) | |||
| [RFC6090] for the underlying cryptographic operations. The use of | [RFC6090] for the underlying cryptographic operations. The use of | |||
| ECC can reduce the size of certificates and signatures. For example, | ECC can reduce the size of certificates and signatures. For example, | |||
| at a 128-bit security level, the size of public keys with traditional | at a 128-bit security level, the size of a public key with | |||
| RSA is about 384 bytes, while the size of public keys with ECC is | traditional RSA is about 384 bytes, while the size of a public key | |||
| only 32-64 bytes. Similarly, the size of digital signatures with | with ECC is only 32-64 bytes. Similarly, the size of a digital | |||
| traditional RSA is 384 bytes, while the size is only 64 bytes with | signature with traditional RSA is 384 bytes, while the size is only | |||
| elliptic curve digital signature algorithm (ECDSA) and Edwards-curve | 64 bytes with elliptic curve digital signature algorithm (ECDSA) and | |||
| digital signature algorithm (EdDSA) [RFC8032]. Using certificates | Edwards-curve digital signature algorithm (EdDSA) [RFC8032]. Using | |||
| that use ECC can reduce the number of messages in EAP-TLS | certificates that use ECC can reduce the number of messages in EAP- | |||
| authentication which can alleviate the problem of authenticators | TLS authentication, which can alleviate the problem of authenticators | |||
| dropping an EAP session because of too many round-trips. In the | dropping an EAP session because of too many round-trips. In the | |||
| absence of a standard application profile specifying otherwise, TLS | absence of a standard application profile specifying otherwise, TLS | |||
| 1.3 [RFC8446] requires implementations to support ECC. New cipher | 1.3 [RFC8446] requires implementations to support ECC. New cipher | |||
| suites that use ECC are also specified for TLS 1.2 [RFC5289]. Using | suites that use ECC are also specified for TLS 1.2 [RFC8422]. Using | |||
| ECC based cipher suites with existing code can significantly reduce | ECC-based cipher suites with existing code can significantly reduce | |||
| the number of messages in a single EAP session. | the number of messages in a single EAP session. | |||
| 4.1.1. Guidelines for Certificates | 4.1.1. Guidelines for Certificates | |||
| The general guideline of keeping the certificate size small by not | The general guideline of keeping the certificate size small by not | |||
| populating fields with excessive information can help avert the | populating fields with excessive information can help avert the | |||
| problems of failed EAP-TLS authentication. More specific | problems of failed EAP-TLS authentication. More specific | |||
| recommendations for certificates used with EAP-TLS are as follows: | recommendations for certificates used with EAP-TLS are as follows: | |||
| o Object Identifiers (OIDs) is an ASN.1 data type that defines | o Object Identifier (OID) is an ASN.1 data type that defines unique | |||
| unique identifiers for objects. The OID's ASN.1 value, which is a | identifiers for objects. The OID's ASN.1 value, which is a string | |||
| string of integers, is then used to name objects to which they | of integers, is then used to name objects to which they relate. | |||
| relate. The Distinguished Encoding Rules (DER) length for the | The Distinguished Encoding Rules (DER) specify that the first two | |||
| first two integers is always one octet and subsequent integers are | integers always occupy one octet and subsequent integers are base | |||
| base 128-encoded in the fewest possible octets. OIDs are used | 128-encoded in the fewest possible octets. OIDs are used lavishly | |||
| lavishly in X.509 certificates [RFC5280] and while not all can be | in X.509 certificates [RFC5280] and while not all can be avoided, | |||
| avoided, e.g., OIDs for extensions or algorithms and their | e.g., OIDs for extensions or algorithms and their associate | |||
| associate parameters, some are well within the certificate | parameters, some are well within the certificate issuer's control: | |||
| issuer's control: | ||||
| * Each naming attribute in a DN (Directory Name) has one. DNs | * Each naming attribute in a DN (Directory Name) has one. DNs | |||
| used in the issuer and subject fields as well as numerous | are used in the issuer and subject fields as well as numerous | |||
| extensions. A shallower naming will be smaller, e.g., C=FI, | extensions. A shallower naming will be smaller, e.g., C=FI, | |||
| O=Example, SN=B0A123499EFC as against C=FI, O=Example, | O=Example, SN=B0A123499EFC as against C=FI, O=Example, | |||
| OU=Division 1, SOPN=Southern Finland, CN=Coolest IoT Gadget | OU=Division 1, SOPN=Southern Finland, CN=Coolest IoT Gadget | |||
| Ever, SN=B0A123499EFC. | Ever, SN=B0A123499EFC. | |||
| * Every certificate policy (and qualifier) and any mappings to | * Every certificate policy (and qualifier) and any mappings to | |||
| another policy uses identifiers. Consider carefully what | another policy uses identifiers. Consider carefully what | |||
| policies apply. | policies apply. | |||
| o DirectoryString and GeneralName types are used extensively to name | o DirectoryString and GeneralName types are used extensively to name | |||
| skipping to change at page 7, line 25 ¶ | skipping to change at page 7, line 28 ¶ | |||
| updating TLS implementations to version 1.3 can help to significantly | updating TLS implementations to version 1.3 can help to significantly | |||
| reduce the number of messages exchanged for EAP-TLS authentication. | reduce the number of messages exchanged for EAP-TLS authentication. | |||
| The omitted certificates need to be pre-distributed independently of | The omitted certificates need to be pre-distributed independently of | |||
| TLS and the TLS implementations need to be configured to omit these | TLS and the TLS implementations need to be configured to omit these | |||
| pre-distributed certificates. | pre-distributed certificates. | |||
| 4.1.3. Using Fewer Intermediate Certificates | 4.1.3. Using Fewer Intermediate Certificates | |||
| The EAP peer certificate chain does not have to mirror the | The EAP peer certificate chain does not have to mirror the | |||
| organizational hierarchy. For successful EAP-TLS authentication, | organizational hierarchy. For successful EAP-TLS authentication, | |||
| certificate chains SHOULD NOT contain more than 2-4 intermediate | certificate chains SHOULD NOT contain more than 4 intermediate | |||
| certificates. | certificates. | |||
| Administrators responsible for deployments using TLS-based EAP | Administrators responsible for deployments using TLS-based EAP | |||
| methods can examine the certificate chains and make rough | methods can examine the certificate chains and make rough | |||
| calculations about the number of round trips required for successful | calculations about the number of round trips required for successful | |||
| authentication. For example, dividing the total size of all the | authentication. For example, dividing the total size of all the | |||
| certificates in the peer and server certificate chain (in bytes) by | certificates in the peer and server certificate chain (in bytes) by | |||
| 1020 bytes will indicate the minimum number of round trips required. | 1020 bytes will indicate the minimum number of round trips required. | |||
| If this number exceeds 50, then, administrators can expect failures | If this number exceeds 50, then, administrators can expect failures | |||
| with many common authenticator implementations. | with many common authenticator implementations. | |||
| 4.2. Updating TLS and EAP-TLS Code | 4.2. Updating TLS and EAP-TLS Code | |||
| This section discusses how the fragmentation problem can be avoided | This section discusses how the fragmentation problem can be avoided | |||
| by updating the underlying TLS or EAP-TLS implementation. Note that | by updating the underlying TLS or EAP-TLS implementation. Note that | |||
| in many cases the new feature may already be implemented in the | in some cases the new feature may already be implemented in the | |||
| underlying library and simply needs to be taken into use. | underlying library and simply needs to be taken into use. | |||
| 4.2.1. URLs for Client Certificates | 4.2.1. URLs for Client Certificates | |||
| [RFC6066] defines the "client_certificate_url" extension which allows | [RFC6066] defines the "client_certificate_url" extension which allows | |||
| TLS clients to send a sequence of Uniform Resource Locators (URLs) | TLS clients to send a sequence of Uniform Resource Locators (URLs) | |||
| instead of the client certificate. URLs can refer to a single | instead of the client certificate. URLs can refer to a single | |||
| certificate or a certificate chain. Using this extension can curtail | certificate or a certificate chain. Using this extension can curtail | |||
| the amount of fragmentation in EAP deployments thereby allowing EAP | the amount of fragmentation in EAP deployments thereby allowing EAP | |||
| sessions to successfully complete. | sessions to successfully complete. | |||
| skipping to change at page 8, line 32 ¶ | skipping to change at page 8, line 35 ¶ | |||
| successful full handshake before any caching. This extension can be | successful full handshake before any caching. This extension can be | |||
| useful when, for example, a successful authentication between an EAP | useful when, for example, a successful authentication between an EAP | |||
| peer and EAP server has occurred in the home network. If | peer and EAP server has occurred in the home network. If | |||
| authenticators in a roaming network are stricter at dropping long EAP | authenticators in a roaming network are stricter at dropping long EAP | |||
| sessions, an EAP peer can use the Cached Information Extension to | sessions, an EAP peer can use the Cached Information Extension to | |||
| reduce the total number of messages. | reduce the total number of messages. | |||
| However, if all authenticators drop the EAP session for a given EAP | However, if all authenticators drop the EAP session for a given EAP | |||
| peer and EAP server combination, a successful full handshake is not | peer and EAP server combination, a successful full handshake is not | |||
| possible. An option in such a scenario would be to cache validated | possible. An option in such a scenario would be to cache validated | |||
| certificate chains even if the EAP-TLS exchange fails, but this is | certificate chains even if the EAP-TLS exchange fails, but such | |||
| currently not allowed according to [RFC7924]. | caching is currently not specified in [RFC7924]. | |||
| 4.2.3. Compressing Certificates | 4.2.3. Compressing Certificates | |||
| The TLS working group is also working on an extension for TLS 1.3 | The TLS working group is also working on an extension for TLS 1.3 | |||
| [I-D.ietf-tls-certificate-compression] that allows compression of | [I-D.ietf-tls-certificate-compression] that allows compression of | |||
| certificates and certificate chains during full handshakes. The | certificates and certificate chains during full handshakes. The | |||
| client can indicate support for compressed server certificates by | client can indicate support for compressed server certificates by | |||
| including this extension in the ClientHello message. Similarly, the | including this extension in the ClientHello message. Similarly, the | |||
| server can indicate support for compression of client certificates by | server can indicate support for compression of client certificates by | |||
| including this extension in the CertificateRequest message. While | including this extension in the CertificateRequest message. While | |||
| skipping to change at page 9, line 11 ¶ | skipping to change at page 9, line 11 ¶ | |||
| fragmentation in EAP-TLS, it can only be used with TLS version 1.3 | fragmentation in EAP-TLS, it can only be used with TLS version 1.3 | |||
| and higher. Deployments that rely on older versions of TLS cannot | and higher. Deployments that rely on older versions of TLS cannot | |||
| benefit from this extension. | benefit from this extension. | |||
| 4.2.4. Compact TLS 1.3 | 4.2.4. Compact TLS 1.3 | |||
| [I-D.ietf-tls-ctls] defines a "compact" version of TLS 1.3 and | [I-D.ietf-tls-ctls] defines a "compact" version of TLS 1.3 and | |||
| reduces the message size of the protocol by removing obsolete | reduces the message size of the protocol by removing obsolete | |||
| material and using more efficient encoding. It also defines a | material and using more efficient encoding. It also defines a | |||
| compression profile with which either side can define a dictionary of | compression profile with which either side can define a dictionary of | |||
| "known certificates". Thus, cTLS can provide another mechanism for | "known certificates". Thus, cTLS could provide another mechanism for | |||
| EAP-TLS deployments to reduce the size of messages and avoid | EAP-TLS deployments to reduce the size of messages and avoid | |||
| excessive fragmentation. | excessive fragmentation. | |||
| 4.2.5. Suppressing Intermediate Certificates | 4.2.5. Suppressing Intermediate Certificates | |||
| For a client that has all intermediate certificates in the | For a client that has all intermediate certificates in the | |||
| certificate chain, having the server send intermediates in the TLS | certificate chain, having the server send intermediates in the TLS | |||
| handshake increases the size of the handshake unnecessarily. The TLS | handshake increases the size of the handshake unnecessarily. | |||
| working group is working on an extension for TLS 1.3 | [I-D.thomson-tls-sic] proposes an extension for TLS 1.3 that allows a | |||
| [I-D.thomson-tls-sic] that allows a TLS client that has access to the | TLS client that has access to the complete set of published | |||
| complete set of published intermediate certificates to inform servers | intermediate certificates to inform servers of this fact so that the | |||
| of this fact so that the server can avoid sending intermediates, | server can avoid sending intermediates, reducing the size of the TLS | |||
| reducing the size of the TLS handshake. The mechanism is intended to | handshake. The mechanism is intended to be complementary with | |||
| be complementary with certificate compression. | certificate compression. | |||
| The Authority Information Access (AIA) extension specified in | ||||
| [RFC5280] can be used with end-entity and CA certificates to access | ||||
| information about the issuer of the certificate in which the | ||||
| extension appears. For example, it can be used to provide the | ||||
| address of the OCSP responder from where revocation status of the | ||||
| certificate (in which the extension appears) can be checked. It can | ||||
| also be used to obtain the issuer certificate. Thus, the AIA | ||||
| extension can reduce the size of the certificate chain by only | ||||
| including a pointer to the issuer certificate instead of including | ||||
| the entire issuer certificate. However, it requires the side | ||||
| receiving the certificate containing the extension to have network | ||||
| connectivity (unless the information is already cached locally). | ||||
| Naturally, such indirection cannot be used for the server certificate | ||||
| (since EAP peers in most deployments do not have network connectivity | ||||
| before authentication and typically do not maintain an up-to-date | ||||
| local cache of issuer certificates). | ||||
| 4.2.6. Raw Public Keys | 4.2.6. Raw Public Keys | |||
| [RFC7250] defines a new certificate type and TLS extensions to enable | [RFC7250] defines a new certificate type and TLS extensions to enable | |||
| the use of raw public keys for authentication. Raw public keys use | the use of raw public keys for authentication. Raw public keys use | |||
| only a subset of information found in typical certificates and are | only a subset of information found in typical certificates and are | |||
| therefore much smaller in size. However, raw public keys require an | therefore much smaller in size. However, raw public keys require an | |||
| out-of-band mechanism to bind the public key with the entity | out-of-band mechanism to bind the public key with the entity | |||
| presenting the key. Using raw public keys will obviously avoid the | presenting the key. Using raw public keys will obviously avoid the | |||
| fragmentation problems resulting from large certificates and long | fragmentation problems resulting from large certificates and long | |||
| certificate chains. Deployments can consider their use as long as an | certificate chains. Deployments can consider their use as long as an | |||
| appropriate out-of-band mechanism for binding public keys with | appropriate out-of-band mechanism for binding public keys with | |||
| identifiers is in place. | identifiers is in place. Naturally, deployments will also need to | |||
| consider the challenges of revocation and key rotation with the use | ||||
| of raw public keys. | ||||
| 4.2.7. New Certificate Types and Compression Algorithms | 4.2.7. New Certificate Types and Compression Algorithms | |||
| There is ongoing work to specify new certificate types and | There is ongoing work to specify new certificate types and | |||
| compression algorithms. For example, | compression algorithms. For example, | |||
| [I-D.mattsson-tls-cbor-cert-compress] defines a compression algorithm | [I-D.mattsson-tls-cbor-cert-compress] defines a compression algorithm | |||
| for certificates that relies on Concise Binary Object Representation | for certificates that relies on Concise Binary Object Representation | |||
| (CBOR) [RFC7049]. [I-D.tschofenig-tls-cwt] registers a new TLS | (CBOR) [RFC7049]. [I-D.tschofenig-tls-cwt] registers a new TLS | |||
| Certificate type which would enable TLS implementations to use CBOR | Certificate type which would enable TLS implementations to use CBOR | |||
| Web Tokens (CWTs) [RFC8392] as certificates. While these are early | Web Tokens (CWTs) [RFC8392] as certificates. While these are early | |||
| skipping to change at page 10, line 16 ¶ | skipping to change at page 10, line 34 ¶ | |||
| There are several legitimate reasons that authenticators may want to | There are several legitimate reasons that authenticators may want to | |||
| limit the number of round-trips/packets/octets that can be sent. The | limit the number of round-trips/packets/octets that can be sent. The | |||
| main reason has been to work around issues where the EAP peer and EAP | main reason has been to work around issues where the EAP peer and EAP | |||
| server end up in an infinite loop ACKing their messages. Another | server end up in an infinite loop ACKing their messages. Another | |||
| reason is that unlimited communication from an unauthenticated device | reason is that unlimited communication from an unauthenticated device | |||
| using EAP could provide a channel for inappropriate bulk data | using EAP could provide a channel for inappropriate bulk data | |||
| transfer. A third reason is to prevent denial-of-service attacks. | transfer. A third reason is to prevent denial-of-service attacks. | |||
| Updating the millions of already deployed access points and switches | Updating the millions of already deployed access points and switches | |||
| is in many cases not realistic. Vendors may be out of business or do | is in many cases not realistic. Vendors may be out of business or no | |||
| no longer support the products and administrators may have lost the | longer supporting the products and administrators may have lost the | |||
| login information to the devices. For practical purposes the EAP | login information to the devices. For practical purposes the EAP | |||
| infrastructure is ossified for the time being. | infrastructure is ossified for the time being. | |||
| Vendors making new authenticators should consider increasing the | Vendors making new authenticators should consider increasing the | |||
| number of round-trips allowed to 100 before denying the EAP | number of round-trips allowed to 100 before denying the EAP | |||
| authentication to complete. Based on the size of the certificates | authentication to complete. Based on the size of the certificates | |||
| and certificate chains currently deployed, such an increase would | and certificate chains currently deployed, such an increase would | |||
| likely ensure that peers and servers can complete EAP-TLS | likely ensure that peers and servers can complete EAP-TLS | |||
| authentication. At the same time, administrators responsible for EAP | authentication. At the same time, administrators responsible for EAP | |||
| deployments should ensure that this 100 roundtrip limit is not | deployments should ensure that this 100 roundtrip limit is not | |||
| skipping to change at page 10, line 44 ¶ | skipping to change at page 11, line 19 ¶ | |||
| 6. Security Considerations | 6. Security Considerations | |||
| Updating implementations to TLS version 1.3 allows omitting all | Updating implementations to TLS version 1.3 allows omitting all | |||
| certificates with a trust anchor known by the other endpoint. TLS | certificates with a trust anchor known by the other endpoint. TLS | |||
| 1.3 additionally provides improved security, privacy, and reduced | 1.3 additionally provides improved security, privacy, and reduced | |||
| latency for EAP-TLS [I-D.ietf-emu-eap-tls13]. | latency for EAP-TLS [I-D.ietf-emu-eap-tls13]. | |||
| Security considerations when compressing certificates are specified | Security considerations when compressing certificates are specified | |||
| in [I-D.ietf-tls-certificate-compression]. | in [I-D.ietf-tls-certificate-compression]. | |||
| As noted in [I-D.thomson-tls-sic], suppressing intermediate | Specific security considerations of the referenced documents apply | |||
| certificates creates an unencrypted signal that might be used to | when they are taken into use. | |||
| identify which clients believe that they have all intermediates. | ||||
| This might also allow more effective fingerprinting and tracking of | ||||
| clients. | ||||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [I-D.ietf-emu-eap-tls13] | [I-D.ietf-emu-eap-tls13] | |||
| Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3", | Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3", | |||
| draft-ietf-emu-eap-tls13-11 (work in progress), October | draft-ietf-emu-eap-tls13-12 (work in progress), November | |||
| 2020. | 2020. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | |||
| Levkowetz, Ed., "Extensible Authentication Protocol | Levkowetz, Ed., "Extensible Authentication Protocol | |||
| (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, | (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, | |||
| skipping to change at page 12, line 9 ¶ | skipping to change at page 12, line 26 ¶ | |||
| [RFC7170] Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | [RFC7170] Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | |||
| "Tunnel Extensible Authentication Protocol (TEAP) Version | "Tunnel Extensible Authentication Protocol (TEAP) Version | |||
| 1", RFC 7170, DOI 10.17487/RFC7170, May 2014, | 1", RFC 7170, DOI 10.17487/RFC7170, May 2014, | |||
| <https://www.rfc-editor.org/info/rfc7170>. | <https://www.rfc-editor.org/info/rfc7170>. | |||
| [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>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| 7.2. Informative References | 7.2. Informative References | |||
| [I-D.ietf-tls-certificate-compression] | [I-D.ietf-tls-certificate-compression] | |||
| Ghedini, A. and V. Vasiliev, "TLS Certificate | Ghedini, A. and V. Vasiliev, "TLS Certificate | |||
| Compression", draft-ietf-tls-certificate-compression-10 | Compression", draft-ietf-tls-certificate-compression-10 | |||
| (work in progress), January 2020. | (work in progress), January 2020. | |||
| [I-D.ietf-tls-ctls] | [I-D.ietf-tls-ctls] | |||
| Rescorla, E., Barnes, R., and H. Tschofenig, "Compact TLS | Rescorla, E., Barnes, R., and H. Tschofenig, "Compact TLS | |||
| 1.3", draft-ietf-tls-ctls-00 (work in progress), April | 1.3", draft-ietf-tls-ctls-01 (work in progress), November | |||
| 2020. | 2020. | |||
| [I-D.mattsson-tls-cbor-cert-compress] | [I-D.mattsson-tls-cbor-cert-compress] | |||
| Mattsson, J., Selander, G., Raza, S., Hoglund, J., and M. | Mattsson, J., Selander, G., Raza, S., Hoglund, J., and M. | |||
| Furuhed, "CBOR Certificate Algorithm for TLS Certificate | Furuhed, "CBOR Certificate Algorithm for TLS Certificate | |||
| Compression", draft-mattsson-tls-cbor-cert-compress-00 | Compression", draft-mattsson-tls-cbor-cert-compress-00 | |||
| (work in progress), March 2020. | (work in progress), March 2020. | |||
| [I-D.thomson-tls-sic] | [I-D.thomson-tls-sic] | |||
| Thomson, M., "Suppressing Intermediate Certificates in | Thomson, M., "Suppressing Intermediate Certificates in | |||
| skipping to change at page 13, line 5 ¶ | skipping to change at page 13, line 27 ¶ | |||
| [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | |||
| "Remote Authentication Dial In User Service (RADIUS)", | "Remote Authentication Dial In User Service (RADIUS)", | |||
| RFC 2865, DOI 10.17487/RFC2865, June 2000, | RFC 2865, DOI 10.17487/RFC2865, June 2000, | |||
| <https://www.rfc-editor.org/info/rfc2865>. | <https://www.rfc-editor.org/info/rfc2865>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
| DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, | |||
| <https://www.rfc-editor.org/info/rfc5246>. | <https://www.rfc-editor.org/info/rfc5246>. | |||
| [RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites with SHA- | ||||
| 256/384 and AES Galois Counter Mode (GCM)", RFC 5289, | ||||
| DOI 10.17487/RFC5289, August 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5289>. | ||||
| [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) | [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) | |||
| Extensions: Extension Definitions", RFC 6066, | Extensions: Extension Definitions", RFC 6066, | |||
| DOI 10.17487/RFC6066, January 2011, | DOI 10.17487/RFC6066, January 2011, | |||
| <https://www.rfc-editor.org/info/rfc6066>. | <https://www.rfc-editor.org/info/rfc6066>. | |||
| [RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic | [RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic | |||
| Curve Cryptography Algorithms", RFC 6090, | Curve Cryptography Algorithms", RFC 6090, | |||
| DOI 10.17487/RFC6090, February 2011, | DOI 10.17487/RFC6090, February 2011, | |||
| <https://www.rfc-editor.org/info/rfc6090>. | <https://www.rfc-editor.org/info/rfc6090>. | |||
| skipping to change at page 13, line 44 ¶ | skipping to change at page 14, line 14 ¶ | |||
| [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital | [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital | |||
| Signature Algorithm (EdDSA)", RFC 8032, | Signature Algorithm (EdDSA)", RFC 8032, | |||
| DOI 10.17487/RFC8032, January 2017, | DOI 10.17487/RFC8032, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8032>. | <https://www.rfc-editor.org/info/rfc8032>. | |||
| [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | |||
| "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | |||
| May 2018, <https://www.rfc-editor.org/info/rfc8392>. | May 2018, <https://www.rfc-editor.org/info/rfc8392>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8422] Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, "Elliptic | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Curve Cryptography (ECC) Cipher Suites for Transport Layer | |||
| <https://www.rfc-editor.org/info/rfc8446>. | Security (TLS) Versions 1.2 and Earlier", RFC 8422, | |||
| DOI 10.17487/RFC8422, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8422>. | ||||
| Acknowledgements | Acknowledgements | |||
| This draft is a result of several useful discussions with Alan DeKok, | This draft is a result of several useful discussions with Alan DeKok, | |||
| Bernard Aboba, Jari Arkko, Jouni Malinen, Darshak Thakore, and Hannes | Bernard Aboba, Jari Arkko, Jouni Malinen, Darshak Thakore, and Hannes | |||
| Tschofening. | Tschofening. | |||
| Authors' Addresses | Authors' Addresses | |||
| Mohit Sethi | Mohit Sethi | |||
| End of changes. 37 change blocks. | ||||
| 87 lines changed or deleted | 110 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||