Re: [TLS] Proposal for detecting fraudulent certificates

Martin Rex <> Mon, 26 September 2011 16:03 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 05C3A21F8D25 for <>; Mon, 26 Sep 2011 09:03:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -10.054
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id RqEwE7LAWrQn for <>; Mon, 26 Sep 2011 09:03:23 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 31CF221F8D24 for <>; Mon, 26 Sep 2011 09:03:23 -0700 (PDT)
Received: from by (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 <>
Message-Id: <>
To: (Florian Weimer)
Date: Mon, 26 Sep 2011 18:05:57 +0200 (MEST)
In-Reply-To: <> 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
Subject: Re: [TLS] Proposal for detecting fraudulent certificates
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-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:
> <>
> 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

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...