Re: [TLS] ban more old crap

2015-07-24 Thread Salz, Rich

> What we've cannot yet turn off is RC4.

Then do not use TLS 1.3


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


Re: [TLS] ban more old crap

2015-07-24 Thread Viktor Dukhovni
On Fri, Jul 24, 2015 at 02:03:13PM -0400, Dave Garrett wrote:

> > and how a server can tell that the client is TLS1.3 only and not 
> > TLS1.0-up-to-
> > TLS1.3?
> 
> TLS 1.0-1.3 shouldn't be offering export ciphers any more than TLS 1.3
> only. A TLS 1.0-1.2 client, or at least one offering that, is what it
> would not complain about.

We can probably put the "export" ciphersuite issue out of its
misery, already in email, these are no longer seen on the public
Internet.  The latest official versions of all supported Postfix
releases now turn off "export" ciphers (and also single-DES) by
default.  We've also by default turned off SSLv2 and SSLv3 (neither
are needed for SMTP interoperability).

What we've cannot yet turn off is RC4.  That's still sufficiently
widely used that disabling RC4 would result in excessive cleartext
fallback and even in some cases failure to deliver email.

So for opportunistic TLS (in SMTP) we've raised the bar to exclude
deprecated TLS features that we can (finally) easily do without.

I hope, that by ~2017, RC4 will no longer be required either, and
we'll be able to disable RC4 in Postfix at that time.

If I recall correctly, the upcoming OpenSSL 1.1.0 release will by
default also compile with no "export" ciphers, SSLv2 or SSLv3
support.

We're starting to leave some of the older cruft behind.  Let's get
Chacha20 widely deployed (for systems without hardware AES), and
the passage of time lead to more RC4-only systems being replaced,
and in the not too distant future, even opportunistic TLS clients
should be able to forgo RC4, but we're not quite there yet today.

-- 
Viktor.

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


Re: [TLS] ban more old crap

2015-07-24 Thread Ilari Liusvaara
On Thu, Jul 23, 2015 at 07:10:30PM +0200, Eric Rescorla wrote:
> On Thu, Jul 23, 2015 at 7:06 PM, Stephen Farrell 
> wrote:
> 
> > A suggestion - could we remove mention of anything that
> > is not a MUST or SHOULD ciphersuite from the TLS1.3 document
> > and then have someone write a separate draft that adds a
> > column to the registry where we can mark old crap as
> > deprecated?
> >
> > Not sure if it'd work though.
> >
> 
> I'm starting to lean towards this. I don't generally think of TLS 1.3 as a
> vehicle
> for telling people how to configure use of TLS 1.2, and I think it might be
> better
> to move all that stuff out.

The MUST/SHOULD list is presumably:
{ECDHE_RSA,ECDHE_ECDSA,PSK}*{AES-128-GCM,AES-256-GCM,Chacha20-Poly1305}?

(9 ciphersuites)? Or are there some others there as well (of course, if
new signatures appear and get their own ciphersuites, then three of those
too)?


Then what to mark as deprecated? Everything that doesn't work with TLS
1.3 is pretty obvious candidate. Which would mean deprecating TLS 1.0 and
1.1, as all ciphersuites for those get deprecated.


Then I made this table of ciphersuites that work with TLS 1.3:

+---+---+---+---+---+
|   |AESGCM |VANITY |AESCCM |CHACHA |
+---+---+---+---+---+
|DHE_RSA|Y  |Y  |Y  |P  |
|DHE_DSS|Y  |Y  |Y  |-  |
|DHE_PSK|Y  |Y  |-  |-  |
|DHE_anon   |Y  |Y  |Y  |-  |
|ECDHE_RSA  |Y  |Y  |-  |P  |
|ECDHE_ECDSA|Y  |Y  |Y  |P  |
|ECDHE_PSK  |P  |-  |P  |P  |
|ECDHE_anon |-  |-  |-  |-  |
|ECDHE_ECIDSA   |-  |-  |-  |-  |
|PSK|Y  |Y  |Y  |P  |
+---+---+---+---+---+

Legend: - => No active proposal,
P => active I-D proposes these,
Y => In registry
AES-GCM => AES-GCM ciphers
VANITY => ARIA and CAMELLIA (GCM). SEED doesn't have AEAD.
AES-CCM => AES-CCM ciphers
CHACHA => Chacha20-Poly1305.


