Live data from Hacker News

Umbra Privacy Platform

umbra.shadowproject.io

21–30 of 33 posts

Re: Umbra Privacy Platform

#21
post #19

Earlier quoted context omitted.

If one of the project devs is reading this thread: https://github.com/shadowproject/shadow/blob/f3fa333f8377688... That's really hard to read. Also, don't use OpenSSL: https://paragonie.com/blog/2016/05/how-generate-secure-rando...

Hi, Yes we're always where the critics are, they are or best source of information. I'm very happy to see our work being reviewed. I'm not an expert cryptographer but I am capable of understanding it. (fyi I didn't code it). Our memcmp in constant time is not the prettiest, but it's short so we roll with it :P This project started around 2014, LibSodium was still very small back then and OpenSSL, in ours view, remain…

Yes: Aside from being a userspace CSPRNG (which is an additional risk of failure over the kernel's CSPRNG and doesn't provide defense-in-depth), it isn't thread-safe.

https://github.com/ramsey/uuid/issues/80

https://github.com/nodejs/node/issues/5798

There are also some recent IACR papers (linked in the Node thread), but those are the two biggest concerns.

Re: Umbra Privacy Platform

#22
Do we need a payment system and chat client connected as a "platform"? Seems like an odd collection of things, and can't imagine that a startup would have reasonable expertise in chat AND payments.

Re: Umbra Privacy Platform

#23
post #19

Earlier quoted context omitted.

Hi, Yes we're always where the critics are, they are or best source of information. I'm very happy to see our work being reviewed. I'm not an expert cryptographer but I am capable of understanding it. (fyi I didn't code it). Our memcmp in constant time is not the prettiest, but it's short so we roll with it :P This project started around 2014, LibSodium was still very small back then and OpenSSL, in ours view, remain…

Yes: Aside from being a userspace CSPRNG (which is an additional risk of failure over the kernel's CSPRNG and doesn't provide defense-in-depth), it isn't thread-safe. https://github.com/ramsey/uuid/issues/80 https://github.com/nodejs/node/issues/5798 There are also some recent IACR papers (linked in the Node thread), but those are the two biggest concerns.

Thank you CiPHPerCoder!

That link to NodeJS was a good read, I'm fairly convinced that we should ditch RAND_bytes from OpenSSL for something more secure, we'll look into LibSodium.

I've caught rumours of a possible RAND_sys_bytes which operates over the systems CSPRNG? We like to be conservative on the libs.

We'd like to tip you for your efforts, do you have a Bitcoin (or ShadowCash) address?

Re: Umbra Privacy Platform

#24
If this is their chat scheme:

https://github.com/shadowproject/whitepapers/releases/downlo...

... that's really scary (ECDH + ECDSA + CBC mode, using OpenSSL's primitives, in an ad-hoc configuration, with plaintext compression), and also inferior to modern secure messaging schemes. People should use Signal Protocol for this stuff.

Slightly later:

The only source code I can find for this is a giant collection of C++. There's CSS referring to "ShadowChat", and a file "smessage.cpp" which roughly corresponds to the protocol sketched in that PDF. It's C++, lots of it, with a lot of memcpy.

Re: Umbra Privacy Platform

#25
post #24

If this is their chat scheme: https://github.com/shadowproject/whitepapers/releases/downlo... ... that's really scary (ECDH + ECDSA + CBC mode, using OpenSSL's primitives, in an ad-hoc configuration, with plaintext compression), and also inferior to modern secure messaging schemes. People should use Signal Protocol for this stuff. Slightly later : The only source code I can find for this is a giant collection of C++.…

Hi,

If you want users to take your comments seriously then you should be a bit more specific about what's scare. CBC and ECDH are the basis of most modern end-to-end encrypted messaging schemes.

I agree with the key exchange, it doesn't have a proper ratchet, it's on our to-do list.

Re: Umbra Privacy Platform

#26
post #25
post #24

If this is their chat scheme: https://github.com/shadowproject/whitepapers/releases/downlo... ... that's really scary (ECDH + ECDSA + CBC mode, using OpenSSL's primitives, in an ad-hoc configuration, with plaintext compression), and also inferior to modern secure messaging schemes. People should use Signal Protocol for this stuff. Slightly later : The only source code I can find for this is a giant collection of C++.…

Hi, If you want users to take your comments seriously then you should be a bit more specific about what's scare. CBC and ECDH are the basis of most modern end-to-end encrypted messaging schemes. I agree with the key exchange, it doesn't have a proper ratchet, it's on our to-do list.

I'm really, really comfortable with who does and doesn't take my comments on this particular subject seriously. If you rephrase your comment in the form of a question, I'll respond.

Re: Umbra Privacy Platform

#27
post #26
post #25

Earlier quoted context omitted.

Hi, If you want users to take your comments seriously then you should be a bit more specific about what's scare. CBC and ECDH are the basis of most modern end-to-end encrypted messaging schemes. I agree with the key exchange, it doesn't have a proper ratchet, it's on our to-do list.

