Don Sturek | 6 Jan 2011 15:36
Picon
Favicon

draft-mcgrew-tls-aes-ccm-ecc-00 (again)

 

I wanted to bring up the draft presented by David McGrew last July (in Maastricht) one more time.  The draft (now expired I think) is  "AES-CCM ECC Cipher Suites for TLS", draft-mcgrew-tls-aes-ccm- ecc-00.

 

I know there was a thread last summer on this.  I am part of the ZigBee Alliance implementing TLS for an IEEE 802.15.4 application.   We would like the TLS group to consider (or maybe re-consider though I never saw any formal disposition of this on the reflector) the use of David’s draft for IEEE 802.15.4 networks.

 

I think CCM is a common cipher suite for IEEE802 and this draft matches what is specified in IEEE (and implemented in hardware in millions of devices).

 

Thanks,


Don Sturek

 

_______________________________________________
TLS mailing list
TLS <at> ietf.org
https://www.ietf.org/mailman/listinfo/tls
Adam Langley | 6 Jan 2011 15:44
Picon
Favicon

Re: draft-mcgrew-tls-aes-ccm-ecc-00 (again)

On Thu, Jan 6, 2011 at 9:36 AM, Don Sturek <d.sturek <at> att.net> wrote:
> I think CCM is a common cipher suite for IEEE802 and this draft matches what
> is specified in IEEE (and implemented in hardware in millions of devices).

Although I think that GCM already covers this case, I don't feel that
the WG should dictate what ciphersuites people can use with TLS. Since
CCM mode is clearly reasonable and the request is made in good faith I
support the speedy passage of such drafts.

AGL
Russ Housley | 6 Jan 2011 15:45

Re: draft-mcgrew-tls-aes-ccm-ecc-00 (again)

I am willing to work with David McGrew on this document if there is WG interest in producing an RFC for this ciphersuite.

Russ


On Jan 6, 2011, at 9:36 AM, Don Sturek wrote:

 

I wanted to bring up the draft presented by David McGrew last July (in Maastricht) one more time.  The draft (now expired I think) is  "AES-CCM ECC Cipher Suites for TLS", draft-mcgrew-tls-aes-ccm- ecc-00.

 

I know there was a thread last summer on this.  I am part of the ZigBee Alliance implementing TLS for an IEEE 802.15.4 application.   We would like the TLS group to consider (or maybe re-consider though I never saw any formal disposition of this on the reflector) the use of David’s draft for IEEE 802.15.4 networks.

 

I think CCM is a common cipher suite for IEEE802 and this draft matches what is specified in IEEE (and implemented in hardware in millions of devices).

 

Thanks,


Don Sturek


_______________________________________________
TLS mailing list
TLS <at> ietf.org
https://www.ietf.org/mailman/listinfo/tls
Juho Vähä-Herttua | 6 Jan 2011 15:52
Picon
Picon
Favicon

Re: draft-mcgrew-tls-aes-ccm-ecc-00 (again)

On 6.1.2011, at 16.36, Don Sturek wrote:
> I wanted to bring up the draft presented by David McGrew last July (in Maastricht) one more time.  The draft
(now expired I think) is  "AES-CCM ECC Cipher Suites for TLS", draft-mcgrew-tls-aes-ccm- ecc-00.
>  
> I know there was a thread last summer on this.  I am part of the ZigBee Alliance implementing TLS for an IEEE
802.15.4 application.   We would like the TLS group to consider (or maybe re-consider though I never saw any
formal disposition of this on the reflector) the use of David’s draft for IEEE 802.15.4 networks.

The discussion thread can be seen in
http://www.ietf.org/mail-archive/web/tls/current/msg06716.html and the main problems are pretty
much mentioned in the later post http://www.ietf.org/mail-archive/web/tls/current/msg06761.html

Basically the proposed draft should probably be divided into smaller parts. One part would define the
AES-CCM cipher suites in a way that would be interoperable with existing TLS cipher suites. Another part
would describe the use of TLS and AES-CCM in IEEE 802.15.4 networks, including forbidding the use of other
than ECDSA certificates and forbidding the elliptic_curves and ec_point_formats extension.

