Re: [AVTCORE] EKT Problems with RTCP

"Mo Zanaty (mzanaty)" <> Tue, 24 March 2015 15:29 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 347101A88EF for <>; Tue, 24 Mar 2015 08:29:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id uftcWres4-ac for <>; Tue, 24 Mar 2015 08:29:44 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 70AA21A88ED for <>; Tue, 24 Mar 2015 08:29:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=21067; q=dns/txt; s=iport; t=1427210984; x=1428420584; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=YHJFmkR6bXzOz6n8WBDB5qFWxO24Scd7q5CeUxN12o4=; b=SWJFiTzYTIVP78uWHx2IJsdb7Qajetk9QktSg3yZhH+OKhbS32ZNJ++a S78x/luUdDyNq2P8GYZWxSAwwTDL2BJBUaLUqmHWt1eWIm7h7IQBnkuiS +kevVlm1s2Rduf5a1FUX+16I9z0o3xiev0wS4/wz8+mWfH7XX739ctHMl E=;
X-Files: unknown.png : 2991
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.11,458,1422921600"; d="png'150?scan'150,208,217,150";a="134954334"
Received: from ([]) by with ESMTP; 24 Mar 2015 15:29:43 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id t2OFThl2003716 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 15:29:43 GMT
Received: from ([]) by ([]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 10:29:43 -0500
From: "Mo Zanaty (mzanaty)" <>
To: "Paul E. Jones" <>, John Mattsson <>, IETF AVTCore WG <>
Thread-Topic: [AVTCORE] EKT Problems with RTCP
Thread-Index: AQHQZkdZSYfsosNBuk+5RipnnggZrA==
Date: Tue, 24 Mar 2015 15:29:42 +0000
Message-ID: <>
References: <> <emae6d6460-9744-4852-ba8b-91b0e0794a40@helsinki>
In-Reply-To: <emae6d6460-9744-4852-ba8b-91b0e0794a40@helsinki>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
user-agent: Microsoft-MacOutlook/
x-originating-ip: []
Content-Type: multipart/mixed; boundary="_004_D136F8364A4CBmzanatyciscocom_"
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [AVTCORE] EKT Problems with RTCP
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 24 Mar 2015 15:29:47 -0000

I agree with Paul, option 1 seems best. I think it could even be argued that ISN/ISI should be eliminated, and EKT must always be sent separately in SRTP/SRTCP coincident with the SN/index of the rekey point.

Some additional text may be useful to reflect operation in more complex RTP scenarios, such as multiple RTP streams bundled in the same session with sparse RTCP reporting (not full mesh).


On 3/23/15, 3:27 PM, Paul E. Jones <<>> wrote:


Option 1 strikes me as the simplest solution to the problem you describe with minimal changes in the text.  Option 2 would work, though I'm missing the point of the replay benefit that comes with MKI.  Given the endpoints are randomly generating SRTP master keys, isn't that sufficient?  Perhaps I'm missing something key.


------ Original Message ------
From: "John Mattsson" <<>>
To: "IETF AVTCore WG" <<>>
Sent: 3/23/2015 8:15:48 AM
Subject: [AVTCORE] EKT Problems with RTCP


While editing the EKT draft I realized that EKT has major problems with RTCP.

+---+ —------ SRTP ---------> +---+
| S | ------- SRTCP SR -----> | R |
+---+ <------ SRTCP RR ------ +---+

Take the above example. The sender S sends RTP and RTCP to the receiver R. R sends RTCP but not RTP to S.

S re-keying: Irrespectively if S sends EKT in SRTP or SRTCP the occurrence of the key change is signalled with ROC || ISN and R has no way to know when to exactly change key for SRTCP (i.e. how ISN maps to the SRTCP index). R is forced to guess and try authenticating with both the old and the new key.

R re-keying: Here ROC || ISN has no meaning at all and S will have to do trial and error with both the old and the new key.

This is not a robust solution and it needs to be fixed. Two suggestions:

- Option 1
One option is to add another field ISI (Initial SRTCP Index) to the EKT_Plaintext. This would then work similar to ISN. The Plaintext could contain both, or one of them. One alternative is that EKT contains both ISN and ISI. Another alternative is that ISN is used in EKT over SRTP and ISI in EKT over SRTCP, forcing EKT to be used in both SRTP and SRTCP.

- Option 2
The current EKT draft says

“MKI is no longer allowed with EKT (as MKI duplicates some of EKT's functions)”.

Its rather EKT that duplicates MKI (RFC 3711) and one simple option would be to simply remove the EKT parts that duplicates MKI and instead mandate use of MKI.

The EKT_Plaintext would then be:
EKT_Plaintext = SRTP_Master_Key || SSRC || ROC || MKI

And the SRT(C)P packets would look like:
| RTP Header | RTP Payload | MKI | TAG | EKT |
| RTCP Packet Types  | SRTCP INDEX | MKI | TAG | EKT |

This would allow full flexibility in the use of EKT. EKT could be sent in RTP and/or RTCP. Any number of keys could be distributed ahead of time.

If the MKIs are random, this would also make the EKT replay attack (in the case of SSRC collisions) much harder.

MKI could by default be one byte.

For AEAD algorithms MKI is the last field in the SRTP. If AEAD algorithms were mandated for EKT, MKIs with the last bit ‘0’ could be mandated and the short EKT tag would not be needed.

Comments welcome, I would strongly prefer option 2. The more I think about it, the ISN approach duplicates functionality in RFC3711, it is complex, not robust, and vulnerable to replay attacks.


MSc Engineering Physics, MSc Business Administration and Economics
Ericsson IETF Security Coordinator
Senior Researcher, Security

Ericsson AB
Ericsson Research
Färögatan 6
SE-164 80 Stockholm, Sweden
Phone +46 10 71 43 501
SMS/MMS +46 76 11 53 501<>