Re: [TLS] Enforcing stronger server side signature/hash combinations in TLS 1.2

mrex@sap.com (Martin Rex) Fri, 24 March 2017 20:53 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 C28BA129968 for <tls@ietfa.amsl.com>; Fri, 24 Mar 2017 13:53:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.421
X-Spam-Level:
X-Spam-Status: No, score=-6.421 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 xxor-5vxCeBg for <tls@ietfa.amsl.com>; Fri, 24 Mar 2017 13:53:26 -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 72CEB129882 for <tls@ietf.org>; Fri, 24 Mar 2017 13:53:26 -0700 (PDT)
Received: from mail07.wdf.sap.corp (mail04.sap.corp [194.39.131.56]) (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 3vqbH84Rj0z1Jm9; Fri, 24 Mar 2017 21:53:24 +0100 (CET)
X-purgate-ID: 152705::1490388804-0000521C-85BD9E09/0/0
X-purgate-size: 2181
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 mail07.wdf.sap.corp (Postfix) with ESMTP id 3vqbH82jJHzGnxb; Fri, 24 Mar 2017 21:53:24 +0100 (CET)
Received: by ld9781.wdf.sap.corp (Postfix, from userid 10159) id 519011A65C; Fri, 24 Mar 2017 21:53:24 +0100 (CET)
In-Reply-To: <e6ee4fa4-1dec-4c5c-f725-f5ce2c5953db@nthpermutation.com>
To: Michael StJohns <msj@nthpermutation.com>
Date: Fri, 24 Mar 2017 21:53:24 +0100
CC: tls@ietf.org
Reply-To: mrex@sap.com
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: <20170324205324.519011A65C@ld9781.wdf.sap.corp>
From: mrex@sap.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/ooeTWngONLoHNbDj0hukoVPILRU>
Subject: Re: [TLS] Enforcing stronger server side signature/hash combinations in TLS 1.2
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 24 Mar 2017 20:53:29 -0000

Michael StJohns wrote:
> Martin Rex wrote:
>> oops, typo:
>>
>> Martin Rex wrote:
>>> Actually, looking at the DigiCert issued ECC cert for www.cloudflare.com
>>> I'm a little confused.
>>>
>>> This is the cert chain (as visualized by Microsoft CryptoAPI):
>>>
>>>    server-cert:  CN=cloudflare.com, ...
>>>                  contains ECDSA P-256 public key
>>>                  is allegedly signed with sha256ECDSA
>>>
>>>    intermediate CA:  CN=DigiCert ECC Extended Validation Server CA
>>>                  contains ECDSA P-384 public key
>>>                  is allegedly signed with sha384RSA
>>>
>>>    root CA:      CN=DigiCert High Assurance EV Root CA
>>>                  contains RSA 2048-bit public key
>>>                  is self-signed with sha1WithRsaEncryption
>>>
>>> For those who insist on reading rfc5246 verbatim, this chain requires
>>>
>>>     ECDSA+SHA384:RSA+SHA384:RSA+SHA1
>>       ECDSA+SHA256:RSA+SHA384:RSA+SHA1
> 
> I don't think RSA + SHA 1 is actually required.   The Signature over the 
> trust anchor (root CA) is basically a no-op - assuming the certificate 
> is in the browser(client) trust store.  The trust is traced to the 
> public key regardless of the form in which it's provided.  We use 
> self-signed certs a lot to carry the public keys and names (and 
> sometimes constraints), but that's not required by PKIX.

A server TLS implementation is *ALLOWED* to unconditionally include the RootCA
cert, and in that case a client not sending RSA+SHA1 clearly indicates
DO NOT SEND ME THAT PATH if the bogus words in rfc5246 about
signature_algorithms is taken literally.

Remember that were talking about *SERVERS* preempting the clients decision
(like Microsoft SChannel implemented it), not clients ignoring certs
sent by the server for policy reasons.

A server implementation refusing to send such a cert chain to a client
that doesn't include RSA+SHA1 (and blaming DigiCert for it)
is equally justified than Microsoft SChannel choking on absent
signature_algorithm extensions.


The only reasonable interpretation of that part of rfc5246,
is to completely ignore it.


-Martin