Bài viết đã tiến hành kiểm tra ba loại mật khẩu khác nhau bằng một công cụ bẻ khóa mật khẩu mã nguồn mở nhằm xác định phương pháp thực sự hiệu quả trong việc đảm bảo an toàn cho mật khẩu.

Thế nào là Bẻ khoá Mật khẩu?

Khi bạn tạo tài khoản trên các dịch vụ trực tuyến, thông tin đăng nhập của bạn thường được mã hóa và lưu trữ trên máy chủ. Quá trình này sử dụng một thuật toán đặc biệt gọi là thuật toán băm (hashing algorithm) để chuyển đổi mật khẩu của bạn thành một chuỗi ký tự phức tạp, gọi là hash.

Cách Tự Kiểm Tra Độ Mạnh Của Mật Khẩu Bằng Phương Pháp Bẻ Khóa
Cách tự kiểm tra độ mạnh của mật khẩu bằng phương pháp bẻ khóa

Hash là gì?

Hash không phải là một chuỗi ngẫu nhiên mà là kết quả của một công thức toán học cụ thể. Chuỗi hash này chỉ có thể được tạo ra từ mật khẩu bạn nhập, và đối với người không chuyên môn, nó trông như một mớ hỗn độn không thể hiểu. Điều đặc biệt là việc tạo hash rất nhanh, nhưng giải mã ngược lại hash để khôi phục mật khẩu ban đầu thì cực kỳ khó khăn, gần như không thể thực hiện được.

Tại sao hash lại quan trọng?

Thay vì lưu trữ mật khẩu gốc, các dịch vụ trực tuyến chỉ lưu trữ chuỗi hash. Khi bạn đăng nhập, hệ thống sẽ chạy mật khẩu bạn nhập qua thuật toán băm để tạo một chuỗi hash mới, rồi so sánh với chuỗi hash đã lưu trên máy chủ. Nếu trùng khớp, bạn sẽ được cấp quyền truy cập. Phương pháp này giúp bảo vệ thông tin của bạn trong trường hợp dữ liệu trên máy chủ bị xâm phạm.

Cách tin tặc bẻ khóa mật khẩu

Nếu file chứa hash mật khẩu bị rò rỉ, tin tặc sẽ cố gắng bẻ khóa mật khẩu để tìm ra nội dung gốc. Vì việc tạo hash nhanh hơn nhiều so với giải mã ngược, tin tặc thường tạo danh sách các mật khẩu tiềm năng (gọi là tấn công từ điển) và đưa chúng qua thuật toán băm. Sau đó, chúng so sánh các hash được tạo ra với cơ sở dữ liệu bị rò rỉ. Nếu một hash trùng khớp, tin tặc có thể xác định được mật khẩu gốc tương ứng.

Làm sao để bảo vệ mật khẩu của bạn?

Việc hiểu cách hoạt động của hash giúp bạn nhận thức được tầm quan trọng của việc bảo mật thông tin cá nhân. Hãy sử dụng mật khẩu phức tạp, kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt. Ngoài ra, kích hoạt xác thực hai yếu tố (2FA) và thay đổi mật khẩu định kỳ sẽ giúp giảm thiểu rủi ro bị xâm phạm.

Hướng dẫn tự kiểm tra mật khẩu bằng HashCat

Để minh họa, chúng ta sẽ sử dụng Hashcat, một công cụ bẻ khóa mật khẩu mã nguồn mở và miễn phí mà bất kỳ ai cũng có thể tiếp cận. Công cụ này sẽ giúp bạn hiểu rõ hơn về cách tin tặc có thể bẻ khóa mật khẩu và tại sao việc tạo mật khẩu mạnh lại quan trọng.

Trong bài kiểm tra này, chúng ta sẽ thử bẻ khóa ba mật khẩu phổ biến:

  1. 123456: Đây là một trong những mật khẩu phổ biến và kém an toàn nhất trên thế giới. Theo thống kê từ NordPass, hơn 3 triệu tài khoản đã sử dụng mật khẩu này, trong đó có 1,2 triệu tài khoản thuộc cấp độ công ty.
  2. Susan48!: Mật khẩu này được tạo theo cách mà hầu hết người dùng nghĩ là an toàn: kết hợp chữ cái, số và ký hiệu. Dù đáp ứng tiêu chuẩn bảo mật cơ bản, nó vẫn tồn tại những điểm yếu dễ bị khai thác.
  3. t9^kJ$2q9a: Một mật khẩu được tạo ngẫu nhiên bằng công cụ của Bitwarden. Với 10 ký tự bao gồm chữ hoa, chữ thường, số và ký hiệu, mật khẩu này đại diện cho tiêu chuẩn cao trong việc bảo vệ thông tin.

