3 ms·
I'm surprised someone with the skill to develop such an app and service platform doesn't have the skill for avoiding such common mistakes My impression is that
by joe_the_user 6y ago
I'm surprised someone with the skill to develop such an app and service platform doesn't have the skill for avoiding such common mistakes
My impression is that the way things go is:
* Sure, a smart person can implement a "homebrew" security protocol that seems safe.
* But smarter people never implement a "homebrew" security protocol and instead use existing protocols, 'cause they know how easy it is to fuck-up.
* The smartest people implement real, secure protocols, working in academic or three letter agencies and have those protocols vetted and peer reviewed. And even these fail on a regular basis.
- kstrauser 6y agoSo much this! My learning curve on crypto took me through a few self-evaluations: - Crypto isn't that hard! I can do this! - Crypto is a lot harder than I though. I shouldn't do this. - I've read about a lot of crypto! I can do this! - People way more experienced than me are making the tiniest mistakes that end up crashing the entire house of cards. I definitely shouldn't do this.
- loup-vaillant 6y agoImplementing a protocol correctly is easy. Implementing the primitives is harder (and tons of work), but you can easily grab them from a low-level crypto library like Libsodium or Monocypher. Designing a protocol correctly is not that hard, as long as you understand exactly what you are doing. By which I mean you are at least able to write an informal (yet rigorous) proof that it has the security properties you seek. Also, verification tools like Verifpal are a godsend. The tricky part here is avoiding the Dunning-Kruger effect. It's easy to have the illusion of perfect understanding while being unable to write the most basic mathematical proof. The hardest part is convincing others that your protocol is any good. People who don't understand what you are doing cannot (perhaps even must not) trust your work. They need the vetting of someone reputable, and getting those reputable people to take a look is pretty hard if you don't have the right connections (an uphill struggle without a relevant PhD).