Huge +1 to this I-D, just some minor comments: * I wonder if the document should be more forthright in specifying that the ChaCha20/Poly1305 implementations SHOULD actually attempt to use constant-time and constant-access patterns that the algorithm is designed to facilitate. If that's a selling point then I wonder if it's worth being specific about that. On that point: I'm curious if those properties are implementable in a variety of languages, or if it requires near-assembly (e.g. C) levels of precision. If it's the latter, then I wonder if it's legitimate to include those selling points.
* I think the statement "can be implemented easily without being vulnerable to software side-channel attacks" is too strong, unless one wants to really litigate what "software side-channels are". Unless I'm mistaken, as a stream cipher ChaCha20 is *more* vulnerable to a class of size-based side-channels than a block cipher would be. A simple form of attack would be to monitor connections to wikipedia and identify which pages a user is browsing; from observing just the size of requests and responses [*] it's pretty easy for an attacker to (offline) create a graph of HTML page sizes and the sizes of the images they load and then (in real time) to correlate things such that they can uniquely identify the page loaded. This attack is feasible with both stream and block ciphers, but it is far easier with a stream cipher. Similarly, the compressed map tiles attack that shows where an online maps user is browsing is much more effective with a stream cipher. [ http://blog.ioactive.com/2012/02/ssl-traffic-analysis-on-google-maps.html] These kinds of simple correlation attack are vastly more practical than the kinds of time and cache access side-channels that CBC verification is weak against. They are also inherently passive and undetectable. On the whole the I-D reads as if ChaCha20 is more side-channel resistant, but I think reasonable people could disagree about this - and it's worth some discussion in the security section. [*] Consider also that in the case of Wikipedia an attacker can control the size of a target page they may be interested in. On Mon, Nov 2, 2015 at 2:12 PM, Adam Langley <a...@imperialviolet.org> wrote: > On Mon, Nov 2, 2015 at 2:06 PM, <internet-dra...@ietf.org> wrote: > > A New Internet-Draft is available from the on-line Internet-Drafts > directories. > > This draft is a work item of the Transport Layer Security Working Group > of the IETF. > > > > Title : ChaCha20-Poly1305 Cipher Suites for Transport > Layer Security (TLS) > > Authors : Adam Langley > > Wan-Teh Chang > > Nikos Mavrogiannopoulos > > Joachim Strombergson > > Simon Josefsson > > Filename : draft-ietf-tls-chacha20-poly1305-01.txt > > Pages : 7 > > Date : 2015-11-02 > > > > Abstract: > > This document describes the use of the ChaCha stream cipher and > > Poly1305 authenticator in the Transport Layer Security (TLS) and > > Datagram Transport Layer Security (DTLS) protocols. > > Dear all, > > I've submitted the above version of the ChaCha20-Poly1305 draft in the > hopes of getting consensus that it's basically what the group wants > and thus is suitable for early code-point assignment. > > The major change in this version is that the nonce is constructed > using the scheme that's currently in TLS 1.3. To recap: AES-GCM in TLS > 1.2 uses a four-byte, fixed nonce fragment with an explicit, > eight-byte value from the wire appended. ChaCha20-Poly1305 seeks to > eliminate these eight bytes in each record by using the TLS sequence > number. (On this I believe that we basically have agreement.) > > The TLS 1.3 spec already specifies that AEADs use the sequence number > and has a construction where a fixed value (from the handshake output) > is XORed with it. (See > https://tlswg.github.io/tls13-spec/#record-payload-protection.) This > draft apes that in the hopes that the TLS 1.3 construction doesn't > change before its final. > > > Cheers > > AGL > > -- > Adam Langley a...@imperialviolet.org https://www.imperialviolet.org > > _______________________________________________ > TLS mailing list > TLS@ietf.org > https://www.ietf.org/mailman/listinfo/tls > -- Colm
_______________________________________________ TLS mailing list TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls