Re: [rtcweb] Retransmit: Summary of Alternatives for media keying

Matthew Kaufman <matthew.kaufman@skype.net> Fri, 29 July 2011 05:13 UTC

Return-Path: <matthew.kaufman@skype.net>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E3C611E8075 for <rtcweb@ietfa.amsl.com>; Thu, 28 Jul 2011 22:13:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.434
X-Spam-Level:
X-Spam-Status: No, score=-2.434 tagged_above=-999 required=5 tests=[AWL=0.165, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tH87MZ1TZPbN for <rtcweb@ietfa.amsl.com>; Thu, 28 Jul 2011 22:12:59 -0700 (PDT)
Received: from mx.skype.net (mx.skype.net [78.141.177.88]) by ietfa.amsl.com (Postfix) with ESMTP id B6A3021F87C2 for <rtcweb@ietf.org>; Thu, 28 Jul 2011 22:12:58 -0700 (PDT)
Received: from mx.skype.net (localhost [127.0.0.1]) by mx.skype.net (Postfix) with ESMTP id CA74816E2; Fri, 29 Jul 2011 07:12:56 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=skype.net; h=subject :mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=mx; bh=Lw I+uWDH2pLj5MoVELyav5r8EhQ=; b=c0bD0Jf1lYzhceTpRF0pG5ufhBd2oEN3vM 7ZaKlblnNCn8DYhSf+64v40AcMgfH8v1COFAVmEQE1qy6l1ghAu/t+DMhg4F4uCy o9OgWs/ZM6JQGlk/QzpjL43Ky7sc8ggI0REatUDX4jj7GuQtKipkX9chTxuC4GHW uWQambcEo=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=skype.net; h=subject:mime-version :content-type:from:in-reply-to:date:cc:content-transfer-encoding :message-id:references:to; q=dns; s=mx; b=CAT6xutBLYnIVZc6A+Hcf8 Y4go4idY3NXK9mlBgwq+0VhuorVmiNgaFaVnxObHePlUXJqO/xthSK1Dyc0w87wz 6Pa6CrsbNhZ9gLd7AAKHa+UtKVIpvFVOawXKm5YAXuEDh4U8j8u/Ub4wlOCbApL2 ZbisyrQSI0Cy/ApMlhb60=
Received: from zimbra.skype.net (zimbra.skype.net [78.141.177.82]) by mx.skype.net (Postfix) with ESMTP id C915E7FC; Fri, 29 Jul 2011 07:12:56 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zimbra.skype.net (Postfix) with ESMTP id AAA223507028; Fri, 29 Jul 2011 07:12:56 +0200 (CEST)
X-Virus-Scanned: amavisd-new at lu2-zimbra.skype.net
Received: from zimbra.skype.net ([127.0.0.1]) by localhost (zimbra.skype.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y-OYMaWWTlPs; Fri, 29 Jul 2011 07:12:55 +0200 (CEST)
Received: from dhcp-4649.meeting.ietf.org (dhcp-4649.meeting.ietf.org [130.129.70.73]) by zimbra.skype.net (Postfix) with ESMTPSA id 098203507364; Fri, 29 Jul 2011 07:12:54 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1082)
Content-Type: text/plain; charset="us-ascii"
From: Matthew Kaufman <matthew.kaufman@skype.net>
In-Reply-To: <4E31DAAB.5030606@jesup.org>
Date: Fri, 29 Jul 2011 01:12:52 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <2BE95AAB-722C-472C-B624-CF91AE7D75EF@skype.net>
References: <12BF9E55-662F-4762-9E47-2BBD3FA5FD93@acmepacket.com> <A444A0F8084434499206E78C106220CA08F1D75CF0@MCHP058A.global-ad.net> <2E6CBDE0-DA10-4792-8059-A01F554DB370@skype.net> <E1963869-9E21-4F1F-AB4A-E5D070CCA581@acmepacket.com> <55C78CA7-292C-4E0E-901B-83B7614C2F32@skype.net> <4E31DAAB.5030606@jesup.org>
To: Randell Jesup <randell1@jesup.org>
X-Mailer: Apple Mail (2.1082)
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] Retransmit: Summary of Alternatives for media keying
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Jul 2011 05:13:00 -0000

