0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Cafe Chém Gió: Cách Bảo Vệ Mật Khẩu Trong Cơ Sở Dữ Liệu (Phần 2)

Đăng vào 2 tuần trước

• 4 phút đọc

Giới Thiệu

Trong thời đại công nghệ số hiện nay, việc bảo mật thông tin cá nhân, đặc biệt là mật khẩu, đang trở thành một vấn đề hết sức quan trọng. Thời gian gần đây, nhiều trang tin tức và mạng xã hội thường xuyên thông báo về việc các doanh nghiệp bị hacker tấn công, dẫn đến việc dữ liệu bị đánh cắp và chuyên bán trên chợ đen. Các đối tượng thường nhắm đến là những dịch vụ lớn với số lượng người dùng đông đảo.

Mới đây, một công ty Việt Nam đã bị tấn công một cách trắng trợn. Hacker không chỉ lấy cắp dữ liệu mà còn ngang nhiên đăng tải video mô tả cách chúng đã xâm nhập vào hệ thống mạng nội bộ của công ty. Điều này không chỉ khiến doanh nghiệp gặp rắc rối mà còn đặt người dùng trong tình trạng lo âu khi dữ liệu cá nhân của họ có thể bị lộ.

Làm Thế Nào Để Bảo Vệ Mật Khẩu?

Khi dữ liệu bị lộ ra ngoài, người dùng cần phải lo lắng. Nếu hacker có thể sử dụng thông tin này để tìm ra mật khẩu của họ, hậu quả sẽ vô cùng nguy hiểm. Vậy làm thế nào để bảo vệ an toàn mật khẩu của người dùng ngay cả khi cơ sở dữ liệu bị tấn công và dữ liệu bị đánh cắp?

Chúng ta hãy tham gia một buổi trò chuyện thú vị để tìm hiểu cách bảo vệ mật khẩu một cách hiệu quả.

Buổi Trò Chuyện

Ông anh: Thế mấy dự án trước bên chú dùng thuật toán hash nào? Mấy cái nổi như MD5 với SHA-1 à?

Cậu em: Không anh, làm sao mà dùng được.

Ông anh: Sao mà không được? MD5 với SHA-1 có tốc độ tính toán nhanh, dữ liệu hash ra thì không lớn, tiết kiệm rất nhiều tài nguyên của máy chủ còn gì?

Cậu em: Nhưng mà hai cái đó được khuyến nghị là không nên sử dụng vì không còn đảm bảo an toàn nữa.

Ông anh: Dựa vào đâu mà nói là không đảm bảo an toàn nữa?

Cậu em: Em đọc được là MD5 và SHA-1 đã bị tấn công và có nhiều công cụ crack hash miễn phí trên mạng, có thể tìm ra bản gốc của nhiều chuỗi hash.

Ông anh: Đúng vậy, MD5 có khả năng chống trùng lặp kém.

Cậu em: Em cũng biết về việc MD5 có thể xuất hiện trùng lặp, nhưng số lượng kết quả có thể xảy ra không hề ít.

Ông anh: Đúng là lý thuyết như vậy. Nhưng thực tế, người dùng thường không đặt mật khẩu là một chuỗi ngẫu nhiên, việc trùng lặp xảy ra là khả thi hơn.

Cậu em: Thế thì việc mật khẩu khác nhau có chung mã hash cũng khả thi hơn đấy anh.

Ông anh: Phải, việc trùng lặp có thể xảy ra nhiều hơn với các thuật toán hash cũ. Nên người ta khuyên không nên sử dụng chúng nữa. Với MD5, bạn có thể gặp vấn đề với các tệp lớn, vì mã hash bị rút gọn, làm tăng khả năng trùng lặp.

Cậu em: Bọn em dùng SHA-3 để hash mật khẩu luôn, thấy ổn hơn.

Ông anh: Cũng được. Nhưng nếu bị tấn công vẫn có thể thất bại.

Cậu em: Nếu bọn em kết hợp với salt trong quá trình hash mật khẩu thì sao anh?

Ông anh: Điều đó sẽ tiềm năng hơn, nhưng phải nhớ bảo vệ salt nhé.

Cậu em: Nghĩa là lại phải giải quyết thêm một vấn đề nữa hả? 🤧

Ông anh: Đúng, tốt nhất là phát triển cơ chế tạo salt ngẫu nhiên cho mỗi tài khoản.

Cậu em: Nghe có vẻ khả thi hơn anh ạ 🥴

Ông anh: Hiện nay, người ta đã phát triển một số thuật toán hash mới hiệu quả hơn MD5 và SHA.

Cậu em: Cái nào vậy anh?

Ông anh: Đó là Bcrypt.

Cậu em: Nó có gì nổi bật hơn không anh?

Ông anh: Bcrypt được thiết kế để làm chậm quá trình bẻ khóa. Điều này có nghĩa là hacker phải tốn nhiều thời gian hơn khi thử kết hợp.

Cậu em: Nếu vậy có ảnh hưởng đến tốc độ xử lý không anh?

Ông anh: Không hẳn, vì mỗi tài khoản chỉ cần tính một lần, trong khi hacker phải thử nhiều lần.

Cậu em: Vậy là cao kiến thật.

Ông anh: Sử dụng bcrypt cũng yêu cầu phải có salt. Điều này đảm bảo không thể quên sử dụng salt.

Cậu em: Cảm ơn anh đã chia sẻ kiến thức bổ ích. Em sẽ tham khảo bài viết về bcrypt này: https://auth0.com/blog/hashing-in-action-understanding-bcrypt/

Ông anh: Chúc em một ngày làm việc hiệu quả và nhớ bảo vệ dữ liệu nhé! 🤑
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào