RFC 8122
Connection-Oriented Media Transport over the Transport Layer Security (TLS) Protocol in the Session Description Protocol (SDP)
1. Introduction β¨
Okay so bestie, this is RFC 8122, and it's giving connection-oriented media over TLS in SDP ππ It came out in March 2017, it's a Standards Track document, and it's written by J. Lennox (Vidyo) and C. Holmberg (Ericsson). π¦ It also obsoletes RFC 4572, which means the older version is officially retired. π
Here's the title block in plain terms:
- Number and title: RFC 8122, "Connection-Oriented Media Transport over the Transport Layer Security (TLS) Protocol in the Session Description Protocol (SDP)" β¨
- Authors: J. Lennox (Vidyo) and C. Holmberg (Ericsson) π«Ά
- Category and status: Standards Track π
- Date: March 2017 πΈ
- Obsoletes: RFC 4572 π
- Updates: nothing listed here π
This doc is part of the series, so more parts are coming. Stay tuned, bestie! π§
Abstract
Okay, so the abstract basically says this: this document explains how to set up secure, connection-oriented media sessions over TLS using SDP π It gives SDP a new protocol identifier, TCP/TLS, and it defines an SDP fingerprint attribute. That fingerprint identifies the certificate the TLS session will present. π
The whole vibe is that this lets media over TLS get set up securely, as long as the integrity of the session descriptions is assured π₯ It also says it obsoletes RFC 4572 by clarifying how multiple fingerprints get used. π
Status of This Memo
This is an Internet Standards Track document. β¨ It's a product of the IETF and represents IETF community consensus. It got public review and was approved by the IESG. π For more on Internet Standards, check Section 2 of RFC 7841. π¦
Info about the current status, errata, and feedback is at http://www.rfc-editor.org/info/rfc8122. π
Copyright Notice
Copyright (c) 2017 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 review these carefully, because they describe your rights and restrictions. π
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're provided without warranty as described in the Simplified BSD License. π«Ά
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Changes from RFC 4572 . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. SDP Operational Modes . . . . . . . . . . . . . . . . . . 4
3.2. Threat Model . . . . . . . . . . . . . . . . . . . . . . 5
3.3. The Need for Self-Signed Certificates . . . . . . . . . . 6
3.4. Example SDP Description for TLS Connection . . . . . . . 6
4. Protocol Identifiers . . . . . . . . . . . . . . . . . . . . 7
5. Fingerprint Attribute . . . . . . . . . . . . . . . . . . . . 7
5.1. Multiple Fingerprints . . . . . . . . . . . . . . . . . . 9
6. Endpoint Identification . . . . . . . . . . . . . . . . . . . 10
6.1. Certificate Choice . . . . . . . . . . . . . . . . . . . 10
6.2. Certificate Presentation . . . . . . . . . . . . . . . . 11
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.1. Normative References . . . . . . . . . . . . . . . . . . 15
9.2. Informative References . . . . . . . . . . . . . . . . . 16
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction β¨
Okay bestie, so the Session Description Protocol (SDP) [8] is the general-purpose format for describing multimedia sessions in announcements or invitations. π A lot of apps want to set up a media stream that uses a connection-oriented transport as part of a session. π RFC 4145, "TCP-Based Media Transport in the Session Description Protocol (SDP)" [7], gives a general way to describe and set up those streams, but the only transport it directly supports is TCP. π
Here's the thing: people in sessions usually want confidentiality, data integrity, and authentication for their media π So this document extends the TCP-Based Media spec so session descriptions can describe media sessions that use the Transport Layer Security (TLS) protocol [10]. π
TLS gives applications a channel with confidentiality and data integrity. β¨ But the TLS spec doesn't say how specific protocols should set up and use that channel. π¦ In particular, TLS leaves it to the protocols running on top to figure out how to interpret and validate authentication certificates. π§ This document covers that for connection-oriented media transport. π
Now the annoying part π Endpoints exchanging media often can't get certificates signed by a well-known root certification authority (CA). CAs usually charge for signed certificates (especially host-based ones), and getting one takes real admin overhead, since the CA has to confirm they're issuing to the right party. π Also, endpoint IP addresses and host names are often dynamic, for example from DHCP, and it's impractical to get a CA-signed certificate valid for the whole length of a DHCP lease. π For hosts like that, self-signed certificates are usually the only option. π
So this spec defines a way to use self-signed certificates securely, as long as the integrity of the SDP description is assured π«Ά Endpoints can include a secure hash of their certificate, called the "certificate fingerprint", inside the session description. π₯ If the fingerprint of the offered certificate matches the one in the session description, end hosts can trust even self-signed certificates. π
Here's the roadmap β¨ Section 3 covers the problem and threat model. Section 4 gives the basic mechanism for setting up TLS-based connection-oriented media in SDP. Section 5 describes the SDP fingerprint attribute, which (assuming SDP integrity is assured) lets you use self-signed certificates safely. Section 6 covers which X.509 certificates get presented and how they're used in TLS. Section 7 talks about more security considerations. πΈ
1.1. Changes from RFC 4572
This document obsoletes RFC 4572 [20] but stays backwards compatible with older implementations. π Here's what changed from RFC 4572 [20] π
- Clarifies that multiple
fingerprintattributes can carry fingerprints (calculated with different hash functions) for a given certificate, and can carry fingerprints for multiple certificates. π - Clarifies the fingerprint matching procedure when multiple fingerprints are provided. π¦
- Updates the preferred hash function to a stronger cipher suite, and removes the requirement to use the same hash function for calculating a certificate fingerprint and certificate signature. π₯
2. Terminology β¨
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [3]. π
3. Overview π§
Okay so this section is about the threat model that motivates TLS transport for connection-oriented media streams. π¦ It also goes deeper into why end systems need to use self-signed certificates. π«Ά
3.1. SDP Operational Modes πΈ
There are two main operational modes for multimedia sessions: advertised and offer-answer. π Advertised sessions are the simpler one. π A server publishes, somehow, an SDP session description of a multimedia session it's making available. π The classic example is the Session Announcement Protocol (SAP) [15], where SDP session descriptions are periodically sent to a well-known multicast group. π»
Traditionally these descriptions are for multicast conferences, but unicast sessions are possible too. (Obviously, connection-oriented media can't use multicast. π) Recipients connect to the addresses published in the session description, and they may never have been known to whoever advertised the session. π
Alternatively, SDP conferences can run in offer-answer mode [4]. β¨ This mode lets two participants negotiate the session between themselves. π₯ One participant offers the other a description of the session it wants, from its own perspective, and the other answers with the session it wants from its perspective. π Both participants know about each other in this mode. π«Ά This is the mode the Session Initiation Protocol (SIP) [17] uses. π¦
3.2. Threat Model π΅οΈ
okay so, people in multimedia conferences usually want three things for their media sessions: confidentiality, data integrity, and authentication π. This section is basically the villain lineup π. It walks through the different kinds of attackers and how they try to ruin those guarantees, then shows how TLS can shut them down π .
The simplest attacker just listens in on the traffic for a multimedia session π. They could be on the same local-area or wireless network as one of the people in the conference. This kind of attacker doesn't threaten a connection's data integrity or authentication, and almost any operational mode of TLS can keep the media stream confidential π.
Next up is an attacker who can send their own data traffic over the network, but can't change or redirect valid traffic π. In SDP's 'advertised' operational mode, this barely counts as an attack, since media sessions are expected to be started from anywhere on the network π. In SDP's offer-answer mode, though, it's way more serious. The attacker could start a connection to one or both endpoints of a session, pretending to be an endpoint or acting as a man in the middle to snoop on their chats π. To stop this, TLS uses endpoint certificates π¦. As long as the certificates' private keys haven't been compromised, the endpoints have an externally trusted way to validate certificates, most commonly a mutually trusted certification authority π. Because each endpoint knows which certificate identity to expect, they can be sure that an attack like this hasn't happened β¨.
Finally, the most dangerous attacker can change or redirect session descriptions, like a compromised or malicious SIP proxy server π. TLS itself, and any mechanism that uses it, can't protect an SDP session from this one π₯. So the SDP description itself has to be secured some other way. SIP, for example, defines how S/MIME [22] can be used to secure session descriptions π«Ά.
3.3. The Need for Self-Signed Certificates π§
SDP session descriptions are made by any endpoint that needs to join a multimedia session π. In lots of cases, like SIP phones, these endpoints have dynamically configured IP addresses and host names, and they have to be deployed with almost zero configuration π. For an endpoint like that, it's basically impossible, for practical purposes, to get a certificate signed by a well-known certification authority π©.
If two endpoints have no prior relationship, self-signed certificates can't generally be trusted, because nothing guarantees that an attacker isn't running a man-in-the-middle attack π¨. Here's the plot twist though πΈ: if the integrity of SDP session descriptions can be assured, those descriptions can count as a prior relationship themselves. Certificates can be securely described right inside the session description β¨. This is done by providing a secure hash of a certificate, also called a "certificate fingerprint", as an SDP attribute π . This mechanism is described in Section 5 π.
3.4. Example SDP Description for TLS Connection π¦
Figure 1 shows an SDP offer that signals a T.38 fax session over TLS π . To keep things short, the main part of the session description is left out of the example, so you only see the 'm' line and its attributes π. (This example is the same as the first one in RFC 4145 [7], except for the proto parameter and the fingerprint attribute.) Check out the later sections for explanations of the TLS-specific attributes in the example π.
Note: due to RFC formatting conventions, this document splits SDP across lines whose content would exceed 72 characters. A backslash character marks where this line folding has taken place. This backslash and its trailing CRLF and whitespace would not appear in actual SDP content.
m=image 54111 TCP/TLS t38
c=IN IP4 192.0.2.2
a=setup:passive
a=connection:new
a=fingerprint:SHA-256 \
12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF: \
3E:5D:49:6B:19:E5:7C:AB:4A:AD
a=fingerprint:SHA-1 \
4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB
Figure 1: Example SDP Description Offering a TLS Media Stream
4. Protocol Identifiers π
The 'm' line in SDP specifies, among other things, the transport protocol that the media in the session will use π‘. For a discussion of transport protocol identifiers, check out the "Media Descriptions" section of SDP [8] π .
This specification defines the protocol identifier 'TCP/TLS' π. It tells you the media will use the Transport Layer Security protocol [10] over TCP π. (Using TLS over other transport protocols isn't covered in this document.) The 'TCP/TLS' identifier only describes the transport protocol, not the upper-layer protocol π°. So an 'm' line that specifies 'TCP/TLS' MUST further qualify the protocol using an fmt identifier to indicate the application running over TLS π.
Media sessions described with this identifier follow the procedures defined in RFC 4145 [7] π¦. They also use the SDP attributes defined in that specification, 'setup' and 'connection' β¨.
5. Fingerprint Attribute π
Parties to a TLS session show who they are by presenting authentication certificates during the TLS handshake π€. Authentication certificates are X.509 [2] certificates, as profiled by RFCs 3279 [5], 5280 [11], and 4055 [6] π.
To tie media streams to connections and stop unauthorized barge-in attacks on those media streams, endpoints MUST provide a certificate fingerprint π«. If the X.509 certificate presented for the TLS connection matches the fingerprint in the SDP, the endpoint can be confident that the author of the SDP is really the one who started the connection π.
A certificate fingerprint is a secure one-way hash of the Distinguished Encoding Rules (DER) form of the certificate π. (Certificate fingerprints are widely supported by tools that handle X.509 certificates. For example, the command "openssl x509 -fingerprint" makes the command-line tool of the openssl package print a certificate fingerprint, and the certificate managers for Mozilla and Internet Explorer show them when you look at the details of a certificate π οΈ.)
A fingerprint shows up in SDP as an attribute (an 'a' line) πΈ. It has the name of the hash function used, followed by the hash value itself. The hash value is written as a sequence of uppercase hexadecimal bytes, separated by colons. The number of bytes is set by the hash function π’. (This is the syntax used by openssl and by the browsers' certificate managers. It's different from the syntax used for hash values in things like HTTP digest authentication [24], which uses unseparated lowercase hexadecimal bytes. Consistency with other applications of fingerprints was considered more important π.)
The formal syntax of the fingerprint attribute is given in Augmented Backus-Naur Form [9] in Figure 2. This syntax extends the BNF syntax of SDP [8] π.
attribute =/ fingerprint-attribute
fingerprint-attribute = "fingerprint" ":" hash-func SP fingerprint
hash-func = "sha-1" / "sha-224" / "sha-256" /
"sha-384" / "sha-512" /
"md5" / "md2" / token
; Additional hash functions can only come
; from updates to RFC 3279
fingerprint = 2UHEX *(":" 2UHEX)
; Each byte in upper-case hex, separated
; by colons.
UHEX = DIGIT / %x41-46 ; A-F uppercase
Figure 2: Augmented Backus-Naur Syntax for the Fingerprint Attribute
Following RFC 3279 [5] as updated by RFC 4055 [6], the defined hash functions are 'SHA-1' [1] [16], 'SHA-224' [1], 'SHA-256' [1], 'SHA-384' [1], 'SHA-512' [1], 'MD5' [13], and 'MD2' [23], with 'SHA-256' preferred π. A new IANA registry, named "Hash Function Textual Names" and specified in Section 8, allows new tokens to be added in the future. But they may only be added if they're included in RFCs that update or obsolete RFC 3279 [5] π.
Implementations compliant with this specification MUST NOT use the MD2 and MD5 hash functions to calculate fingerprints, or to verify received fingerprints that were calculated using them π·.
Note: The MD2 and MD5 hash functions are listed in this specification so that implementations can recognize them. Implementations that log unused hash functions might log occurrences of these algorithms differently from unknown hash algorithms π.
The fingerprint attribute can be either a session-level or a media-level SDP attribute. If it's a session-level attribute, it applies to all TLS sessions that don't have a media-level fingerprint attribute defined π§©.
5.1. Multiple Fingerprints π
Multiple SDP fingerprint attributes can be tied to one 'm' line π. This can happen if several fingerprints were calculated for one certificate using different hash functions. It can also happen if one or more fingerprints for multiple certificates have been calculated π―. This might be needed if multiple certificates will be used for media tied to an 'm' line, like when separate certificates are used for RTP and the RTP Control Protocol (RTCP), or when it isn't known which certificate will be used at the time the fingerprints are exchanged π€·ββοΈ. In those cases, one or more fingerprints MUST be calculated for each possible certificate π .
An endpoint MUST, as a minimum, calculate a fingerprint using both the 'SHA-256' hash function algorithm and the hash function used to generate the signature on the certificate, for each possible certificate π. Including the hash from the signature algorithm keeps things interoperable with strict implementations of RFC 4572 [20] π«Ά. Either of these fingerprints MAY be omitted if the endpoint includes a hash with a stronger hash algorithm that it knows the peer supports, if it's known that the peer doesn't support the hash algorithm, or if local policy requires stronger algorithms πͺ.
If fingerprints for multiple certificates are calculated, the same set of hash functions MUST be used to calculate fingerprints for each certificate associated with the 'm' line π§.
An endpoint MUST select the set of fingerprints that use its most preferred hash function (out of those offered by the peer), and verify that each certificate used matches one fingerprint from that set β .
If a certificate doesn't match any fingerprint in that set, the endpoint MUST NOT establish the TLS connection π«π.
Note: The SDP fingerprint attribute doesn't contain a reference to a specific certificate. Endpoints need to compare the fingerprint with a certificate hash in order to look for a match π.
6. Endpoint Identification π·
6.1. Certificate Choice
okay so an X.509 certificate basically ties an identity to a public key π If the SDP describing your TLS session travels over something with integrity protection, then a certificate asserting any syntactically valid identity MAY be used π For example, an SDP description sent over HTTP/TLS [14] or secured by S/MIME [22] MAY assert any identity in the certificate securing the media connection.
Security protocols that only give you hop-by-hop integrity protection (like the SIPS scheme [17] or SIP over TLS) are considered sufficiently secure to allow the mode where any valid identity is accepted π¦ However, go check Section 7 for the security implications of that, because it's a whole thing π
Now, if the SDP is not integrity-protected, the certificate provided for a TLS connection MUST certify an appropriate identity for the connection π In these scenarios, the certificate presented by an endpoint MUST certify either the SDP connection address or the identity of the creator of the SDP message, as follows:
- If the connection address for the media description is specified as an IP address, the endpoint MAY use a certificate with an
iPAddresssubjectAltName that exactly matches the IP in the connection-address in the session description's'c'line. Similarly, if the connection address for the media description is specified as a fully qualified domain name, the endpoint MAY use a certificate with adNSNamesubjectAltName matching the specified'c'line connection-address exactly. (Wildcard patterns MUST NOT be used.) - Alternately, if the SDP session description of the session was transmitted over a protocol (such as SIP [17]) for which the identities of session participants are defined by Uniform Resource Identifiers (URIs), the endpoint MAY use a certificate with a
uniformResourceIdentifiersubjectAltName corresponding to the identity of the endpoint that generated the SDP. The details of what URIs are valid are dependent on the transmitting protocol. (For more details on the validity of URIs, see Section 7.
Identity matching is done using the matching rules from RFC 5280 [11] π§ If there's more than one identity of a given type in the certificate (like more than one dNSName), a match on any one of them is good enough β¨ And to make certificate caches work (more on that in Section 7), endpoints SHOULD consistently provide the same certificate for each identity they support πΈ
6.2. Certificate Presentation
In every case, an endpoint acting as the TLS server (aka the one taking the setup:passive role, in connection-oriented media terms) MUST present a certificate during TLS initiation, following the rules from Section 6.1 π If the certificate doesn't match the original fingerprint, the client endpoint MUST terminate the media connection with a bad_certificate error π
If the SDP offer/answer model [4] is in use, the client (the endpoint with the setup:active role) MUST also present a certificate following the rules of Section 6.1 π«Ά The server MUST request a certificate. If the client doesn't provide one, or the certificate doesn't match a provided fingerprint, the server endpoint MUST terminate the media connection with a bad_certificate error π
Heads up, though: with offer/answer, it's possible for a media connection to outrace the answer back to the offerer ποΈ So if the offerer has offered a setup:passive or setup:actpass role, it MUST (as specified in RFC 4145 [7]) start listening for an incoming connection as soon as it sends its offer. But it MUST NOT assume the data over the TLS connection is valid until it has received a matching fingerprint in an SDP answer π If the fingerprint doesn't match the client's certificate once it finally arrives, the server endpoint MUST terminate the media connection with a bad_certificate error, same as the previous paragraph said π
If offer/answer isn't being used (like if the SDP was sent over the Session Announcement Protocol [15]), there's no secure channel for clients to share certificate fingerprints with servers π₯Ί In that case, servers MAY request client certificates, which SHOULD be signed by a well-known certification authority, or MAY allow clients to connect without a certificate π
7. Security Considerations β¨
Okay bestie, this entire document is about security π₯ The problem it solves is covered in Section 1, and you can get a high-level overview in Section 3. For security stuff that applies to SDP in general, check out the SDP specification [8] π
Offering a TCP/TLS connection in SDP (or agreeing to one in the SDP offer/answer mode) does not create an obligation for an endpoint to accept any TLS connection with the given fingerprint π
ββοΈ Instead, the endpoint must go through the standard TLS negotiation procedure to make sure the TLS stream cipher and MAC algorithm that get picked actually meet the security needs of the higher-level application π (For example, an offered stream cipher of TLS_NULL_WITH_NULL_NULL SHOULD be rejected in almost every application scenario π)
Like all SDP messages, the ones describing TLS streams ride inside an encapsulating application protocol (e.g., SIP, Media Gateway Control Protocol (MGCP), etc.) π The encapsulating protocol is responsible for keeping the SDP security descriptions intact. So the application protocol SHOULD either use its own security mechanisms (e.g., secure multiparts) or, alternatively, lean on a lower-layer security service (e.g., TLS or IPsec) π‘οΈ That security service SHOULD provide strong message authentication as well as effective replay protection π
But integrity protection isn't always possible π¬ For those cases, end systems SHOULD keep a cache of certificates that other parties have previously presented using this mechanism ποΈ If it's possible, users SHOULD be notified when an unsecured certificate from a previously unknown end system shows up, and SHOULD be strongly warned if a different unsecured certificate comes from a party they've talked to before π¨ This way, even without integrity protection for SDP, this document's mechanism is equivalent to the Secure Shell (SSH) protocol [18]. SSH is vulnerable to man-in-the-middle attacks when two parties first communicate, but it can detect ones that happen later on π΅οΈββοΈ (Note that a precise definition of the "other party" depends on the application protocol carrying the SDP message.) Users SHOULD NOT, however, in any circumstances be notified about certificates described in SDP descriptions sent over an integrity-protected channel π ββοΈ
To help with interoperability and deployment, security protocols that only give hop-by-hop integrity protection (e.g., the SIPS scheme [17], SIP over TLS) are considered sufficiently secure to allow the mode where any syntactically valid identity is accepted in a certificate π¦ This decision was made because SIPS is currently the integrity mechanism most likely to be used in deployed networks in the short to medium term π‘ But in this mode, SDP integrity is vulnerable to attacks by compromised or malicious middleboxes, e.g., SIP proxy servers π± End systems MAY warn users about SDP sessions that are secured only hop-by-hop, and definitions of media formats running over TCP/TLS MAY specify that only end-to-end integrity mechanisms be used πΈ
Depending on how SDP messages are transmitted, it isn't always possible to tell whether a subjectAltName in a remote certificate is actually expected for the remote party π€ Call forwarding, third-party call control, or session descriptions generated by endpoints controlled by the Gateway Control Protocol [21] can all make it hard in SIP to figure out which entity should have generated a remote SDP response π So in general, when you're not using authenticity and integrity protection on the SDP descriptions, a certificate transmitted over SIP SHOULD assert the endpoint's SIP Address of Record as a uniformResourceIndicator subjectAltName πͺͺ And when an endpoint gets a certificate over SIP asserting an identity (including an iPAddress or dNSName identity) other than the one it placed or received the call with, it SHOULD alert the user and ask for confirmation πββοΈ This applies whether the certificates are self-signed or signed by certification authorities. A certificate for "sip:bob@example.com" may be legitimately signed by a certification authority, but it may still not be acceptable for a call to "sip:alice@example.com" π (This issue isn't specific to this spec, by the way. The same consideration applies to S/MIME-signed SDP carried over SIP π«Ά)
This document does not define a mechanism for securely transporting RTP and RTCP packets over a connection-oriented channel πΆ Check out RFC 7850 [19] for more details π
TLS isn't always the most appropriate choice for secure connection-oriented media π€·ββοΈ In some cases, a higher- or lower-level security protocol may be appropriate.
This document improves security over RFC 4572 [20] β¨ It updates the preferred hash function from SHA-1 to SHA-256 and deprecates the usage of the MD2 and MD5 hash functions ποΈ Slay.
By clarifying how multiple fingerprints are used and handled, the document also enables hash agility and incremental deployment of newer, more secure hash functions ππ
8. IANA Considerations β¨
IANA has updated the registrations from RFC 4572 [20] so they point to this spec, which is super helpful for anyone tracing things back π¦
This document defines an SDP proto value called TCP/TLS π. You'll find its format in Section 4. IANA registered it in the "proto" registry, which lives inside the "Session Description Protocol (SDP) Parameters" registry.
This document also defines an SDP attribute that works at both the session and media level, called fingerprint π. Its format is in Section 5. IANA registered it in the "att-field (both session and media level)" registry, also inside "Session Description Protocol (SDP) Parameters".
Okay, now the SDP spec [8] says that anyone defining a new proto value, like TCP/TLS here, has to spell out the rules for how their media format (fmt) namespace gets managed π. For TCP/TLS, new formats SHOULD come with an associated MIME registration π
. Reusing an existing MIME subtype for the format is encouraged πΈ. If there's no MIME subtype yet, it is RECOMMENDED to register a suitable one through the IETF process [12], by producing or referencing a Standards Track RFC that defines the transport protocol for that format π«Ά.
IANA also updated the "Hash Function Textual Names" registry (originally made in [20]) so it refers to this document β¨.
The names of the hash functions used for certificate fingerprints are registered by IANA π. Hash functions MUST be defined by Standards Track RFCs that update or obsolete RFC 3279 [5] π.
When you register a new hash function textual name, you MUST provide the following info π:
- The textual name of the hash function.
- The Object Identifier (OID) of the hash function as used in X.509 certificates.
- A reference to the Standards Track RFC that updates or obsoletes RFC 3279 [5] and defines how the hash function is used in X.509 certificates.
Table 1 has the starting values for this registry π.
+--------------------+------------------------+-----------+
| Hash Function Name | OID | Reference |
+--------------------+------------------------+-----------+
| "md2" | 1.2.840.113549.2.2 | RFC 3279 |
| "md5" | 1.2.840.113549.2.5 | RFC 3279 |
| "sha-1" | 1.3.14.3.2.26 | RFC 3279 |
| "sha-224" | 2.16.840.1.101.3.4.2.4 | RFC 4055 |
| "sha-256" | 2.16.840.1.101.3.4.2.1 | RFC 4055 |
| "sha-384" | 2.16.840.1.101.3.4.2.2 | RFC 4055 |
| "sha-512" | 2.16.840.1.101.3.4.2.3 | RFC 4055 |
+--------------------+------------------------+-----------+
Table 1: IANA Hash Function Textual Name Registry
9. References π
9.1. Normative References
- [1] National Institute of Standards and Technology, "Secure Hash Standard (SHS)", FIPS PUB 180-4, DOI 10.6028/NIST.FIPS.180-4, August 2015,
http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf. - [2] International Organization for Standardization, "Information technology -- Open Systems Interconnection -- The Directory -- Part 8: Public-key and attribute certificate frameworks", ISO/IEC 9594-8:2014, March 2014,
https://www.iso.org/standard/64854.html. - [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,
http://www.rfc-editor.org/info/rfc2119. - [4] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, DOI 10.17487/RFC3264, June 2002,
http://www.rfc-editor.org/info/rfc3264. - [5] Bassham, L., Polk, W., and R. Housley, "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279, DOI 10.17487/RFC3279, April 2002,
http://www.rfc-editor.org/info/rfc3279. - [6] Schaad, J., Kaliski, B., and R. Housley, "Additional Algorithms and Identifiers for RSA Cryptography for use in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 4055, DOI 10.17487/RFC4055, June 2005,
http://www.rfc-editor.org/info/rfc4055. - [7] Yon, D. and G. Camarillo, "TCP-Based Media Transport in the Session Description Protocol (SDP)", RFC 4145, DOI 10.17487/RFC4145, September 2005,
http://www.rfc-editor.org/info/rfc4145. - [8] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, DOI 10.17487/RFC4566, July 2006,
http://www.rfc-editor.org/info/rfc4566. - [9] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/RFC5234, January 2008,
http://www.rfc-editor.org/info/rfc5234. - [10] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008,
http://www.rfc-editor.org/info/rfc5246. - [11] 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, DOI 10.17487/RFC5280, May 2008,
http://www.rfc-editor.org/info/rfc5280. - [12] Freed, N., Klensin, J., and T. Hansen, "Media Type Specifications and Registration Procedures", BCP 13, RFC 6838, DOI 10.17487/RFC6838, January 2013,
http://www.rfc-editor.org/info/rfc6838.
9.2. Informative References
- [13] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, DOI 10.17487/RFC1321, April 1992,
http://www.rfc-editor.org/info/rfc1321. - [14] Rescorla, E., "HTTP Over TLS", RFC 2818, DOI 10.17487/RFC2818, May 2000,
http://www.rfc-editor.org/info/rfc2818. - [15] Handley, M., Perkins, C., and E. Whelan, "Session Announcement Protocol", RFC 2974, DOI 10.17487/RFC2974, October 2000,
http://www.rfc-editor.org/info/rfc2974. - [16] Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm 1 (SHA1)", RFC 3174, DOI 10.17487/RFC3174, September 2001,
http://www.rfc-editor.org/info/rfc3174. - [17] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, DOI 10.17487/RFC3261, June 2002,
http://www.rfc-editor.org/info/rfc3261. - [18] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Protocol Architecture", RFC 4251, DOI 10.17487/RFC4251, January 2006,
http://www.rfc-editor.org/info/rfc4251. - [19] Lazzaro, J., "Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection-Oriented Transport", RFC 4571, DOI 10.17487/RFC4571, July 2006,
http://www.rfc-editor.org/info/rfc4571. - [20] Lennox, J., "Connection-Oriented Media Transport over the Transport Layer Security (TLS) Protocol in the Session Description Protocol (SDP)", RFC 4572, DOI 10.17487/RFC4572, July 2006,
http://www.rfc-editor.org/info/rfc4572. - [21] Taylor, T., "Reclassification of RFC 3525 to Historic", RFC 5125, DOI 10.17487/RFC5125, February 2008,
http://www.rfc-editor.org/info/rfc5125. - [22] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification", RFC 5751, DOI 10.17487/RFC5751, January 2010,
http://www.rfc-editor.org/info/rfc5751. - [23] Turner, S. and L. Chen, "MD2 to Historic Status", RFC 6149, DOI 10.17487/RFC6149, March 2011,
http://www.rfc-editor.org/info/rfc6149. - [24] Shekh-Yusef, R., Ed., Ahrens, D., and S. Bremer, "HTTP Digest Access Authentication", RFC 7616, DOI 10.17487/RFC7616, September 2015,
http://www.rfc-editor.org/info/rfc7616.
Acknowledgments π«Ά
This document got significant contributions from Cullen Jennings, Paul Kyzivat, Roman Shpount, and Martin Thomson π. Elwyn Davies did the Gen-ART review of the document π. Thank you all, you're literally the best π.
Authors' Addresses π¦
Jonathan Lennox Vidyo
Email: jonathan@vidyo.com
Christer Holmberg Ericsson
Email: christer.holmberg@ericsson.com
π¦ where this page comes from
- ietf: rfc8122 2017-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms