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

Bernard Aboba <bernard_aboba@hotmail.com> Thu, 28 July 2011 10:48 UTC

Return-Path: <bernard_aboba@hotmail.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 6708E21F8C08 for <rtcweb@ietfa.amsl.com>; Thu, 28 Jul 2011 03:48:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.167
X-Spam-Level:
X-Spam-Status: No, score=-102.167 tagged_above=-999 required=5 tests=[AWL=0.431, BAYES_00=-2.599, HTML_MESSAGE=0.001, USER_IN_WHITELIST=-100]
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 KdMAidwPuKyH for <rtcweb@ietfa.amsl.com>; Thu, 28 Jul 2011 03:48:21 -0700 (PDT)
Received: from blu0-omc2-s13.blu0.hotmail.com (blu0-omc2-s13.blu0.hotmail.com [65.55.111.88]) by ietfa.amsl.com (Postfix) with ESMTP id F2F5E21F8C06 for <rtcweb@ietf.org>; Thu, 28 Jul 2011 03:48:20 -0700 (PDT)
Received: from BLU152-W17 ([65.55.111.72]) by blu0-omc2-s13.blu0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 28 Jul 2011 03:48:20 -0700
Message-ID: <BLU152-W17D942EB179F9C2DB0AC6593340@phx.gbl>
Content-Type: multipart/alternative; boundary="_d5c994ac-d408-471d-a07f-c6d498b943a1_"
X-Originating-IP: [130.129.70.124]
From: Bernard Aboba <bernard_aboba@hotmail.com>
To: hkaplan@acmepacket.com, rtcweb@ietf.org
Date: Thu, 28 Jul 2011 03:48:20 -0700
Importance: Normal
In-Reply-To: <12BF9E55-662F-4762-9E47-2BBD3FA5FD93@acmepacket.com>
References: <12BF9E55-662F-4762-9E47-2BBD3FA5FD93@acmepacket.com>
MIME-Version: 1.0
X-OriginalArrivalTime: 28 Jul 2011 10:48:20.0864 (UTC) FILETIME=[DDD98800:01CC4D13]
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: Thu, 28 Jul 2011 10:48:22 -0000

Agree that the "clean slate" approach is not very appealing.  "Since we require ICE, we can also require X, Y, Z" is flawed logic, not only from a deployment/interoperability point of view, but also from a regulatory point of view.  The definitions of interconnected/non-interconnected VOIP and the associated regulatory requirements do not have a browser exemption. 

