4 ms·
Then can you please outline specifically what training would be required to accomplish... whatever it is you did claim that was, "relatively minimal"? What cla
by diminoten 12y ago
Then can you please outline specifically what training would be required to accomplish... whatever it is you did claim that was, "relatively minimal"?
What classes? What books? What certifications or degrees?
- Nursie 12y agoPersonally I would recommend (if this is a serious question and you're not just trying to challenge my assertion about minimal training) putting yourself through Coursera's Crypto 101, and learning to use a library like NaCl, or borrow a well-reviewed open protocol like TextSecure, which is in TextSecure, Signal and (lately) WhatsApp. I'm not saying that with minimal training you can write an OpenSSL equivalent, or even create a novel cryptosystem on top of OpenSSL, people writing software products generally shouldn't be creating novel cryptosystems in the first place (and I speak as someone that implements crypto-systems for a living, usually very well defined crypto-systems from banking standards).
- diminoten 12y agoI'm highly doubtful that a person who's done the training you've recommended will be capable of writing secure software. The fact that you think it's that easy is a wonderful example of why there's such a disconnect between developers and crypto experts.
- Nursie 12y agoFor the second time, I didn't claim they could write secure software! I'm not even claiming I can write secure software, it's a hard problem. What they can do is use existing, secure constructions, which at least gives them a fighting chance. Inventing new stuff does not.
- diminoten 12y agoYou did claim they could write secure software, at least that's what you wrote. If that's not what you meant, then I understand.
- Nursie 12y agoI think we must be miscommunicating here, I'm genuinely not seeing where I said that (it would not be the first time I have been hilariously unobservant though). The nearest I can see to that is where I said - "With fairly minimal training one can learn to use existing, secure constructions." - which I think I've qualified/explained now?
- tptacek 12y agoHe's misunderstood you, and then run away with his misunderstanding, perhaps because he thinks it's a more interesting back-and-forth to bounce around than what you actually said. My reading of what you wrote is: it doesn't take much training to use Libsodium. To the extent that providing cryptographic security is important, you can solve the problem by delegating it to the Nacl designers and Sodium implementors. That's mostly true. I did not see you making an argument about how simple the entire security problem was to solve.
- diminoten 12y agoPrecisely this. "It's not hard to learn to use a crypto library" is not an interesting conversation, and so I actively tried to have a more interesting conversation about "it's actually pretty damn hard to implement crypto software". Since when is learning a single crypto library the end-all solution to writing good crypto software?
- Nursie 12y ago>> I actively tried to have a more interesting conversation about "it's actually pretty damn hard to implement crypto software". You might have said that! >> Since when is learning a single crypto library the end-all solution to writing good crypto software? It's not, but it's a start, a start which all of these stories that hit HN and get torn to pieces are missing. -- edit -- When I made my comment that you can learn to use existing things with minimal training I should have padded it out by telling you the reason I was saying that - learning to use well-understood crypto primitives, and (if you can) pre-provided crypto implementations is far from all you need to make secure software. But it's a start. "Hey, come and look at our neat new crypto, it's awesome!" is a big red flag, and it's a red flag with a subtext that reads: We don't know what we're doing. Software that does use good constructions and good implementations can still be done very badly, it's true. To go back to your first comment, you say there's this gap between the way crypto people work and the way developers develop - that may well be so, but in most of the messaging apps we see here on HN the developer hasn't really even attempted to bridge that gap. Think about it like cooking a meal - you're asking what it takes to become a top chef but in the case we're discussing they didn't even start their marinara sauce with tomatoes.
- tptacek 12y agoMy suggestion is: work your way through the Matasano Crypto Challenges. They're free, just sitting there on a static web page, with no signup required. Actually implement cryptographic attacks before trying to design crypto. That's not just my recommendation; it's also what Bruce Schneier has been writing for decades. The problem with my suggestion is that most people who work their way from block cipher attacks through RSA error oracles are "scared straight", and lose the desire to plunk fancy crypto into their applications. Once you see how subtle some of the most devastating attacks are, you start to see why so few crypto engineers write chat apps.
- jerematasno 12y ago> The problem with my suggestion I fail to see the problem...