5 ms·
You haven't explained anything about how crypto software is developed. You have told us how other software is developed and then told us that it isn't okay for
by saosebastiao 13y ago
You haven't explained anything about how crypto software is developed. You have told us how other software is developed and then told us that it isn't okay for crypto software.
- tptacek 13y agoSpend 10x the resources on verification as on implementation. Spend 10x the resources on design as on implementation. Nobody does this with normal software.
- jbri 13y agoAnd ultimately the biggest thing to do is that when you find a bug, don't just fix that one bug and call it a day. If you find a bug in your crypto code through your testing and validation, that means your development process screwed up and allowed that bug to slip through. What you need to do is figure out how that bug got through your development process, change your development process so it wouldn't slip through next time, and then have a thorough audit of your already-written code to make sure no other bugs have slipped through the same way. Developing must-not-fail critical software is the exact opposite of the traditional launch-fast-and-iterate model that most people use to produce web applications and such. This is a big reason that when web app developers try their hand at developing critical software like cryptography, they get it horribly wrong.
- nekopa 13y agoThis seems similar to way the people who developed the software for the space shuttle worked. Finding a bug was a huge deal, as it meant something was wrong in their process. It wasn't just fix the bug, but fix what caused the bug, and look to see where that faulty process may have caused other bugs. Google 'they write the right stuff' for a good article on it.
- IsThisObvious 13y agoAnother domain where you have things like this is embedded systems related to safety, ie, the micro-controller managing pressure equipment.