Comments on some methods:
- DHE_RSA: Uses FFDHE, problematic especially on 1.2 and older.
- DHE_DSS: Virtually nobody uses this or will use this (already removed
  from two major browsers.
- DHE_PSK: IoT type, but I don't think IoT appriciates FFDHE.
- DHE_anon: Anonymous.
- ECDHE_RSA: ECC certs are still much harder to get than RSA.
- ECDHE_anon: Should add if not deprecating anonymous.
- ECDHE_ECIDSA: New signature scheme. Or try merging this with
  ECDHE_ECDSA (requires bit of bending of 1.2 rules).
- PSK: Needed for resumption in TLS 1.3.


-Ilari

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


Re: [TLS] new error alerts?

2015-07-24 Thread Aaron Zauner
* Andrei Popov  [25/07/2015 01:26:41] wrote:
> Yes, this sounds good to me too.
> 

+1.

Aaron


signature.asc
Description: Digital signature
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] new error alerts?

2015-07-24 Thread Andrei Popov
Yes, this sounds good to me too.

Cheers,

Andrei

-Original Message-
From: Dave Garrett [mailto:davemgarr...@gmail.com] 
Sent: Friday, July 24, 2015 6:16 PM
To: Andrei Popov
Cc: Eric Rescorla; tls@ietf.org
Subject: Re: [TLS] new error alerts?

On Friday, July 24, 2015 01:50:31 am Andrei Popov wrote:
> > I'm proposing renaming "insufficient_security" to 
> > "unsupported_cipher_suites", which is explicitly what it's been for since 
> > TLS 1.0.
> 
> Not quite. Insufficient_security alert is defined as follows:
> " Returned instead of handshake_failure when a negotiation has
>failed specifically because the server requires ciphers more
>secure than those supported by the client.  This message is always
>fatal."
> 
> This is a very narrow and specific definition. The server says "I know all 
> the cipher suites the client advertises, and consider them too weak". By 
> contrast, unsupported_cipher_suites means something like "I don't have a 
> cipher suite in common with the client". The latter can happen when the 
> client's cipher suites are more secure than the server's.

Then if we wish to keep this as narrow as written, we can just have a separate 
one for unsupported with no judgment on strength:

insufficient_security(71),  // unchanged unsupported_cipher_suites(72),  // new 
unsupported_groups(73),  // new client_authentication_failure(74),  // new

e.g. RC4 gets insufficient_security & Camellia gets unsupported_cipher_suites

Sounds good to me, if we prefer this.


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


Re: [TLS] ban more old crap

2015-07-24 Thread Yuhong Bao
> On Friday, July 24, 2015 01:18:41 pm Hubert Kario wrote:
>> On Friday 24 July 2015 12:57:42 Dave Garrett wrote:
>>> To be clear, the wording I have in the PR is not this broad. It only
>>> requires aborting if export ciphers were offered by a TLS 1.3+ client, not
>>> just any client.
>>
>> and how a server can tell that the client is TLS1.3 only and not 
>> TLS1.0-up-to-
>> TLS1.3?
>
> TLS 1.0-1.3 shouldn't be offering export ciphers any more than TLS 1.3 only. 
> A TLS 1.0-1.2 client, or at least one offering that, is what it would not 
> complain about.
>
> For the rare case of "legitimate" use of export ciphers, namely spiders, 
> it'll need a fallback attempt with a full set of suites. Export ciphers are 
> not something we should be accounting for allowance of in any protocol we 
> want to claim to be secure.
>
> We do have to remember that even _offering_ them is dangerous, even if 
> they're not negotiated. It's dangerous to even _support_ them, even if not 
> offering. Having this in any way presents an unacceptable attack surface for 
> a MitM to try and find a way to confuse implementations into using them. If 
> all implementations were perfect, yeah, this wouldn't be a problem. History 
> has shown this is not the case. :(

Personally, I don't think this is worth the effort. You'd need a full list of 
EXPORT cipher hardcoded, and there are also EXPORT1024 ciphers not in the 
cipher suite registry but less dangerous. It is rare for current TLS 1.2 
clients to offer export ciphers either, and most practical attacks are 
prevented by disabling them on the server side. 
  
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] ban more old crap

