[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AVT] Unsubscribe - SSRC to DTLS-SRTP mapping





----- Original Message -----
From: Dan Wing <dwing at cisco.com>
Date: Tuesday, February 19, 2008 12:22 pm
Subject: Re: [AVT] SSRC to DTLS-SRTP mapping
To: 'Eric Rescorla' <ekr at networkresonance.com>
Cc: magnus.westerlund at ericsson.se, 'Roni Even' 
<roni.even at polycom.co.il>, avt at ietf.org, 'Tom Taylor' 
<tom.taylor at rogers.com>

> 
> 
> > -----Original Message-----
> > From: Eric Rescorla [mailto:ekr at networkresonance.com] 
> > Sent: Tuesday, February 19, 2008 7:10 AM
> > To: Dan Wing
> > Cc: 'Eric Rescorla'; avt at ietf.org; 
> > magnus.westerlund at ericsson.se; 'Roni Even'; 'Tom Taylor'
> > Subject: Re: [AVT] SSRC to DTLS-SRTP mapping
> > 
> > At Mon, 18 Feb 2008 23:33:43 -0800,
> > Dan Wing wrote:
> > > 
> > > > -----Original Message-----
> > > > From: avt-bounces at ietf.org [mailto:avt-bounces at ietf.org] On 
> > > > Behalf Of Eric Rescorla
> > > > Sent: Sunday, February 17, 2008 9:49 AM
> > > > To: avt at ietf.org
> > > > Cc: magnus.westerlund at ericsson.se; Roni Even; Tom Taylor
> > > > Subject: [AVT] SSRC to DTLS-SRTP mapping
> > > > 
> > > > After the last IETF, Magnus and Colin raised an issue 
> > about cases in
> > > > DTLS-SRTP where there are multiple sessions to the same 
> > endpoint, as
> > > > in SIP forking, and how the current draft didn't handle 
> > them right.
> > > > 
> > > > Magnus and I chatted about this on the phone last week 
> > and came to a
> > > > resolution which I've attempted to transcribe. I've attached 
the
> > > > revise sections below. If AVT members could take a look and 
> let me
> > > > know if it's screwed up, I'd appreciate it. I plan to submit
> > > > this next weekend, so if people can send any comments before
> > > > COB Friday, that would be best!
> > > 
> > > This design means that when receiving an SRTP packet with a
> > > never-before-seen SSRC, the receiver has to attempt to 
> authenticate> > that received packet against all of its DTLS-SRTP 
> security> > associations for that local socket.  This will be at 
> least one SHA1
> > > for that received packet (if no forking) or more SHA1s (if 
> there has
> > > been forking).
> > >
> > > I worry that this design is weaker than IPsec ESP's protection 
> from> > bogus packets, or DTLS's protection from bogus packets 
> > > during the DTLS handshake:
> > >
> > > 1.  IPsec ESP only attempts to authenticate a packet if the 
> SPI is
> > >     already known (reference Section 3.4.2 of RFC2406); We could
> > >     achieve something similar by communicating the SSRC in the
> > >     DTLS-SRTP handshake.
> > > 
> > > 2.  DTLS supports using a cookie to test return routability 
before
> > >     incurring the computational expense of a DTLS 
> > handshake. We could
> > >     achieve something similar by only attempting to perform the
> > >     procedures you describe if the SRTP packet arrived from 
> the same
> > >     transport address as the DTLS-SRTP handshake itself.
> > 
> > 
> > You don't state what attack you're concerned with, but I'm assuming
> > that it's resource consumption on the receiver.
> 
> Yes.
> 
> > I'm not overly
> > concerned by that because MAC verification is extremely fast,
> 
> I agree it's fast.  On our low end boxes SHA1 takes about 6000 CPU 
> cycleswhich is about 30 microseconds with our clock speed.
> 
> Yet, other deployed protocols protect themselves from such 
> attacks.  I worry
> that we are leaving SRTP vulnerable to this attack when design 
> consensusprotected other protocols from this same attack.  CPUs 
> are faster now, yes.
> But the next generation MAC (whatever will replace SHA1) is 
> probably going to
> consume more CPU cycles (not less), making up for future 
> improvements in CPU
> speed.
> 
> I am surprised to see this SRTP design offers less protection than 
> otherdeployed protocols.  IPsec, DTLS's handshake, and TCP MD5 all 
> employmechanisms to avoid running a MAC by first requiring a match 
> of a 32-bit
> identifier (IPsec's SPI), return routability (DTLS handshake), or 
> sourceaddress (TCP MD5).  We can design something similar for 
> SRTP.  Afterall, we
> cannot successfully receive an SRTP packet until a DTLS-SRTP 
> handshake has
> completed.  A source address verification check seems, at minimum, 
> a level of
> protection we should be able to achieve without breaking RTP's 
> architecture.
> > so it's
> > not clear that this is more serious than the bandwidth
> > consequences. Note that the DoS protection in the DTLS handshake 
> (and> the IKE) handshake is concerned with avoiding unnecessary 
> asymmetric> key operations, which are far more expensive.
> > 
> > 1. As I understand things from my conversations with Magnus and 
> Colin,> being willing to decrypt an RTP packet with an arbitrary 
> SSRC sent to
> > your local host/port pair is inherent in the RTP model, since new
> > SSRCs can appear at any time. Thus, no matter what keying mechanism
> > you are using for SRTP, the attacker can force you to do a single
> > verification operation for each packet he sends you.
> 
> Yes, that is the RTP model.
> 
> However, with DTLS-SRTP, we are not able to decrypt an SRTP packet
> at all until DTLS-SRTP completes anyway and (unless we are willing
> to accept RTP and SRTP at the same time) we cannot play out an RTP
> packet at all.  So, in that sense, the RTP model is already 
> broken:  
> we cannot fit the model because we can not play out an arbitrary
> packet.  We first need to do a DTLS-SRTP handshake.  
> 
> > (I'm ignoring
> > source address verification for the moment.)
> > 
> > 
> > 2. The difference with the algorithm I suggested is that it 
> allows a
> > very modest amplification, namely that the attacker can force 
> you to
> > compute this operation once for each fork during the (short) window
> > where multiple forks are valid. Given the short window and the 
> modest> amount of amplification, I'm not concerned.
> 
> With today's SIP applications, it is true that forking is most often
> short lived.
> 
> Is it reasonable to require tomorrow's SIP applications to also 
> have short-lived forking, or else risk (with longer-lived forking) 
the
> SRTP receivers will endure a longer winder where they can suffer a 
> moresevere SRTP attack?
> 
> > With regard to the first avenue you suggest, my understanding is 
> that> communicating the SSRCs in the DTLS handshake is a problem 
> because> they may not be known at that time and new SSRCs can 
> appear later, so
> > this breaks the RTP model. For instance, as I understand S 8.2 
> of RFC
> > 3550, if Alice and Bob are communicating and have an SSRC 
collision,
> > Alice MUST send an RTCP BYE and choose a new SSRC. So, in this
> > instance, Alice would now know her SSRC at the time of the DTLS
> > handshake.
> 
> Could Alice send a DTLS message containing her new SSRC?  This could
> be sent in a new DTLS handshake (if an SSRC field were added to 
> it), or 
> sent in a newly-defined DTLS content-type (similar to how I am 
> proposingSSRC is communicated in draft-wing-avt-dtls-srtp-key-
> transport-01).
> 
> > With regard to the second avenue you suggest, the original 
algorithm
> > we had was to use the source IP and port as the disambiguator.  The
> > algorithm I just posted comes from having Magnus and Colin point 
out
> > to me that in RTP a session was defined by the destination address,
> > destination port, and SSRC and that you were not supposed to 
> look at
> > the host port.
> 
> Yes, I agree that is the RTP model.  In Security Descriptions 
> [RFC4568]we followed that model and allow packets from anywhere to 
> arrive, and
> authenticate them using the "late binding" (Section 6.4.1 of 
> [RFC4568]).
> With DTLS-SRTP, there is a DTLS handshake with a specific remote IP
> address, and then SRTP packets are sent.  Because this handshake is
> necessary to establish the cryptographic context (for successful
> authentication, decryption, and encryption), it seems beneficial to
> use the same source IP adddress and port as the DTLS-SRTP handshake
> to 
> 
> > Clearly, if you can look at the source host/port pair,
> > then no map table is needed.
> > 
> > So, my understanding is that both of these suggestions break the 
RTP
> > architecture. But again, I'm no RTP expert, so if I've 
> misunderstood,> I hope people will correct me.
> 
> I am not claiming to be an RTP expert.
> 
> However, I am worried about an attack flooding a device and 
> causing the device
> to perform SHA1 operations, when it seems we could communicate the 
> SSRC in the
> DTLS exchange (handshake or separate message), and/or use source 
> addressverification to help protect devices from such an attack.
> 
> If it's only me that has this concern, I will sit back down in my 
> chair.
> -d
> 
> _______________________________________________
> Audio/Video Transport Working Group
> avt at ietf.org
> http://www.ietf.org/mailman/listinfo/avt
> 
_______________________________________________
Audio/Video Transport Working Group
avt at ietf.org
http://www.ietf.org/mailman/listinfo/avt