.15 Các file bảng cầu vồng cho thuật toán MD5 vừa tạo

Một phần của tài liệu An toàn mạng Bài kết thúc học phần: Tìm hiểu về công cụ Rainbowcrack dùng để bẻ khóa mật khẩu (Trang 35)

Tiếp đến, ta sẽ thực hiện quá trình sắp xếp lại các bảng cầu vồng sử dụng câu lệnh:

35

Hình 3.16 Giao diện dịng lệnh thực hiện rtsort bảng MD5

Trong Raibowcrack chỉ hỗ trợ bẻ khóa mã băm MD5 có độ dài 16 bytes và bản rõ có độ dài từ 0 → 15.

lm HashLen=16 PlaintextLen=0-15

a. Thực hiện bẻ khóa cho 1 mã băm MD5 đơn

Thực hiện bẻ khóa với mã băm MD5 “a384b6463fc216a5f8ecb6670f86456a” có bản rõ là “qwert”.

Để thực hiện bẻ khóa với mã băm đơn ta sử dụng optiton “-h” ,câu lệnh thực hiện bẻ khóa với mã băm trên như sau:

rcrack ./rainbow_tables_md5 -h a384b6463fc216a5f8ecb6670f86456a

36 Quá trình “rcrack” mã băm MD5 đơn thành cơng.

b. Thực hiện bẻ khóa cho nhiều mã băm MD5

Khi thực hiện bẻ khóa nhiều mã băm MD5 thì các mã băm được lưu trữ trong 1 file .txt mỗi mã băm sẽ được viết trên 1 dòng, trong demo này ta sử dụng file

hash_md5.txt có các mã băm như sau:

Hình 3.18 File hash_md5.txt chứa mã băm MD5

Để thực hiện bẻ khóa cho nhiều mã băm được chứa trong 1 file, ta sử dụng option “-l”, câu lệnh thực hiện bẻ khóa với danh sách mã băm trên như sau:

rcrack ./rainbow_tables_md5 -l hash_md5.txt

37 Q trình bẻ khóa thành cơng mã băm MD5 trong file hash_md5.txt.

3.4. Demo bẻ khóa mã băm SHA1

3.4.1. Kịch bản

Thực hiện tạo bảng cầu vồng để tra cứu cho thuật toán băm SHA1, với charset: ascii-32-95, bản rõ có độ dài: 1→ 5, chain-len: 2100, chain-num: 8000000, table_index: 0 → 4, sẽ tạo ra 5 bảng cầu vồng. Với xác xuất thành cơng tính được là 99.9%.

Sau đó thực hiện bẻ khóa mật khẩu cho mã băm riêng lẻ, cho file chứa mã băm. 3.4.2. Demo

Ở đây sẽ thực hiện demo với mã băm SHA1 của bản rõ là chuỗi có độ dài từ 1 → 5 và là kết hợp của chữ cái in hoa, in thường, chữ số và các ký tự đặc biệt.

Thực hiện “rtgen” cho mã băm SHA1 sử dụng các câu lệnh: ▪ rtgen sha1 ascii-32-95 1 5 0 2100 8000000 0

rtgen sha1 ascii-32-95 1 5 1 2100 8000000 0

rtgen sha1 ascii-32-95 1 5 2 2100 8000000 0

rtgen sha1 ascii-32-95 1 5 3 2100 8000000 0

rtgen sha1 ascii-32-95 1 5 4 2100 8000000 0

38

Hình 3.20 Giao diện dịng lệnh thực hiện câu lệnh “rtgen sha1”

Sau khi chạy xong tất cả các câu lệnh, ta sẽ thu được 5 file định dạng “.rt”, mỗi file có kích thước 125 MB.

Hình 3.21 Các file bảng cầu vồng cho thuật toán SHA1 vừa tạo

Tiếp đến, ta sẽ thực hiện quá trình sắp xếp lại các bảng cầu vồng sử dụng câu lệnh:

39

Hình 3.22 Giao diện dòng lệnh rtsort cho bảng SHA1

Trong Raibowcrack chỉ hỗ trợ bẻ khóa mã băm SHA1 có độ dài 20 bytes và bản rõ có độ dài từ 0 → 20.

lm HashLen=20 PlaintextLen=0-20

a. Thực hiện bẻ khóa cho nhiều mã băm SHA1

Khi thực hiện bẻ khóa nhiều mã băm SHA1 thì các mã băm được lưu trữ trong 1 file .txt mỗi mã băm sẽ được viết trên 1 dòng, trong demo này ta sử dụng file

hash_sha1.txt có các mã băm như sau:

Hình 3.23 File hash_sha1.txt chứa mã băm SHA1

Để thực hiện bẻ khóa cho nhiều mã băm được chứa trong 1 file, ta sử dụng option “-l”, câu lệnh thực hiện bẻ khóa với danh sách mã băm trên như sau:

40

Hình 3.24 Quá trình rcrack mã băm SHA1 trong file hash_sha1.txt

Q trình bẻ khóa thành cơng mã băm SHA1 trong file hash_sha1.txt.

3.5. Demo bẻ khóa mã băm SHA256

3.5.1. Kịch bản

Thực hiện tạo bảng cầu vồng để tra cứu cho thuật toán băm SHA256, với charset: ascii-32-95, bản rõ có độ dài: 1→ 5, chain-len: 2100, chain-num: 8000000, table_index: 0 → 4, sẽ tạo ra 5 bảng cầu vồng. Với xác xuất thành cơng tính được là 99.9%.

Sau đó thực hiện bẻ khóa mật khẩu cho mã băm riêng lẻ, cho file chứa mã băm. 3.5.2. Demo

Ở đây sẽ thực hiện demo với mã băm SHA256 của bản rõ là chuỗi có độ dài từ 1 → 5 và là kết hợp của chữ cái in hoa, in thường, chữ số và các ký tự đặc biệt.

Thực hiện “rtgen” cho mã băm SHA256 sử dụng các câu lệnh: ▪ rtgen sha256 ascii-32-95 1 5 0 2100 8000000 0

rtgen sha256 ascii-32-95 1 5 1 2100 8000000 0

41 ▪ rtgen sha256 ascii-32-95 1 5 3 2100 8000000 0

rtgen sha256 ascii-32-95 1 5 4 2100 8000000 0

Câu lệnh được thực hiện và chạy như sau:

Hình 3.25 Giao diện dịng lệnh khi thực hiện 1 câu lệnh “rtgen sha256”

Sau khi chạy xong tất cả các câu lệnh, ta sẽ thu được 5 file định dạng “.rt”, mỗi file có kích thước 125 MB.

Hình 3.26 Các file của bảng cầu vồng cho thuật toán SHA256 vừa tạo

Tiếp đến, ta sẽ thực hiện quá trình sắp xếp lại các bảng cầu vồng sử dụng câu lệnh:

42

Hình 3.27 Giao diện dịng lệnh rtsort bảng SHA256

Trong Raibowcrack chỉ hỗ trợ bẻ khóa mã băm SHA256 có độ dài 32 bytes và bản rõ có độ dài từ 0 → 20.

lm HashLen=32 PlaintextLen=0-20

a. Thực hiện bẻ khóa cho nhiều mã băm SHA256

Khi thực hiện bẻ khóa nhiều mã băm SHA256 thì các mã băm được lưu trữ trong 1 file .txt mỗi mã băm sẽ được viết trên 1 dòng, trong demo này ta sử dụng file

hash_sha256.txt có các mã băm như sau:

Hình 3.28 File hash_sha256.txt chứa mã băm SHA256

Để thực hiện bẻ khóa cho nhiều mã băm được chứa trong 1 file, ta sử dụng option “-l”, câu lệnh thực hiện bẻ khóa với danh sách mã băm trên như sau:

43

Hình 3.29 Quá trình rcrack mã băm SHA256 trong file hash_sha256.txt

Quá trình bẻ khóa thành cơng mã hash SHA256 trong file hash_sha256.txt.

Chương 4. Rainbowcrack với giao diện đồ họa

Để cài đặt Rainbowcrack với giao diện đồ họa, ta vào trang web sau :

https://project-rainbowcrack.com/index.htm, từ trang web sẽ xuất hiện các phiên bản của

Rainbowcrack.

44 Từ trang download trên, ta tải về phiên bản phù hợp với máy tính đang sử dụng. Ở đây, em chọn phiên bản dành cho Windows 10.

Khi tải về, ta sẽ có được 1 file nén, giải nén file ta sẽ có được thư mục “rainbowcrack-1.8-win64” có các file sau:

Hình 4.2 Thư mục chứa Rainbowcrack

Ở đây ra chú ý đến file “rcrack_gui.exe”, bởi đây là file chứa giao diện đồ họa của cơng cụ rainbowcrack, khi mở cơng cụ sẽ có giao diện như sau:

Hình 4.3 Giao diện đồ họa của Rainbowcrack

Tiếp đến ở đây, để có thể bẻ khóa mã băm, ta cần chú ý đến 2 chức năng chính của cơng cụ đó là “File” và “Rainbow Table”:

45

Hình 4.4 Hai chức năng chọn “File” và chọn “Rainbow Tables”

Để thực hiện bẻ khóa mã băm, đầu tiên ta sử dụng chức năng “File” để đưa mã băm vào, ở đây có ta có thể thêm mã băm đơn, file chứa mã băm hay mã băm ở định dạng pwdump tùy thuộc vào mục đính sử dụng:

Tiếp đến ta sử dụng chức năng “Rainbow Tables” để thêm bảng cầu vồng vào để thực hiện việc bẻ khóa mã băm, các bảng cầu vồng là các bảng phải có sẵn trong máy tính.

Để việc bẻ khóa hàm băm thành cơng, lưu ý mã băm cần bẻ khóa và bảng cầu vồng phải cùng 1 loại hàm băm.

46

Chương 5. Cách phịng tránh bẻ khóa mật khẩu bởi Rainbowcrack Rainbowcrack

5.1. Sử dụng salt

Bảng cầu vồng không hiệu quả đối với các hàm băm một chiều bao gồm salt. saltedhash(password) = hash(password + salt)

saltedhash(password) = hash(hash(password) + salt)

Giá trị salt không phải là bí mật và có thể được tạo ngẫu nhiên và được lưu trữ với mã băm mật khẩu. Giá trị salt lớn ngăn chặn các cuộc tấn cơng tính tốn trước, bao gồm cả bảng cầu vồng, bằng cách đảm bảo rằng mật khẩu của mỗi người dùng được băm là duy nhất. Điều này có nghĩa là hai người dùng có cùng mật khẩu sẽ có các băm mật khẩu khác nhau (giá trị salt khác).

Để thành cơng, kẻ tấn cơng cần tính tốn trước các bảng cho mỗi giá trị salt có thể có. Salt phải đủ lớn, nếu khơng kẻ tấn cơng có thể lập bảng cho từng giá trị salt. Các giá trị salt lớn hơn này làm cho các cuộc tấn cơng tính tốn trước chống lại các hệ thống này không khả thi đối với hầu hết mọi độ dài của mật khẩu. Ngay cả khi kẻ tấn cơng có thể tạo ra một triệu bảng mỗi giây, vẫn sẽ cần hàng tỷ năm để tạo ra các bảng cho tất cả các salt có thể có.

5.2. Sử dụng kỹ thuật kéo dài khóa (Key stretching)

Khi kéo dài được sử dụng, salt, mật khẩu và một số giá trị băm trung gian được chạy qua hàm băm bên dưới nhiều lần để tăng thời gian tính tốn cần thiết để băm mỗi mật khẩu.

Hàm băm mật khẩu của người dùng là sự ghép nối của giá trị salt và giá trị băm cuối cùng. Thời gian được thêm khơng gây chú ý cho người dùng vì họ chỉ phải đợi một phần giây mỗi khi đăng nhập. Mặt khác, việc kéo dài làm giảm hiệu quả của các cuộc tấn công bạo lực tương ứng với số lần lặp lại vì nó làm giảm số lần thử mà kẻ tấn cơng có thể thực hiện trong một khung thời gian nhất định..

Nó cũng làm tăng đáng kể thời gian cần thiết để xây dựng một bảng tính tốn trước, nhưng trong trường hợp khơng có salt, việc này chỉ cần thực hiện một lần.

47

Kết luận

Chúng ta đã tìm hiểu về kỹ thuật đánh đổi bộ nhớ - thời gian (TMTO), cùng với đó là cơng cụ Rainbowcrack sử dụng kỹ thuật TMTO. Biết được cách thức hoạt động để sinh ra các bảng cầu vồng cần thiết, tỷ lệ thành cơng của các bảng từ đó áp dụng vào việc bẻ khóa các hàm băm mật mã cụ thể.

Việc sử dụng công cụ Rainbowcrack thực hiện việc tạo các bảng cầu vồng hay thực hiện việc tra cứu bản rõ trong các bảng muốn nhanh hay chậm cần phải phụ thuộc rất nhiều vào sức mạnh của máy tính, một hạn chế nữa của Rainbowcrack là nó chỉ hỗ trợ việc bẻ khóa mật khẩu với các bản rõ có độ dài nhất định cùng với đó là một số mã băm khơng phải hỗ trợ tất cả các thuật tốn băm. Đây là một cơng cụ bẻ khóa mật khẩu mạnh mẽ, tuy nhiên nó khơng thể nào bẻ khóa được các mật khẩu băm khi sử dụng salt hoặc kỹ thuật kéo dài khóa. Nhứng người sử dụng các hàm băm, có thể áp dụng những kỹ thuật này giúp tránh việc bị bẻ khóa gây ảnh hưởng khơng tốt đến hệ thống.

Trong bài báo cáo, cũng trình bày một số ví dụ demo về việc bẻ khóa các mã băm cụ thể mà Rainbowcrack hỗ trợ cùng với đó là các video demo cụ thể cho từng phần.

Việc có thể bẻ khóa thành cơng các hàm băm một chiều bằng cơng cụ

Rainbowcrack cho chúng ta thấy vẫn có những điểm yếu nhất định ở các hàm băm mật mã.

48

Tài liệu tham khảo

1. “Making a Faster Cryptanalytic Time-Memory Trade-Off “ của Philippe Oechslin năm 2003

2. https://en.wikipedia.org/wiki/Space%E2%80%93time_tradeoff

3. https://en.wikipedia.org/wiki/Rainbow_table

4. Trang phát triển chính thức của dự án Rainbowcrack: https://project-

rainbowcrack.com/

5. “A cryptanalytic time-memory trade-off” của M. E. Hellman năm 1980. IEEE Transactions on Information Theory (page 401 - 406)

6. https://tobtu.com/rtcalc.php#params

Video demo và tài nguyên

▪ Video demo:

https://ptiteduvn-

my.sharepoint.com/:f:/g/personal/trongtv_b18at250_stu_ptit_edu_vn/Et__WJEzjT FOkQeQnRuWFjoBhrTGJjww5BDSoW8GxLO1vw?e=Le6h9x

▪ Tài nguyên: công cụ Rainbowcrcak, các bảng cầu vồng và các file chứa mã băm

https://ptiteduvn-

my.sharepoint.com/:f:/g/personal/trongtv_b18at250_stu_ptit_edu_vn/EjyKQaGg4 BdBlYryf7vdJM4Bsgq3-rDiBTvE988eT_DS-A?e=bQcrqO

Một phần của tài liệu An toàn mạng Bài kết thúc học phần: Tìm hiểu về công cụ Rainbowcrack dùng để bẻ khóa mật khẩu (Trang 35)

Tải bản đầy đủ (PDF)

(49 trang)