Password Authentication for Web and Mobile Apps - cover

Password Authentication for Web and Mobile Apps

Dmitry Chestnykh

  • 29 mei 2020
  • 1230003936153
Wil ik lezen
  • Wil ik lezen
  • Aan het lezen
  • Gelezen
  • Verwijderen

Samenvatting:

Authenticating users with passwords is a fundamental part of web and mobile security. It is also the part that’s easy to get wrong. This book is for developers who want to learn how to implement password authentication correctly and securely.

It answers many questions that everyone has when writing their own authentication system or learning a framework that implements it.

Store passwords securely

• What is the best password hashing function for your app?
• How many bytes of salt should you use?
• What is the optimal password hash length?
• How to encode and store hashes?
• When to pepper and encrypt hashes and how to do it securely?
• How to avoid vulnerabilities in bcrypt, PBKDF2, and scrypt, and which Argon2 version to use?
• How to update password hashes to keep up with Moore’s law?
• How to enforce password quality?

Remember users

• How to implement secure sessions that are not vulnerable to timing attacks and database leaks?
• Why is it a bad idea to use JWT and signed cookies for sessions?
• How to allow users to view and revoke sessions from other devices?

Verify usernames and email addresses

• How to verify email addresses and why is it important? How Skype failed to do it and got hacked.
• How to avoid vulnerabilities caused by Unicode?
• How to disallow profanities and reserved words in usernames?

Add multi-factor authentication

• How to implement two-factor authentication with TOTP and WebAuthn/U2F security keys?
• How to generate recovery codes? How long should they be?
• How to rate limit 2FA and why not doing it breaks everything?

Also…

• How to create accessible registration and log in forms?
• How to use cryptography to improve security and when to avoid it?
• How to generate random strings that are free from modulo bias?

The book applies to any programming language. It explains concepts and algorithms in English and provides references to relevant libraries for popular programming languages.

We gebruiken cookies om er zeker van te zijn dat je onze website zo goed mogelijk beleeft. Als je deze website blijft gebruiken gaan we ervan uit dat je dat goed vindt. Ok