Rainbow table là gì?

Noun Security

Rainbow table là danh sách tất cả các hoán vị (permutation) của bản rõ (plaintext) có thể có của mật khẩu được mã hóa cụ thể cho một thuật toán băm (hash algorithm) nhất định.

Rainbow table thường được sử dụng bởi phần mềm bẻ khóa mật khẩu (password cracking) cho các cuộc tấn công an ninh mạng. Tất cả các hệ thống máy tính yêu cầu xác thực dựa trên mật khẩu đều lưu trữ cơ sở dữ liệu về mật khẩu được liên kết với tài khoản người dùng, thường được mã hóa thay vì bản rõ (plaintext) như một biện pháp bảo mật.

Sau khi kẻ tấn công (attacker) giành được quyền truy cập vào cơ sở dữ liệu mật khẩu của hệ thống, trình bẻ khóa mật khẩu (password cracker) sẽ so sánh danh sách băm tiềm năng được biên dịch trước của rainbow table với mật khẩu được băm trong cơ sở dữ liệu. Rainbow table liên kết các khả năng bản rõ với mỗi hàm băm đó, sau đó kẻ tấn công có thể khai thác để truy cập mạng với tư cách là người dùng đã được xác thực.

Rainbow table làm cho việc bẻ khóa mật khẩu nhanh hơn nhiều so với các phương pháp trước đó, chẳng hạn như bẻ khóa brute-force và các cuộc tấn công từ điển (dictionary attack). Tùy thuộc vào phần mềm cụ thể, rainbow table có thể được sử dụng để bẻ khóa mật khẩu gồm 14 ký tự chữ và số trong khoảng 160 giây. Tuy nhiên, phương pháp này sử dụng rất nhiều RAM do số lượng lớn dữ liệu trong một rainbow table như vậy.

Rainbow table chỉ mới trở nên khả thi gần đây vì dung lượng RAM khả dụng (available) trong các máy tính cũ không đủ. Một rainbow table duy nhất cho file chữ và số chuẩn có kích thước gần 4 gigabyte (GB). Việc thêm các ký hiệu vào sẽ làm tăng dung lượng bộ nhớ cần thiết.

Learning English Everyday