How To Safely Store A Password

2 Likes

Bine de stiut pentru PHP a aparut in versiunea 5.5 functionalitatea respectiva:
https://wiki.php.net/rfc/password_hash
https://php.net/manual/ro/function.password-hash.php

Iar pentru PHP < 5.5 exista o implementare temporara: https://packagist.org/packages/ircmaxell/password-compat

This library is intended to provide forward compatibility with the password_* functions being worked on for PHP 5.5.

bcrypt FTW! :smile: Trebuie doar sa ai grija sa nu exagerezi (pentru ca timpul de generare al hash-ului creste exponential raportat la cost) si nu care cumva sa verifici parola la fiecare request :wink:

1 Like

Suna ca si cand cineva vorbeste din proprie experienta :smile:

4 Likes

Dupa ce ne-am lamurit ca este nevoie de bcrypt, urmatorul pas este sa intarim metoda de securitate si sa folosim scrypt :smiley:

1 Like

Fun facts:

  • PBKDF2 aparut in 2000, adoptat la scalara larga, construit pentru eficienta computationala (cunsoma putine resurse)
  • bcrypt prezentat in 1999, folosit la o scalara mai mica, dar destul de popular; implementari in multe limbaje; cpu constraint
  • scrypt standardizat in 2012, nu e folosit in prea multe aplicatii/proiecte, deci e cel mai putin testat (real-life; pana acum folosit doar pentru cryptocurrency, care sunt si ele invaluite de un val de mister); cpu & memory constraints.

Bcrypt are niste bile albe de la mine la capitolul comptabilitate (si nu ma refer la librarii, ci la implementare). Exemplu: eu acum criptez cu cost 12, sa zicem, dar toti utilizatorii vechi care au parolele criptate cu cost 8 se pot autentifica in continuare - presupunand ca nu le-am resetat deja parolele :smiley:

Scrypt e mai bun punct de vedere tehnic pentru ca e mai nou cu vreo 10 ani. Daca mai rezista inca vreo 5 probabil ca va fi adoptat la o scalara mai larga. Pana atunci bcrypt will have to do.

Bonus: 7 ways to screw up using Bcrypt.

3 Likes