Re: [TLS] CCS and key reset and renegotiation

Watson Ladd <> Fri, 06 June 2014 02:59 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 873281A03E7 for <>; Thu, 5 Jun 2014 19:59:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id hgYubsho7NmG for <>; Thu, 5 Jun 2014 19:59:15 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:400d:c00::22d]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 29F321A03F3 for <>; Thu, 5 Jun 2014 19:59:15 -0700 (PDT)
Received: by with SMTP id hw13so2780719qab.18 for <>; Thu, 05 Jun 2014 19:59:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JQAyRFz7nrSOhP/Vds8o0rnt1kule5DvgYgehTEjZ/M=; b=qENdSh4zn5q0UOuVK/aTri62lUqgsXFoqlKZ4vJbx4vepMvARIzUkGRfJ9vqGKFBSH GMDd1WWL2ofsGJW16XEPYwfnJeqBmeSOiNuWllPUkYUoQWK+Qd5ct/exkC9LP5LXVVhS tqK+lSqATeXWTEy2Cjb2RlzJLYEDt92WHVPvpM4K2gjq1aYKds9mZqf7CZyHx9sCILMZ eTNr0hoyCmB/RDeObZ4dd96g7TOPNdKmzkQt5030GJV0TS1XgGh7Po5oBYQaeiEJg+97 ZC3xFyj//iIrynyE/zgVTSoFhedYcd5m5XVcE4eixmyr8sxfUdFMTimjwkfYzGD/XNYf ysJg==
MIME-Version: 1.0
X-Received: by with SMTP id j48mr3268336qge.24.1402023548134; Thu, 05 Jun 2014 19:59:08 -0700 (PDT)
Received: by with HTTP; Thu, 5 Jun 2014 19:59:08 -0700 (PDT)
In-Reply-To: <>
References: <>
Date: Thu, 5 Jun 2014 19:59:08 -0700
Message-ID: <>
From: Watson Ladd <>
To: Peter Gutmann <>
Content-Type: text/plain; charset=UTF-8
Cc: "<>" <>
Subject: Re: [TLS] CCS and key reset and renegotiation
X-Mailman-Version: 2.1.15
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: Fri, 06 Jun 2014 02:59:21 -0000

On Thu, Jun 5, 2014 at 6:41 PM, Peter Gutmann <> wrote:
> Watson Ladd <> writes:
>>The spec needs a state machine.
> No, it's this that created the problem in the first place.  SSL/TLS (and SSH,
> and others) are best described using a ladder diagram (and in fact that's how
> pretty much every diagram of the protocols that I've ever seen does them).
> The fact that the spec dresses it up like a state machine means that anyone
> who actually tries to implement it that way ends up vulnerable to mistakes
> like the current OpenSSL one.  So the spec needs to take a protocol that
> exists as a ladder diagram and describe it as such, not pretend that it's
> meant to be a state machine.

Because the Certificate, Certificate Request, ServerKeyExchange, and
some other messages in the handshake are optional, I don't see how a
ladder diagram can encapsulate the protocol. That's ignoring the fact
that you can send as much application data as you desire before
terminating the connection, so there is a branch: either we get app
data, or a termination.

To me a spec based on a state machine says in each state what all the
allowed transitions are, and what is emitted in each state, and what
drives the transitions.

Either way 5 out of 6 implementors got it right. It's not even a
barrier to formalization: what the protocol does is a much bigger
issue, and that's where I hope to send a lengthy email laying out what
TLS 1.3 should look like. (There is also another issue: X509 is
massively complicated and is the only certificate format TLS supports.
Perhaps we should consider lightweight alternatives)

Watson Ladd

> Peter.
> _______________________________________________
> TLS mailing list

"Those who would give up Essential Liberty to purchase a little
Temporary Safety deserve neither  Liberty nor Safety."
-- Benjamin Franklin