Password salting là gì?

Noun Security

Password salting là một kỹ thuật để bảo vệ mật khẩu được lưu trữ trong cơ sở dữ liệu (database) bằng cách thêm một chuỗi (string) gồm 32 ký tự trở lên và sau đó băm chúng. Password salting ngăn chặn những tin tặc xâm phạm đánh cắp mật khẩu từ cơ sở dữ liệu. Password salting làm tăng độ phức tạp của mật khẩu, khiến chúng trở nên an toàn mà không ảnh hưởng đến trải nghiệm người dùng (user experience). Nó cũng giúp ngăn chặn các cuộc tấn công bảng băm (hash table attack) và làm chậm các cuộc tấn công brute-force (brute-force attack) và tấn công từ điển (dictionary attack).

Khi người dùng đăng nhập, mật khẩu chạy qua thuật toán băm một chiều (one-way hashing algorithm) để chuyển mật khẩu thành một chuỗi ký tự khác và không thể nhận dạng. Trong quá trình đăng nhập, chuỗi này được so sánh với các chuỗi băm khác được lưu trữ trong cơ sở dữ liệu của website. Nếu thông tin đăng nhập khớp với chuỗi băm được lưu trữ, người dùng có thể truy cập vào tài khoản. Nếu nó không khớp, xác minh băm không thành công và người dùng không thể đăng nhập. Mặc dù băm (hashing) là một cách an toàn để lưu trữ mật khẩu so với lưu trữ chúng ở dạng bản rõ (plaintext), nhưng quá trình này không phải là không có vấn đề. Một hạn chế là, nếu hai mật khẩu giống nhau - điều này khá phổ biến vì mọi người có xu hướng sử dụng các mật khẩu chung, như "123456" và "password" - thì các hàm băm được tạo ra cũng giống hệt nhau. Điều này khiến kẻ xấu dễ dàng bẻ khóa (crack) mật khẩu bằng các cuộc tấn công brute-force, tấn công từ điển hoặc rainbow attack và xâm phậm (compromise) tài khoản của nhiều người dùng, đánh cắp dữ liệu của họ hoặc gây ra các vấn đề khác. Để giải quyết thách thức này, password salting được yêu cầu.

Với password salting, một phần dữ liệu ngẫu nhiên được thêm vào mật khẩu trước khi nó chạy qua thuật toán băm, khiến nó trở nên duy nhất (unique) và khó bị bẻ khóa hơn Khi sử dụng cả hashing và salting, ngay cả khi hai người dùng chọn cùng một mật khẩu, salting sẽ thêm các ký tự ngẫu nhiên vào mỗi mật khẩu khi người dùng nhập chúng.

Learning English Everyday