2015-07-24 Thread Dave Garrett
On Friday, July 24, 2015 01:18:41 pm Hubert Kario wrote:
> On Friday 24 July 2015 12:57:42 Dave Garrett wrote:
> > To be clear, the wording I have in the PR is not this broad. It only
> > requires aborting if export ciphers were offered by a TLS 1.3+ client, not
> > just any client.
> 
> and how a server can tell that the client is TLS1.3 only and not TLS1.0-up-to-
> TLS1.3?

TLS 1.0-1.3 shouldn't be offering export ciphers any more than TLS 1.3 only. A 
TLS 1.0-1.2 client, or at least one offering that, is what it would not 
complain about.

For the rare case of "legitimate" use of export ciphers, namely spiders, it'll 
need a fallback attempt with a full set of suites. Export ciphers are not 
something we should be accounting for allowance of in any protocol we want to 
claim to be secure.

We do have to remember that even _offering_ them is dangerous, even if they're 
not negotiated. It's dangerous to even _support_ them, even if not offering. 
Having this in any way presents an unacceptable attack surface for a MitM to 
try and find a way to confuse implementations into using them. If all 
implementations were perfect, yeah, this wouldn't be a problem. History has 
shown this is not the case. :(


Dave

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


Re: [TLS] ban more old crap

2015-07-24 Thread Hubert Kario
On Friday 24 July 2015 12:57:42 Dave Garrett wrote:
> On Friday, July 24, 2015 06:43:17 am Hubert Kario wrote:
> > And I completely agree. FREAK and Logjam wouldn't happen at all if we
> > didn't drag with us stuff that was considered legacy 10 years ago.
> > 
> > But stuff like "server MUST abort handshake if it sees export grade
> > ciphers in Client Hello" (or anything similar) will just get ignored. For
> > a user a bad connection is better than no connection. One works and the
> > other doesn't, the details are voodoo witchcraft.
> 
> To be clear, the wording I have in the PR is not this broad. It only
> requires aborting if export ciphers were offered by a TLS 1.3+ client, not
> just any client.

and how a server can tell that the client is TLS1.3 only and not TLS1.0-up-to-
TLS1.3?

> The point is to ensure that all TLS 1.3 implementations
> cut this out and don't regress due to error or exploit. Applying it to
> everything would, unfortunately, be a mess. In particular, search engine
> spiders actually have a legitimate reason to have export ciphers actually
> still enabled.

and not only them, opportunistic encryption in SMTP is another example

technically it's already in the draft, isn't it? - TLSv1.3 supports only AEAD, 
all export ciphers were either CBC or stream mode - if you intend to accept 
only TLS1.3 reply from server there's no point in including them, moreover 
negotiating them is a clear bug and protocol violation anyway

but if you want a "clients SHOULD NOT advertise support for ciphersuites 
incompatible with TLS1.3 if it will not accept a TLS1.2 or lower protocol 
reply from server" as a reminder/idea for implementers then it certainly won't 
hurt
-- 
Regards,
Hubert Kario
Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] ban more old crap

2015-07-24 Thread Dave Garrett
On Friday, July 24, 2015 06:43:17 am Hubert Kario wrote:
> And I completely agree. FREAK and Logjam wouldn't happen at all if we didn't 
> drag with us stuff that was considered legacy 10 years ago.
> 
> But stuff like "server MUST abort handshake if it sees export grade ciphers 
> in 
> Client Hello" (or anything similar) will just get ignored. For a user a bad 
> connection is better than no connection. One works and the other doesn't, the 
> details are voodoo witchcraft.

To be clear, the wording I have in the PR is not this broad. It only requires 
aborting if export ciphers were offered by a TLS 1.3+ client, not just any 
client. The point is to ensure that all TLS 1.3 implementations cut this out 
and don't regress due to error or exploit. Applying it to everything would, 
unfortunately, be a mess. In particular, search engine spiders actually have a 
legitimate reason to have export ciphers actually still enabled.


Dave

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


Re: [TLS] new error alerts?

2015-07-24 Thread Dave Garrett
On Friday, July 24, 2015 01:50:31 am Andrei Popov wrote:
> > I'm proposing renaming "insufficient_security" to 
> > "unsupported_cipher_suites", which is explicitly what it's been for since 
> > TLS 1.0.
> 
> Not quite. Insufficient_security alert is defined as follows:
> " Returned instead of handshake_failure when a negotiation has
>failed specifically because the server requires ciphers more
>secure than those supported by the client.  This message is always
>fatal."
> 
> This is a very narrow and specific definition. The server says "I know all 
> the cipher suites the client advertises, and consider them too weak". By 
> contrast, unsupported_cipher_suites means something like "I don't have a 
> cipher suite in common with the client". The latter can happen when the 
> client's cipher suites are more secure than the server's.

