Re: [TLS] Proposal for detecting fraudulent certificates

Martin Rex <mrex@sap.com> Mon, 26 September 2011 16:03 UTC

Return-Path: <mrex@sap.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 05C3A21F8D25 for <tls@ietfa.amsl.com>; Mon, 26 Sep 2011 09:03:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.054
X-Spam-Level:
X-Spam-Status: No, score=-10.054 tagged_above=-999 required=5 tests=[AWL=0.195, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-8]
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 RqEwE7LAWrQn for <tls@ietfa.amsl.com>; Mon, 26 Sep 2011 09:03:23 -0700 (PDT)
Received: from smtpde01.sap-ag.de (smtpde01.sap-ag.de [155.56.68.170]) by ietfa.amsl.com (Postfix) with ESMTP id 31CF221F8D24 for <tls@ietf.org>; Mon, 26 Sep 2011 09:03:23 -0700 (PDT)
Received: from mail.sap.corp by smtpde01.sap-ag.de (26) with ESMTP id p8QG5vs9010602 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 26 Sep 2011 18:06:02 +0200 (MEST)
From: Martin Rex <mrex@sap.com>
Message-Id: <201109261605.p8QG5vRC013367@fs4113.wdf.sap.corp>
To: fweimer@bfk.de
Date: Mon, 26 Sep 2011 18:05:57 +0200
In-Reply-To: <8262kfcr6q.fsf@mid.bfk.de> from "Florian Weimer" at Sep 26, 11 02:29:49 pm
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-SAP: out
Cc: tls@ietf.org
Subject: Re: [TLS] Proposal for detecting fraudulent certificates
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: mrex@sap.com
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: Mon, 26 Sep 2011 16:03:24 -0000

Florian Weimer wrote:
> 
> I have submitted draft-weimer-tls-previous-certificate-00, which intents
> to facilitate detection of fraudulent certificates used in the wild:
> 
> <http://tools.ietf.org/html/draft-weimer-tls-previous-certificate-00>
> 
> The basic idea is to use leaks from mobile clients moving between
> networks with and without a clear path to the server.  The previous
> server certificate chain is included in the client hello, so the server
> receives it when the client transitions to a network with a clear path.
> 
> This draft prompted my previous question about extension size limits.
> Unfortunately, that issue makes this very simple idea somewhat
> complicated, but I tried to add a fairly straightforward workaround.

Having the client send _only_ the servers certificate and not the
entire certificate path should IMO be sufficient for the purpose you
outline.

I don't know why you think the 64 KByte TLS extension size limit would
be a problem.

A non-marginal fraction of the installed base of TLS will puke when
encountering a TLS handshake message that is split/fragmented across
TLS record boundaries (which have a limit of 16 KByte).  The currently
most likely situation where this occurs (and the only one that
I've seen in the wild so far) are the CertificateRequest handshake
message contains a large number (60+) of certification_authorities.
Usually, the server tries to stuff the server response
(ServerHello,Certificate, CertificateRequest,ServerHelloDone)
into one single 16 KByte SSL Record, so even fitting the Server's
certificate chain alone should not normally be a problem.


But I don't see how this extension could realistically work in a
sane fashion.  The TLS implementation in TLS servers is not normally
keeping a history of previous TLS Server certificates which it ever
used (and might not have a persistence of its own for such a purpose),
usually not even across process restarts, and having TLS backends of
a Web-Server-Farm or hot-backups keep such a history in a consistent
fashion is even more unlikely.

And end users would probably prefer their TLS clients to tell them right
away when a server credential changes unexpectedly, rather than
a TLS server telling them, after they come home from a several weeks
trip through some contry YYY, that their last several week of connect(s)
had all been MITMd...


-Martin