Trước tiên, chúng ta sẽ mã hóa các mật khẩu này bằng thuật toán MD5. Đây là cách chúng sẽ xuất hiện nếu bị lưu trữ trong một file mật khẩu:

  • 123456: e10adc3949ba59abbe56e057f20f883e
  • Susan48!: df1ce7227606805745ee6cbc644ecbe4
  • t9^kJ$2q9a: 450e4e0ad3ed8766cb2ba83081c0a625

Bây giờ, chúng ta sẽ sử dụng Hashcat để cố gắng bẻ khóa các mật khẩu này và khám phá mức độ dễ dàng của việc bẻ khóa phụ thuộc vào độ phức tạp của mật khẩu.

Thử bẻ khóa đơn giản với phương pháp Dictionary Attack

Dictionary Attack là một trong những phương pháp tấn công mật khẩu phổ biến nhất, trong đó tin tặc sử dụng một danh sách các mật khẩu tiềm năng và yêu cầu công cụ như Hashcat chuyển đổi chúng thành mã hóa (MD5) để so sánh với các hash đã lưu trữ. Trong ví dụ này, chúng ta sẽ sử dụng file “rockyou.txt” – một trong những cơ sở dữ liệu mật khẩu bị rò rỉ lớn nhất lịch sử – làm danh sách từ điển.

Cách Tự Kiểm Tra Độ Mạnh Của Mật Khẩu Bằng Phương Pháp Bẻ Khóa
Thử bẻ khóa đơn giản với phương pháp Dictionary Attack

Để bắt đầu, hãy mở Terminal trong thư mục chứa Hashcat. Sau khi Terminal được mở và chỉ đến thư mục này, bạn có thể chạy Hashcat bằng lệnh sau:

.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt

Ý nghĩa của lệnh:

  • .\hashcat: Kích hoạt ứng dụng Hashcat.
  • -m 0: Chỉ định loại mã hóa sử dụng. Trong trường hợp này là MD5, được xác định là số 0 theo tài liệu hướng dẫn của Hashcat.
  • -a 0: Chỉ định kiểu tấn công. Dictionary Attack được gắn nhãn là số 0.
  • passwordfile.txt rockyou.txt: File đầu tiên chứa các hash mật khẩu cần bẻ khóa, file thứ hai là danh sách từ điển mật khẩu.
  • -o results.txt: Chỉ định file nơi kết quả sẽ được lưu, ở đây là “results.txt”.

Mặc dù file “rockyou.txt” có dung lượng rất lớn, Hashcat chỉ mất 6 giây để xử lý toàn bộ dữ liệu. Kết quả hiển thị trong file “results.txt” cho thấy mật khẩu 123456 đã bị bẻ khóa thành công. Tuy nhiên, các mật khẩu khác như Susan48!t9^kJ$2q9a không bị bẻ khóa vì chúng không có trong danh sách từ điển “rockyou.txt”.

Điều này chứng minh rằng các mật khẩu như 123456, vốn được sử dụng phổ biến, dễ dàng bị xâm phạm, trong khi các mật khẩu phức tạp hơn như Susan48! hoặc được tạo ngẫu nhiên như t9^kJ$2q9a có khả năng chống lại các cuộc tấn công từ điển thông thường.

Thử sức với Brute Force phức tạp hơn: Tấn công mật khẩu với kỹ thuật che giấu

Dictionary Attack là một phương pháp bẻ khóa hiệu quả khi mật khẩu cần phá giải nằm trong một danh sách mật khẩu phổ biến, chẳng hạn như một cơ sở dữ liệu rò rỉ lớn. Phương pháp này nhanh chóng, dễ thực hiện nhưng lại không thể bẻ khóa các mật khẩu không xuất hiện trong danh sách từ điển. Vì vậy, nếu muốn kiểm tra độ mạnh thực sự của mật khẩu, Brute Force là một lựa chọn đáng cân nhắc.

Khác với Dictionary Attack chỉ thử các mật khẩu được thiết lập sẵn, Brute Force kiểm tra mọi tổ hợp ký tự có thể. Phương pháp này tuy khó thực hiện và mất nhiều thời gian hơn nhưng cuối cùng có thể bẻ khóa bất kỳ mật khẩu nào. Tuy nhiên, thời gian cần thiết đôi khi kéo dài rất lâu, phụ thuộc vào độ phức tạp và độ dài của mật khẩu.

Cách Tự Kiểm Tra Độ Mạnh Của Mật Khẩu Bằng Phương Pháp Bẻ Khóa
Thực hiện một cuộc tấn công Brute Force bằng Hashcat

