Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tingkatkan hashing kata sandi dengan garam acak

Penyerang "diizinkan" untuk mengetahui garam - keamanan Anda harus dirancang sedemikian rupa sehingga bahkan dengan pengetahuan tentang garam itu tetap aman.

Apa fungsi garam ?

Salt membantu dalam bertahan melawan serangan brute force menggunakan "rainbow-tables" yang telah dihitung sebelumnya.
Garam membuat brute force jauh lebih mahal (dalam istilah waktu/memori) bagi penyerang.
Menghitung tabel seperti itu mahal dan biasanya hanya dilakukan jika dapat digunakan untuk lebih dari satu serangan/kata sandi.
JIKA Anda menggunakan garam yang sama untuk semua kata sandi, penyerang dapat melakukan pra-komputasi tabel seperti itu dan kemudian memaksa kata sandi Anda menjadi cleartext ...
Selama Anda membuat garam acak baru (terbaik secara kriptografis kuat) untuk setiap sandi yang ingin Anda simpan hashnya, tidak akan ada masalah.

JIKA Anda ingin memperkuat keamanan lebih lanjut
Anda dapat menghitung hash beberapa kali (hash, hash, dll.) - ini tidak memerlukan banyak biaya, tetapi membuat serangan brute-force / menghitung "tabel pelangi" menjadi lebih mahal... tolong jangan jangan membuat sendiri - ada metode standar yang terbukti untuk melakukannya, lihat misalnya http://en. wikipedia.org/wiki/PBKDF2 dan http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard

CATATAN:

Menggunakan mekanisme seperti itu hari ini wajib sejak "CPU time" (dapat digunakan untuk serangan seperti tabel pelangi/brute force dll.) semakin banyak tersedia (lihat misalnya fakta bahwa layanan Cloud Amazon termasuk di antara 50 superkomuter tercepat di seluruh dunia dan dapat digunakan oleh siapa saja untuk jumlah yang relatif kecil)!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Strategi Pool Koneksi:Baik, Buruk atau Jelek?

  2. Tambah dan kurangi nilai baris sebesar 1 di MySQL

  3. Memigrasikan data ke Firebase dari MySQL

  4. Apa tipe data terbaik untuk menyimpan URL dalam database MySQL?

  5. Sisipkan/perbarui fungsi pembantu menggunakan PDO