Re: [TLS] Security concerns around co-locating TLS and non-secure on same port (WGLC: draft-ietf-tsvwg-iana-ports-08)

Marsh Ray <marsh@extendedsubset.com> Mon, 08 November 2010 21:46 UTC

Return-Path: <marsh@extendedsubset.com>
X-Original-To: tsvwg@core3.amsl.com
Delivered-To: tsvwg@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9D5703A6978; Mon, 8 Nov 2010 13:46:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z6LYTqQ6W6Qr; Mon, 8 Nov 2010 13:46:24 -0800 (PST)
Received: from mho-01-ewr.mailhop.org (mho-01-ewr.mailhop.org [204.13.248.71]) by core3.amsl.com (Postfix) with ESMTP id 926773A68D5; Mon, 8 Nov 2010 13:46:24 -0800 (PST)
Received: from xs01.extendedsubset.com ([69.164.193.58]) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.68) (envelope-from <marsh@extendedsubset.com>) id 1PFZY6-000AOw-IP; Mon, 08 Nov 2010 21:46:46 +0000
Received: from [192.168.1.15] (localhost [127.0.0.1]) by xs01.extendedsubset.com (Postfix) with ESMTP id C01986019; Mon, 8 Nov 2010 21:46:44 +0000 (UTC)
X-Mail-Handler: MailHop Outbound by DynDNS
X-Originating-IP: 69.164.193.58
X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/mailhop/outbound_abuse.html for abuse reporting information)
X-MHO-User: U2FsdGVkX19XRiUesiwnH25vHfkxexBg4OYOgSgrSNk=
Message-ID: <4CD86FC4.4070308@extendedsubset.com>
Date: Mon, 08 Nov 2010 15:46:44 -0600
From: Marsh Ray <marsh@extendedsubset.com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.15) Gecko/20101027 Thunderbird/3.0.10
MIME-Version: 1.0
To: Nicolas Williams <Nicolas.Williams@oracle.com>
Subject: Re: [TLS] Security concerns around co-locating TLS and non-secure on same port (WGLC: draft-ietf-tsvwg-iana-ports-08)
References: <E1PFKZ3-0002jp-Bu@login01.fos.auckland.ac.nz> <p06240843c8fd6c508084@[130.129.55.1]> <4CD83312.5060000@extendedsubset.com> <20101108202407.GO6536@oracle.com>
In-Reply-To: <20101108202407.GO6536@oracle.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Mailman-Approved-At: Tue, 09 Nov 2010 00:05:46 -0800
Cc: tls@ietf.org, Paul Hoffman <paul.hoffman@vpnc.org>, tsvwg@ietf.org
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tsvwg>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Nov 2010 21:46:25 -0000

On 11/08/2010 02:24 PM, Nicolas Williams wrote:
> On Mon, Nov 08, 2010 at 11:27:46AM -0600, Marsh Ray wrote:
>> On 11/08/2010 03:07 AM, Paul Hoffman wrote:
>>>
>>> "some security issues": See the long Security Considerations section
>>> on RFC 3207.
>>
>> Hmmm, yes, the little matter of the downgrade attack.
>
> You have that with the out-of-band negotiation case too though.

Right, I think I covered that in the blog post I linked. It always bears 
repeating. I suppose it depends on whether you define TCP port number as 
out-of-band or in-band so it's maybe relative to which RFC you're reading.

Regardless, the solution is to have the endpoints refuse to engage in 
risky behavior. Dynamically negotiating authentication parameters has 
proven to be inherently perilous.

> Every IM and e-mail client I've used has the option to not require TLS.

We have to be prepared to face the possibility that the status quo kinda 
sucks.

> That means they can be configured to fall back on not using TLS at all.
> Worse, there's usually a checkbox for using TLS as opposed to a checkbox
> for being insecure -- as a result, regardless of what the default is for
> that checkbox the user is likely to check it off if they run into any
> trouble.

Where there is an option, it really ought to be called "send all my 
bank^H^H^H^H naked Facebook photos to the bad guys."

>> * Developers don't have to code support for configuration
>
> When was the last time you saw a major IM or e-mail client that didn't
> let you toggle TLS?  I can't remember when I last saw such a thing.

It's awful, isn't it?

The only silver lining in this is that the existence of insecure 
connections may be keeping the bad guys busy enough that they never feel 
the need to attack our secure ones.

> If such an app gives you that toggle it's because the developers were
> willing to deal with the complexity of negotiation (whether starttls or
> not) and configuration (that toggle is it).

Right, there's still some configuration, so maybe this is by itself is 
not a huge win.

Looking at T-bird IMAP configuration I see:

A) Port number: [defaults according to other setting]

B) Connection security: three options
    None
    STARTTLS [default]
    SSL/TLS

C) Use secure authentication: [checkbox]

It seems like this configuration could be simplified a little bit.

(A) Looks simple and obvious.

(B) Doesn't say whether its STARTTLS is strict, or if it's vulnerable to 
a downgrade attack.

(C) Doesn't say what "secure authentication" means. I suppose I could 
look up some RFCs and guess that it might mean that. But what it doesn't 
say is whether or not non-forwardable auth can be used. If I select 
STARTTLS and check "Use secure authentication" it appears likely that an 
active attacker could still downgrade my connection to non-TLS and then 
do a forwarding attack taking my credentials to to some other server, 
perhaps not even mail related.

So the Thunderbird developers implemented some extra configuration (and 
I don't really know what it does) which would not be necessary if there 
were just an "requre port 993 TLS" checkbox.

>  Making sure
> that servers require TLS, whether StartTLS or otherwise, is not much
> harder.

Yeah, not much harder. But it seems like "just a little more work" can 
make a huge difference in real world uptake rates.

> You still have to be sure that the client and server will actually, you
> know, run TLS.

...and validate the certificates properly, and so on.

> The only benefit of a "secure-only port number" is that you don't have
> to make sure that the server requires TLS -- chances are near 100% it
> just won't work if it doesn't, in which case the problem is self-
> correcting (user files ticket, admins fix the problem).

I.e., the default failure mode is secure, rather than insecure.

This is a pretty big win IMHO.

- Marsh