Crypto Strikes Back!
Why Stack Overflow recommends it
Stack Overflow users link it to warn against rolling your own crypto and to justify using cryptographically secure random number generators instead of standard ones.
Recommended by 2 people across 2 different months, 2009 to 2019.
What it is
A Google Tech Talk by Nate Lawson of Root Labs on real-world cryptographic failures in widely deployed systems, showing how small implementation oversights led to serious vulnerabilities. It covers topics such as random number generation, public key pitfalls, PBKDF2 and weak password hashing in web apps.
What people said
Recommends Sebastian Paaske Tørholm · 2009-08 · Stack Overflow · on “Cryptography: Decode CRAM-MD5 algorithm”
Implementing your own cryptography is generally seen as a bad idea. Cryptographic algorithms have a lot of very specific demands, and if even one of them isn't met (and that usually happens when people do their own), it usually won't be all too much more secure than no crypto at all. If you're not convinced, this Google Tech Talk [this video] should help.
Recommends Theraot · 2013-11 · Stack Overflow · on “Best practice of Hashing passwords”
Sure SHA1 is more secure that MD5, but for most purposes it is not secure enough. You will probably find useful the video How NOT to Store Passwords by Computerphile [LINK] - 9 minutes and 24 seconds long. You must realize that there is much to cover when it comes to authentication and access control, so having a good hashing scheme is not enough. On storing passwords. As you already know, you don't store the password. In fact, when it comes to storing passwords, in general terms you want to store salted hashes of the passwords, using a modern algorithm optimized for this purpose. For the salt it is considered ok to store it alongside to the hash, for the salt value use a random value as lon
Cites Lernkurve · 2009-08 · Stack Overflow · on “Why use the C# class System.Random at all instead of System.Security.Cryptography.RandomNumberGenerator?”
Why would anybody use the "standard" random number generator from System.Random [LINK] at all instead of always using the cryptographically secure random number generator from System.Security.Cryptography.RandomNumberGenerator [LINK] (or its subclasses because RandomNumberGenerator is abstract)? Nate Lawson tells us in his Google Tech Talk presentation " Crypto Strikes Back [this video] " at minute 13:11 not to use the "standard" random number generators from Python, Java and C# and to instead use the cryptographically secure version. I know the difference between the two versions of random number generators (see question 101337 [LINK] ). But what rationale is there to not always use the secure r
Cites Celada · 2012-02 · Stack Overflow · on “Is this SSO implementation secure?”
Answer: no, it is not secure. In step 4, the user agent gains access to vendor_id , user_id , and hash . Now the client can append any string they want to the user_id and modify the hash to match. I'm not sure I fully understand your proposal, but it seems like this might enable one user to log in as another user whose username is a prefix of their own. You need to use a HMAC [LINK] instead of a plain hash. Stay away from implementing your own crypto! [this video]
Cites Samuel Edwin Ward · 2012-02 · Stack Overflow · on “How can one share information using the 'host-proof' paradigm?”
There are at least three major obstacles you'd need to overcome to create such a system that is both useful and secure. First, the user will have to enter his private key into the web interface. RSA keys are typically at least 1024 bits long, so even if you use the relatively efficient base64 encoding (which is probably a bad choice as many of the characters used are visually similar) the user will have to enter 171 meaningless characters. With a keyboard, this will be tedious and error-prone. Second, the javascript code the client runs comes from the web server. You are trying to avoid the risk of an attacker accessing plaintext passwords on the server by encrypting and decrypting in the cl
Cites IvoTops · 2019-07 · Stack Overflow · on “Fast thread-safe random number generator for C#”
See this video around minute 13. It is one source telling us to not use random.next but the cryptoapi instead. [this video]