4 ms·
Home electrical work is a great example. Just pick up a $10 book at your local Home Depot and if you can read and follow the simple instructions and guidelines
by 23david 13y ago
Home electrical work is a great example.
Just pick up a $10 book at your local Home Depot and if you can read and follow the simple instructions and guidelines inside, you'll be able to do most simple electrical work.
Some electricians may say that it's foolish to do your own electrical work unless you're a trained/certified electrician.
Lots of people do most of their own electrical work without problems, and only hire expert electricians for the really risky or technical parts such as connecting to the utility companies or dealing with really high voltages.
- tptacek 13y ago"Simple electrical work" might equate to "wiring Nacl into an application". Designing a cryptosystem to replace Nacl in your application is more akin to climbing up the pole in your alley and working from there. But I'm particularly interested in David's response, because he raises this concern pretty regularly.
- im3w1l 13y agoIs there some kind of cryptography for idiots guide around? Something that explains how to use a high level cryptography library safely. A guide that recognizes that the reader is probably stupid enough to create a buffer overflow if he even goes near C++. A guide that assumes the reader will use rand to generate keys if able to and not reminded multiple times not to. A guide for people who have never heard about side channels. A guide that seriously cautions not to hand over the plaintext to Eve even if she asks nicely.
- tptacek 13y agoIf you use the right library --- Nacl or Keyczar, or call out to PGP --- you don't need to be an expert to build cryptography into your application. In all the stories you read about some generalist developer blowing their users' feet off with bad crypto, what you're reading about is someone reinventing these libraries with vanity crypto.
- im3w1l 13y agoEdited, original from https://code.google.com/p/keyczar/wiki/CppTutorial https://code.google.com/p/keyczar/wiki/CppTutorial keyczar::Keyczar* crypter = keyczar::Crypter::Read(location); if (!crypter) return; crypter->set_compression(keyczar::Keyczar::ZLIB); std::string input = "Hey Alice, here is Eves message: [quote]"+superescape(evemessage)+"[/quote] Your Bob"; std::string ciphertext; bool result = crypter->Encrypt(input, &ciphertext); Ooops because, http://arstechnica.com/security/2012/09/many-ways-to-break-ssl-with-crime-attacks-experts-warn/ http://arstechnica.com/security/2012/09/many-ways-to-break-s...
- tptacek 13y agoSure. I think that speaks to my point; the compression side channel was novel enough that trained cryptographers missed it in Keyczar. (Just don't use compression with your encryption and avoid the issue entirely).
- im3w1l 13y agoWell, even if they removed it, our hypothetical library user could do it by themselves if not told not to.
- codahale 13y agoChemistry is a much better example. Spill a little dimethylmercury? Welp, you're dead. Sign something with your DSA key using a dodgy PRNG? Welp, you're dead.
- xradionut 13y agoLot of people get shocked and die too. Ask any electrician or bench tech or radio tech how many times they have been "bit". I'm professionally trained to work on nasty stuff and I ended up in the hospital due to an untrained persons actions on a job site. And I've lost a few colleagues due to antenna raisings/maintenance gone wrong.
- Spooky23 13y agoHome electrical work is a great example, because like crypto, there are many opportunities to screw up. The Home Depot book usually assumes that the underlying electrical system is reasonably modern and implemented in accordance with the NEC. Not always true! Your simple change like adding a GFCI outlet or a socket somewhere may not behave as expected if some idiot 30 years ago did something like attach ground to the neutral wire. Or, unbeknownst to you, that old line that you make a pigtail with may be an aluminium wire, which requires specific hardware to safely splice. 5 years later, the trivial act of installing a ceiling fan could be a fire. Crypto is similar, there are lots of icebergs lurking around. That doesn't mean that you need to fear it, but you do need to know what you are doing, or take measures to validate that what you're learning and applying is accurate.