[TLS] Empty extensions don't go last

Martin Thomson <martin.thomson@gmail.com> Thu, 24 March 2016 05:30 UTC

Return-Path: <martin.thomson@gmail.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 C67EB12D570 for <tls@ietfa.amsl.com>; Wed, 23 Mar 2016 22:30:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tnaWQYYiax2F for <tls@ietfa.amsl.com>; Wed, 23 Mar 2016 22:30:30 -0700 (PDT)
Received: from mail-io0-x230.google.com (mail-io0-x230.google.com [IPv6:2607:f8b0:4001:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 59BAE12D52F for <tls@ietf.org>; Wed, 23 Mar 2016 22:30:30 -0700 (PDT)
Received: by mail-io0-x230.google.com with SMTP id v187so45556160ioe.2 for <tls@ietf.org>; Wed, 23 Mar 2016 22:30:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=hV/5oKPwMZTHdr1HMlg6dbF9VjBKIoZPZJIga/g+hmU=; b=gC93GNF/F1cP+6J72GrHtFXskhzK0FSJNHF4HRZWvCgjdjGusMM6oDyhseerOvqLAx bOC7BnUi7Vup18nRhcaC995prBIAZmJDfU5Ve5YpXa6aEyeIb7w2o1QkumGaEzsNfpQq MvTC7DXABMv9mWlIs7J/j8e2Hbcn8UEEe/8bqCC7dYSQZnfHKctD41Nyj4IFHzUsxFEz xFn/4kZNTaj94x8p54Yao41GJDSw3QDbiiUOYci9EsdE71Xo1zmZiUeWNrbjNjPfqkW5 17DZT6uI4OUvfuFPSsqRdteIo3YS0JWLM5jwd/dPQxgt1nLpPEjMbwt3MBokgmfhWm+7 jRMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=hV/5oKPwMZTHdr1HMlg6dbF9VjBKIoZPZJIga/g+hmU=; b=OZwNDq4YxEiQUnWiON6vCzO3ScbLyK9fL0IdAEQp/nWdEcDLtDoq78HGHGS250cWFc lvs+Vged09Z81WjchC9Q8WMkUIX7Dom2xWjmYpo6TNoSTpLyubHB/PzyBq97VggJzOmr pzzi6tc0PCdNwKux6rS85f+FZ/r/eipZvy23qAjYvhByWXJyX4PzmkXQUNYiqT6EytrG rKvJ5gQWXgSGdJyseP2MM080Q03CVeO9RCaoe9O0BthIU5y8MBemSy3ls89QLrBGZxVP V6Z/UKhAU3a8A9Kxa8jHQVA3WWdeE44Egb9QjJZo7bjz0R6/lQfrtqk80gyaEUCBYZRr h3IA==
X-Gm-Message-State: AD7BkJLu+ZXoEcsUUSH6xDx7FhZktCcUvhNqiALsbQD7h3Tgxyp28oUkI4DlyMHP80MFAsIPfEVC2eHkyowELQ==
MIME-Version: 1.0
X-Received: by 10.107.34.139 with SMTP id i133mr6552591ioi.108.1458797429809; Wed, 23 Mar 2016 22:30:29 -0700 (PDT)
Received: by 10.36.43.142 with HTTP; Wed, 23 Mar 2016 22:30:29 -0700 (PDT)
Date: Thu, 24 Mar 2016 16:30:29 +1100
Message-ID: <CABkgnnW46PCE1xSk3oSs_Q1TDhv-dy20ya+Fn19EGeA+wvU7dA@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: "tls@ietf.org" <tls@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/qLSp0x1b8rr0mBvg-wfXivqEZj8>
Subject: [TLS] Empty extensions don't go last
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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, 24 Mar 2016 05:30:32 -0000

(This is probably already known to a bunch of people, but it's
probably a good idea to put out there.)

When deploying EMS, we recently discovered, with the help of our
friends at Google (who discovered this long before that) a quirk in
some implementations.

Short story:  Don't place an empty extension at the end of your
ClientHello.  You will find that a small number of servers choke.