Fundamentally, it is up to the client (or server when doing Client 
Authentication) to choose whether or not to trust a received certificate chain.
I am all for deprecating SHA-1 (and MD-5 and MD-2, and other weaker message 
digests), but “I’m not sure it’s a good idea” (SM) to force the issue in a new 
version of the protocol that is dependent on external specs (e.g. X.509) which 
permit those message digests.
If we want to promote TLSv1.3 and attempt to have faster adoption than TLSv1.2, 
we can’t shoot ourselves in the foot and not work with a large majority of 
servers out there still using old certificates.
Which by the way, do expire, and subsequently upon renewal, are signed with 
stronger message digests. The issue is with the old, ancient roots, that still 
use legacy message digest algorithms, and are less easy to update. But it can 
be done!
I think the onus is really on the library authors to validate the chain, but 
report anomalies such as SHA-1 in the chain, or a MD5-self-signed-root. The 
applications are then free to accept the chain or not. Chrome has already done 
this, and adding support to libraries to make this the default or easier to 
detect makes it that much easier to deprecate SHA1.
In summary, I’m in the SHOULD NOT use SHA-1 camp, rather than the MUST NOT.
--
-Todd Short
// tsh...@akamai.com<mailto:tsh...@akamai.com>
// "One if by land, two if by sea, three if by the Internet."

On Oct 23, 2015, at 12:33 AM, Viktor Dukhovni 
<ietf-d...@dukhovni.org<mailto:ietf-d...@dukhovni.org>> wrote:

On Thu, Oct 22, 2015 at 06:40:25PM +0000, Salz, Rich wrote:

Most applications want a simple API that hides all the complexities of
TLS. If OpenSSL had done that, then it would be easy to see how enabling
1.2 won't cause problems for those apps which said "you take care of it".

As someone with a long history of building, influencing, and using libraries
and their API's, this is not easy.

Binary compatibility is difficult, and requires maintaining legacy
versions of interfaces with cross-platform symbol versioning and
related magic that transcends the release engineering cycles
available to OpenSSL at this time.

That said, source compatibility is a fairly reasonable requirement.

By and large for applications doing simple things, OpenSSL remains
source compatible all the way from 0.9.5a to "master" (soon to be
1.1.0).  Postfix, which uses OpenSSL in a rather more sophisticated
way, has relatively minor adaptations to deal with source compatibility
changes from the 0.9.7 time-frame to the present (we've dropped
support for older OpenSSL versions that was present in earlier
Postfix releases, otherwise that would be 0.9.5 to the present).

Enabling TLS 1.2 (in OpenSSL 1.0.1) caused no fundamental problems
for Postfix, it largely continued to work as-is.  IIRC the padding
extension was needed in 1.0.1g to deal with interoperability with
some IronPort systems that had issues with large client HELLO
messages solved by padding.  The much larger list of ciphersuites
also caused pain with some rather dated Microsoft Exchange 2003
servers that were still in use.  But on the whole the transition
just worked, as it should have.

So recompiling a package against an OpenSSL that supports TLS 1.3,
and fixing occasional issues with now opaque data structures hidden
behind new accessors, should be sufficient for a largely unchanged
application to use TLS 1.3 with no explicit code changes to do so.

I still want a pony.

I expect to report that Postfix works as-is when OpenSSL is released
with TLS 1.3.  This is not an unreasonable expectation.

If TLS 1.3 does not interoperate with opportunistic TLS clients
when servers are configured with pre-existing self-signed SHA-1
certificates, then IMHO the specification is broken.

If TLS 1.3 pig-headedly forbids sending non-root SHA-1 certs, and
OpenSSL with TLS 1.3 negotiates TLS 1.3 when a server has only a
CA-issued certificate signed with SHA-1, then OpenSSL is broken,
for it should then have worked around the specification brain-damage
by selecting TLS 1.2 (presumably the client still supports that).

I am perplexed that folks desperately want that server with that
SHA-1 cert to not be able to use TLS 1.3.  Surely, the decision to
not trust that cert (if certs are being checked at all) belongs in
the client.

Provided that weak self-signatures are not proscribed, I am resigned
to "come what may" if nobody else thinks that proper segregation
of duties is important, and that putting up some needless roadblocks
to TLS 1.3 use is the price of "progress".

--
Viktor.

_______________________________________________
TLS mailing list
TLS@ietf.org<mailto:TLS@ietf.org>
https://www.ietf.org/mailman/listinfo/tls

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to