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

RE: [Sip] SIP Identity using Media Path



 
Hi,
 
>>>>"in order for the mechanism to work, SBC-type-of-entities must 
>>>>permit DTLS, TLS, ICE, or HIP messages to be exchanged in the media 
>>>>path."
>>>> 
>>>>A small question for clarification: at what point must this exchange

>>>>(two-way, I assume) work? As soon as the UAS has received the 
>>>>INVITE?
>>> 
>>>Yes.
>> 
>>A little more on this.
>> 
>>As we have discussed before, you may not have two-way connectivity 
>>before 200 OK.
>>
>>I am pretty sure what will not work with most SBCs.
>>
>>Now assume that you will have two-way connectivity before you have 
>>even sent the SDP answer.
> 
> 
>I think you meant to say "now assume that you will _not_ ..."?

What I meant to say was: Now you assume that you will have two-way
connectivity before you have even sent the SDP answer :)


>In the case of no media path, it would only be possible for the
>authentication server, and the UA receiving the SIP request, to 
>cryptographically validate the SIP headers and a very minor 
>portion of the SDP (From:, Date:, and the header that we 
>generate that copies the a=fingerprint attributes from the 
>SDP, and the few other headers described in -wing-sip-identity-media).
> 
>This provides some protection against attackers, and works through
>SBCs.  Specifically, this protects against attackers who were not
>able to obtain a validly-signed SIP request.
> 
> 
>However, only validating those SIP headers is inadequate if
>an attacker has captured or otherwise acquired a validly-signed 
>SIP request, modified the SDP (such that the signature is 
>still valid), and re-injected that SIP request into a SIP 
>proxy that forwards it to you.  In order to detect such a 
>replay attack, you need to perform one of the media-path based 
>tests that I describe in wing-sip-identity-media (DTLS-SRTP, 
>HIP, ICE, TLS).
> 
> 

>>Also, even if you don't have any SBCs, but you still have NATs, the
>>calling user often needs to send something in order to open the NAT
>>binding, and allow media plane traffic (including your identity
>>exchange) from the remote end. If you use ICE, or stand-alone 
>>STUN, you will have an open NAT binding, but if your terminal opens 
>>the network e.g. by sending dummy RTP packets, it will not be able to
do 
>>so until it has received the SDP answer.
> 
>* But if you haven't received the SDP answer, where are you sending
>those dummy RTP packets (what is their destination IP address and 
>UDP port)?

That is what I am saying: the user needs to get the SDP answer, so that
it can open the NAT binding (and allow incoming traffic)

>* If the NAT perform address-based filtering of incoming packets, 
>it drop incoming UDP packets until the device behind the NAT
>(the SIP UA, in our case) sends a packet to the IP address sending
>the incoming packet.  The SIP UA would learn that IP address upon
>receipt of the SDP answer.  Further, if the NAT is doing port
>iltering of incoming packets, the SIP UA needs to know the UDP
>port the external packet is arriving from, too (which also shows
>up in the answer).  I point out the problem with port filtering
>NATs because sending dummy UDP packets to the SBC's IP address 
>is not sufficient for those kinds of NATs.  Similarly, if the 
>NAT is symmetric (assigns a new UDP port for every new 
>destination port or destination address the SIP UA sends to), 
>sending dummy UDP packets won't be effective for symmetric
>NATs, either.
> 
>>So, I also think your solution requires support of ICE/STUN, 
>>and in the case of ICE it also requires that the SBCs 
>>don't mess up the SDP so that ICE will not be used.
> 
>No, it does not.
> 
>For protection against simple From: spoofing, it is adequate to
>simply validate the SIP headers and the signature.  For protection
>against replay attacks, it is necessary for both SIP UAs (*) to
>implement one of HIP, ICE, DTLS-SRTP, or TLS.  

Ok, so let me put it this way: any feature in your solution that, in a
NAT requirement, does require end-to-end connectivity before the SDP
answer has been sent requires at least STUN (not necessarily ICE) - or
some other mechanism which the NAT binding is opened without having the
remote SDP. And, if you use ICE, the SBCs must not modify the SDPs in a
way so that ICE is disabled.

Regards,

Christer