idnits 2.17.1 draft-ietf-perc-private-media-framework-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 30, 2017) is 2363 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-12) exists of draft-ietf-perc-double-07 == Outdated reference: A later version (-12) exists of draft-ietf-perc-dtls-tunnel-01 ** Downref: Normative reference to an Informational draft: draft-ietf-perc-dtls-tunnel (ref. 'I-D.ietf-perc-dtls-tunnel') == Outdated reference: A later version (-13) exists of draft-ietf-perc-srtp-ekt-diet-05 == Outdated reference: A later version (-20) exists of draft-ietf-rtcweb-security-arch-13 -- Obsolete informational reference (is this intentional?): RFC 4474 (Obsoleted by RFC 8224) -- Obsolete informational reference (is this intentional?): RFC 4566 (Obsoleted by RFC 8866) Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group P. Jones 3 Internet-Draft D. Benham 4 Intended status: Standards Track Cisco 5 Expires: May 3, 2018 C. Groves 6 Huawei 7 October 30, 2017 9 A Solution Framework for Private Media in Privacy Enhanced RTP 10 Conferencing 11 draft-ietf-perc-private-media-framework-05 13 Abstract 15 This document describes a solution framework for ensuring that media 16 confidentiality and integrity are maintained end-to-end within the 17 context of a switched conferencing environment where media 18 distributors are not trusted with the end-to-end media encryption 19 keys. The solution aims to build upon existing security mechanisms 20 defined for the real-time transport protocol (RTP). 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at http://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on May 3, 2018. 39 Copyright Notice 41 Copyright (c) 2017 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (http://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 57 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 58 3. PERC Entities and Trust Model . . . . . . . . . . . . . . . . 5 59 3.1. Untrusted Entities . . . . . . . . . . . . . . . . . . . 5 60 3.1.1. Media Distributor . . . . . . . . . . . . . . . . . . 6 61 3.1.2. Call Processing . . . . . . . . . . . . . . . . . . . 6 62 3.2. Trusted Entities . . . . . . . . . . . . . . . . . . . . 7 63 3.2.1. Endpoint . . . . . . . . . . . . . . . . . . . . . . 7 64 3.2.2. Key Distributor . . . . . . . . . . . . . . . . . . . 7 65 4. Framework for PERC . . . . . . . . . . . . . . . . . . . . . 7 66 4.1. End-to-End and Hop-by-Hop Authenticated Encryption . . . 8 67 4.2. E2E Key Confidentiality . . . . . . . . . . . . . . . . . 9 68 4.3. E2E Keys and Endpoint Operations . . . . . . . . . . . . 9 69 4.4. HBH Keys and Hop Operations . . . . . . . . . . . . . . . 10 70 4.5. Key Exchange . . . . . . . . . . . . . . . . . . . . . . 10 71 4.5.1. Initial Key Exchange and Key Distributor . . . . . . 10 72 4.5.2. Key Exchange during a Conference . . . . . . . . . . 12 73 5. Entity Trust . . . . . . . . . . . . . . . . . . . . . . . . 12 74 5.1. Identity Assertions . . . . . . . . . . . . . . . . . . . 13 75 5.2. Certificate Fingerprints in Session Signaling . . . . . . 13 76 5.3. Conferences Identification . . . . . . . . . . . . . . . 14 77 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 78 6.1. Third Party Attacks . . . . . . . . . . . . . . . . . . . 14 79 6.2. Media Distributor Attacks . . . . . . . . . . . . . . . . 15 80 6.2.1. Denial of service . . . . . . . . . . . . . . . . . . 15 81 6.2.2. Replay Attack . . . . . . . . . . . . . . . . . . . . 15 82 6.2.3. Delayed Playout Attack . . . . . . . . . . . . . . . 16 83 6.2.4. Splicing Attack . . . . . . . . . . . . . . . . . . . 16 84 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 85 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 86 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 87 9.1. Normative References . . . . . . . . . . . . . . . . . . 16 88 9.2. Informative References . . . . . . . . . . . . . . . . . 17 89 Appendix A. PERC Key Inventory . . . . . . . . . . . . . . . . . 18 90 A.1. DTLS-SRTP Exchange Yields HBH Keys . . . . . . . . . . . 19 91 A.2. The Key Distributor Transmits the KEK (EKT Key) . . . . . 20 92 A.3. Endpoints fabricate an SRTP Master Key . . . . . . . . . 21 93 A.4. Who has What Key . . . . . . . . . . . . . . . . . . . . 21 94 Appendix B. PERC Packet Format . . . . . . . . . . . . . . . . . 22 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 97 1. Introduction 99 Switched conferencing is an increasingly popular model for multimedia 100 conferences with multiple participants using a combination of audio, 101 video, text, and other media types. With this model, real-time media 102 flows from conference participants are not mixed, transcoded, 103 transrated, recomposed, or otherwise manipulated by a Media 104 Distributor, as might be the case with a traditional media server or 105 multipoint control unit (MCU). Instead, media flows transmitted by 106 conference participants are simply forwarded by the Media Distributor 107 to each of the other participants, often forwarding only a subset of 108 flows based on voice activity detection or other criteria. In some 109 instances, the Media Distributors may make limited modifications to 110 RTP [RFC3550] headers, for example, but the actual media content 111 (e.g., voice or video data) is unaltered. 113 An advantage of switched conferencing is that Media Distributors can 114 be more easily deployed on general-purpose computing hardware, 115 including virtualized environments in private and public clouds. 116 Deploying conference resources in a public cloud environment might 117 introduce a higher security risk. Whereas traditional conference 118 resources were usually deployed in private networks that were 119 protected, cloud-based conference resources might be viewed as less 120 secure since they are not always physically controlled by those who 121 use them. Additionally, there are usually several ports open to the 122 public in cloud deployments, such as for remote administration, and 123 so on. 125 This document defines a solution framework wherein media privacy is 126 ensured by making it impossible for a media distributor to gain 127 access to keys needed to decrypt or authenticate the actual media 128 content sent between conference participants. At the same time, the 129 framework allows for the Media Distributors to modify certain RTP 130 headers; add, remove, encrypt, or decrypt RTP header extensions; and 131 encrypt and decrypt RTCP packets. The framework also prevents replay 132 attacks by authenticating each packet transmitted between a given 133 participant and the media distributor using a unique key per endpoint 134 that is independent from the key for media encryption and 135 authentication. 137 A goal of this document is to define a framework for enhanced privacy 138 in RTP-based conferencing environments while utilizing existing 139 security procedures defined for RTP with minimal enhancements. 141 2. Conventions Used in This Document 143 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 144 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 145 document are to be interpreted as described in [RFC2119] when they 146 appear in ALL CAPS. These words may also appear in this document in 147 lower case as plain English words, absent their normative meanings. 149 Additionally, this solution framework uses the following terms and 150 acronyms: 152 End-to-End (E2E): Communications from one endpoint through one or 153 more Media Distributors to the endpoint at the other end. 155 Hop-by-Hop (HBH): Communications between an endpoint and a Media 156 Distributor or between Media Distributors. 158 Trusted Endpoint: An RTP flow terminating entity that has possession 159 of E2E media encryption keys and terminates E2E encryption. This may 160 include embedded user conferencing equipment or browsers on 161 computers, media gateways, MCUs, media recording device and more that 162 are in the trusted domain for a given deployment. 164 Media Distributor (MD): An RTP middlebox that is not allowed to to 165 have access to E2E encryption keys. It operates according to the 166 Selective Forwarding Middlebox RTP topologies [RFC7667] per the 167 constraints defined by the PERC system, which includes, but not 168 limited to, having no access to RTP media unencrypted and having 169 limits on what RTP header field it can alter. 171 Key Distributor: An entity that is a logical function which 172 distributes keying material and related information to trusted 173 endpoints and Media Distributor(s), only that which is appropriate 174 for each. The Key Distributor might be co-resident with another 175 entity trusted with E2E keying material. 177 Conference: Two or more participants communicating via trusted 178 endpoints to exchange RTP flows through one or more Media 179 Distributor. 181 Call Processing: All trusted endpoints in the conference connect to 182 it by a call processing dialog, such as with the Focus defined in the 183 Framework for Conferencing with SIP [RFC4353]. 185 Third Party: Any entity that is not an Endpoint, Media Distributor, 186 Key Distributor or Call Processing entity as described in this 187 document. 189 3. PERC Entities and Trust Model 191 The following figure depicts the trust relationships, direct or 192 indirect, between entities described in the subsequent sub-sections. 193 Note that these entities may be co-located or further divided into 194 multiple, separate physical devices. 196 Please note that some entities classified as untrusted in the simple, 197 general deployment scenario used most commonly in this document might 198 be considered trusted in other deployments. This document does not 199 preclude such scenarios, but will keep the definitions and examples 200 focused by only using the the simple, most general deployment 201 scenario. 203 | 204 +----------+ | +-----------------+ 205 | Endpoint | | | Call Processing | 206 +----------+ | +-----------------+ 207 | 208 | 209 +----------------+ | +--------------------+ 210 | Key Distributor| | | Media Distributor | 211 +----------------+ | +--------------------+ 212 | 213 Trusted | Untrusted 214 Entities | Entities 215 | 217 Figure 1: Trusted and Untrusted Entities in PERC 219 3.1. Untrusted Entities 221 The architecture described in this framework document enables 222 conferencing infrastructure to be hosted in domains, such as in a 223 cloud conferencing provider's facilities, where the trustworthiness 224 is below the level needed to assume the privacy of participant's 225 media will not be compromised. The conferencing infrastructure in 226 such a domain is still trusted with reliably connecting the 227 participants together in a conference, but not trusted with keying 228 material needed to decrypt any of the participant's media. Entities 229 in such lower trustworthiness domains will simply be referred to as 230 untrusted entities from this point forward. 232 It is important to understand that untrusted in this document does 233 not mean an entity is not expected to function properly. Rather, it 234 means only that the entity does not have access to the E2E media 235 encryption keys. 237 3.1.1. Media Distributor 239 A Media Distributor forwards RTP flows between endpoints in the 240 conference while performing per-hop authentication of each RTP 241 packet. The Media Distributor may need access to one or more RTP 242 headers or header extensions, potentially adding or modifying a 243 certain subset. The Media Distributor will also relay secured 244 messaging between the endpoints and the Key Distributor and will 245 acquire per-hop key information from the Key Distributor. The actual 246 media content MUST NOT not be decryptable by a Media Distributor, so 247 it is untrusted to have access to the E2E media encryption keys. The 248 key exchange mechanisms specified in this framework will prevent the 249 Media Distributor from gaining access to the E2E media encryption 250 keys. 252 An endpoint's ability to join a conference hosted by a Media 253 Distributor MUST NOT alone be interpreted as being authorized to have 254 access to the E2E media encryption keys, as the Media Distributor 255 does not have the ability to determine whether an endpoint is 256 authorized. Trusted endpoint authorization is described in 257 [I-D.roach-perc-webrtc]. 259 A Media Distributor MUST perform its role in properly forwarding 260 media packets while taking measures to mitigate the adverse effects 261 of denial of service attacks (refer to Section 6), etc, to a level 262 equal to or better than traditional conferencing (i.e. non-PERC) 263 deployments. 265 A Media Distributor or associated conferencing infrastructure may 266 also initiate or terminate various conference control related 267 messaging, which is outside the scope of this framework document. 269 3.1.2. Call Processing 271 The call processing function is untrusted in the simple, general 272 deployment scenario. When a physical subset of the call processing 273 function resides in facilities outside the trusted domain, it should 274 not be trusted to have access to E2E key information. 276 The call processing function may include the processing of call 277 signaling messages, as well as the signing of those messages. It may 278 also authenticate the endpoints for the purpose of call signaling and 279 subsequently joining of a conference hosted through one or more Media 280 Distributors. Call processing may optionally ensure the privacy of 281 call signaling messages between itself, the endpoint, and other 282 entities. 284 In any deployment scenario where the call processing function is 285 considered trusted, the call processing function MUST ensure the 286 integrity of received messages before forwarding to other entities. 288 3.2. Trusted Entities 290 From the PERC model system perspective, entities considered trusted 291 (refer to Figure 1) can be in possession of the E2E media encryption 292 keys for one or more conferences. 294 3.2.1. Endpoint 296 An endpoint is considered trusted and will have access to E2E key 297 information. While it is possible for an endpoint to be compromised, 298 subsequently performing in undesired ways, defining endpoint 299 resistance to compromise is outside the scope of this document. 300 Endpoints will take measures to mitigate the adverse effects of 301 denial of service attacks (refer to Section 6) from other entities, 302 including from other endpoints, to a level equal to or better than 303 traditional conference (i.e., non-PERC) deployments. 305 3.2.2. Key Distributor 307 The Key Distributor, which may be collocated with an endpoint or 308 exist standalone, is responsible for providing key information to 309 endpoints for both end-to-end and hop-by-hop security and for 310 providing key information to Media Distributors for the hop-by-hop 311 security. 313 Interaction between the Key Distributor and the call processing 314 function is necessary to for proper conference-to-endpoint mappings. 315 This is described in Section 5.3. 317 The Key Distributor needs to be secured and managed in a way to 318 prevent exploitation by an adversary, as any kind of compromise of 319 the Key Distributor puts the security of the conference at risk. 321 4. Framework for PERC 323 The purpose for this framework is to define a means through which 324 media privacy can be ensured when communicating within a conferencing 325 environment consisting of one or more Media Distributors that only 326 switch, hence not terminate, media. It does not otherwise attempt to 327 hide the fact that a conference between endpoints is taking place. 329 This framework reuses several specified RTP security technologies, 330 including SRTP [RFC3711], PERC EKT [I-D.ietf-perc-srtp-ekt-diet], and 331 DTLS-SRTP [RFC5764]. 333 4.1. End-to-End and Hop-by-Hop Authenticated Encryption 335 This solution framework focuses on the end-to-end privacy and 336 integrity of the participant's media by limiting access of the end- 337 to-end key information to trusted entities. However, this framework 338 does give a Media Distributor access to RTP headers and all or most 339 header extensions, as well as the ability to modify a certain subset 340 of those headers and to add header extensions. Packets received by a 341 Media Distributor or an endpoint are authenticated hop-by-hop. 343 To enable all of the above, this framework defines the use of two 344 security contexts and two associated encryption keys: an "inner" key 345 (an E2E key distinct for each transmitted media flow) for 346 authenticated encryption of RTP media between endpoints and an 347 "outer" key (HBH key) known only to media distributor and the 348 adjacent endpoint) for the hop between an endpoint and a Media 349 Distributor or between Media Distributor. Reference the following 350 figure. 352 +-------------+ +-------------+ 353 | |################################| | 354 | Media |------------------------------->| Media | 355 | Distributor |<-------------------------------| Distributor | 356 | X |################################| Y | 357 | | HBH Key (XY) | | 358 +-------------+ +-------------+ 359 # ^ | # # ^ | # 360 # | | # HBH HBH # | | # 361 # | | # <== Key(AX) Key(YB) ==> # | | # 362 # | | # # | | # 363 # |<+--#---- E2E Key (A) E2E Key (B) ---#->| | # 364 # | | # # | | # 365 # | v # # | v # 366 +-------------+ +-------------+ 367 | Endpoint A | | Endpoint B | 368 +-------------+ +-------------+ 370 E2E and HBH Keys Used for Authenticated Encryption 372 The PERC Double specification [I-D.ietf-perc-double] uses standard 373 SRTP keying material and recommended cryptographic transform(s) to 374 first form the inner, end-to-end SRTP cryptographic context. That 375 end-to-end SRTP cryptographic context MAY be used to encrypt some RTP 376 header extensions along with RTP media content. The output of this 377 is treated like an RTP packet and encrypted again using the outer 378 hop-by-hop cryptographic context. The endpoint executes the entire 379 Double operation while the Media Distributor just performs the outer, 380 hop-by-hop operation. (See Appendix A for a description of the keys 381 used in PERC and Appendix B for an overview of how the packet appears 382 on the wire.) 384 RTCP can only be encrypted hop-by-hop, not end-to-end. This 385 framework introduces no additional step for RTCP authenticated 386 encryption, so the procedures needed are specified in [RFC3711] and 387 use the same outer, hop-by-hop cryptographic context chosen in the 388 Double operation described above. 390 4.2. E2E Key Confidentiality 392 To ensure the confidentiality of E2E keys shared between endpoints, 393 endpoints will make use of a common Key Encryption Key (KEK) that is 394 known only by the trusted entities in a conference. That KEK, 395 defined in the PERC EKT [I-D.ietf-perc-srtp-ekt-diet] as the EKT Key, 396 will be used to subsequently encrypt the SRTP master key used for E2E 397 authenticated encryption of media sent by a given endpoint. Each 398 endpoint in the conference will create a random SRTP master key for 399 E2E authenticated encryption, thus participants in the conference 400 MUST keep track of the E2E keys received via the Full EKT Field for 401 each distinct SSRC in the conference so that it can properly decrypt 402 received media. Note, too, that an endpoint may change its E2E key 403 at any time and advertise that new key to the conference as specified 404 in [I-D.ietf-perc-srtp-ekt-diet]. 406 4.3. E2E Keys and Endpoint Operations 408 Any given RTP media flow can be identified by its SSRC, and endpoints 409 might send more than one at a time and change the mix of media flows 410 transmitted during the life of a conference. 412 Thus, endpoints MUST maintain a list of SSRCs from received RTP flows 413 and each SSRC's associated E2E key information. Following a change 414 in an E2E key, prior E2E keys SHOULD be retained by receivers for a 415 period long enough to ensure that late-arriving or out-of-order 416 packets from the endpoint can be successfully decrypted. Receiving 417 endpoints MUST discard old E2E keys no later than when it leaves the 418 conference. 420 If there is a need to encrypt one or more RTP header extensions end- 421 to-end, an encryption key is derived from the end-to-end SRTP master 422 key to encrypt header extensions as per [RFC6904]. The Media 423 Distributor will not be able use the information contained in those 424 header extensions encrypted with an E2E key. 426 4.4. HBH Keys and Hop Operations 428 To ensure the integrity of transmitted media packets, this framework 429 requires that every packet be authenticated hop-by-hop (HBH) between 430 an endpoint and a Media Distributor, as well between Media 431 Distributors. The authentication key used for hop-by-hop 432 authentication is derived from an SRTP master key shared only on the 433 respective hop. Each HBH key is distinct per hop and no two hops 434 ever intentionally use the same SRTP master key. 436 Using hop-by-hop authentication gives the Media Distributor the 437 ability to change certain RTP header values. Which values the Media 438 Distributor can change in the RTP header are defined in 439 [I-D.ietf-perc-double]. RTCP can only be encrypted HBH, giving the 440 Media Distributor the flexibility to forward RTCP content unchanged, 441 transmit compound RTCP packets or to initiate RTCP packets for 442 reporting statistics or conveying other information. Performing hop- 443 by-hop authentication for all RTP and RTCP packets also helps provide 444 replay protection (see Section 6). 446 If there is a need to encrypt one or more RTP header extensions hop- 447 by-hop, an encryption key is derived from the hop-by-hop SRTP master 448 key to encrypt header extensions as per [RFC6904]. This will still 449 give the Media Distributor visibility into header extensions, such as 450 the one used to determine audio level [RFC6464] of conference 451 participants. Note that when RTP header extensions are encrypted, 452 all hops - in the untrusted domain at least - will need to decrypt 453 and re-encrypt these encrypted header extensions. 455 4.5. Key Exchange 457 4.5.1. Initial Key Exchange and Key Distributor 459 The procedures defined in DTLS Tunnel for PERC 460 [I-D.ietf-perc-dtls-tunnel] establish one or more TLS tunnels between 461 the Media Distributor and Key Distributor, making it is possible for 462 the Media Distributor to facilitate the establishment of a secure 463 DTLS association between each endpoint and the Key Distributor as 464 shown the following figure. The DTLS association between endpoints 465 and the Key Distributor will enable each endpoint to generate E2E and 466 HBH keys and receive the Key Encryption Key (KEK) (i.e., EKT Key). 467 At the same time, the Key Distributor can securely provide the HBH 468 key information to the Media Distributor. The key information 469 summarized here may include the SRTP master key, SRTP master salt, 470 and the negotiated cryptographic transform. 472 +-----------+ 473 KEK info | Key | HBH Key info to 474 to Endpoints |Distributor| Endpoints & Media Distributor 475 +-----------+ 476 # ^ ^ # 477 # | | #-TLS Tunnel 478 # | | # 479 +-----------+ +-----------+ +-----------+ 480 | Endpoint | DTLS | Media | DTLS | Endpoint | 481 | KEK |<------------|Distributor|------------>| KEK | 482 | HBH Key | to Key Dist | HBH Keys | to Key Dist | HBH Key | 483 +-----------+ +-----------+ +-----------+ 485 Figure 2: Exchanging Key Information Between Entities 487 Endpoints will establish a DTLS-SRTP [RFC5764] association over the 488 RTP session's media ports for the purposes of key information 489 exchange with the Key Distributor. The Media Distributor will not 490 terminate the DTLS signaling, but will instead forward DTLS packets 491 received from an endpoint on to the Key Distributor (and vice versa) 492 via a tunnel established between Media Distributor and the Key 493 Distributor. This tunnel is used to encapsulate the DTLS-SRTP 494 signaling between the Key Distributor and endpoints will also be used 495 to convey HBH key information from the Key Distributor to the Media 496 Distributor, so no additional protocol or interface is required. 498 In establishing the DTLS association between endpoints and the Key 499 Distributor, the endpoint acts as the DTLS client and the Key 500 Distributor acts as the DTLS server. The Key Encryption Key (KEK) 501 (i.e., EKT Key) is conveyed by the Key Distributor over the DTLS 502 association to endpoints via procedures defined in PERC EKT 503 [I-D.ietf-perc-srtp-ekt-diet] via the EKTKey message. 505 Note that following DTLS-SRTP procedures for the 506 [I-D.ietf-perc-double] cipher, the endpoint will generate both E2E 507 and HBH encryption keys and salt values. Endpoints MAY use the DTLS- 508 SRTP generated E2E key or MAY generate different E2E keys. In either 509 case, the generated SRTP master salt for E2E encryption MUST be 510 replaced with the salt value provided by the Key Distributor via the 511 EKTKey message. That is because every endpoint in the conference 512 uses the same SRTP master salt. The endpoint only transmits the SRTP 513 master key (not the salt) used for E2E encryption to other endpoints 514 in RTP/RTCP packets per [I-D.ietf-perc-srtp-ekt-diet]. 516 Media Distributors use DTLS-SRTP [RFC5764] directly with a peer Media 517 Distributor to establish the HBH key for transmitting RTP and RTCP 518 packets to that peer Media Distributor. The Key Distributor does not 519 facilitate establishing a HBH key for use between Media Distributors. 521 4.5.2. Key Exchange during a Conference 523 Following the initial key information exchange with the Key 524 Distributor, an endpoint will be able to encrypt media end-to-end 525 with an E2E key, sending that E2E key to other endpoints encrypted 526 with the KEK, and will be able to encrypt and authenticate RTP 527 packets using a HBH key. The procedures defined do not allow the 528 Media Distributor to gain access to the KEK information, preventing 529 it from gaining access to any endpoint's E2E key and subsequently 530 decrypting media. 532 The KEK (i.e., EKT Key) may need to change from time-to-time during 533 the life of a conference, such as when a new participant joins or 534 leaves a conference. Dictating if, when or how often a conference is 535 to be re-keyed is outside the scope of this document, but this 536 framework does accommodate re-keying during the life of a conference. 538 When a Key Distributor decides to re-key a conference, it transmits a 539 specific message defined in PERC EKT [I-D.ietf-perc-srtp-ekt-diet] to 540 each of the conference participants. The endpoint MUST create a new 541 SRTP master key and prepare to send that key inside a Full EKT Field 542 using the new EKTKey. Since it may take some time for all of the 543 endpoints in conference to finish re-keying, senders MUST delay a 544 short period of time before sending media encrypted with the new 545 master key, but it MUST be prepared to make use of the information 546 from a new inbound EKT Key immediately. See Section 2.2.2 of 547 [I-D.ietf-perc-srtp-ekt-diet]. 549 Endpoints MAY follow the procedures in section 5.2 of [RFC5764] to 550 re-negotiate HBH keys as desired. If new HBH keys are generated, the 551 new keys are also delivered to the Media Distributor following the 552 procedures defined in [I-D.ietf-perc-dtls-tunnel]. 554 Endpoints are at liberty to change the E2E encryption key used at any 555 time. Endpoints MUST generate a new E2E encryption key whenever it 556 receives a new EKT Key. After switching to a new key, the new key 557 will be conveyed to other endpoints in the conference in RTP/RTCP 558 packets per [I-D.ietf-perc-srtp-ekt-diet]. 560 5. Entity Trust 562 It is important to this solution framework that the entities can 563 trust and validate the authenticity of other entities, especially the 564 Key Distributor and endpoints. The details of this are outside the 565 scope of specification but a few possibilities are discussed in the 566 following sections. The key requirements is that endpoints can 567 verify they are connected to the correct Key Distributor for the 568 conference and the Key Distributor can verify the endpoints are the 569 correct endpoints for the conference. 571 Two possible approaches to solve this are Identity Assertions and 572 Certificate Fingerprints. 574 5.1. Identity Assertions 576 WebRTC Identity assertion [I-D.ietf-rtcweb-security-arch] can be used 577 to bind the identity of the user of the endpoint to the fingerprint 578 of the DTLS-SRTP certificate used for the call. This certificate is 579 unique for a given call and a conference. This allows the Key 580 Distributor to ensure that only authorized users participate in the 581 conference. Similarly the Key Distributor can create a WebRTC 582 Identity assertion to bind the fingerprint of the unique certificate 583 used by the Key Distributor for this conference so that the endpoint 584 can validate it is talking to the correct Key Distributor. Such a 585 setup requires an Identity Provider (Idp) trusted by the endpoints 586 and the Key Distributor. 588 5.2. Certificate Fingerprints in Session Signaling 590 Entities managing session signaling are generally assumed to be 591 untrusted in the PERC framework. However, there are some deployment 592 scenarios where parts of the session signaling may be assumed 593 trustworthy for the purposes of exchanging, in a manner that can be 594 authenticated, the fingerprint of an entity's certificate. 596 As a concrete example, SIP [RFC3261] and SDP [RFC4566] can be used to 597 convey the fingerprint information per [RFC5763]. An endpoint's SIP 598 User Agent would send an INVITE message containing SDP for the media 599 session along with the endpoint's certificate fingerprint, which can 600 be signed using the procedures described in [RFC4474] for the benefit 601 of forwarding the message to other entities by the Focus [RFC4353]. 602 Other entities can now verify the fingerprints match the certificates 603 found in the DTLS-SRTP connections to find the identity of the far 604 end of the DTLS-SRTP connection and check that is the authorized 605 entity. 607 Ultimately, if using session signaling, an endpoint's certificate 608 fingerprint would need to be securely mapped to a user and conveyed 609 to the Key Distributor so that it can check that that user is 610 authorized. Similarly, the Key Distributor's certificate fingerprint 611 can be conveyed to endpoint in a manner that can be authenticated as 612 being an authorized Key Distributor for this conference. 614 5.3. Conferences Identification 616 The Key Distributor needs to know what endpoints are being added to a 617 given conference. Thus, the Key Distributor and the Media 618 Distributor will need to know endpoint-to-conference mappings, which 619 is enabled by exchanging a conference-specific unique identifier as 620 defined in [I-D.ietf-perc-dtls-tunnel]. How this unique identifier 621 is assigned is outside the scope of this document. 623 6. Security Considerations 625 This framework, and the individual protocols defined to support it, 626 must take care to not increase the exposure to Denial of Service 627 (DoS) attacks by untrusted or third-party entities and should take 628 measures to mitigate, where possible, more serious DoS attacks from 629 on-path and off-path attackers. 631 The following section enumerates the kind of attacks that will be 632 considered in the development of this framework's solution. 634 6.1. Third Party Attacks 636 On-path attacks are mitigated by HBH integrity protection and 637 encryption. The integrity protection mitigates packet modification 638 and encryption makes selective blocking of packets harder, but not 639 impossible. 641 Off-path attackers may try connecting to different PERC entities and 642 send specifically crafted packets. A successful attacker might be 643 able to get the Media Distributor to forward such packets. If not 644 making use of HBH authentication on the Media Distributor, such an 645 attack could only be detected in the receiving endpoints where the 646 forged packets would finally be dropped. 648 Another potential attack is a third party claiming to be a Media 649 Distributor, fooling endpoints in to sending packets to the false 650 Media Distributor instead of the correct one. The deceived sending 651 endpoints could incorrectly assuming their packets have been 652 delivered to endpoints when they in fact have not. Further, the 653 false Media Distributor may cascade to another legitimate Media 654 Distributor creating a false version of the real conference. 656 This attack can be mitigated by the false Media Distributor not being 657 authenticated by the Key Distributor during PERC Tunnel 658 establishment. Without the tunnel in place, endpoints will not 659 establish secure associations with the Key Distributor and receive 660 the KEK, causing the conference to not proceed. 662 6.2. Media Distributor Attacks 664 The Media Distributor can attack the session in a number of possible 665 ways. 667 6.2.1. Denial of service 669 Any modification of the end-to-end authenticated data will result in 670 the receiving endpoint getting an integrity failure when performing 671 authentication on the received packet. 673 The Media Distributor can also attempt to perform resource 674 consumption attacks on the receiving endpoint. One such attack would 675 be to insert random SSRC/CSRC values in any RTP packet with an inband 676 key-distribution message attached (i.e., Full EKT Field). Since such 677 a message would trigger the receiver to form a new cryptographic 678 context, the Media Distributor can attempt to consume the receiving 679 endpoints resources. 681 Another denial of service attack is where the Media Distributor 682 rewrites the PT field to indicate a different codec. The effect of 683 this attack is that any payload packetized and encoded according to 684 one RTP payload format is then processed using another payload format 685 and codec. Assuming that the implementation is robust to random 686 input, it is unlikely to cause crashes in the receiving software/ 687 hardware. However, it is not unlikely that such rewriting will cause 688 severe media degradation. 690 For audio formats, this attack is likely to cause highly disturbing 691 audio and/or can be damaging to hearing and playout equipment. 693 6.2.2. Replay Attack 695 Replay attack is when an already received packets from a previous 696 point in the RTP stream is replayed as new packet. This could, for 697 example, allow a Media Distributor to transmit a sequence of packets 698 identified as a user saying "yes", instead of the "no" the user 699 actually said. 701 The mitigation for a replay attack is to prevent old packets beyond a 702 small-to-modest jitter and network re-ordering sized window to be 703 rejected. End-to-end replay protection MUST be provided for the 704 whole duration of the conference. 706 6.2.3. Delayed Playout Attack 708 The delayed playout attack is a variant of the replay attack. This 709 attack is possible even if E2E replay protection is in place. 710 However, due to fact that the Media Distributor is allowed to select 711 a sub-set of streams and not forward the rest to a receiver, such as 712 in forwarding only the most active speakers, the receiver has to 713 accept gaps in the E2E packet sequence. The issue with this is that 714 a Media Distributor can select to not deliver a particular stream for 715 a while. 717 Within the window from last packet forwarded to the receiver and the 718 latest received by the Media Distributor, the Media Distributor can 719 select an arbitrary starting point when resuming forwarding packets. 720 Thus what the media source said can be substantially delayed at the 721 receiver with the receiver believing that it is what was said just 722 now, and only delayed due to transport delay. 724 6.2.4. Splicing Attack 726 The splicing attack is an attack where a Media Distributor receiving 727 multiple media sources splices one media stream into the other. If 728 the Media Distributor is able to change the SSRC without the receiver 729 having any method for verifying the original source ID, then the 730 Media Distributor could first deliver stream A and then later forward 731 stream B under the same SSRC as stream A was previously using. Not 732 allowing the Media Distributor to change the SSRC mitigates this 733 attack. 735 7. IANA Considerations 737 There are no IANA considerations for this document. 739 8. Acknowledgments 741 The authors would like to thank Mo Zanaty and Christian Oien for 742 invaluable input on this document. Also, we would like to 743 acknowledge Nermeen Ismail for serving on the initial versions of 744 this document as a co-author. 746 9. References 748 9.1. Normative References 750 [I-D.ietf-perc-double] 751 Jennings, C., Jones, P., Barnes, R., and A. Roach, "SRTP 752 Double Encryption Procedures", draft-ietf-perc-double-07 753 (work in progress), September 2017. 755 [I-D.ietf-perc-dtls-tunnel] 756 Jones, P., Ellenbogen, P., and N. Ohlmeier, "DTLS Tunnel 757 between a Media Distributor and Key Distributor to 758 Facilitate Key Exchange", draft-ietf-perc-dtls-tunnel-01 759 (work in progress), April 2017. 761 [I-D.ietf-perc-srtp-ekt-diet] 762 Jennings, C., Mattsson, J., McGrew, D., and D. Wing, 763 "Encrypted Key Transport for DTLS and Secure RTP", draft- 764 ietf-perc-srtp-ekt-diet-05 (work in progress), June 2017. 766 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 767 Requirement Levels", BCP 14, RFC 2119, 768 DOI 10.17487/RFC2119, March 1997, . 771 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 772 Jacobson, "RTP: A Transport Protocol for Real-Time 773 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 774 July 2003, . 776 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 777 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 778 RFC 3711, DOI 10.17487/RFC3711, March 2004, 779 . 781 [RFC5764] McGrew, D. and E. Rescorla, "Datagram Transport Layer 782 Security (DTLS) Extension to Establish Keys for the Secure 783 Real-time Transport Protocol (SRTP)", RFC 5764, 784 DOI 10.17487/RFC5764, May 2010, . 787 [RFC6904] Lennox, J., "Encryption of Header Extensions in the Secure 788 Real-time Transport Protocol (SRTP)", RFC 6904, 789 DOI 10.17487/RFC6904, April 2013, . 792 9.2. Informative References 794 [I-D.ietf-rtcweb-security-arch] 795 Rescorla, E., "WebRTC Security Architecture", draft-ietf- 796 rtcweb-security-arch-13 (work in progress), October 2017. 798 [I-D.roach-perc-webrtc] 799 Roach, A., "Using Privacy Enhanced Real-time Conferencing 800 (PERC) in a WebRTC Context", draft-roach-perc-webrtc-00 801 (work in progress), March 2017. 803 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 804 A., Peterson, J., Sparks, R., Handley, M., and E. 805 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 806 DOI 10.17487/RFC3261, June 2002, . 809 [RFC4353] Rosenberg, J., "A Framework for Conferencing with the 810 Session Initiation Protocol (SIP)", RFC 4353, 811 DOI 10.17487/RFC4353, February 2006, . 814 [RFC4474] Peterson, J. and C. Jennings, "Enhancements for 815 Authenticated Identity Management in the Session 816 Initiation Protocol (SIP)", RFC 4474, 817 DOI 10.17487/RFC4474, August 2006, . 820 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 821 Description Protocol", RFC 4566, DOI 10.17487/RFC4566, 822 July 2006, . 824 [RFC5763] Fischl, J., Tschofenig, H., and E. Rescorla, "Framework 825 for Establishing a Secure Real-time Transport Protocol 826 (SRTP) Security Context Using Datagram Transport Layer 827 Security (DTLS)", RFC 5763, DOI 10.17487/RFC5763, May 828 2010, . 830 [RFC6464] Lennox, J., Ed., Ivov, E., and E. Marocco, "A Real-time 831 Transport Protocol (RTP) Header Extension for Client-to- 832 Mixer Audio Level Indication", RFC 6464, 833 DOI 10.17487/RFC6464, December 2011, . 836 [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, 837 DOI 10.17487/RFC7667, November 2015, . 840 Appendix A. PERC Key Inventory 842 PERC specifies the use of a number of different keys and, 843 understandably, it looks complicated or confusing on the surface. 844 This section summarizes the various keys used in the system, how they 845 are generated, and what purpose they serve. 847 The keys are described in the order in which they would typically be 848 acquired. 850 The various keys used in PERC are shown in Figure 3 below. 852 +-----------+----------------------------------------------------+ 853 | Key | Description | 854 +-----------+----------------------------------------------------+ 855 | KEK | Key shared by all endpoints and used to encrypt | 856 | (EKT Key) | each endpoint's SRTP master key so receiving | 857 | | endpoints can decrypt media. | 858 +-----------+----------------------------------------------------+ 859 | HBH Key | Key used to encrypt media hop-by-hop. | 860 +-----------+----------------------------------------------------+ 861 | E2E Key | Key used to encrypt media end-to-end. | 862 +-----------+----------------------------------------------------+ 864 Figure 3: Key Inventory 866 As you can see, the number key types is very small. However, what 867 can be challenging is keeping track of all of the distinct E2E keys 868 as the conference grows in size. With 1,000 participants in a 869 conference, there will be 1,000 distinct SRTP master keys, all of 870 which share the same master salt. Each of those keys are passed 871 through the KDF defined in [RFC3711] to produce the actual encryption 872 and authentication keys. Complicating key management is the fact 873 that the KEK can change and, when it does, the endpoints generate new 874 SRTP master keys. And, of course, there is a new SRTP master salt to 875 go with those keys. Endpoints have to retain old keys for a period 876 of time to ensure they can properly decrypt late-arriving or out-of- 877 order packets. 879 The time required to retain old keys (either EKT Keys or SRTP master 880 keys) is not specified, but they should be retained at least for the 881 period of time required to re-key the conference or handle late- 882 arriving or out-of-order packets. A period of 60s should be 883 considered a generous retention period, but endpoints may keep old 884 keys on hand until the end of the conference. 886 Or more detailed explanation of each of the keys follows. 888 A.1. DTLS-SRTP Exchange Yields HBH Keys 890 The first set of keys acquired are for hop-by-hop encryption and 891 decryption. Assuming the use of Double [I-D.ietf-perc-double], the 892 endpoint would perform DTLS-SRTP exchange with the key distributor 893 and receive a key that is, in fact, "double" the size that is needed. 894 Per the Double specification, the E2E part is the first half of the 895 key, so the endpoint will just discard that information in PERC. It 896 is not used. The second half of the key material is for HBH 897 operations, so that half of the key (corresponding to the least 898 significant bits) is assigned internally as the HBH key. 900 The media distributor doesn't perform DTLS-SRTP, but it is at this 901 point that the key distributor will inform the media distributor of 902 the HBH key value via the tunnel protocol 903 ([I-D.ietf-perc-dtls-tunnel]). The key distributor will send the 904 least significant bits corresponding to the half of the keying 905 material determined through DTLS-SRTP with the endpoint to the media 906 distributor via the tunnel protocol. There is a salt generated along 907 with the HBH key. The salt is also longer than needed for HBH 908 operations, thus only the least significant bits of the required 909 length (i.e., half of the generated salt material) are sent to the 910 media distributor via the tunnel protocol. 912 No two endpoints will have the same HBH key, thus the media 913 distributor must keep track each distinct HBH key (and the 914 corresponding salt) and use it only for the specified hop. 916 This key is also used for HBH encryption of RTCP. RTCP is not end- 917 to-end encrypted in PERC. 919 A.2. The Key Distributor Transmits the KEK (EKT Key) 921 Via the aforementioned DTLS-SRTP association, the key distributor 922 will send the endpoint the KEK (i.e., EKT Key per 923 [I-D.ietf-perc-srtp-ekt-diet]). This key is known only to the key 924 distributor and endpoints. This key is the most important to protect 925 since having knowledge of this key (and the SRTP master salt 926 transmitted as a part of the same message) will allow an entity to 927 decrypt any media packet in the conference. 929 Note that the key distributor can send any number of EKT Keys to 930 endpoints. This can be used to re-key the entire conference. Each 931 key is identified by a "Security Parameter Index" (SPI) value. 932 Endpoints should expect that a conference might be re-keyed when a 933 new participant joins a conference or when a participant leaves a 934 conference in order to protect the confidentiality of the 935 conversation before and after such events. 937 The SRTP master salt to be used by the endpoint is transmitted along 938 with the EKT Key. All endpoints in the conference utilize the same 939 SRTP master salt that corresponds with a given EKT Key. 941 The EKT Field in media packets is encrypted using a cipher specified 942 via the EKTKey message (e.g., AES Key Wrap with a 128-bit key). This 943 cipher is different than the cipher used to protect media and is only 944 used to encrypt the endpoint's SRTP master key (and other EKT Field 945 data as per [I-D.ietf-perc-srtp-ekt-diet]). 947 The media distributor is not given the KEK (i.e., EKT Key). 949 A.3. Endpoints fabricate an SRTP Master Key 951 As stated earlier, the E2E key determined via DTLS-SRTP MAY be 952 discarded in favor of a locally-generated SRTP master key. While the 953 DTLS-SRTP-derived key could be used, the fact that an endpoint might 954 need to change the SRTP master key periodically or is forced to 955 change the SRTP master key as a result of the EKT key changing means 956 using it has only limited utility. To reduce complexity, PERC 957 *RECOMMENDS* that endpoints create random SRTP master keys locally to 958 be used for E2E encryption. 960 This locally-generated SRTP master key is used along with the master 961 salt transmitted to the endpoint from the key distributor via the 962 EKTKey message to encrypt media end-to-end. 964 Since the media distributor is not involved in E2E functions, it will 965 not create this key nor have access to any endpoint's E2E key. Note, 966 too, that even the key distributor is unaware of the locally- 967 generated E2E keys used by each endpoint. 969 The endpoint will transmit its E2E key to other endpoints in the 970 conference by periodically including it in SRTP packets in a Full EKT 971 Field. When placed in the Full EKT Field, it is encrypted using the 972 EKT Key provided by the key distributor. The master salt is not 973 transmitted, though, since all endpoints will have received the same 974 master salt via the EKTKey message. The recommended frequency with 975 which an endpoint transmits its SRTP master key is specified in 976 [I-D.ietf-perc-srtp-ekt-diet]. 978 A.4. Who has What Key 980 All endpoints have knowledge of the KEK. 982 Every HBH key is distinct for a given endpoint, thus Endpoint A and 983 endpoint B do not have knowledge of the other's HBH key. 985 Each endpoint generates its own E2E Key (SRTP master key), thus the 986 key distinct per endpoint. This key is transmitted (encrypted) via 987 the EKT Field to other endpoints. Endpoints that receive media from 988 a given transmitting endpoint will therefore have knowledge of the 989 transmitter's E2E key. 991 To summarize the various keys and which entity is in possession of a 992 given key, refer to Figure 4. 994 +----------------------+------------+-------+-------+------------+ 995 | Key / Entity | Endpoint A | MD X | MD Y | Endpoint B | 996 +----------------------+------------+-------+-------+------------+ 997 | KEK | Yes | No | No | Yes | 998 +----------------------+------------+-------+-------+------------+ 999 | E2E Key (A and B) | Yes | No | No | Yes | 1000 +----------------------+------------+-------+-------+------------+ 1001 | HBH Key (A<=>MD X) | Yes | Yes | No | No | 1002 +----------------------+------------+-------+-------+------------+ 1003 | HBH Key (B<=>MD Y) | No | No | Yes | Yes | 1004 +----------------------+------------+---------------+------------+ 1005 | HBH Key (MD X<=>MD Y)| No | Yes | Yes | No | 1006 +----------------------+------------+---------------+------------+ 1008 Figure 4: Keys per Entity 1010 Appendix B. PERC Packet Format 1012 Figure 5 presents a complete picture of what a PERC packet looks like 1013 when transmitted over the wire. 1015 0 1 2 3 1016 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1017 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1018 A |V=2|P|X| CC |M| PT | sequence number | 1019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1020 A | timestamp | 1021 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1022 A | synchronization source (SSRC) identifier | 1023 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 1024 A | contributing source (CSRC) identifiers | 1025 A | .... | 1026 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1027 A | RTP extension (OPTIONAL) | 1028 A | (including the OHB) | 1029 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1030 C : : 1031 C : Ciphertext Payload : 1032 C : : 1033 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1034 R : : 1035 R : EKT Field : 1036 R : : 1037 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1039 C = Ciphertext (encrypted and authenticated) 1040 A = Associated Data (authenticated only) 1041 R = neither encrypted nor authenticated, added 1042 after Authenticated Encryption completed 1044 Figure 5: PERC Packet Format 1046 Authors' Addresses 1048 Paul E. Jones 1049 Cisco 1050 7025 Kit Creek Rd. 1051 Research Triangle Park, North Carolina 27709 1052 USA 1054 Phone: +1 919 476 2048 1055 Email: paulej@packetizer.com 1056 David Benham 1057 Cisco 1058 170 West Tasman Drive 1059 San Jose, California 95134 1060 USA 1062 Email: dbenham@cisco.com 1064 Christian Groves 1065 Huawei 1066 Melbourne 1067 Australia 1069 Email: Christian.Groves@nteczone.com