Re: [Perc] PERC LIte

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Thu, 25 May 2017 15:36 UTC

Return-Path: <sergio.garcia.murillo@gmail.com>
X-Original-To: perc@ietfa.amsl.com
Delivered-To: perc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB269129B04 for <perc@ietfa.amsl.com>; Thu, 25 May 2017 08:36:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.689
X-Spam-Level:
X-Spam-Status: No, score=-2.689 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 98BMG6mEA4q4 for <perc@ietfa.amsl.com>; Thu, 25 May 2017 08:36:37 -0700 (PDT)
Received: from mail-wm0-x22f.google.com (mail-wm0-x22f.google.com [IPv6:2a00:1450:400c:c09::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C1DB129468 for <perc@ietf.org>; Thu, 25 May 2017 08:36:37 -0700 (PDT)
Received: by mail-wm0-x22f.google.com with SMTP id b84so97182081wmh.0 for <perc@ietf.org>; Thu, 25 May 2017 08:36:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=RtcrrQ8sNlAGfgFPQpj+N9NsO6vgpfO29gOi7bdZX2Q=; b=qjHcJkIwEjT1CmdWR7NWDix+zfTW7oRhTD08D5K9MUqzAHXvSeJobx0Wjw2amn4CC9 GiYntPh61DxX+PyTRfpXSsQGl1kiHBkIwSV6QkrXY6+/ak6h2Q9q3UJs1Ch2eXWCzfcg O+E9F7o27sfKIGkRACxaRRzDcpjBlDr4XmZO7kX8Cp3bobGOOgBIjBnOZAgcy+ZMJiA+ TDvLNHYTvCixmgp0qA66MivQoIxyiMKYmvWGYvmROfyfF2pEGx7S+XTuPbgRTJCG+vnT Mbs1RmY00qzg6V1hXIKp81Dd22+a2hNwwQEbqWBPGRQp5o0ZXkgncI5YMt5S9i55vbPP D/sA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=RtcrrQ8sNlAGfgFPQpj+N9NsO6vgpfO29gOi7bdZX2Q=; b=Qj3Vqa1Wim1w2Rq1U3vzBTu3qLMVIpaxbHe1n9ekvv+/oPbUDecg79eHC3b2ddHsEK 4vmpcpmnGAW2Sm/Dzs9ofnbL/RlNYZmmCeD4il8Xl1FYKOEQ+XVEn2wZn2CxuOozQXhj 5fE54UuWcIc2L+fsnOEWPDHzcm+9QwFhscH9D2pYo8Bw4kxOW9dHd51bc27AxAXmsohs KKYoReqx6Dg9ErvQSTrO7dmB+5IeER2robtjLzMMOHzp3Ry6QBIcYo+WEBjm8QDnQwBm +1ma0qXlgwD5RFmdWzQHd0LajHZoMvtn+xInNxkX5OvKCZn0deCZ0uFQrQ3TBX9PSF4K qpVw==
X-Gm-Message-State: AODbwcC17EndQxu/6dns53gETGbORTG5V4GE4itlfACtIWEcIeeWkwHC Gd7xokCuTqZA4TXSC/8=
X-Received: by 10.223.138.137 with SMTP id y9mr24046812wry.26.1495726595335; Thu, 25 May 2017 08:36:35 -0700 (PDT)
Received: from [192.168.1.43] (84.red-83-36-143.dynamicip.rima-tde.net. [83.36.143.84]) by smtp.googlemail.com with ESMTPSA id o17sm5251088wra.56.2017.05.25.08.36.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 May 2017 08:36:34 -0700 (PDT)
To: "Mo Zanaty (mzanaty)" <mzanaty@cisco.com>, "perc@ietf.org" <perc@ietf.org>
References: <9d1552b8-b69f-ac14-e28b-2905bd5e5692@gmail.com> <CAOW+2dtRYXcnzUnP3cZKKNXJ1FxJPwMw3hmb349KpbLJwQD5FA@mail.gmail.com> <1adbb700-b61e-b283-6e29-ff3b5fd0d5ee@gmail.com> <CAHgZEq46mBQMEcQY-EM36s5_8FWCLJx9nrDo6FX4DA6COmmUYA@mail.gmail.com> <D54B71A7.6E93C%mzanaty@cisco.com> <9c8f493d-74f8-0c65-f660-289df0239d46@gmail.com> <D54C6C11.6EA03%mzanaty@cisco.com>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Message-ID: <64d4b052-47bd-2522-b4c9-f422fac5fddf@gmail.com>
Date: Thu, 25 May 2017 17:36:32 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <D54C6C11.6EA03%mzanaty@cisco.com>
Content-Type: multipart/alternative; boundary="------------58592BB9877F98922D005D76"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/perc/Eav3b8iuwL1hiOpnvxynvBKOZi4>
Subject: Re: [Perc] PERC LIte
X-BeenThere: perc@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Privacy Enhanced RTP Conferencing <perc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/perc>, <mailto:perc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/perc/>
List-Post: <mailto:perc@ietf.org>
List-Help: <mailto:perc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/perc>, <mailto:perc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 May 2017 15:36:40 -0000

Hi Mo,

I would expect the app to decide the location of the js, the same as it 
is currently specified in the IdP solution:

    In order to communicate with the IdP, the user agent loads the IdP
    JavaScript from the IdP. The URI for the IdP script is a well-known
    URI formed from the domain and protocol fields, as specified in
    [RTCWEB-SECURITY-ARCH].

    The IdP may generate an HTTP redirect to another "https" origin, the
    browser must treat a redirect to any other scheme as a fatal error.

    The user agent instantiates an isolated interpreted context, a
    JavaScript realm that operates in the origin of the loaded
    JavaScript. Note that a redirect will change the origin of the
    loaded script.

    The realm is populated with a global that implements both the
    RTCIdentityProviderGlobalScope and WorkerGlobalScope [WEBWORKERS]
    interfaces.

    The user agent provides an instance of RTCIdentityProviderRegistrar
    named rtcIdentityProvider in the global scope of the realm. This
    object is used by the IdP to interact with the user agent.

Whether it is hosted by the MD/KD or another system is up to the 
service/app to decide, as long as the user knows who/what is he trusting.

Best regards
Sergio

On 25/05/2017 17:26, Mo Zanaty (mzanaty) wrote:
> Hi Sergio,
>
> I was not thinking of compromised js (yet), just the real webrtc 
> service js. What origin do you expect for this js? I expect the MD 
> provider, or maybe KD.MD subdomain (e.g. ietf.webex.com) where the MD 
> provider still controls the js while the KD subdomain is just for 
> vanity and demux not operational control. But seems like you expect 
> the KD provider for this js.
>
> What do you mean by "independent context" below? Are you referring to 
> the IdP Proxy within the browser? So this key object would be 
> restricted to the IdP Proxy and not accessible from the real webrtc js 
> or DOM?
>
> Thanks,
> Mo
>
>
> From: Perc <perc-bounces@ietf.org <mailto:perc-bounces@ietf.org>> on 
> behalf of Sergio Murillo <sergio.garcia.murillo@gmail.com 
> <mailto:sergio.garcia.murillo@gmail.com>>
> Date: Wednesday, May 24, 2017 at 5:55 PM
> To: "perc@ietf.org <mailto:perc@ietf.org>" <perc@ietf.org 
> <mailto:perc@ietf.org>>
> Subject: Re: [Perc] PERC LIte
>
> Hi Mo,
>
> The key in JS is just for the media cencryption, DTLS/SRTP is setup 
> normally on top, so it is in no way less secure than current DTLS/SRTP.
>
> If JS is compromised, and an attacker gets the key, he will still be 
> unable to access the media data as is encrypted HBH by DTLS. To gain 
> access to the media, he would need to get the key AND break HBH DTLS.
>
> Also, if JS is compromised, PERC will be defeated completely (any 
> solution) as it could clone all the media streams and sent it to a 
> rogue MD with a different PC.
>
> To prevent that is why IdP was introduced into WebRTC, and a similar 
> solution could be done for setting the key (just run a js script from 
> the KD on an independent context and restrict the usage of that stream 
> to the required identity).
>
> Anyway, I understand this will be a sensible topic, so I am willing to 
> discuss this in detail.
>
> Best regards
> Sergio
>
>
>
> On 24/05/2017 23:42, Mo Zanaty (mzanaty) wrote:
>> Keys in JS app signaling/APIs??? Have we come full circle back to SDES???
>>
>> Seems like PERC lite would weaken not strengthen the security of 
>> DTLS-SRTP / WebRTC apps, if JS can inject keys to ignore DH, defeat 
>> PFS, etc.
>>
>> Confused,
>> Mo
>>
>> From: Perc <perc-bounces@ietf.org <mailto:perc-bounces@ietf.org>> on 
>> behalf of Alexandre GOUAILLARD <agouaillard@gmail.com 
>> <mailto:agouaillard@gmail.com>>
>> Date: Wednesday, May 24, 2017 at 5:14 PM
>> To: Sergio Murillo <sergio.garcia.murillo@gmail.com 
>> <mailto:sergio.garcia.murillo@gmail.com>>
>> Cc: "perc@ietf.org <mailto:perc@ietf.org>" <perc@ietf.org 
>> <mailto:perc@ietf.org>>, Bernard Aboba <bernard.aboba@gmail.com 
>> <mailto:bernard.aboba@gmail.com>>
>> Subject: Re: [Perc] PERC LIte
>>
>> bernard,
>>
>> Good point.
>>
>> i'm discussing with peter T, and proposal for webrtc WG and ORTC CG 
>> API extensions are coming your way this week.  Sergio did it at the 
>> PeerConnection level while peter is advocating an Api at the 
>> RTPSender/Receiver level. Of course, the crypto-algorithm needs to be 
>> an input variable as well.
>>
>> On Thu, May 25, 2017 at 5:46 AM, Sergio Garcia Murillo 
>> <sergio.garcia.murillo@gmail.com 
>> <mailto:sergio.garcia.murillo@gmail.com>> wrote:
>>
>>     Hi Bernard,
>>
>>     Yes, the example API is just the lazy approach I have taken on my
>>     modified chromium, hardcoding the key to AES-GCM 256 so I didn't
>>     have to add an object to the IDL and worry about how to retrieve
>>     later on the c++ code.
>>
>>     The API should allow to set the key and look more like:
>>
>>     *
>>
>>     const pc = new RTCPeerConnection({
>>
>>     mediaCrypto : {
>>
>>     key : 'VEhJUyBJUyBUSEUgMzIgS0VZIFdJVEggMTIgU0FMVCBET1VCTEUgUEVSQyE=',
>>
>>     suite  : 'AEAD_AES_256_GCM'
>>
>>     }
>>
>>     });* Anticipating the security comments, I don't expect that to
>>     be the final API for WebRTC, which IMHO should be a similar
>>     mechanism as the one in place for IdP (or even integrated with
>>     it), but I feel that that discussion should take place on the
>>     RTCWeb group and not here. Best regardsSergio
>>     On 24/05/2017 19:56, Bernard Aboba wrote:
>>>     Thanks for posting this.
>>>     Question:  In terms of API support, how is the crypto-algorithm
>>>     specified?  So far, the proposed API just has the key.
>>>     On Wed, May 24, 2017 at 10:11 AM, Sergio Garcia Murillo
>>>     <sergio.garcia.murillo@gmail.com
>>>     <mailto:sergio.garcia.murillo@gmail.com>> wrote:
>>>
>>>         Hi all again,
>>>
>>>         Also to start the discussion about 5), I would like to
>>>         introduce again my proposal for a "PERC Lite" approach.
>>>
>>>         The main objectives and key points of this proposal are:
>>>
>>>           * Minimum viable PERC implementation
>>>           * Minimize impact on both endpoints and MD
>>>           * OHB is carried in the RTP payload (Encrypted Payload
>>>             Header).
>>>           * No changes to the DTLS/SRTP code/api/standards
>>>           * No RTP E2E Header extensions
>>>           * RTX/FEC/RED is supported HBH without any change to
>>>             current standards/implementations.
>>>
>>>         Best regards
>>>
>>>         Sergio
>>>
>>>         _______________________________________________ Perc mailing
>>>         list Perc@ietf.org <mailto:Perc@ietf.org>
>>>         https://www.ietf.org/mailman/listinfo/perc
>>>         <https://www.ietf.org/mailman/listinfo/perc> 
>>>
>>     _______________________________________________ Perc mailing list
>>     Perc@ietf.org <mailto:Perc@ietf.org>
>>     https://www.ietf.org/mailman/listinfo/perc
>>     <https://www.ietf.org/mailman/listinfo/perc> 
>>
>> -- 
>> Alex. Gouaillard, PhD, PhD, MBA
>> ------------------------------------------------------------------------------------
>> President - CoSMo Software Consulting, Singapore
>> ------------------------------------------------------------------------------------
>> sg.linkedin.com/agouaillard <http://sg.linkedin.com/agouaillard>
>>
>>  *
>>
>> _______________________________________________
>> Perc mailing list
>> Perc@ietf.orghttps://www.ietf.org/mailman/listinfo/perc