Re: [TLS] Deprecate SHA1 for signatures in TLS 1.3 (was Re: TLS 1.3 draft-07 sneak peek)

mrex@sap.com (Martin Rex) Fri, 10 July 2015 15:48 UTC

Return-Path: <mrex@sap.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83F931B2A4C for <tls@ietfa.amsl.com>; Fri, 10 Jul 2015 08:48:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.551
X-Spam-Level:
X-Spam-Status: No, score=-6.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham
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 3UXW7arWggir for <tls@ietfa.amsl.com>; Fri, 10 Jul 2015 08:48:35 -0700 (PDT)
Received: from smtpde01.smtp.sap-ag.de (smtpde01.smtp.sap-ag.de [155.56.68.170]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3B0061B2A30 for <tls@ietf.org>; Fri, 10 Jul 2015 08:48:35 -0700 (PDT)
Received: from mail05.wdf.sap.corp (mail05.sap.corp [194.39.131.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtpde01.smtp.sap-ag.de (Postfix) with ESMTPS id 7E7EB2A84F; Fri, 10 Jul 2015 17:48:33 +0200 (CEST)
X-purgate-ID: 152705::1436543313-0000413A-F72D566F/0/0
X-purgate-size: 3947
X-purgate: clean
X-purgate: This mail is considered clean (visit http://www.eleven.de for further information)
X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de
X-purgate-type: clean
X-SAP-SPAM-Status: clean
Received: from ld9781.wdf.sap.corp (ld9781.wdf.sap.corp [10.21.82.193]) by mail05.wdf.sap.corp (Postfix) with ESMTP id 706E5404B6; Fri, 10 Jul 2015 17:48:33 +0200 (CEST)
Received: by ld9781.wdf.sap.corp (Postfix, from userid 10159) id 6B5D31A1D5; Fri, 10 Jul 2015 17:48:33 +0200 (CEST)
In-Reply-To: <CACsn0c=W8c5KjHtVEpHeBVy-ifJxTKoN1+WXP0EZ8fJqqd3yxA@mail.gmail.com>
To: Watson Ladd <watsonbladd@gmail.com>
Date: Fri, 10 Jul 2015 17:48:33 +0200
X-Mailer: ELM [version 2.4ME+ PL125 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="US-ASCII"
Message-Id: <20150710154833.6B5D31A1D5@ld9781.wdf.sap.corp>
From: mrex@sap.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/Ns1OmLg8BLoOBUHFriR4jyjPTS8>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Deprecate SHA1 for signatures in TLS 1.3 (was Re: TLS 1.3 draft-07 sneak peek)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: <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: Fri, 10 Jul 2015 15:48:37 -0000

Watson Ladd wrote:
> 
>>
>> https://tools.ietf.org/html/rfc5246#section-7.4.1.2
>>
>>   7.4.1.2  ClientHello
>>
>>    extensions
>>       Clients MAY request extended functionality from servers by sending
>>       data in the extensions field.  The actual "Extension" format is
>>       defined in Section 7.4.1.4.
>>
>>
>>                                       A server MUST accept ClientHello
>>    messages both with and without the extensions field,
>>
>>
>> The interpretation of rfc5246 that Microsoft is using to explain the
>> broken behaviour is in clear conflict with rfc2119 section 6
> 
>
> ECDHE support requires sending extensions.

This claim is also clearly invalid.

Btw. rfc4492 is *NOT* a standard, and implementing TLSv1.2 does not
require support for ECC (and neither does TLSv1.2 require support
for any AES-GCM cipher suites).

Our TLSv1.2 client, where we noticed the Microsoft SChannel goof,
does neither implement ECC nor AES-GCM.


rfc4492 says:

4.  TLS Extensions for ECC

   Two new TLS extensions are defined in this specification: (i) the
   Supported Elliptic Curves Extension, and (ii) the Supported Point
   Formats Extension.  These allow negotiating the use of specific
   curves and point formats (e.g., compressed vs. uncompressed,
   respectively) during a handshake starting a new session.  These
   extensions are especially relevant for constrained clients that may
   only support a limited number of curves or point formats.


   A TLS client that proposes ECC cipher suites in its ClientHello
   message SHOULD include these extensions.

                                                        A client that
   proposes ECC cipher suites may choose not to include these
   extensions. 

rfc4492 is a little inconsistent here, because it uses both
"SHOULD" and "may" for the very same client behaviour.



> A server configured to only support ECDHE
> ciphersuites will fail any handshake that doesn't contain the
> necessary extensions. You cannot expect psychic servers to negotiate
> unadvertised features.
> 
> Why can't you advertise support for the signatures you in fact
> support, if you want to advertise support?


Because sending TLS extensions is backwards incompatible behaviour when
you have never sent TLS extensions before, and it will cause some
interop scenarios to fail.  We are not allowed to ship backwards-incompatible
behaviour that breaks existing usage scenarios as patch into the installed
base.  For the very same reason, the use of protocol version > TLSv1.0
on outgoing connections is a pure opt-in.

>>
>> Requiring a server admin to continue using a sha1WithRsaEncryption
>> signed certificate and failing the handshake when a sha256WithRsaEncryption
>> signed certificate is installed, or alternatively requiring the server
>> admin to disable TLSv1.2 (which happens to be the default in Win7/2008R2)
>> is a dumb idea and actively causing harm.
> 
> If clients don't support sha256WithRsaEncryption, they won't work with
> that server. The problem is clients failing to advertise features,
> then their authors complaining about lack of psychic abilities on the
> behalf of servers.

So what.  Leave the matter of dealing with a sha256WithRsaEncryption
certificate to the client.  This is particularly true for the extremely
unhelpful SSL Alert that is meant to be used here (handshake_failure),
and doubly so for Microsoft IIS -- which does not put any alerts
on the wire before closing the connection.

The latter might not be a problem of SChannel, which seems to create
the alerts and potentially offers them at the SSPI interface, but might
a flaw of the SChannel SSP application callers (Microsoft IIS, MSIE),
to process a token that is returned from a context iterator
(InitializeSecurityContext / AcceptSecurityContex) along with
an SSPI error code.


-Martin