I'm really, really comfortable with who does and doesn't take my comments on this particular subject seriously. If you rephrase your comment in the form of a question, I'll respond.

Hi,

I didn't mean to come off as rude, it's a bit late and I'm quick to the trigger sometimes.

What are your concerns with our scheme? Do you have any suggestions on improving it?

We really need to implement a key ratchet, that's a sure thing.

Re: Umbra Privacy Platform

#28
post #27
post #26

Earlier quoted context omitted.

I'm really, really comfortable with who does and doesn't take my comments on this particular subject seriously. If you rephrase your comment in the form of a question, I'll respond.

Hi, I didn't mean to come off as rude, it's a bit late and I'm quick to the trigger sometimes. What are your concerns with our scheme? Do you have any suggestions on improving it? We really need to implement a key ratchet, that's a sure thing.

It's 2002-grade crypto primitives, hand-rolled, written in C++, apparently on top of OpenSSL's primitives.

Nobody is going to be able to sanity check this code "in real time" in response to message board comments. But I skimmed it, and I see concerns right away. For instance, it looks like the CBC IV isn't included in the MAC calculation.

In terms of primitive selections:

* CBC+HMAC is fine if you're very careful. I'd certainly do that before I tried to hand-code a real AEAD. But then, see above! A modern protocol would use either a hermetically sealed AEAD construction like GCM, or, even easier, use ChaPoly, as provided in TweetNacl.

* I can't tell what curve this is based on, but I'm guessing because this is all bitcoin related it's secp256k1. New protocols shouldn't use secp256k1, if only because it's not misuse-resistant. I'm assuming this project inherits its secp256k1 code from wherever bitcoin gets it, but anyone else who tried to interoperate with ShadowChat has to carefully avoid invalid curve attacks as well.

* ECDH is fine. Whatever. The problem is secp256k1, not ECDH.

* But ECDSA is not fine. It relies on a random nonce and explodes like a pipe bomb if so much as a single bit of the nonce is biased, which is surprisingly hard to get right. It's also difficult to make ECDSA constant time with arbitrary curves.

That's just the really basic stuff, though. Secure messaging systems are surprisingly difficult to get right. You need to understand the underlying crypto primitives very well, but then also a whole mess of almost- domain-specific stuff about messaging protocols with particular threat models.

This is not a good thing to DIY.

Later

And, I mean, I have structural concerns with this C++, too. For instance: there's a place that passes an integer computation to std::vector's resize, then memcpy's into it on the assumption that the computation didn't shrink the vector. Is this a real problem? Fuck if I know. You know what it costs per day to really audit C++ code like this?

Later Later

Sorry, I forgot: compressing plaintext creates traffic-analytic side channels. Back in 2002, people thought it was a good idea to compress plaintext, because it destroyed structure and made some attacks harder. But then CRIME was published and now we all worry about compression --- also, it turns out, the code for the exploits compression was supposed to stop gets trickier, but not impossible: see "Dancing On The Lip Of A Volcano" for more.

Also: how much of this code is your project's, and how much is inherited?

Re: Umbra Privacy Platform

#29
post #23

Earlier quoted context omitted.

Yes: Aside from being a userspace CSPRNG (which is an additional risk of failure over the kernel's CSPRNG and doesn't provide defense-in-depth), it isn't thread-safe. https://github.com/ramsey/uuid/issues/80 https://github.com/nodejs/node/issues/5798 There are also some recent IACR papers (linked in the Node thread), but those are the two biggest concerns.

Thank you CiPHPerCoder! That link to NodeJS was a good read, I'm fairly convinced that we should ditch RAND_bytes from OpenSSL for something more secure, we'll look into LibSodium. I've caught rumours of a possible RAND_sys_bytes which operates over the systems CSPRNG? We like to be conservative on the libs. We'd like to tip you for your efforts, do you have a Bitcoin (or ShadowCash) address?

I do, actually, but I haven't accessed it in almost two years. EDIT: And I forgot my password. Here's a new one:

  1D6RMsgnTAf2GLWpD91EaQvQ5ppuaZKkGT

Re: Umbra Privacy Platform

#30
post #13
post #3

Hard to take seriously with all those ambitious goals and talk about privacy but without https configured on their subdomain.

On the other hand, setting up https is a different skill set from the types of distributed systems that Umbra is trying to be, and I still find it to be confusing even though things like Let's Encrypt have made the process a lot easier. Still, I've been around the space for a long time and I don't remember hearing too much about the Umbra project before today. That's usually a bad sign, especially given that they don…

Hi Taek !

Project is far from perfect, as you said, but it's worth a try. With awareness we hope that more reviews come to make this project more solid.

The whitepapers are in the number of two (chat and anon sending) : https://shadowproject.io/en/documentation

A good doc explain most of the functions in ShadowProject : https://doc.shadowproject.io/

Post reply on HN