Then if we wish to keep this as narrow as written, we can just have a separate 
one for unsupported with no judgment on strength:

insufficient_security(71),  // unchanged
unsupported_cipher_suites(72),  // new
unsupported_groups(73),  // new
client_authentication_failure(74),  // new

e.g. RC4 gets insufficient_security & Camellia gets unsupported_cipher_suites

Sounds good to me, if we prefer this.


Dave

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


Re: [TLS] Let's review: draft-ietf-tls-tls13-07 (abridged)

2015-07-24 Thread Hubert Kario
On Thursday 16 July 2015 18:09:38 Ilari Liusvaara wrote:
> > > > 6.3.1.2. (Server Hello)
> > > 
> > > Well, at least it wouldn't be backward compatiblity hazard to remove
> > > session_id_len, since it comes after server version.
> > 
> > I'm sold.
> 
> However, that would change ServerHello parsing.
> 
> Thinking about it, if one decides to be careful with message parsing, one
> needs to assign all new/modified TLS 1.3 handshake messages new IDs.
> 
> Currently there is only one offending message type w.r.t. that: 14, which
> is server_configuration in 1.3 and server_hello_done in 1.2.
> 
> Some other messages share IDs, but I think those are compatible (even
> CertificateVerify, as it is just one digital signature in both).

Server Key Exchange for DHE, ADH, SRP, etc. not to mention TLS1.1 vs TLS1.2 

it's not uncommon to have different parsers for "same" message type

> > > Also, the record protection used for early handshake messages should be
> > > indicated.
> > 
> > Can you expand on that?
> 
> How does the client know what record protection algorithms are valid
> for 0RTT transmission for that server?

And how does the client know that the algorithms came from the server. We 
should have a "client MUST wait for the full handshake to finish before 
recording this information" or we will have a very nice cipher downgrade. Just 
having it signed is likely not a good idea, as they may depend on ciphersuites 
advertised by client.

> > > Also, with regards to complications of DSA, just dump it? :-)
> > 
> > I'm fine with that if the chairs declare consensus on it.
> 
> As datapoint, either the scan that was used as basis of that curve
> pruning doesn't support DSA, or there are no servers that even have
> DSA certs.
> 
> I think I heard some time back that there are only 4 (or some other very
> small number) valid DSA SSL certs in the entiere public Internet.

that scan uses Mozilla trust roots and reports only trusted servers (to weed 
out unmaintained ones out), Microsoft list is a bit bigger

-- 
Regards,
Hubert Kario
Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] ban more old crap

2015-07-24 Thread Hubert Kario
On Thursday 23 July 2015 14:21:15 Dave Garrett wrote:
> On Thursday, July 23, 2015 01:10:30 pm Eric Rescorla wrote:
> > On Thu, Jul 23, 2015 at 7:06 PM, Stephen Farrell
> > > 
> > wrote:
> > > A suggestion - could we remove mention of anything that
> > > is not a MUST or SHOULD ciphersuite from the TLS1.3 document
> > > and then have someone write a separate draft that adds a
> > > column to the registry where we can mark old crap as
> > > deprecated?
> > 
> > I'm starting to lean towards this. I don't generally think of TLS 1.3 as a
> > vehicle for telling people how to configure use of TLS 1.2, and I think
> > it might be better to move all that stuff out.
> 
> If we've learned one thing from the past year of high-profile
> vulnerabilities with names and logos, it's that TLS is not really secure if
> you don't take into account its weakest/oldest feature that's still
> possible. I don't think any responsible TLS 1.3 spec can afford to not
> acknowledge this.

And I completely agree. FREAK and Logjam wouldn't happen at all if we didn't 
drag with us stuff that was considered legacy 10 years ago.

But stuff like "server MUST abort handshake if it sees export grade ciphers in 
Client Hello" (or anything similar) will just get ignored. For a user a bad 
connection is better than no connection. One works and the other doesn't, the 
details are voodoo witchcraft.

The way to remove all this legacy junk is to work towards sensible defaults in 
libraries (RFC7568, RFC7465 style), not by putting antifeatures in protocol 
specifications.

-- 
Regards,
Hubert Kario
Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic

signature.asc
Description: This is a digitally signed message part.
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls