News for hackers. Stuff that matters.
Re:Open Sourcers Race to Build Better Versions of Slack by e12e on Wednesday March 16, 2016 @08:50PM (#11301879)
Thank you for mentioning actor - I must have missed it the last time various open (federated) solutions were discussed.

It looks like an interesting platform, but I was a bit surprised by what I found at:

https://developer.actor.im/docs/encryption

"MTProto v2 Rev3 enables encryption support to replace or enchanse TLS one." So far so good - here's someone that's built on top of NaCl and built a legacy-free encryption system on top of well tested, known primitives, I thought.

But: "Actor encrypts message with US encryption and then again encrypt with Russian encryption that in result guarantee absolute encryption streight" (sic).

Uh. This sounds like applying a "political" reasoning to layering security: AES might be backdoored by NSA, GOST(?) might be backdoored by the FSB -- but using both, only double-agents will be able to foil our encryption!

While the truth is probably that you're know vulnerable to buffer overflows or other more mundane software errors in the now double-sized encryption code -- and get none of the (potential) benefits of a clean, modern architecture on top of just NaCl?

In addition, it appears you also use curve25591, possibly an implementation derived from NaCl:

https://developer.actor.im/docs/securing-server

"For secure communications Actor Server have to be configured with Curve25519 keys. To generate them, use actor-cli util:"

So that's three codebases worth of bugs, rather than one. Any plan to simplify this part?

Re:Open Sourcers Race to Build Better Versions of Slack by ex3ndr on Thursday March 17, 2016 @06:12AM (#11303495)
Our encryption is based on Java and everywhere we check buffer overflows and possible timing-attacks. Hopefully we use AES and SHA256 that is easy to validate. Also Instead of using N code bases (one for each platform) we reduce it's amount by conversing sources from java to other languages for every platform.

US-based encryption is taken directly from BouncyCastle, time-proven library for Java. Russian implementation can contain bugs, yes, but i can guarantee that there are no timing or overflow attacks possible. Even when we will have broken russian layer, us layer will be safe. Also we are on the way to make everything verified by 3rd parties and seal cryptography parts.

For key exchange we use curve25519. Implementation is taken directly from Signal and this app is trusted by majority.

We

Re:Open Sourcers Race to Build Better Versions of Slack by e12e on Thursday March 17, 2016 @06:52AM (#11303601)
Ok. But why use AES and GOST? AFAIK they're both based on feistel networks? If one were to layer two symmetric encryption schemes today I'd think one would go with something like salsa[ed:chacha] and keccak (in authenticated encryption mode) -- and it would probably still be a bad idea, adding much more complexity than security?

[ed: Oh, and here I go, proving that non-cryptographer should be careful about what they say wrt encryption, apparently AES isn't a feistel cipher? http://crypto.stackexchange.com/questions/10605/why-is-aes-n... ]

> Also Instead of using N code bases (one for each platform) we reduce it's amount by conversing sources from java to other languages for every platform.

It's a pretty strong claim to say that you take three different encryption primitives, implemented by other people in java, and translate them to other languages -- and can also be sure there are no timing attacks? (Or oracles, or resulting errors)?

Surely it would be easier to stick to as few lines and layers as possible if you want it to be easy(er) to audit?

(So simple there's obviously no mistakes, vs so complex there's no obvious mistakes and all that).

Re:Open Sourcers Race to Build Better Versions of Slack by ex3ndr on Thursday March 17, 2016 @03:23PM (#11306851)
I will let you know when we will complete audit of our crypto.
Re:Open Sourcers Race to Build Better Versions of Slack by espadrine on Thursday March 17, 2016 @10:19AM (#11304467)
You're not helping your case. You make it sound like you are using bricks without knowing what their strength is.

It's a bit like saying you made a boat out of wood for buoyancy and filled it with sand in case the wood catches fire. Sure, a plank of wood doesn't sink, but too much sand can make it sink, and sand won't be of much help if there is a fire. A wooden boat is better than one filled with sand.

I'm not sure how the fact that the boat was made in Java is relevant, either. If anything, it makes it harder to prove that there is no timing attack, as the JIT could do unexpected things, long after the program has started.

Re:Open Sourcers Race to Build Better Versions of Slack by e12e on Friday March 18, 2016 @08:02AM (#11311179)
Agreed. One OT nitpick: The fire-quenching properties of sand is actually somewhat different to that of water - eg in case of burning fuel/oil.