> From: HKaplan@acmepacket.com
> To: rtcweb@ietf.org
> Date: Thu, 28 Jul 2011 02:17:42 -0400
> Subject: Re: [rtcweb] Retransmit: Summary of Alternatives for media keying
> 
> 
> Well gee that doesn't sound like too hard a choice set to choose from, though I guess it depends on whether there's a requirement/desire to interop with existing VoIP devices and the PSTN, or not.
> 
> If we don't expect/desire RTCWEB clients to communicate with existing VoIP devices or PSTN, then sure we can start with a clean slate.  In fact, you could also create a whole new version of SIP for inter-server, since there's no need to use SIP v2.0 between RTCWEB domains and we've learned things we could have done better, and for a pure inter-domain server-to-server signaling protocol it could be a lot simpler. 
> 
> But anyway... with regards to your alternatives below, you seem to imply that using DTLS-SRTP is by itself "secure", such that the UI could display a lock-icon for example.  I was under the impression that DTLS-SRTP provided no guarantee of anything without the humans on both ends verifying they're using the same keying material/SAS/etc.  Is that not the case? (okay yes it requires being a MitM to subvert, but that's not a high enough bar to claim anything)
> 
> Assuming that's true, and given how few humans would actually know to perform manual verification of dtls-srtp, I think this topic isn't as cut-and-dried as choosing between "secure" vs. "insecure".  Both alternatives are capable of being secure or insecure, and it's up to the human to do something to figure it out in either case.  There is no real alternative which is inherently "secure", afaict.
> 
> -hadriel
> 
> 
> Recently EKR wrote:
> > This is very late, but here is my attempted summary of the discussion
> > about COMSEC choices at the interim. I'm not saying that this captures
> > everyone's position, but the following positions are the ones that in
> > my view have significant levels of support.
> > 
> > 
> > Alternative A: [DTLS MUST, NO SDES, NO RTP]
> > 
> >    An RTC-Web client MUST support DTLS-SRTP and ONLY DTLS-SRTP for
> >    media, without support for either SRTP with supplied keying
> >    material (SDES-style) AND plain RTP. DTLS-SRTP provides for
> >    end-to-end key negotation between the two RTCWEB clients. The
> >    client MUST support the SRTP_AES128_CM_HMAC_SHA1_80 protection
> >    profile and the DTLS cipher suite
> >    TLS_DHE_RSA_WITH_AES_128_CBC_SHA. Note that this requirement
> >    differs from the current TLS default, TLS_RSA_WITH_AES_128_CBC_SHA
> >    in that it mandates support for Diffie-Hellman key exchange in
> >    order to provide Perfect Forward Secrecy.
> > 
> >    An RTCWEB client MUST provide its user with the ability to to see
> >    keying material information sufficient to allow indepent
> >    verification of their peer's identity.  (REF
> >    draft-kaufman-rtcweb-security-ui).
> > 
> >    The primary drawback of this alternative is the lack of backwards
> >    compatibility with devices and software that only support plain
> >    RTP, but the requirement for a handshake makes interoperation with
> >    these devices not completely trivial anyway.
> > 
> > 
> > 
> > Alternative B: [DTLS-SRTP MUST, SDES MAY, RTP MUST]
> > 
> >    An RTC-Web client MUST support DTLS-SRTP for media. DTLS-SRTP
> >    provides for end-to-end key negotation between the two RTCWEB
> >    clients.  The client MUST support the SRTP_AES128_CM_HMAC_SHA1_80
> >    protection profile and the DTLS cipher suite
> >    TLS_DHE_RSA_WITH_AES_128_CBC_SHA. Note that this requirement
> >    differs from the current TLS default, TLS_RSA_WITH_AES_128_CBC_SHA
> >    in that it mandates support for Diffie-Hellman key exchange in
> >    order to provide Perfect Forward Secrecy. This MUST be the default
> >    mode of operation.
> > 
> >    An RTCWEB client MAY support SRTP with the keying material supplied
> >    via the signaling channel with the SRTP_AES128_CM_HMAC_SHA1_80
> >    protection profile.  In the case of a web browser client, the
> >    keying material should be supplied via a Javascript API.
> >    DTLS-SRTP, with its end-to-end keying and authentication capability
> >    is preferred over SDES-style [RFC4568] keying.  However, the
> >    additional API overhead required to add support for a way to force
> >    a particular key is low.  In addition, once plain RTP is to be
> >    supported the arguments against the lower security level provided
> >    by SDES-style keying are no longer relevant.  Also there are a
> >    small number of potential use cases where interoperability with
> >    existing SDES-keyed software or devices may be achieved if the
> >    RTCWEB endpoint supports this mode of keying.
> > 
> >    An RTCWEB client MUST support RTP.  This provides no privacy but
> >    maximizes interoperability.  Note that SRTP with a Null cipher has
> >    equivalent security but does not meet the interoperability
> >    requirement.  Plain RTP provides no protection for the media, and
> >    so is discouraged as a mode of operation for RTCWEB.  However,
> >    support for RTP is required in order to provide interoperability
> >    with legacy RTP devices and software that do not support
> >    encryption.  In addition, some use cases such as high-volume PSTN
> >    or PBX gateways within an organization may scale more readily
> >    without the overhead of media encryption.
> > 
> >    An RTCWEB client MUST provide its user with the ability to know
> >    whether or not the media they are sending is protected by encryption
> >    and with the ability to see keying material information sufficient
> >    to allow indepent verification of their peer's identity.
> >    (REF draft-kaufman-rtcweb-security-ui). Note that this user
> >    interface element is much more critical---and hence much more
> >    problematic than with alternative A. If DTLS-SRTP is always
> >    used, then the user knows what security mechanisms are provided.
> >    As soon as multiple alternatives with widely varying security
> >    (or no security in the case of RTP) are provided, then users
> >    need to actually verify that the security level is satisfactory,
> >    which is inherently problematic given typical user behavior.
> > 
> > I expect to leave time for discussion of this during my slot tomorrow.
> > I look forward to a good discussion.
> > 
> > Best,
> > -Ekr
> > 
> 
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb