Bài viết đã thử nghiệm 3 mật khẩu khác nhau với một công cụ bẻ khóa mật khẩu nguồn mở để tìm ra phương pháp thực sự hiệu quả khi nói đến khả năng bảo mật của mật khẩu.
Bẻ khóa mật khẩu là gì?
Khi bạn tạo tài khoản với dịch vụ trực tuyến, nhà cung cấp thường mã hóa thông tin đăng nhập của bạn trên máy chủ của họ. Điều này được thực hiện bằng thuật toán để tạo "hash", một chuỗi ký tự và số ngẫu nhiên có vẻ duy nhất cho mật khẩu của bạn. Tất nhiên, nó không thực sự ngẫu nhiên, mà là một chuỗi ký tự rất cụ thể mà chỉ mật khẩu của bạn mới có thể tạo ra, nhưng đối với người không có chuyên môn, nó trông giống như một mớ hỗn độn.
Biến một từ thành hash nhanh và dễ hơn nhiều so với việc "giải mã" hash thành từ một lần nữa. Do đó, khi bạn đặt mật khẩu, dịch vụ bạn đang đăng nhập sẽ chạy mật khẩu của bạn qua hash rồi lưu trữ kết quả trên máy chủ của họ.
Nếu file mật khẩu này bị rò rỉ, tin tặc sẽ cố gắng tìm ra nội dung của nó bằng cách bẻ khóa mật khẩu. Vì mã hóa mật khẩu nhanh hơn giải mã nên tin tặc sẽ thiết lập một hệ thống lấy mật khẩu tiềm năng làm đầu vào, mã hóa chúng bằng cùng phương pháp với máy chủ, sau đó so sánh kết quả với cơ sở dữ liệu mật khẩu.
Nếu hàm hash của mật khẩu tiềm năng khớp với bất kỳ mục nào trong cơ sở dữ liệu, tin tặc biết rằng mọi lần truy cập đều khớp với mật khẩu tiềm năng đã thử.
Cách tự bẻ khóa mật khẩu của chính mình bằng HashCat
Hãy thử bẻ khóa một số mật khẩu mà bài viết đã tạo để xem việc này dễ đến mức nào. Để thực hiện việc này, ví dụ sẽ sử dụng Hashcat, một công cụ bẻ khóa mật khẩu miễn phí và mã nguồn mở mà bất kỳ ai cũng có thể sử dụng.
Đối với các bài kiểm tra này, ví dụ sẽ bẻ khóa các mật khẩu sau:
- 123456: Một mật khẩu cổ điển và là cơn ác mộng về an ninh mạng, 123456 là mật khẩu được sử dụng phổ biến nhất trên thế giới. NordPass đã tính toán rằng 3 triệu tài khoản đã sử dụng 123456 làm mật khẩu của họ, trong đó có 1,2 triệu tài khoản bảo vệ tài khoản cấp công ty.
- Susan48!: Một mật khẩu tuân theo các mẫu mà hầu hết người dùng sẽ sử dụng để tạo mật khẩu an toàn. Điều này thường đáp ứng các tiêu chí để bảo vệ mật khẩu cơ bản, nhưng như chúng ta sẽ khám phá sau, nó có một số điểm yếu quan trọng có thể bị khai thác.
- t9^kJ$2q9a: Một mật khẩu được tạo bằng công cụ của Bitwarden. Nó được thiết lập để tạo mật khẩu dài 10 ký tự bằng chữ hoa và chữ thường, ký hiệu và số.
Bây giờ, hãy mã hóa mật khẩu bằng MD5. Đây là cách mật khẩu sẽ hiển thị nếu chúng nằm trong file mật khẩu đã lưu:
- 123456: e10adc3949ba59abbe56e057f20f883e
- Susan48!: df1ce7227606805745ee6cbc644ecbe4
- t9^kJ$2q9a: 450e4e0ad3ed8766cb2ba83081c0a625
Bây giờ, đã đến lúc bẻ khóa chúng.
Thực hiện một cuộc bẻ khóa đơn giản bằng cách sử dụng phương pháp Dictionary Attack
Để bắt đầu, hãy thực hiện phương pháp Dictionary Attack, một trong những phương pháp tấn công mật khẩu phổ biến nhất. Đây là một cuộc tấn công đơn giản, trong đó hacker lấy một danh sách các mật khẩu tiềm năng, yêu cầu Hashcat chuyển đổi chúng thành MD5 và xem có mật khẩu nào khớp với 3 mục nhập ở trên không. Đối với thử nghiệm này, ví dụ sử dụng file "rockyou.txt" làm từ điển của mình, đây là một trong những vụ rò rỉ mật khẩu lớn nhất trong lịch sử.
Để bắt đầu bẻ khóa, tác giả bài viết vào thư mục Hashcat, nhấp chuột phải vào một khoảng trống và nhấn vào Open in Terminal. Bây giờ, Terminal đã mở và được đặt thành thư mục Hashcat, gọi ứng dụng Hashcat bằng lệnh sau:
.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt
Đây là những gì lệnh thực hiện:
- .\hashcat gọi Hashcat.
- -m 0: Xác định loại mã hóa sẽ sử dụng. Trường hợp này sẽ sử dụng MD5, được liệt kê là số 0 trên tài liệu trợ giúp Hashcat.
- -a 0: Xác định cuộc tấn công muốn thực hiện. Tài liệu trợ giúp Hashcat liệt kê Dictionary Attack là số 0, vì vậy chúng ta gọi nó ở đây.
- passwordfile.txt rockyou.txt: File đầu tiên bao gồm 3 mật khẩu được mã hóa mà chúng ta đã thiết lập trước đó. File thứ hai là toàn bộ cơ sở dữ liệu mật khẩu rockyou.
- -o results.txt: Biến này xác định nơi chúng ta đặt kết quả. Trong lệnh, nó đặt các mật khẩu đã bẻ khóa vào file TXT có tên là "results".
Mặc dù rockyou có kích thước rất lớn, Hashcat đã xử lý tất cả chúng trong 6 giây. Trong file kết quả, Hashcat cho biết đã bẻ khóa được mật khẩu 123456, nhưng mật khẩu Susan và Bitwarden vẫn chưa bị bẻ khóa. Đó là vì 123456 đã được người khác sử dụng trong file rockyou.txt, nhưng không ai khác sử dụng mật khẩu Susan hoặc Bitwarden, nghĩa là chúng đủ an toàn để tồn tại sau cuộc tấn công này.
Cách giữ an toàn cho tài khoản khỏi bị bẻ khóa mật khẩu
Các yếu tố chính ngăn cản bài viết bẻ khóa mật khẩu Bitwarden là độ dài của nó (10 ký tự) và tính không thể đoán trước. Do đó, khi tạo mật khẩu, hãy cố gắng tạo mật khẩu dài nhất có thể và phân bổ các ký hiệu, số và chữ hoa đều trong mật khẩu. Điều này ngăn chặn tin tặc sử dụng mask để dự đoán vị trí của từng phần tử và khiến chúng khó bẻ khóa hơn nhiều.
Bạn có thể đã biết những câu châm ngôn cũ về mật khẩu như "sử dụng một mảng ký tự" và "làm cho nó dài nhất có thể". Hy vọng rằng bạn biết lý do tại sao mọi người khuyên dùng những mẹo hữu ích này - chúng là sự khác biệt chính giữa mật khẩu dễ bị bẻ khóa và mật khẩu an toàn.