Các trang web bảo vệ mật khẩu của bạn như thế nào?

Ở thời điểm hiện tại, việc nghe thấy thông tin về một cuộc vi phạm dữ liệu là điều hết sức bình thường. Việc vi phạm có thể xảy ra với một dịch vụ phổ biến như Gmail hoặc một phần mềm mà hầu hết chúng ta đã lãng quên, như MySpace.

Một trong những điều tồi tệ nhất mà hacker có thể tìm ra là mật khẩu của bạn. Điều này đặc biệt đúng nếu bạn đi ngược lại lời khuyên tiêu chuẩn và sử dụng cùng một thông tin đăng nhập trên nhiều nền tảng khác nhau. Nhưng việc bảo vệ mật khẩu không chỉ là trách nhiệm của bạn.

Vậy các trang web lưu trữ mật khẩu của bạn như thế nào? Làm cách nào để họ giữ cho thông tin đăng nhập của bạn an toàn? Và phương pháp an toàn nhất mà các trang web có thể sử dụng để theo dõi mật khẩu của bạn là gì?

Tình huống tồi tệ nhất: Mật khẩu được lưu ở dạng plain text

Hãy xem xét tình huống này: Một trang web lớn đã bị tấn công. Tội phạm mạng đã phá vỡ bất kỳ biện pháp bảo mật cơ bản nào mà website đó thực hiện và có thể lợi dụng một lỗ hổng trong cấu ​​trúc của trang web. Bạn là khách hàng. Trang web đó đã lưu trữ thông tin chi tiết của bạn. Trang đảm bảo rằng mật khẩu của bạn đã được bảo mật. Nhưng chuyện gì sẽ xảy ra nếu tảng web đó lưu trữ mật khẩu của bạn dưới dạng plain text.

Mật khẩu ở dạng plain text giống như một miếng mồi béo bở. Chúng không sử dụng thuật toán để không thể đọc được. Tin tặc có thể đọc mật khẩu đơn giản như cách bạn đang đọc bài viết này.

Mật khẩu của bạn có phức tạp đến đâu cũng không còn quan trọng nữa: Cơ sở dữ liệu plain text là danh sách mật khẩu của tất cả mọi người dùng, được viết rõ ràng, bao gồm bất kỳ số và ký tự bổ sung nào bạn sử dụng.

Và ngay cả khi tin tặc không bẻ khóa trang web, bạn có thực sự muốn một quản trị viên trang web nào đó có thể xem chi tiết đăng nhập bí mật của bạn không?

Bạn có thể nghĩ đây là một vấn đề rất hiếm gặp, nhưng ước tính có khoảng 30% trang web thương mại điện tử sử dụng phương pháp này để "bảo mật" dữ liệu của khách hàng!

Một cách dễ dàng để tìm hiểu xem một trang web có lưu mật khẩu dưới dạng plain text hay không là ngay sau khi đăng ký, bạn nhận được email từ trang web liệt kê chi tiết đăng nhập của bạn. Trong trường hợp đó, bạn có thể muốn thay đổi bất kỳ trang web nào khác sử dụng cùng mật khẩu đó và liên hệ với công ty để cảnh báo rằng bảo mật của họ quá kém. Tất nhiên không thể khẳng định 100%, nhưng đây là một dấu hiệu khá rõ ràng và trang web thực sự không nên gửi những thứ như vậy trong email.

Mã hóa: Nghe rất ổn, nhưng thực ra không hoàn hảo

Nhiều trang web chuyển sang mã hóa để bảo vệ mật khẩu của người dùng. Quá trình mã hóa xáo trộn thông tin của bạn, khiến nó không thể đọc được cho đến khi có hai khóa - một do bạn nắm giữ (đó là chi tiết đăng nhập của bạn) và khóa còn lại của công ty được đề cập - cùng xuất hiện.

Bạn cũng đã sử dụng mã hóa ở nhiều nơi khác. Face ID trên iPhone là một dạng mã hóa. Passcode cũng vậy. Internet chạy trên mã hóa: HTTPS bạn có thể thấy trong URL có nghĩa là trang web bạn đang truy cập sử dụng giao thức SSL hoặc TLS để xác minh kết nối và tổng hợp dữ liệu. Nhưng trên thực tế, mã hóa không hoàn hảo.

Mã hóa có thể khiến bạn cảm thấy an tâm. Nhưng nếu một trang web đang bảo vệ mật khẩu của bạn bằng cách sử dụng mật khẩu của chính họ, thì tin tặc có thể đánh cắp mật khẩu của trang, sau đó tìm mật khẩu của bạn và giải mã nó. Tin tặc sẽ chẳng tốn mấy công sức để tìm ra mật khẩu của bạn; đó là lý do tại sao các cơ sở dữ liệu chính luôn là mục tiêu lớn.

Nếu khóa (mật khẩu) của trang được lưu trữ trên cùng server với mật khẩu của bạn, mật khẩu của bạn cũng có thể ở dạng plain text.

Hash: Đơn giản đến ngạc nhiên (nhưng không phải lúc nào cũng hiệu quả)

Hash mật khẩu nghe có vẻ giống như một biệt ngữ, nhưng nó chỉ đơn giản là một dạng mã hóa bảo mật hơn.

Thay vì lưu trữ mật khẩu dưới dạng plain text, trang web chạy mật khẩu thông qua một hàm hash, như MD5, Secure Hashing Algorithm (SHA) -1 hoặc SHA-256, biến mật khẩu thành một bộ chữ số hoàn toàn khác. Đây có thể là số, chữ cái hoặc bất kỳ ký tự nào khác.

Mật khẩu của bạn có thể là IH3artMU0. Nó có thể biến thành 7dVq$@ihT và nếu một tin tặc đột nhập vào cơ sở dữ liệu, đó là tất cả những gì hắn có thể thấy. Tin tặc không thể giải mã lại mật khẩu ban đầu.

Thật không may, mọi thứ không an toàn như bạn nghĩ. Cách này tốt hơn plain text nhưng vẫn không thành vấn đề đối với tội phạm mạng.

Điều quan trọng là một mật khẩu cụ thể tạo ra một hash cụ thể. Có một lý do chính đáng cho điều đó: Mỗi khi bạn đăng nhập bằng mật khẩu IH3artMU0, nó sẽ tự động chuyển qua hàm hash đó và trang web cho phép bạn truy cập nếu hàm hash đó và hàm trong cơ sở dữ liệu của trang web khớp nhau.

Để đối phó, tin tặc đã phát triển rainbow table, tương tự như những cheat sheet. Chúng là danh sách các mã hash, đã được những người khác sử dụng làm mật khẩu, mà một hệ thống tinh vi có thể nhanh chóng chạy qua, giống như một cuộc tấn công Brute Force.

Nếu bạn đã chọn một mật khẩu thực sự kém, mật khẩu đó sẽ nằm ở vị trí cao trên rainbow table và có thể dễ dàng bị bẻ khóa. Các mật khẩu phức tạp sẽ mất nhiều thời gian hơn.

Tốt nhất hiện nay: Salting và Slow Hash

Salting là một trong các kỹ thuật mạnh mẽ hơn được thực hiện bởi các trang web bảo mật nhất
Salting là một trong các kỹ thuật mạnh mẽ hơn được thực hiện bởi các trang web bảo mật nhất

Không có gì là bất khả xâm phạm: Tin tặc luôn tích cực hoạt động để bẻ khóa bất kỳ hệ thống bảo mật mới nào. Hiện tại, có các kỹ thuật mạnh mẽ hơn được thực hiện bởi các trang web bảo mật nhất. Đó là những hàm hash thông minh.

Salted hash dựa trên cryptographic nonce, một tập dữ liệu ngẫu nhiên được tạo cho từng mật khẩu riêng lẻ, thường rất dài và phức tạp.

Các chữ số bổ sung này được thêm vào đầu hoặc cuối của mật khẩu (hoặc kết hợp email - mật khẩu) trước khi nó chuyển qua hàm hash, để chống lại các nỗ lực được thực hiện bằng rainbow table.

Nói chung không có vấn đề gì nếu các salt được lưu trữ trên các server giống như hash. Bẻ khóa một bộ mật khẩu có thể khiến tin tặc tốn rất nhiều thời gian, thậm chí còn khó hơn nếu mật khẩu của bạn thuộc dạng phức tạp.

Đó là lý do tại sao bạn luôn cần sử dụng mật khẩu mạnh, bất kể bạn tin tưởng vào khả năng bảo mật của trang web như thế nào.

Các trang web cũng sử dụng slow hash như một biện pháp bổ sung. Các hàm hash nổi tiếng nhất (MD5, SHA-1 và SHA-256) đã xuất hiện được một thời gian và được sử dụng rộng rãi vì chúng tương đối dễ thực hiện.

Trong khi vẫn áp dụng salt, các slow hash thậm chí còn tốt hơn trong việc chống lại bất kỳ cuộc tấn công nào dựa vào tốc độ. Bằng cách hạn chế tin tặc thực hiện ít lần thử hơn đáng kể mỗi giây, chúng sẽ mất nhiều thời gian hơn để bẻ khóa, do đó làm cho các lần thử trở nên kém giá trị hơn, đồng thời cũng cho tỷ lệ thành công thấp hơn.

Tội phạm mạng phải cân nhắc xem liệu nó có đáng tấn công các hệ thống slow hash tốn thời gian so với "các bản sửa lỗi nhanh" hay không. Ví dụ, các tổ chức y tế thường có độ bảo mật thấp hơn, vì vậy dữ liệu thu được từ đó vẫn có thể được bán với số tiền đáng ngạc nhiên.

Nếu một hệ thống đang bị “căng thẳng”, nó có thể chậm lại hơn nữa. Coda Hale, từng là nhà phát triển phần mềm của Microsoft, so sánh MD5 với hàm slow hash đáng chú ý nhất, bcrypt (các hàm khác bao gồm PBKDF-2 và scrypt):

"Thay vì bẻ khóa mật khẩu sau mỗi 40 giây (như với MD5), tôi sẽ bẻ khóa chúng sau mỗi 12 năm hoặc lâu hơn (khi hệ thống sử dụng bcrypt). Mật khẩu của bạn có thể không cần loại bảo mật đó và bạn có thể cần thuật toán so sánh nhanh hơn, nhưng bcrypt cho phép bạn chọn sự cân bằng giữa tốc độ và bảo mật".

Và bởi vì một hàm slow hash vẫn có thể được thực hiện trong vòng chưa đầy một giây, nên người dùng sẽ không bị ảnh hưởng.

Thứ Năm, 08/07/2021 10:37
52 👨 458
0 Bình luận
Sắp xếp theo
    ❖ Giải pháp bảo mật