Để thực hiện một cuộc tấn công Brute Force cơ bản, hãy sử dụng lệnh Hashcat như sau:

.\hashcat -m 0 -a 3 target.txt --increment ?a?a?a?a?a?a?a?a?a?a -o output.txt

Ý nghĩa của lệnh:

  • -a 3: Xác định phương pháp Brute Force.
  • target.txt: File chứa hash mật khẩu cần bẻ khóa.
  • –increment: Chỉ định Hashcat thử mật khẩu từ độ dài 1 ký tự, sau đó tăng dần.
  • ?a?a?a?a?a?a?a?a?a?a: Mask này yêu cầu Hashcat thử mọi ký tự (chữ hoa, chữ thường, số, ký hiệu) ở mỗi vị trí.
  • -o output.txt: Lưu kết quả vào file “output.txt”.

Với mask này, Hashcat bẻ khóa mật khẩu “123456” trong vòng 15 giây, do đây là một trong những mật khẩu phổ biến và yếu nhất. Mật khẩu “Susan48!” phức tạp hơn, với thời gian dự kiến khoảng 4 ngày để bẻ khóa nếu dùng phương pháp Brute Force không tối ưu.

Tối ưu hóa Brute Force với Mask cụ thể

Người tạo mật khẩu thường có xu hướng đặt ký tự theo các mẫu dễ đoán. Ví dụ, “Susan48!” được tạo bằng cách viết hoa chữ cái đầu, thêm số và ký hiệu ở cuối. Để tận dụng điều này, chúng ta có thể dùng một mask cụ thể:

.\hashcat -m 0 -a 3 -1 ?a target.txt ?u?l?l?l?l?a?a?a -o output.txt

Ý nghĩa của mask:

  • ?u: Chỉ định ký tự in hoa ở vị trí đầu tiên.
  • ?l: Chỉ định ký tự thường ở các vị trí tiếp theo.
  • ?a: Thử bất kỳ ký tự nào (chữ, số, ký hiệu) ở các vị trí sau cùng.

Với mask này, Hashcat bẻ khóa “Susan48!” trong 3 phút 10 giây, nhanh hơn đáng kể so với 4 ngày.

Đối với mật khẩu phức tạp hơn

Mật khẩu như “t9^kJ$2q9a”, được tạo ngẫu nhiên và không theo bất kỳ mẫu nào, yêu cầu Brute Force mà không có mask cụ thể. Tuy nhiên, với độ dài 10 ký tự và tổ hợp ký tự đầy đủ, Hashcat sẽ gặp giới hạn về số lượng kết hợp. Các chuyên gia bảo mật cho biết, để phá mật khẩu này, cần đến 3 năm – điều này cho thấy tính hiệu quả của việc sử dụng mật khẩu phức tạp, ngẫu nhiên.

Kết luận, Brute Force là phương pháp mạnh mẽ để kiểm tra độ mạnh của mật khẩu, nhưng tối ưu hóa qua mask cụ thể có thể rút ngắn đáng kể thời gian cần thiết, đặc biệt đối với các mật khẩu theo mẫu phổ biến.

Yếu tố bảo vệ mật khẩu Bitwarden và lời khuyên để tăng cường bảo mật

Điểm khiến mật khẩu của Bitwarden khó bị bẻ khóa chính là độ dài 10 ký tựtính ngẫu nhiên, không thể đoán trước. Đây là những yếu tố quan trọng làm giảm hiệu quả của các cuộc tấn công bẻ khóa, đặc biệt khi tin tặc không thể sử dụng mask để dự đoán vị trí của từng thành phần như chữ, số hoặc ký hiệu.

Để bảo vệ mật khẩu của bạn, hãy đảm bảo rằng nó càng dài càng tốt và bao gồm một sự pha trộn ngẫu nhiên giữa ký hiệu, số, chữ hoa và chữ thường. Cách phân bổ ngẫu nhiên này khiến các công cụ bẻ khóa gặp khó khăn trong việc dự đoán và thử nghiệm các tổ hợp, làm tăng đáng kể thời gian và công sức để phá vỡ mật khẩu.

Những lời khuyên quen thuộc như “sử dụng một mảng ký tự”“tạo mật khẩu dài nhất có thể” thực sự là những yếu tố then chốt giúp mật khẩu trở nên an toàn hơn. Hiểu rõ lý do đằng sau những nguyên tắc này sẽ giúp bạn dễ dàng nhận ra sự khác biệt giữa một mật khẩu yếu, dễ bị tấn công và một mật khẩu mạnh mẽ, khó xâm phạm.

Bình luận (0 bình luận)