Quote:Original post by sam_hughes
It wasn't fine for Cake Poker. It's a one-time cost to learn your way around a part of OpenSSL, and it's worth doing. You might as well make the other guys an easier target.
The first requirement for breaking some system is adequate interest. Spending days or weeks before the product even exists is wasted time. And context - poker and gambling in general have historically had perfect correlation to crime rates - they are magnet for all sorts of crooks, even digital ones.
It's simple economics and risk management. Further down the same post:
Quote:At that point, hire someone to build secure authentication.
The above may include up-front funding. But in absence of all of those, security is simply an afterthought. And pragmatically - how many products fail because of security breach vs. how many are never finished vs. started?
Finally, for unfunded/indie/hobbyst the advice to "learn something" is a fallacy as anything else. Adding better cogs into security machine statistically reduces chances of an incident - but important security breaches go against the odds by exploiting just one single weakness. Naive security improvements merely reduce surface area for trivial and script kiddie attacks.
So you have your biggest, baddest, slowest hash. How will you know that database was stolen in the first place? How will you know that users aren't exposed to a trojan? That your page/service isn't being hijacked or spoofed? And if it does happen, how will you handle it? How will you respond to zero-day exploits? Using some library is fine, but exploits exist everywhere, from OS to servers to XSS.
Hash is a technical detail. Make it virtual function, replace as needed. Focus on rest of the system instead.
Which is why, if security matters, you need a dedicated specialist. Programmer security is just as bad as programmer art. But at least everyone will tell you your art sucks. With security you'll find out 2 years later when your database will have 30 seeds on pirate bay.