Re:WhatsApp's Signal Protocol integration is now complete
by makomk on Tuesday April 05, 2016 @03:56PM
(#11433815)
It looks like Noise leaves an implementer with more than enough rope to hang themselves with - for example, it allows unauthenticated Diffie-Hellman, it appears to permit user-selected handshake sequences, has 16(!) different official handshake sequences with subtly different properties, each of which allow payloads to be attached to any message in the handshake process that in turn have different levels of reduced security, etc.
Re:WhatsApp's Signal Protocol integration is now complete
by tptacek on Tuesday April 05, 2016 @04:22PM
(#11434043)
You're describing Noise. WhatsApp uses Noise Pipes, which is one of many instances of the Noise framework.
You're right that it's not a good idea for generalists to pick up Noise and go to town with it. Noise isn't misuse-proof.
Re:WhatsApp's Signal Protocol integration is now complete
by lmm on Wednesday April 06, 2016 @06:37AM
(#11437867)
> You're right that it's not a good idea for generalists to pick up Noise and go to town with it. Noise isn't misuse-proof.
Nor is SSL. Couldn't an opinionated SSL library (supporting exactly one protocol version, one cipher only, etc) provide the same simplicity of use while remaining interoperable and reusing an already-validated protocol?
Re:WhatsApp's Signal Protocol integration is now complete
by tptacek on Wednesday April 06, 2016 @07:46AM
(#11438086)
Simplicity of use isn't the only benefit they get from Noise Pipes; they also get increased security, in a couple of important ways.
It's not the choice I would have made, but I am not as good as Moxie or Trevor.
Re:WhatsApp's Signal Protocol integration is now complete
by rakoo on Wednesday April 06, 2016 @09:40AM
(#11438675)
FYI there is an RFC (currently a draft) for a suite of parameters considered secure for some time, ie some kind of LTS: https://tools.ietf.org/html/draft-gutmann-tls-lts-02
The idea is more or less what you want, hardcode some known-good configuration for servers that can't or won't be upgraded every other month.
Re:WhatsApp's Signal Protocol integration is now complete
by wolf550e on Wednesday April 06, 2016 @01:25PM
(#11440217)
That appears to not fully interoperate with regular TLS implementations, and does not require the use of the most popular secure ciphersuite ECDHE_RSA_AESGCM. If they need to make changes to make it secure, define an extension and say this profile makes the extension mandatory (like MAC-then-encrypt), but don't just change the protocol.
Re:WhatsApp's Signal Protocol integration is now complete
by tptacek on Wednesday April 06, 2016 @10:46AM
(#11439088)
This is less a practical draft and more a political statement about the author's dislike for TLS 1.3. In particular, it makes extensive modifications to the TLS protocol itself (it doesn't merely propose a limited set of safe parameters).
Re:WhatsApp's Signal Protocol integration is now complete
by baby on Tuesday April 05, 2016 @04:40PM
(#11434197)
> It's easy to shoot yourself in the foot with TLS
I would argue it's easier to shoot yourself in the face trying to re-implement/re-design something like TLS.
Re:WhatsApp's Signal Protocol integration is now complete
by rakoo on Wednesday April 06, 2016 @08:32AM
(#11438298)
The mind behind Noise (Trevor Perrin) is one of the minds behind Axolotl (actually Noise can be seen as a generalization of the Axolotl's cross-signing of DH keys, see this post: https://whispersystems.org/blog/simplifying-otr-deniability/) so I would likely be comfortable with it. Although it is completely true that it's been far less used and studied than TLS.
Re:WhatsApp's Signal Protocol integration is now complete
by quotemstr on Wednesday April 06, 2016 @04:29AM
(#11437454)
The OP's point is that it is like TLS, except with a novelty effect. Personally, I prefer that everyone standardize than use a hundred different crypto protocols, none of which receives adequate scrutiny. TLS1.3, with encrypt-then-MAC and zero-RTT setup, can't get here fast enough.
Noise starts from a clean state with modern knowledge of cryptography and modern cryptography. Much easier to understand and replicate, much harder to shoot yourself in the foot with.
TLS brings modularity and evolutivity, much needed in a protocol the scale of HTTP. In Whatsapp's case, Whatsapp controls both the server and the client; it is much easier to transition between versions because all bricks are under control. When you don't need what TLS brings anymore it makes sense to discard it.
As another example: Tarsnap (https://www.tarsnap.com/) uses spiped (https://www.tarsnap.com/spiped.html), a very simple yet powerful mechanism to build an encrypted channel. Its protocol and proof fit in ~100 lines (https://github.com/Tarsnap/spiped/blob/master/README). When you don't need all the jazz provided by TLS (and when you're lucky enough to be able to pre-share keys, which helps a lot) then a simple protocol is good.