Saturday, 5 September 2020

Lưu mật khẩu xuống database an toàn

Một ngày hệ thống của bạn bị hacked, dù bạn có mong chờ hay không.

Làm thế nào để, dù hacker có lấy được thông tin mật khẩu người dùng trong database ứng dụng của bạn, thì anh ta cũng không biết được (hoặc sẽ mất rất nhiều công sức và thời gian để biết được) mật khẩu của người dùng trong database ứng dụng của bạn là gì?

Hãy tham khảo bài viết chi tiết này của Taylor Hornby (defuse.ca), trong đó Taylor chia sẻ về cách lưu mật khẩu người dùng đúng cách xuống database:

https://crackstation.net/hashing-security.htm

tl;dr

- khi lưu mật khẩu người dùng vô db cần hash trước khi lưu

- dùng các thư viện và hàm hash chuẩn như Argon2, bcrypt, scrypt, or PBKDF2 

- thêm muối (salt) khi hash, tạo salt bằng hàm random mạnh

- dùng slow hash function để làm chậm khả năng bị brute force và dictionary 


và cuối cùng là bạn không nên tự thiết kế một hàm băm mật khẩu rồi đem xài nó cho production (trừ khi bạn là một chuyên gia trong việc này). Hãy dùng các hàm băm chuẩn đã được sử dụng và đánh gía bởi các chuyên gia.

No comments:

Post a Comment

Bucket list của tôi

Trong tiếng anh có một thuật ngữ "bucket list", được định nghĩa như này: -  a number of experiences or achievements that a person ...