
Bảo mật mật khẩu là một phần quan trọng của an ninh mạng. Mật khẩu được sử dụng ở mọi nơi. Khi bạn đăng nhập vào một tài khoản, bạn nhập mật khẩu được sử dụng để xác minh danh tính của bạn.
Bạn có thể đã nghe nói về thuật ngữ “salting” liên quan đến mật khẩu, vậy salting là gì? Làm thế nào để mật khẩu thực sự được giữ an toàn trước tin tặc? Và việc salting liệu có giữ an toàn cho mật khẩu của bạn không?
Salting là gì?
Salting là quá trình thêm các chuỗi ký tự ngẫu nhiên duy nhất vào mật khẩu trong cơ sở dữ liệu hoặc từng mật khẩu trước khi mật khẩu được hashing (một thuật ngữ sẽ được giải thích sau). Điều này được thực hiện để thay đổi hàm băm và làm cho mật khẩu an toàn hơn. Chuỗi ký tự được thêm vào mật khẩu được gọi là “muối”, một “muối” có thể được thêm vào trước hoặc sau mật khẩu.
Phần muối này không được công khai và chỉ được lưu trữ trên trang web.
Salting hoạt động như thế nào?
Khi bạn tạo tài khoản trên một trang web hoặc ứng dụng, mật khẩu bạn sử dụng phải được lưu trữ để bạn có thể được xác minh vào lần tiếp theo khi bạn truy cập trang web. Nhưng mật khẩu này không thể được lưu trữ dưới dạng văn bản thuần túy, nghĩa là không có bất kỳ hình thức định dạng hoặc mã hóa nào. Mật khẩu phải được băm (hashed) để ngăn chặn tin tặc truy cập vào tài khoản của bạn một cách dễ dàng.
Giả sử bạn đăng nhập vào một trang web bằng mật khẩu này: myPassword. Trước khi mật khẩu đó được băm, một giá trị muối sẽ được thêm vào nó. Nếu giá trị muối cho trang web hoặc người dùng cụ thể đó là MUOrocks% thì mật khẩu được muối của bạn sẽ trở thành myPasswordMUOrocks%.
Mật khẩu đã được muối sau đó sẽ được băm và lưu trữ trong cơ sở dữ liệu cùng với các mật khẩu khác.
Sự khác biệt giữa encryption, hashing và salting
Salting, hashing và encryption là các kỹ thuật bảo mật được sử dụng hàng ngày trên các trang web và hệ thống. Chúng là các phương pháp trong mật mã học cần thiết để bảo mật mật khẩu.
Nhưng ba phương pháp này khác nhau như thế nào?
Encryption (Mã hóa)

Encryption là một dạng mật mã trong đó thông tin được mã hóa bằng toán học và chỉ người có chìa khóa được ủy quyền mới có thể truy cập và giải mã. Thông tin cần được bảo mật được dịch từ dạng văn bản thuần túy sang bản được mã hóa bằng cách sử dụng một thuật toán nhằm ngăn chặn người dùng trái phép giải mã thông tin.
Encryption là một quá trình hai chiều, có nghĩa là dữ liệu được mã hóa có thể được đảo ngược và được giải mã, nhưng chỉ bởi những người có khóa giải mã phù hợp.
Hiện nay, mã hóa mạnh mẽ và được sử dụng phổ biến nhất là mã hóa AES-256 bit. Nhiều trình quản lý mật khẩu cũng sử dụng mã hóa AES-256 bit để bảo vệ thông tin của người dùng.
Hashing (Hàm băm)
Hashing là quá trình chuyển đổi thông tin mà bạn muốn được bảo mật thành một chuỗi ký tự còn được gọi là hàm băm (hash). Về cơ bản, kỹ thuật này sử dụng một thuật toán để xáo trộn thông tin.
Hashing là một chức năng mã hóa một chiều, nghĩa là khác mã hóa, nó thường không thể đảo ngược. Cách duy nhất bạn có thể giải mã một hash là so sánh nó với một hash khác có giá trị thuần túy đã được giải mã.
Hash được sử dụng để xác minh tính xác thực của bạn. Khi bạn đăng nhập vào một trang web và nhập mật khẩu của mình, hash của mật khẩu sẽ được so sánh với hash được gắn liền với tài khoản của bạn. Nếu hai hash giống nhau, bạn sẽ được cấp quyền truy cập vào trang web.
Salting
Salting là một lớp bảo mật khác được thêm vào hash để nâng cao bảo mật của hash. Hệ thống sẽ thêm các chuỗi ký tự độc nhất và khác nhau trước khi hash để thay đổi hash hoàn toàn.
Tại sao mật khẩu lại được Salting?
Salting rất quan trọng trong bảo mật. Nó giúp giảm nguy cơ bị tin tặc đánh cắp được mật khẩu.
Chỉ lưu trữ mật khẩu trong cơ sở dữ liệu là một phương pháp thiếu an toàn để bảo vệ quyền riêng tư của người dùng. Bất kỳ tin tặc tay nghề cao nào cũng có thể xâm nhập vào cơ sở dữ liệu và chiếm quyền truy cập vào tất cả các tài khoản trên trang web.

Sau đó đến hashing. Nó cải thiện tính bảo mật của mật khẩu trước khi tin tặc vượt qua được kỹ thuật này. Tin tặc sử dụng các cuộc tấn công brute-force, tấn công từ điển (dictionary attack), phun mật khẩu (password spraying) hoặc bảng cầu vồng (rainbow tables) để đảo ngược mật khẩu nhằm đánh cắp thông tin đăng nhập.
Cải thiện các mật khẩu yếu
Salting bổ sung một mức độ bảo mật khác cho trang web. Khi một giá trị muối (salt value) được thêm vào mật khẩu, hash sẽ thay đổi hoàn toàn. Điều này khiến cho việc đảo ngược mật khẩu trở nên rất khó và làm cho kỹ thuật tấn công mật khẩu bảng cầu vồng trở nên vô dụng. Dưới đây là một ví dụ.
Mật khẩu | Hash | |
Mật khẩu ban đầu | myPassword | deb1536f480475f7d593219aa1afd74c |
Mật khẩu đã được Salt | myPasswordMUOrocks% | 51ae8ec80ae589f4270a1260841650a1 |
Như bạn có thể thấy trong bảng, các hash hoàn toàn khác nhau. Mật khẩu vẫn được giữ nguyên khi bạn truy cập trang web, nhưng hash sẽ an toàn hơn để chống lại việc tấn công. Salting đặc biệt quan trọng khi người dùng sử dụng các mật khẩu yếu và phổ biến như “password” hoặc “12345”. Salting làm giảm rủi ro do mật khẩu yếu.
Làm cho Hash của mật khẩu trở nên độc nhất
Salting cũng rất quan trọng khi hai hoặc nhiều người dùng có trùng một mật khẩu. Thêm các “muối” ngẫu nhiên khác nhau vào mỗi mật khẩu sẽ giúp các mật khẩu trở nên độc nhất. Ví dụ: nếu mật khẩu của bạn là iL0veCh3ese! và một người dùng khác có tên là Chioma cũng có một mật khẩu giống như vậy thì salting được sử dụng để làm cho các hash của các mật khẩu đó khác nhau và độc nhất.
Mật khẩu | Salt value | Mật khẩu đã được thêm “muối” | MD5 Hash | |
Bạn | iL0veCh3ese! | Am4la! | iL0veCh3ese!Am4la! | 31fda55ee57bc4c49ef6e0c99b0ba904 |
Chioma | iL0veCh3ese! | ew3du? | iL0veCh3ese!ew3du? | cf0bea59647ba39e058a20c14fc10b0d |
Bây giờ các mật khẩu này, mặc dù giống nhau nhưng có các hash hoàn toàn khác nhau. Khi bạn nhìn vào bảng hash, bạn sẽ không bao giờ có thể nhận ra rằng hai người dùng sử dụng chung một mật khẩu.
Lựa chọn một loại “Muối” tốt

Chọn một loại muối tốt cũng quan trọng như chọn mật khẩu. Một loại muối tốt phải là độc nhất. Đảm bảo rằng bạn sử dụng các ký tự và / hoặc ký hiệu độc nhất để làm cho hash của bạn an toàn hơn. Loại muối bạn chọn cho trang web của mình không được dễ đoán chẳng hạn như tên của trang web hoặc người dùng. Một điểm cộng khác là sử dụng hàng muối dài.
Cách tốt nhất để chọn một loại muối mạnh và độc nhất là sử dụng phần mềm salt value generator. Phần mềm này giúp bạn tạo ra các chuỗi muối mạnh và ngẫu nhiên để tăng tính bảo mật của mình.
Không lưu trữ các muối chung với cơ sở dữ liệu mật khẩu và không sử dụng các muối giống nhau cho tất cả các mật khẩu. Một mẹo nhỏ khác là thay đổi muối mỗi khi người dùng thay đổi mật khẩu của họ.
Salting có hiệu quả trong việc tăng cường bảo mật hay không?
Câu trả lời là có. Salting làm tăng tính bảo mật của mật khẩu. Khi bạn nhập mật khẩu, hacker sẽ không thể bẻ khóa mật khẩu sử dụng bảng từ điển (dictionary tables) hoặc bảng cầu vồng (rainbow tables). Tấn công Brute-force nhắm vào hash cũng vô ích vì sẽ mất một thời gian rất dài trước khi tìm được sự kết hợp hoàn hảo của hash. Bằng cách này, mật khẩu được bảo mật hơn và an toàn hơn khỏi tin tặc.
Tổng hợp và biên tập từ Makeuseof