Re: [rtcweb] Resolving RTP/SDES question in Paris

Hadriel Kaplan <HKaplan@acmepacket.com> Fri, 23 March 2012 05:39 UTC

Return-Path: <HKaplan@acmepacket.com>
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 B5C7421F849B for <rtcweb@ietfa.amsl.com>; Thu, 22 Mar 2012 22:39:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.538
X-Spam-Level:
X-Spam-Status: No, score=-2.538 tagged_above=-999 required=5 tests=[AWL=0.061, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tchorTA9dv9c for <rtcweb@ietfa.amsl.com>; Thu, 22 Mar 2012 22:39:44 -0700 (PDT)
Received: from etmail.acmepacket.com (etmail.acmepacket.com [216.41.24.6]) by ietfa.amsl.com (Postfix) with ESMTP id 8FAC521F849A for <rtcweb@ietf.org>; Thu, 22 Mar 2012 22:39:44 -0700 (PDT)
Received: from MAIL2.acmepacket.com (10.0.0.22) by etmail.acmepacket.com (216.41.24.6) with Microsoft SMTP Server (TLS) id 8.2.254.0; Fri, 23 Mar 2012 01:39:36 -0400
Received: from MAIL1.acmepacket.com ([169.254.1.170]) by Mail2.acmepacket.com ([169.254.2.166]) with mapi id 14.02.0283.003; Fri, 23 Mar 2012 01:39:36 -0400
From: Hadriel Kaplan <HKaplan@acmepacket.com>
To: Roman Shpount <roman@telurix.com>
Thread-Topic: [rtcweb] Resolving RTP/SDES question in Paris
Thread-Index: AQHNCLdUIa8zbswfEEuejG7/Z9fuSQ==
Date: Fri, 23 Mar 2012 05:39:35 +0000
Message-ID: <B60F5A76-8ADB-4A55-8F1C-0438F7D7EA80@acmepacket.com>
References: <4F4759DC.7060303@ericsson.com> <387F9047F55E8C42850AD6B3A7A03C6C0E1FEB69@inba-mail01.sonusnet.com> <CALiegfnkYVEpmPV-zSL_4wOY-HiFZN-qJCQCiioaS=5NaqhLZw@mail.gmail.com> <CAD5OKxvtOAxMBx6xDnyfTnEq76oDEm6uj1xL6wGjjrtKUAHy3g@mail.gmail.com> <CABcZeBNZiotPmCfT53uEo+O0xw4xv6tXW1M_G-3A5BHuncsduA@mail.gmail.com> <CAD5OKxvYOY5JZ2mYNGiH1poUBQkyOOycePFijH5H+SxtcdqujQ@mail.gmail.com> <CABkgnnVe-b6Sv=R67bMJk_NQqQwdrRUn6rBm7Gu_CMcfPQwtEg@mail.gmail.com> <4F64FE98.3070605@alcatel-lucent.com> <4F685ED9.2050109@alvestrand.no> <CAD5OKxsVp7px9bHAgxgdqPMxRgppcVUDKt8JHBhyq9qqW3pAMg@mail.gmail.com>
In-Reply-To: <CAD5OKxsVp7px9bHAgxgdqPMxRgppcVUDKt8JHBhyq9qqW3pAMg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [216.41.24.34]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <47FB1B26E5C6344AB24B44D5B828317C@acmepacket.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAQAAAWE=
Cc: "<rtcweb@ietf.org>" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Resolving RTP/SDES question in Paris
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, 23 Mar 2012 05:39:45 -0000

On Mar 20, 2012, at 9:40 AM, Roman Shpount wrote:

> Once again, I understand how this helps in case of HTTPS, but how would this help in case of WebRTC? Media description is carried in some sort of application defined protocol (can even be transmitted over an encrypted SCTP data channel or encrypted in javaScript), so monitoring proxy cannot reliably modify it. I understand how it can be allowed to fake the signature on modified SDP by inserting a certificate in the browser, but how would the proxy get to the SDP in the first place?

I was trying to follow this thread backwards from today, to try to grok how you got to the conclusion that an organization with strict media monitoring policies wouldn't be able to do so for WebRTC.  I think the above email is where I get disconnected form the train of thought.

If, as in another email you sent, an organization such as the military or jail or whatever controls its network such that they use the whitelist model of only authorized applications allowed our of their network, and everything goes through the HTTP proxy, then the above statement of:

> Media description is carried in some sort of application defined protocol (can even be transmitted over an encrypted SCTP data channel or encrypted in javaScript), so monitoring proxy cannot reliably modify it.

… makes no sense to me.

If you were preventing unknown applications, you would not allow unknown UDP or TCP destination ports to be used to get out of the network.  The HTTP Proxy has to (1) know your web application wants to use another set of ports, and (2) has to allow it.  Ergo, there can be no "encrypted SCTP data channel" that was not previously authorized; nor would encrypting SDP-type-info in Javascript help you one iota, because you won't be able to actually use it to send media, since the HTTP proxy is not opening new ports for you to reach the Internet.

So I don't understand what the problem is.  If you run a super-tight network like that and you *do not* want WebRTC to work because you can't monitor it, then by design it won't work.  If you run a super-tight network like that and you *do* want WebRTC to work, then you either have to be willing to install custom browsers/apps, or your HTTP Proxy has to be able to see the HTTP traffic and correctly parse the Javascript-passed data and be a media b2bua.  That's a really nasty set of constraints, especially trying to grok the javascript enough to be a media b2bua, and undoubtedly means it won't work for many WebRTC websites.  But that's arguably the right thing to happen - downloading javascript is akin to downloading a new application for each website, and again by definition this is a network that only wants to allow applications it wants to allow, so that's what it gets: per-application control, and thus requires per-application knowledge/support.  Anything your proxy doesn't understand doesn't work, but again that's kinda the point of a super-tight policy.

Personally, if I were running such an org, and I don't know if it's possible, but I'd go get some form of rootkit/kernel-mod to intercept audio/video/keystrokes well below the user layer, so that you wouldn't have to worry what application was running - just intercept the audio/screen/keyboard somewhere near the drivers.  Presumably some companies make such things, for just such organizations? (sort of like the equivalent of CarrierIQ)  That way it doesn't matter whether it's WebRTC, Flash, or native apps.

-hadriel