News for hackers. Stuff that matters.
Re:Libsodium 1.0.0 released by kefka on Wednesday September 24, 2014 @02:36PM (#8363253)
Can someone much smarter than I tell me if this is safe to use? Or better yet, when a time period has passed to consider it safe to use?
Re:Libsodium 1.0.0 released by tptacek on Wednesday September 24, 2014 @02:56PM (#8363391)
It's better if you don't build crypto directly into your application at all, because you can still screw things up even if you build on Nacl. But with that said: Sodium/Nacl is better than virtually any of your other options for working directly with cryptography.
Re:Libsodium 1.0.0 released by nly on Wednesday September 24, 2014 @06:22PM (#8364512)
> It's better if you don't build crypto directly into your application at all, because you can still screw things up even if you build on Nacl.

Nacl was built to provide an API that is incredibly hard to screw up. That was one of djbs primary motivations. If you just need asymmetric encryption, or signing, or hashing, then it's the bees knees. These broad concepts aren't difficult to comprehend, and every developer should strive to understand and be able to use them. We shouldn't be encouraging people to be afraid... especially when things like dumb, plaintext username and password authentication is routinely implemented by developers without a second thought already.

Re:Libsodium 1.0.0 released by tptacek on Wednesday September 24, 2014 @07:51PM (#8364807)
Nacl makes it hard to screw up the constructions. It doesn't make it hard to make invalid assumptions about what a signed encrypted blob actually means.
Re:Libsodium 1.0.0 released by illumen on Thursday September 25, 2014 @06:53AM (#8366507)
+ makes it easy to add two numbers. It doesn't make it hard to make invalid assumptions about what adding two numbers together actually means.
Re:Libsodium 1.0.0 released by tptacek on Thursday September 25, 2014 @09:20AM (#8366924)
Nacl is a good thing. But crypto is just a tool. It's not a magic wand. People have already built vulnerable systems by making bogus assumptions about what Nacl can do.
Re:Libsodium 1.0.0 released by sarciszewski on Sunday September 28, 2014 @01:00AM (#8378974)
That's a shame :(
Re:Libsodium 1.0.0 released by sitkack on Wednesday September 24, 2014 @09:53PM (#8365147)
Can you recommend how to wrap crypto _around_ our applications if we aren't building it in?
Re:Libsodium 1.0.0 released by sarciszewski on Wednesday September 24, 2014 @03:49PM (#8363695)
"It's better if you don't build crypto directly into your application at all"

Plaintext all of the things! :P

Re:Libsodium 1.0.0 released by ary on Wednesday September 24, 2014 @03:57PM (#8363742)
I'm curious to know what you'd recommend for people who are looking to build applications around novel network protocols that aren't interested in the the certificate authority aspect of TLS?
Re:Libsodium 1.0.0 released by tptacek on Wednesday September 24, 2014 @05:40PM (#8364302)
There's no reason you have to use CAs to authenticate TLS. Plenty of enterprise tools keep whitelists of certificate hashes instead.
Re:Libsodium 1.0.0 released by bjornsing on Wednesday September 24, 2014 @04:26PM (#8363925)
There's an RFC on TLS with raw public keys that you should probably check out: http://tools.ietf.org/html/draft-ietf-tls-oob-pubkey-02.
Re:Libsodium 1.0.0 released by jewel on Wednesday September 24, 2014 @07:03PM (#8364656)
There are several TLS modes that don't use certificates. SRP and PSK are the two that I have some limited experience with. Both require sharing a password or key beforehand through some other medium.

If you're not concerned with man-in-the-middle attacks, then you could also use the ANON modes.

Re:Libsodium 1.0.0 released by revelation on Thursday September 25, 2014 @08:33AM (#8366782)
If you control the client software, theres no reason to use a certificate authority instead of making your own CA or just using self-signed certificates.
Re:Libsodium 1.0.0 released by higherpurpose on Wednesday September 24, 2014 @07:34PM (#8364741)
Re:Libsodium 1.0.0 released by Panino on Wednesday September 24, 2014 @07:59PM (#8364821)
To add to what others have said here, I'll point you to the authors of TweetNaCl, which sort-of competes with Sodium:

http://tweetnacl.cr.yp.to/papers.html

Little is said, other than that TweetNaCl is smaller and thus more easily auditable. No criticism. No pointing out failures. Considering the source, that's IMO a serious compliment. (For comparison, read what is said of OpenSSL...)

So in short, Sodium is a great library. It was forked from NaCl (the most trustable there is) and has some good features added, like scrypt, BLAKE2 and ChaCha.

I think NaCl, TweetNaCl, and Sodium are a great ecosystem, each with different strengths. All great libraries, and the only ones I'd recommend unless you're doing TLS.

Re:Libsodium 1.0.0 released by jedisct1 on Wednesday September 24, 2014 @09:58PM (#8365162)
The ecosystem is actually bigger, and includes projects such as TweetNaCl.js (pure Javascript implementation), Salt (pure PHP implementation) and Chaos.NaCl (pure C# implementation).

All these projects play well with each other: they have a decent set of primitives and constructions in common, accessible via a very similar API.

Re:Libsodium 1.0.0 released by duaneb on Wednesday September 24, 2014 @04:23PM (#8363908)
I believe it's safe to use in the sense of being stable. I don't believe they've had a full security audit yet, though.
Re:Libsodium 1.0.0 released by tptacek on Wednesday September 24, 2014 @07:52PM (#8364810)
People have weird ideas about the protective powers of a "full security audit". This is Bernstein, Lange, and Schwabe's code. There aren't many auditors qualified to review it.
Re:Libsodium 1.0.0 released by duaneb on Thursday September 25, 2014 @06:42PM (#8370232)
It's more about having a third party look at it rather than the credentials of the authors being in question.
Re:Libsodium 1.0.0 released by tptacek on Thursday September 25, 2014 @07:43PM (#8370470)
I understand the idea, but again: there aren't many third parties that are qualified to evaluate crypto code at all.
Re:Libsodium 1.0.0 released by sitkack on Wednesday September 24, 2014 @09:55PM (#8365156)
Theorem provers?
Re:Libsodium 1.0.0 released by nickmeharry on Wednesday September 24, 2014 @10:34PM (#8365271)
If you want proven crypto, there's always this project: https://github.com/idris-hackers/idris-crypto
Re:Libsodium 1.0.0 released by sarciszewski on Wednesday September 24, 2014 @04:25PM (#8363922)
Let's not wait 5 years then crowdfund it like TrueCrypt ;)
Re:Libsodium 1.0.0 released by tete on Wednesday September 24, 2014 @02:44PM (#8363306)
It's probably save to use in the sense that there are a number of projects (dnscrypt, zeromq, tox, ...) are using it already.
Re:Libsodium 1.0.0 released by zrail on Wednesday September 24, 2014 @03:00PM (#8363424)
When I first started paging through the docs it seemed like sort of a useless, dangerous thing. But now (after reading your comment and looking those projects up) it seems like it's an officially blessed version of NaCL, which makes it seem much safer.