> I think CCM is a common cipher suite for IEEE802 and this draft matches what is specified in IEEE (and
implemented in hardware in millions of devices).

From what I can tell, the draft was not interoperable with existing cipher suites for no apparent reason
(other than that's how ZigBee uses it). But if that can be fixed then there should be no problem including
AES-CCM in TLS.

Juho

Attachment (smime.p7s): application/pkcs7-signature, 4258 bytes
_______________________________________________
TLS mailing list
TLS <at> ietf.org
https://www.ietf.org/mailman/listinfo/tls
Don Sturek | 6 Jan 2011 16:09
Picon
Favicon

Re: draft-mcgrew-tls-aes-ccm-ecc-00 (again)

Hi Juho,

On your very last sentence, could you elaborate on why you think the draft
is not interoperable with other cipher suites?  I think topics like those
discussed in this part of the thread
(http://www.ietf.org/mail-archive/web/tls/current/msg06718.html) are all
very easy to resolve.  

Picking up on parts of the thread noted above, I would say the main reason
to consider CCM rather than GCM is simply because it is part of the IEEE802
standards and there is hardware support for CCM in currently deployed
chipsets (many millions of them to date with many more millions on order).
To employ GCM, we would have to bypass the CCM hardware support and
implement GCM in software then get IEEE to re-consider CCM for later
revisions of standards.

The only concern that I saw with the draft is the truncation issue in this
part of the thread:
http://www.ietf.org/mail-archive/web/tls/current/msg06724.html.   There is
even a suggestion within on how we might get around this issue for small RAM
size devices like IEEE 802.15.4 solutions.

Don

-----Original Message-----
From: Juho Vähä-Herttua [mailto:juhovh <at> iki.fi] 
Sent: Thursday, January 06, 2011 6:53 AM
To: tls <at> ietf.org
Cc: d.sturek <at> att.net
Subject: Re: [TLS] draft-mcgrew-tls-aes-ccm-ecc-00 (again)

On 6.1.2011, at 16.36, Don Sturek wrote:
> I wanted to bring up the draft presented by David McGrew last July (in
Maastricht) one more time.  The draft (now expired I think) is  "AES-CCM ECC
Cipher Suites for TLS", draft-mcgrew-tls-aes-ccm- ecc-00.
>  
> I know there was a thread last summer on this.  I am part of the ZigBee
Alliance implementing TLS for an IEEE 802.15.4 application.   We would like
the TLS group to consider (or maybe re-consider though I never saw any
formal disposition of this on the reflector) the use of David’s draft for
IEEE 802.15.4 networks.

The discussion thread can be seen in
http://www.ietf.org/mail-archive/web/tls/current/msg06716.html and the main
problems are pretty much mentioned in the later post
http://www.ietf.org/mail-archive/web/tls/current/msg06761.html

Basically the proposed draft should probably be divided into smaller parts.
One part would define the AES-CCM cipher suites in a way that would be
interoperable with existing TLS cipher suites. Another part would describe
the use of TLS and AES-CCM in IEEE 802.15.4 networks, including forbidding
the use of other than ECDSA certificates and forbidding the elliptic_curves
and ec_point_formats extension.

> I think CCM is a common cipher suite for IEEE802 and this draft matches
what is specified in IEEE (and implemented in hardware in millions of
devices).

From what I can tell, the draft was not interoperable with existing cipher
suites for no apparent reason (other than that's how ZigBee uses it). But if
that can be fixed then there should be no problem including AES-CCM in TLS.

Juho
Juho Vähä-Herttua | 6 Jan 2011 16:48
Picon
Picon
Favicon

Re: draft-mcgrew-tls-aes-ccm-ecc-00 (again)

On 6.1.2011, at 17.09, Don Sturek wrote:
> Hi Juho,
> 
> On your very last sentence, could you elaborate on why you think the draft
> is not interoperable with other cipher suites?  I think topics like those
> discussed in this part of the thread
> (http://www.ietf.org/mail-archive/web/tls/current/msg06718.html) are all
> very easy to resolve.  

I think the issues are pretty easy to solve as well. The first thing that came into my mind about not being
interoperable was the extension part:

      The client MUST NOT offer the elliptic_curves extension nor the
      ec_point_formats extension.  The server MUST NOT expect to receive
      those extensions.

The client offering AES-CCM cipher suites should be allowed to offer other cipher suites as well. Those
other cipher suites may need to define elliptic_curves or ec_point_formats extensions, but AES-CCM
draft forbids offering them. That's a clear conflict. Another smaller issue was the certificate part:

      The server's certificate MUST contain an ECDSA-capable public key,
      and it MUST be signed with ECDSA.  If a client certificate is
      used, the same conditions apply to it.

I don't see a reason why a cipher should restrict the type of certificates, although requiring the
ECDSA-capable public key in ECDSA cipher suite is kind of obvious. This is not really conflicting, but it
would be much nicer if the AES-CCM would be defined as a generic cipher that can be used with any kind of
certificate and the additional IEEE 802.15.4 related restrictions would be in a separate document. It
works for all the other ciphers and RSA, DHE_DSA or DHE_RSA or certificates signed with some other signing
algorithm are not really less secure than ECDSA. I guess the reason for this is again to simplify the
hardware implementation by only using ECDSA for everything.

Juho

Attachment (smime.p7s): application/pkcs7-signature, 4258 bytes
_______________________________________________
TLS mailing list
TLS <at> ietf.org
https://www.ietf.org/mailman/listinfo/tls
Matt McCutchen | 7 Jan 2011 18:47

Re: Way to go everybody! TLS FTW!

On Wed, 2010-08-11 at 01:40 -0700, Matt McCutchen wrote:
> On Tue, 2010-08-10 at 13:35 -0500, Marsh Ray wrote: 
> > Today, this "Patch Tuesday", Microsoft releases KB980436 which adds 
> > support for RFC 5746 the Renegotiation Indication Extension
> > http://www.microsoft.com/technet/security/bulletin/ms10-049.mspx
> > This is a major accomplishment, Microsoft clearly has as many affected 
> > products and systems as anybody. Although they may be bringing up the 
> > rear among the vendors, the rear has clearly been brought up.
> 
> No, alas, Debian still has OpenSSL with RFC 5746 available only in
> testing:
> 
> http://packages.debian.org/search?keywords=openssl&searchon=sourcenames&exact=1&suite=all&section=all

A DreamHost support technician has just pointed out to me that Debian
has released openssl 0.9.8g-15+lenny10 with RFC 5746 support to stable.
Hooray!

--

-- 
Matt
Adam Langley | 18 Jan 2011 23:21
Picon
Favicon

Unfortunate current practices for HTTP over TLS

The following is presented mostly for the member's enjoyment:

Network Working Group                                         A. Langley
Internet-Draft                                                Google Inc
Expires: July 5, 2011                                           Jan 2011

            Unfortunate current practices for HTTP over TLS
                      draft-agl-tls-oppractices-00

Abstract

   This document describes some of the unfortunate current practices
   which are needed in order to transport HTTP over TLS on the public
   Internet.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on July 5, 2011.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Handshake message fragmentation  . . . . . . . . . . . . . . .  4
   3.  Protocol Fallback  . . . . . . . . . . . . . . . . . . . . . .  5
   4.  More implementation mistakes . . . . . . . . . . . . . . . . .  6
   5.  Certificate Chains . . . . . . . . . . . . . . . . . . . . . .  7
   6.  Insufficient Security  . . . . . . . . . . . . . . . . . . . .  8
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9
   8.  Normative References . . . . . . . . . . . . . . . . . . . . . 10
   Appendix A.  Changes . . . . . . . . . . . . . . . . . . . . . . . 11
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.  Introduction

   HTTP [RFC2616] is one of the most common application level protocols
   transported over TLS [RFC5246].  (This combination is commonly known
   as HTTPS based on the URL scheme used to indicate it.)  HTTPS clients
   have to function with a huge range of TLS implementations, some of
   higher quality than others.  This text aims to document some of the
   behaviours of existing HTTPS clients that are designed to ensure
   maximum interoperability.

   This text should not be taken as a recommendation that future HTTPS
   clients adopt these behaviours.  The security implications of each
   need to be carefully considered by each implementation.  However,
   these behaviours are common and the authors consider it better to
   document the state of practice than to simply wish it were otherwise.

2.  Handshake message fragmentation

   Many servers will fail to process a handshake message that spans more
   than one record.  These servers will close the connection when they
   encounter such a handshake message.  HTTPS clients will commonly
   ensure against that by either packing all handshake messages in a
   flow into a single record, or by creating a single record for each
   handshake message.

3.  Protocol Fallback

   Despite it being nearly twelve years since the publication of TLS 1.0
   [RFC2246], around 3% of HTTPS servers will reject a valid TLS
   "ClientHello".  These rejections can take the form of immediately
   closing the connection or a fatal alert.  Intolerance to the
   following has been observed:

      Advertising version TLS 1.0.

      Advertising a TLS version greater than TLS 1.0 (around 2% for 1.1
      or 1.2, around 3% for greater than 1.2).

      Advertising a version greater than 0x03ff (around 65% of servers)

      The presence of any extensions (around 7% of servers)

      The presence of specific extensions ("server_name" and
      "status_request" intolerance has been observed, although in very
      low numbers).

      The presence of any advertised compression algorithms

   Next, some servers will misbehave after processing the "ClientHello"
   message.  Negotiating the use of "DEFLATE" compression can result in
   fatal "bad_record_mac", "decompression_failure" or
   "decryption_failed" alerts.  Notably, OpenSSL prior to version 0.9.8c
   will intermittently fail to process compressed finished messages due
   to a work around of a previous padding bug.

   Lastly, some servers will negotiate the use of SSLv3 but select a
   TLS-only cipher suite.

   In all these cases, HTTPS clients will often enter a fallback mode.
   The connection is retried using only SSLv3 and without advertising
   any compression algorithms.  (This is obviously an easy downgrade
   attack.)  Also, the fallback can be triggered by transient network
   problems, which often manifest as an abruptly closed connection.
   Since SSLv3 does not provide any means of Server Name Indication
   [RFC3546], the fallback connection can use the wrong certificate
   chain, resulting in a very surprising certificate error.

4.  More implementation mistakes

   Non-fatal errors in version negotiation also occur.  Some 0.2% of
   servers use the version from the record header.  Around 0.6% of
   servers require that the version in the "ClientHello" and record
   header match in order to respect the version in the "ClientHello".  A
   very low number of servers echo whatever version the client
   advertises.

   In the event that the client supports a higher protocol version than
   the server, about 0.4% of servers require that the RSA
   "ClientKeyExchange" message include the server's protocol version.

   Some 30% of servers don't check the version in an RSA
   "ClientKeyExchange" at all.

5.  Certificate Chains

   Certificate chains presented by servers will commonly be missing
   intermediate certificates, have certificates in the wrong order and
   will include unrelated, superfluous certificates.  Servers have been
   observed presenting more than ten certificates in what we assume is a
   drive-by shooting approach to including the correct intermediate
   certificate.

   In order to validate chains which are missing certificates, some
   HTTPS clients will collect intermediate certificates from other
   servers.  Clients will commonly put all the presented certificates
   into a set and try to validate a chain assuming only that the first
   certificate is the leaf.

6.  Insufficient Security

   Some 65% of servers support SSLv2 (beyond just supporting the
   handshake in order to upgrade to SSLv3 or TLS).  HTTPS clients will
   typically not support SSLv2, nor send SSLv2 handshakes by default.
   Of those servers, 80% support the export ciphersuites.  (Although
   about 3% of those servers negotiate weak ciphersuites only to show a
   warning.)

   Some servers will choose very small multiplicative group sizes for
   their ephemeral Diffie-Hellman exchange (for example, 256-bits).
   Some HTTPS clients will reject all multiplicative group sizes smaller
   than 512-bits while others will retry after demoting DHE ciphersuites
   in their "ClientHello".

7.  Acknowledgements

   Yngve Pettersen made significant contributions and many of the
   numbers in this document come from his scanning work.  Other numbers
   were taken from Ivan Ristic's SSL Survey.

   Thanks to Wan Teh Chang for reviewing early drafts.

8.  Normative References

   [RFC2246]  Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
              RFC 2246, January 1999.

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC3546]  Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
              and T. Wright, "Transport Layer Security (TLS)
              Extensions", RFC 3546, June 2003.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.
Martin Rex | 19 Jan 2011 00:34
Picon
Favicon

Re: Unfortunate current practices for HTTP over TLS

Nice collection -- thank you for the effort!.

Do we need a new document category "WCP" (worst current practice)?  :)

Adam Langley wrote:
> 
> 2.  Handshake message fragmentation
> 
>    Many servers will fail to process a handshake message that spans more
>    than one record.  These servers will close the connection when they
>    encounter such a handshake message.  HTTPS clients will commonly
>    ensure against that by either packing all handshake messages in a
>    flow into a single record, or by creating a single record for each
>    handshake message.

From the SSLv3 draft302 document ("Work in progress" according to rfc5746):

   5.2 Record layer

   The SSL Record Layer receives uninterpreted data from higher layers
   in non-empty blocks of arbitrary size.

   5.2.1 Fragmentation

   The record layer fragments information blocks into SSLPlaintext
   records of 2^14 bytes or less.  Client message boundaries are not
   preserved in the record layer (i.e., multiple client messages of
   the same ContentType may be coalesced into a single SSLPlaintext
   record).

For experimentation I put together a few lines of code for a
simple TCP communication relaying that shreds TLS records containing
handshake messages into pathological fragments (1byte,2byte,3byte,...)
And I'm actually having difficulties find TLS implementations
that can cope with this.

Some (record layer) TLS code I've looked at makes a number of flawed
assumptions about fragmentation, and fixing that code to align with
the _real_ specifiction requires a non-trivial change of the code
modularization of the record layer...

>
> 3.  Protocol Fallback
>
>    Intolerance to the following has been observed:
>
>       Advertising a version greater than 0x03ff (around 65% of servers)

Keep in mind that this is about the first few bytes sent on a
new network connection.  The purpose of the check is a heuristic
to distinguish a real TLS connection attempt (initial ClientHello)
from arbitrary other protocols instead of letting the protocol
parser engine produce a potentially confusing error message about
data that obviously isn't meant to be TLS in the first place.

Servers that tolerate >=4 versions ahead of what is currently
defined SSLv3{0x03,0x00} -> TLSv1.2{0x03,0x03} provide sufficient
slack that they are no problem for the evolution of the TLS protocol.

TLS implementations that are completely agnostic to the version
will AFAIK confuse DTLS and TLS.

>
>    In all these cases, HTTPS clients will often enter a fallback mode.
>    The connection is retried using only SSLv3 and without advertising
>    any compression algorithms.  (This is obviously an easy downgrade
>    attack.)

Fallback mode is mostrly restricted to a few Web Browser that are
curiously exploring bleeding-edge TLS extensions.  Most programmatic
clients don't have a fallback mode, because the fallback has to
be performed at the application level over a new network connection,
potentially including proxy traversals.  Programmatic clients are
more likely to send very feature-conservative ClientHellos from
the beginning (no TLS extensions and either TLSv1.0 or SSLv3).

>
>    Also, the fallback can be triggered by transient network
>    problems, which often manifest as an abruptly closed connection.
>    Since SSLv3 does not provide any means of Server Name Indication
>    [RFC3546], the fallback connection can use the wrong certificate
>    chain, resulting in a very surprising certificate error.

Since a significant fraction of the installed base browsers and
most of the programmatic clients do not send a server name indication
in the first place, the effect is more of a common annoying
certificate error pointing to an inconsiderate/misconfigured server.

The majority where I've encountered such errors, it was with
servers and hostnames belonging to the same organization, so
the problem could be entirely avoided by a sensible admin through
the simple use of adequate TLS server certs, listing all of the servers
alternative hostnames.

-Martin
Michael D'Errico | 19 Jan 2011 01:02
Picon
Favicon

Re: Unfortunate current practices for HTTP over TLS

Adam Langley wrote:
> 
> 3.  Protocol Fallback
> 
>    Lastly, some servers will negotiate the use of SSLv3 but select a
>    TLS-only cipher suite.

Which cipher suites do you consider to be TLS-only?

Mike

Gmane