Re: [TLS] draft on new TLS key exchange

Marsh Ray <marsh@extendedsubset.com> Thu, 06 October 2011 06:55 UTC

Return-Path: <marsh@extendedsubset.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6803221F8AB9 for <tls@ietfa.amsl.com>; Wed, 5 Oct 2011 23:55:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.581
X-Spam-Level:
X-Spam-Status: No, score=-2.581 tagged_above=-999 required=5 tests=[AWL=0.018, 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 T0moMGGIhRPH for <tls@ietfa.amsl.com>; Wed, 5 Oct 2011 23:55:23 -0700 (PDT)
Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) by ietfa.amsl.com (Postfix) with ESMTP id 3BE3E21F8C2A for <tls@ietf.org>; Wed, 5 Oct 2011 23:55:23 -0700 (PDT)
Received: from xs01.extendedsubset.com ([69.164.193.58]) by mho-02-ewr.mailhop.org with esmtpa (Exim 4.72) (envelope-from <marsh@extendedsubset.com>) id 1RBhua-0006jG-V6; Thu, 06 Oct 2011 06:58:33 +0000
Received: from [192.168.1.15] (localhost [127.0.0.1]) by xs01.extendedsubset.com (Postfix) with ESMTP id 4D0A863BF; Thu, 6 Oct 2011 06:58:30 +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: U2FsdGVkX19MG0r48uF4sGMd48OOeAWx6AINzneFPCg=
Message-ID: <4E8D5198.4020809@extendedsubset.com>
Date: Thu, 06 Oct 2011 01:58:32 -0500
From: Marsh Ray <marsh@extendedsubset.com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.23) Gecko/20110921 Thunderbird/3.1.15
MIME-Version: 1.0
To: Dan Harkins <dharkins@lounge.org>
References: <ce78cf414ed82d44135ebbb88e32959b.squirrel@www.trepanning.net>
In-Reply-To: <ce78cf414ed82d44135ebbb88e32959b.squirrel@www.trepanning.net>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: tls@ietf.org, dhalasz@intwineenergy.com
Subject: Re: [TLS] draft on new TLS key exchange
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Oct 2011 06:55:24 -0000

On 10/05/2011 01:12 AM, Dan Harkins wrote:
>
>    Hi,
>
>    I just uploaded a -00 draft that defines a new key exchange
> for TLS that does not require certificates-- authentication using
> a simple password only. It can be found at:
>
>           http://tools.ietf.org/html/draft-harkins-tls-pwd-00
>
>    Please take a look. The authors solicit comments.

http://tools.ietf.org/html/draft-harkins-tls-pwd-00 :
> 4.  Specification of the TLS-PWD Handshake
>
>    The authenticated key exchange is accomplished by each side deriving
>    a password-based element, PE, in the chosen group, making a
>    "committment" to a single guess of the password using PE, and
>    generating the Premaster Secret.  The ability of each side to produce
>    a valid finished message authenticates itself to the other side.

Here are my comments. Some of them probably apply to other TLS 
password-only schemes too.

Comment 1:

Are you familiar with the studies showing that the great majority of 
users re-use passwords across sites and a large percentage have same 
password everywhere?

http://www.pcworld.com/article/188763/too_many_people_reuse_logins_study_finds.html
http://nakedsecurity.sophos.com/2009/03/10/password-website/

This one finds that the average password is used at 6 different sites:
http://research.microsoft.com/apps/pubs/?id=74164

I don't see anything in this protocol that allows the client endpoint to 
actually authenticate the server. Can the client know if he's 
authenticating with the legitimate server?

If not, perhaps it's OK as long as either the handshake fails or the bad 
guy is reduced to the role of a dumb router between the legit client and 
server.


Comment 2:

But the server DNS name and port do not appear to be bound into the 
authentication. Couldn't the bad guy take a connection destined for one 
web site/service and feed it to another?

Comment 3:

The standard of practice for actual "secure" web sites (e.g. PCI 
compliance if you want to handle credit cards) forbids storing plaintext 
passwords on the server side. Any web app developer who was not using at 
least salted hashes today would be ridiculed as incompetent (e.g., 
Sony). The industry seems to be recognizing the importance of imposing a 
work factor (PBKDF2, bcrypt, scrypt) to resist dictionary attacks when 
the authentication database gets compromised, say, by a typical SQL 
injection.

Is there any way to impose a work factor onto the attacker's guesses?

Who do you envision will deploy a protocol that requires the storage of 
plaintext passwords?

Conceivably there could be special-purpose systems that could generate 
handle these passwords securely, but couldn't they just as easily manage 
a private cert infrastructure?

Comment 4:

The hunting and pecking loops for both the ECC and FFC password elements 
look like a timing oracle to me. They seem to require a large 
exponentiation or sqrt on every iteration and the number of iterations 
is data-dependent. If I'm not mistaken, every input to the loop except 
the password itself is transmitted in cleartext during the handshake.

Couldn't an attacker observe the timings of a sufficient number of 
failed handshakes to enable an offline brute force attack on the 
low-entropy password?

- Marsh