| rfc9335v3.txt | rfc9335.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) J. Uberti | Internet Engineering Task Force (IETF) J. Uberti | |||
| Request for Comments: 9335 Clubhouse | Request for Comments: 9335 | |||
| Updates: 3711 C. Jennings | Updates: 3711 C. Jennings | |||
| Category: Standards Track Cisco | Category: Standards Track Cisco | |||
| ISSN: 2070-1721 S. Garcia Murillo | ISSN: 2070-1721 S. Garcia Murillo | |||
| Millicast | Millicast | |||
| January 2023 | January 2023 | |||
| Completely Encrypting RTP Header Extensions and Contributing Sources | Completely Encrypting RTP Header Extensions and Contributing Sources | |||
| Abstract | Abstract | |||
| skipping to change at line 192 ¶ | skipping to change at line 192 ¶ | |||
| * Protection of CSRCs when present | * Protection of CSRCs when present | |||
| * Simple signaling | * Simple signaling | |||
| * Simple crypto transform and SRTP interactions | * Simple crypto transform and SRTP interactions | |||
| * Backward compatibility with unencrypted endpoints, if desired | * Backward compatibility with unencrypted endpoints, if desired | |||
| * Backward compatibility with existing RTP tooling | * Backward compatibility with existing RTP tooling | |||
| The last point deserves further discussion. While considering | The last point deserves further discussion. While other possible | |||
| possible solutions that would have encrypted more of the RTP header | solutions that would have encrypted more of the RTP header (e.g., the | |||
| (e.g., the number of CSRCs), lack of support on current tools was | number of CSRCs) were considered, the inability to parse the | |||
| inevitable, and the additional complexity outweighed the slight | resultant packets with current tools and a generally higher level of | |||
| improvement in confidentiality by fixing previous solutions. Hence, | complexity outweighed the slight improvement in confidentiality in | |||
| a new approach was needed to solve the problem described in | these solutions. Hence, a more pragmatic approach was taken to solve | |||
| Section 1.1. | the problem described in Section 1.1. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Design | 3. Design | |||
| skipping to change at line 306 ¶ | skipping to change at line 306 ¶ | |||
| 5.1. Sending | 5.1. Sending | |||
| When the mechanism defined by this specification has been negotiated, | When the mechanism defined by this specification has been negotiated, | |||
| sending an RTP packet that has any CSRCs or contains any header | sending an RTP packet that has any CSRCs or contains any header | |||
| extensions [RFC8285] follows the steps below. This mechanism MUST | extensions [RFC8285] follows the steps below. This mechanism MUST | |||
| NOT be used with header extensions other than the variety described | NOT be used with header extensions other than the variety described | |||
| in [RFC8285]. | in [RFC8285]. | |||
| If the RTP packet contains one-byte headers, the 16-bit RTP header | If the RTP packet contains one-byte headers, the 16-bit RTP header | |||
| extension tag MUST be set to 0xC0DE to indicate that the encryption | extension tag MUST be set to 0xC0DE to indicate that the encryption | |||
| has been applied and the one-byte framing is being used. Otherwise, | has been applied and the one-byte framing is being used. If the RTP | |||
| the header extension tag MUST be set to 0xC2DE to indicate encryption | packet contains two-byte headers, the header extension tag MUST be | |||
| has been applied and the two-byte framing is being used. | set to 0xC2DE to indicate encryption has been applied and the two- | |||
| byte framing is being used. | ||||
| If the packet contains CSRCs but no header extensions, an empty | If the packet contains CSRCs but no header extensions, an empty | |||
| extension block consisting of the 0xC0DE tag and a 16-bit length | extension block consisting of the 0xC0DE tag and a 16-bit length | |||
| field set to zero (explicitly permitted by [RFC3550]) MUST be | field set to zero (explicitly permitted by [RFC3550]) MUST be | |||
| appended, and the X bit MUST be set to 1 to indicate an extension | appended, and the X bit MUST be set to 1 to indicate an extension | |||
| block is present. This is necessary to provide the receiver an | block is present. This is necessary to provide the receiver an | |||
| indication that the CSRCs in the packet are encrypted. | indication that the CSRCs in the packet are encrypted. | |||
| The RTP packet MUST then be encrypted as described in Section 6.2 | The RTP packet MUST then be encrypted as described in Section 6.2 | |||
| ("Encryption Procedure"). | ("Encryption Procedure"). | |||
| skipping to change at line 1051 ¶ | skipping to change at line 1052 ¶ | |||
| Acknowledgements | Acknowledgements | |||
| The authors wish to thank Lennart Grahl for pointing out many of the | The authors wish to thank Lennart Grahl for pointing out many of the | |||
| issues with the existing header encryption mechanism, as well as | issues with the existing header encryption mechanism, as well as | |||
| suggestions for this proposal. Thanks also to Jonathan Lennox, Inaki | suggestions for this proposal. Thanks also to Jonathan Lennox, Inaki | |||
| Castillo, and Bernard Aboba for their reviews and suggestions. | Castillo, and Bernard Aboba for their reviews and suggestions. | |||
| Authors' Addresses | Authors' Addresses | |||
| Justin Uberti | Justin Uberti | |||
| Clubhouse | ||||
| Email: justin@uberti.name | Email: justin@uberti.name | |||
| Cullen Jennings | Cullen Jennings | |||
| Cisco | Cisco | |||
| Email: fluffy@iii.ca | Email: fluffy@iii.ca | |||
| Sergio Garcia Murillo | Sergio Garcia Murillo | |||
| Millicast | Millicast | |||
| Email: sergio.garcia.murillo@cosmosoftware.io | Email: sergio.garcia.murillo@cosmosoftware.io | |||
| End of changes. 4 change blocks. | ||||
| 12 lines changed or deleted | 12 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||