RFC 5924

Extended Key Usage (EKU) for Session Initiation Protocol (SIP) X.509 Certificates

πŸ“… published June 2010, from ietf

RFC 5924: Extended Key Usage (EKU) for Session Initiation Protocol (SIP) X.509 Certificates ✨

Internet Engineering Task Force (IETF) 🌸 Request for Comments: 5924 🌸 ISSN: 2070-1721

Category: Experimental πŸ§ͺ Date: June 2010

Authors: S. Lawrence and V. Gurbani, both from Bell Laboratories, Alcatel-Lucent πŸ‘©β€πŸ’»πŸ‘©β€πŸ’»

The title block doesn't list anything this document obsoletes or updates, so there's nothing to check there. πŸ’…

Abstract

okay so this memo documents an extended key usage (EKU) X.509 certificate extension that restricts the applicability of a certificate so it can only be used with a Session Initiation Protocol (SIP) service. πŸ¦‹ So besides giving rules for SIP implementations, it also gives guidance to the people issuing certificates for SIP. It's giving main character energy for certificates. ✨

Status of This Memo

This document is not an Internet Standards Track specification πŸ™ˆ It's published for examination, experimental implementation, and evaluation.

It defines an Experimental Protocol for the Internet community. It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every document the IESG approves is a candidate for any level of Internet Standard, so check out Section 2 of RFC 5741 for that. 🧐

For info on the current status of this document, any errata, and how to give feedback, head to http://www.rfc-editor.org/info/rfc5924. πŸ”—

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. ©️

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication. Please read these carefully, bestie, because they spell out your rights and restrictions for this document. Code Components extracted from this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License. πŸ“œ

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The people controlling the copyright in some of that material may not have given the IETF Trust the right to allow modifications outside the IETF Standards Process. Unless you get an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process. The one exception is formatting it for publication as an RFC, or translating it into languages other than English. 🌈

Table of Contents

   1. Introduction ....................................................3
   2. Terminology .....................................................3
      2.1. Key Words ..................................................3
      2.2. Abstract Syntax Notation ...................................3
   3. Problem Statement ...............................................3
   4. Restricting Usage to SIP ........................................4
      4.1. Extended Key Usage Values for SIP Domains ..................5
   5. Using the SIP EKU in a Certificate ..............................5
   6. Implications for a Certification Authority ......................6
   7. Security Considerations .........................................6
   8. IANA Considerations .............................................6
   9. Acknowledgments .................................................7
   10. Normative References ...........................................7
   Appendix A.  ASN.1 Module ..........................................8

1. Introduction πŸ’–

Okay so this memo documents an extended key usage (EKU) X.509 certificate extension that restricts where a certificate can be used. The point is to limit it to a Session Initiation Protocol (SIP) service. So besides rules for SIP implementations, it's also guidance for anyone issuing certificates for SIP. πŸŽ€

2. Terminology πŸ“š

2.1. Key Words

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [1]. Those capital words are the big deal, so read them carefully. πŸ‘€

Additionally, one more term is defined here:

SIP domain identity: A subject identity in the X.509 certificate that tells a recipient the certificate owner is authoritative for SIP services in the domain named by that subject identity. πŸ¦‹

2.2. Abstract Syntax Notation

All X.509 certificate X.509 [4] extensions are defined using ASN.1 X.680 [5], and X.690 [6]. The ASN.1 part is the language the grammar gets written in, so it's the foundation of everything. 🧱

3. Problem Statement πŸ€”

Let's picture the SIP RFC 3261 [2] actors in Figure 1. It's a trapezoid, and it's iconic. 🧚

     Proxy-A.example.com           Proxy-B.example.net
        +-------+                    +-------+
        | Proxy |--------------------| Proxy |
        +----+--+                    +---+---+
             |                           |
             |                           |
             |                           |
             |                         +---+
           0---0                       |   |
            /-\                        |___|
           +---+                      /    /
                                     +----+
      alice@example.com          bob@example.net

               Figure 1: SIP Trapezoid

Say alice@example.com creates an INVITE for bob@example.net. Her user agent sends the request to a proxy in her domain, example.com. Now, example.com is a big organization with several SIP proxies, and her INVITE shows up at an outbound proxy called Proxy-A.example.com. To route the request onward, Proxy-A uses RFC 3263 [7] resolution. It finds that Proxy-B.example.net is a valid proxy for example.net that uses Transport Layer Security (TLS). πŸ”

Proxy-A.example.com asks for a TLS connection to Proxy-B.example.net. During the TLS handshake, each one presents a certificate to authenticate the connection. Each proxy validates these certificates to see whether its peer is authoritative for the right SIP domain. That validation is defined in "Domain Certificates in the Session Initiation Protocol (SIP)" [8]. ✨

Here's the tea: a SIP domain name is often spelled exactly the same as a DNS name used for other things. For example, the DNS name example.com can be a SIP domain name, an email domain name, and a web service name all at once. Those services might be run independently and hosted separately inside one organization. So it's desirable for a certificate to tie the DNS name to its SIP usage without implying that whoever presents the certificate is also authoritative for some other purpose. πŸ™ˆ

We need a mechanism so a proxy's certificate can be restricted, meaning the subject name(s) it contains are valid only for use in SIP. In our example, Proxy-B has a certificate that makes Proxy-B authoritative as a SIP server for the domain example.net. Proxy-B also has a policy that requires the client's SIP domain to be authenticated through a similar certificate. Proxy-A is authoritative as a SIP server for example.com. When Proxy-A makes a TLS connection to Proxy-B, Proxy-B accepts the connection based on its policy. Everyone's happy. πŸ’…

4. Restricting Usage to SIP πŸŽ€

This memo defines a certificate profile that restricts a domain name binding so it's only used as a SIP domain name. RFC 5280 [3], Section 4.2.1.12, has a mechanism for exactly this: an "Extended Key Usage" (EKU) attribute. Its purpose is described like this:

If the extension is present, then the certificate MUST only be used for one of the purposes indicated. If multiple purposes are indicated the application need not recognize all purposes indicated, as long as the intended purpose is present. Certificate using applications MAY require that the extended key usage extension be present and that a particular purpose be indicated in order for the certificate to be acceptable to that application.

So here's the deal: a Certificate Authority that issues a certificate whose purpose is to bind a SIP domain identity, without binding other non-SIP identities, MUST include an id-kp-sipDomain attribute in the Extended Key Usage extension value (see Section 4.1). πŸ¦‹

4.1. Extended Key Usage Values for SIP Domains

RFC 5280 [3] specifies the EKU X.509 certificate extension for use on the Internet. The extension lists one or more purposes the certified public key is valid for. It can work together with the key usage extension, which says how the public key in the certificate is used in a more basic cryptographic way. πŸ”‘

Here's the EKU extension syntax, repeated for convenience:

      ExtKeyUsageSyntax  ::=  SEQUENCE SIZE (1..MAX) OF KeyPurposeId

      KeyPurposeId  ::=  OBJECT IDENTIFIER

This specification defines the KeyPurposeId id-kp-sipDomain. If this KeyPurposeId is in a certificate, then any Subject names in that certificate are restricted to use by a SIP service. Any usages allowed by other EKU values still apply too. 🌸

      id-kp  OBJECT IDENTIFIER  ::=
         { iso(1) identified-organization(3) dod(6) internet(1)
           security(5) mechanisms(5) pkix(7) 3 }

      id-kp-sipDomain  OBJECT IDENTIFIER  ::=  { id-kp 20 }

5. Using the SIP EKU in a Certificate 🧠

Section 7.1 of Domain Certificates in the Session Initiation Protocol [8] has the steps for finding an identity (or a set of identities) in an X.509 certificate for SIP. To figure out whether a certificate is restricted to serve as a SIP certificate only, implementations MUST perform the steps below as part of the certificate validation:

The implementation MUST examine the Extended Key Usage value(s):

  • If the certificate does not contain any EKU values (the Extended Key Usage extension does not exist), it is a matter of local policy whether or not to accept the certificate for use as a SIP certificate. Note that since certificates not following this specification will not have the id-kp-sipDomain EKU value, and many do not have any EKU values, the more interoperable local policy would be to accept the certificate. 🫢
  • If the certificate contains the id-kp-sipDomain EKU extension, then implementations of this specification MUST consider the certificate acceptable for use as a SIP certificate. βœ…
  • If the certificate does not contain the id-kp-sipDomain EKU value, but does contain the id-kp-anyExtendedKeyUsage EKU value, it is a matter of local policy whether or not to consider the certificate acceptable for use as a SIP certificate. πŸ€·β€β™€οΈ
  • If the EKU extension exists, but does not contain any of the id-kp-sipDomain or id-kp-anyExtendedKeyUsage EKU values, then the certificate MUST NOT be accepted as valid for use as a SIP certificate. 🚫

6. Implications for a Certification Authority πŸ›οΈ

okay bestie, this one is for the people running certificate authorities (CAs) πŸ‘‘. The procedures and practices a CA uses MUST make sure the right values for the EKU extension and subjectAltName go into every certificate it issues πŸ’…. And if a certificate says the holder has authority over a SIP domain but NOT over any other services, the CA MUST include the id-kp-sipDomain EKU extension πŸŽ€. No skipping it, no cap!

7. Security Considerations πŸ”

this memo defines an EKU X.509 certificate extension that limits what a certificate can be used for: only a SIP service belonging to an autonomous domain πŸ¦‹. so relying parties can run their usual policies (like billing stuff πŸ’Έ) when they get a certificate with the id-kp-sipDomain EKU value. and the good news is that an id-kp-sipDomain EKU value does not bring any new security or privacy concerns. ✨ safe and sound, periodt 🫢.

8. IANA Considerations πŸ“‹

the id-kp-sipDomain purpose needs an object identifier (OID) πŸ”’. the objects are defined in an arc that IANA delegated to the PKIX working group 🌈. IANA doesn't need to do anything else, so that's a wrap βœ….

9. Acknowledgments 🫢

huge thank yous to these IETF contributors who gave substantive input to this document: Jeroen van Bemmel, Michael Hammer, Cullen Jennings, Paul Kyzivat, Derek MacDonald, Dave Oran, Jon Peterson, Eric Rescorla, Jonathan Rosenberg, Russ Housley, Paul Hoffman, and Stephen Kent πŸ’–.

Sharon Boyen and Trevor Freeman reviewed the document and helped drive the discussion on the id-kp-anyExtendedKeyUsage, id-kp-ServerAuth and id-kp-ClientAuth purposes in certificates 🧚. the people who handle the tough convos deserve all the flowers πŸ’.

10. Normative References πŸ“š

[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. πŸ”‘ the origin of those capital key words, obviously.

[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. πŸ“ž

[3] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, May 2008. πŸ—‚οΈ

[4] International Telecommunications Union, "Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks", ITU-T Recommendation X.509, ISO Standard 9594-8, March 2000. 🏷️

[5] International International Telephone and Telegraph Consultative Committee, "Abstract Syntax Notation One (ASN.1): Specification of basic notation", CCITT Recommendation X.680, July 2002. 🧩

[6] International International Telephone and Telegraph Consultative Committee, "ASN.1 encoding rules: Specification of basic encoding Rules (BER), Canonical encoding rules (CER) and Distinguished encoding rules (DER)", CCITT Recommendation X.690, July 2002. 🎁

[7] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol (SIP): Locating SIP Servers", RFC 3263, June 2002. πŸ—ΊοΈ

[8] Gurbani, V., Lawrence, S., and A. Jeffrey, "Domain Certificates in the Session Initiation Protocol (SIP)", RFC 5922, June 2010. πŸŽ€

Appendix A. ASN.1 Module 🧬

this is the ASN.1 module, copied exactly so nothing gets lost in translation πŸ€“:

SIPDomainCertExtn
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) id-mod(0)
    id-mod-sip-domain-extns2007(62) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

-- OID Arcs

id-kp  OBJECT IDENTIFIER  ::=
   { iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7) 3 }

-- Extended Key Usage Values

id-kp-sipDomain  OBJECT IDENTIFIER  ::=  { id-kp 20 }

END

Authors' Addresses πŸ’Œ

Scott Lawrence

EMail: scott-ietf@skrb.org

Vijay K. Gurbani Bell Laboratories, Alcatel-Lucent 1960 Lucent Lane Room 9C-533 Naperville, IL 60566 USA

Phone: +1 630 224-0216 EMail: vkg@bell-labs.com


that's the whole thing, bestie 🌈✨ the one rule is that the facts never change, so every MUST, every OID and every address is exactly as the original wrote it πŸ’…πŸ¦‹

πŸ“¦ where this page comes from