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