On Jul 28, 2011, at 5:54 PM, Randell Jesup wrote:

> On 7/28/2011 1:18 PM, Matthew Kaufman wrote:
>>  we can't display "this connection is secured everywhere" to the user... but look, HTTPS is the same. When I see a lock icon on my screen and click to see that yes, I'm really talking to who it says in the address bar, I still can't tell if they're terminating my HTTPS session in a front-end box and then using HTTP beyond it, or if the HTTPS really goes all the way to the server.
>>> But the browser ties the identity of the name I typed in the address bar to the cert, so that if I typed "https://mybank.com", I know it's secure to mybank.com.  Of course it could be cleartext after whomever has a cert for mybank.com, and may even end up triggering protocols that exit mybank.com and go to evil.com, but I implicitly trust mybank.com to be careful with bank info.
>> Ok, so you trust your "banking service".
> 
> And more to the point, you trust the chain of certificates incorporated into the browser to verify it's actually the entity that owns mybank.com (and EV certs come into play here too).  Overall, that's a "good" chain of trust, though no such chain is perfect.

It appears to be "good enough" for people to do banking using their web browser, which is pretty amazing if you think about it.

> 
>>> That's not the same for DTLS-SRTP; until and unless the human being verifies the keys/SAS with the far end, nothing is known.
>> If you trust your "calling service" (and are connected to it with HTTPS) then you can use that trusted service to exchange the fingerprints and verify the keys of the far end to prevent MITM.
> 
> Right, this is trusting that not only they are who they say they are, but also trusting that they haven't been compromised.   And one may not have the same level of trust in that that you have (have to have) in your bank.

I'm not sure how this is any different from any other type of calling scenario.

You always need to trust the person at the far end to not reveal the call, and trust the equipment they (and you) are using.

>> (You can also add a browser extension that uses a service that you trust but that isn't your calling service, and when you're calling other people with the same extension you can check the fingerprints in an automated way using that.)
> 
> Definitely possible, and adds another largely-independent layer of trust.

Yes, but independent layers of trust are a feature, not a bug.

And what are you arguing here? My claim is that DTLS-SRTP is often *more* secure than SDES-style keying, and certainly no worse.

This is one of the things that backs up my claim. I still haven't heard why SDES or plain RTP would be superior from a security point of view.

> 
>> If you *don't* trust your "calling service", then that's just like not trusting your banking service when you type in passwords.
> 
> I may trust my calling service to connect me (to someone), but I may not trust them to not MITM me themselves (read CALEA or other national security services), and I may not trust them not to be compromised, since they have a far smaller monetary stake in avoiding it compared to a bank.

Sure, but again all of these things are EASIER if they use SDES. They can MITM you themselves by letting anyone get a copy of the traffic from anywhere and sending that person the keys, even after the fact. (Both passive attacks like this and getting the key later are prevented with DTLS-SRTP and DH key agreement).

> 
> Another idea related to identity: as mentioned, the cert trust chain in a browser verifies that you're talking to mybank.com or myprovider.com.  This can be leveraged to provide authentication by cert that you're talking to someone who's part of mybank.com, even if you went through myprovider.com to get there and myprovider.com might be compromised.  It doesn't directly help verify you're talking to Joe Your Neighbor, but other services can help with that (as mentioned - extensions, etc).

Yes, all good ideas, but built upon DTLS-SRTP, and not SDES or plain RTP.

> 
> Effectively, for a fairly large subset of the net, we have a deployed PKI of a form.  It's not perfect (DNSSEC anyone; recent todo with bogus certs because a CA snafu) but for most uses that it covers it's pretty good.  Getting it to cover identifying the destination as a dependent of the primary cert may be an issue for many companies, however.

I doubt it, but perhaps.

> 
> In any case, there may be a way to leverage this existing trust chain, both to authenticate who's calling you and who you're calling, for a subset of possible destinations.

Almost certainly.

Matthew Kaufman