Re:Whisper: Wraps any Go io.ReadWriter in a secure tunnel us...
by ThePhysicist on Sunday February 19, 2023 @01:46PM
(#34860517)
Probably not, though Noise mentions that you could replace DH operations with signatures.
Re:Whisper: Wraps any Go io.ReadWriter in a secure tunnel us...
by tptacek on Sunday February 19, 2023 @02:08PM
(#34860714)
Yeah, I don't mean to be coy. You can't end up with this protocol using Noise. :)
Re:Whisper: Wraps any Go io.ReadWriter in a secure tunnel us...
by ThePhysicist on Sunday February 19, 2023 @02:15PM
(#34860788)
ECIES is quite fine though for most asynchronous applications, where having a signing key also makes sense as you often want to publish long-lived, signed data and build a trust chain (e.g. generate and sign session keys from a master key). I built several real-world systems based on that (e.g. [1]) and they all made it through the audits fine. I was exploring Noise-based protocols but I find it's best to rely on primitives that are supported by the Web Crypto API.
Re:Whisper: Wraps any Go io.ReadWriter in a secure tunnel us...
by tptacek on Sunday February 19, 2023 @03:19PM
(#34861419)
ECIES is a hybrid encryption construction; Noise is a protocol. They're two different levels of abstraction. This thing we're commenting on has a protocol; it's just an accidental one, which is usually not what you want. WebCrypto doesn't provide a protocol framework, just a bunch of primitives.
Re:Whisper: Wraps any Go io.ReadWriter in a secure tunnel us...
by erincandescent on Sunday February 19, 2023 @02:25PM
(#34860887)
Gotta say that I generally like the Noise framework (or rather the protocols that result), but it is one of the most impenetrable specifications I've ever read
I don't remember what it is specifically about it, I just remember the document being a pain to read; a bit like the original Paxos paper in that regard.
Re:Whisper: Wraps any Go io.ReadWriter in a secure tunnel us...
by tptacek on Sunday February 19, 2023 @03:17PM
(#34861396)
I don't know about that. As an implementor, it is probably one of the easiest-to-follow specs I've ever worked from. You can pretty much code it from the top of the spec to the bottom; when you get to the handshake patterns section and realize that each is just a different ordering of things in an array or whatnot, it's pretty slick.
(To say nothing of: this uses signatures, and Noise does not).