5 ms·
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?
by kefka 12y ago
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?
- tete 12y agoIt's probably save to use in the sense that there are a number of projects (dnscrypt, zeromq, tox, ...) are using it already.
- zrail 12y agoWhen 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.
- tptacek 12y agoIt'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.
- sarciszewski 12y ago"It's better if you don't build crypto directly into your application at all" Plaintext all of the things! :P
- ary 12y agoI'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?
- bjornsing 12y agoThere'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 http://tools.ietf.org/html/draft-ietf-tls-oob-pubkey-02.
- tptacek 12y agoThere's no reason you have to use CAs to authenticate TLS. Plenty of enterprise tools keep whitelists of certificate hashes instead.
- jewel 12y agoThere 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.
- higherpurpose 12y agoThis maybe: https://github.com/okTurtles/dnschain https://github.com/okTurtles/dnschain
- revelation 12y agoIf 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.
- nly 12y ago> 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.
- tptacek 12y agoNacl 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.
- illumen 12y ago+ 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.
- tptacek 12y agoNacl 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.
- sarciszewski 12y agoThat's a shame :(
- sitkack 12y agoCan you recommend how to wrap crypto _around_ our applications if we aren't building it in?
- deleted 12y ago[deleted]
- duaneb 12y agoI 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.
- sarciszewski 12y agoLet's not wait 5 years then crowdfund it like TrueCrypt ;)
- tptacek 12y agoPeople 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.
- sitkack 12y agoTheorem provers?
- nickmeharry 12y agoIf you want proven crypto, there's always this project: https://github.com/idris-hackers/idris-crypto https://github.com/idris-hackers/idris-crypto
- duaneb 12y agoIt's more about having a third party look at it rather than the credentials of the authors being in question.
- tptacek 12y agoI understand the idea, but again: there aren't many third parties that are qualified to evaluate crypto code at all.
- Panino 12y agoTo 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 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.
- jedisct1 12y agoThe 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.