Bảng cầu vồng: cơn ác mộng tồi tệ nhất của mật khẩu của bạn

Đừng để tên dễ thương của họ đánh lừa bạn, những điều này là đáng sợ.

Trong khi bạn có thể nghĩ về Rainbow Table như đồ nội thất đầy màu sắc chiết trung, thì đó không phải là những thứ mà chúng ta sẽ thảo luận. Các bảng Rainbow mà chúng ta đang nói đến được sử dụng để crack mật khẩu và là một công cụ khác trong kho vũ khí ngày càng tăng của hacker .

Bảng cầu vồng là gì? Làm thế nào có thể một cái gì đó với một tên dễ thương và âu yếm như vậy có hại?

Khái niệm cơ bản đằng sau bảng cầu vồng

Tôi là một kẻ xấu đã cắm ổ USB vào máy chủ hoặc máy trạm, khởi động lại nó và chạy chương trình sao chép tệp cơ sở dữ liệu bảo mật chứa tên người dùng và mật khẩu vào ổ USB của tôi.

Mật khẩu trong tệp được mã hóa nên tôi không thể đọc chúng. Tôi sẽ phải crack các mật khẩu trong tập tin (hoặc ít nhất là mật khẩu quản trị viên) để tôi có thể sử dụng chúng để truy cập vào hệ thống.

Các tùy chọn để bẻ mật khẩu là gì? Tôi có thể thử và sử dụng một chương trình bẻ khóa mật khẩu brute-force như John the Ripper, mà lấy đi vào tập tin mật khẩu, cố gắng lặp đi lặp lại đoán mọi kết hợp có thể có của một mật khẩu. Tùy chọn thứ hai là tải một từ điển bẻ khóa mật khẩu có chứa hàng trăm nghìn mật khẩu thường được sử dụng và xem nó có nhận được bất kỳ lần truy cập nào không. Các phương pháp này có thể mất vài tuần, vài tháng hoặc thậm chí nhiều năm nếu mật khẩu đủ mạnh.

Khi mật khẩu được "cố" chống lại một hệ thống, nó được "băm" bằng cách sử dụng mã hóa để mật khẩu thực tế không bao giờ được gửi trong văn bản rõ ràng trên đường truyền thông. Điều này ngăn cản kẻ nghe trộm chặn mật khẩu. Mã băm của mật khẩu thường trông giống như một đống rác và thường có độ dài khác với mật khẩu ban đầu. Mật khẩu của bạn có thể là "shitzu" nhưng băm mật khẩu của bạn sẽ trông giống như "7378347eedbfdd761619451949225ec1".

Để xác minh người dùng, hệ thống lấy giá trị băm được tạo bởi hàm băm mật khẩu trên máy khách và so sánh nó với giá trị băm được lưu trữ trong một bảng trên máy chủ. Nếu băm phù hợp, thì người dùng được xác thực và cấp quyền truy cập.

Việc băm mật khẩu là một hàm 1 chiều, có nghĩa là bạn không thể giải mã băm để xem nội dung của mật khẩu rõ ràng là gì. Không có chìa khóa để giải mã băm khi nó được tạo ra. Không có "vòng giải mã" nếu bạn muốn.

Các chương trình bẻ khóa mật khẩu hoạt động theo cách tương tự như quy trình đăng nhập. Chương trình bẻ khóa bắt đầu bằng cách lấy mật khẩu thô, chạy chúng thông qua một thuật toán băm, chẳng hạn như MD5, và sau đó so sánh đầu ra băm với các băm trong tập tin mật khẩu bị đánh cắp. Nếu nó tìm thấy một trận đấu thì chương trình đã bẻ khóa mật khẩu. Như chúng tôi đã nói, quá trình này có thể mất rất nhiều thời gian.

Nhập các bảng Rainbow

Bảng Rainbow về cơ bản là một tập hợp lớn các bảng được precomputed chứa đầy các giá trị băm được so khớp trước với các mật khẩu thô có thể. Các bảng Rainbow về cơ bản cho phép tin tặc đảo ngược hàm băm để xác định mật khẩu thô có thể là gì. Có thể có hai mật khẩu khác nhau để tạo ra cùng một mã băm nên không quan trọng để tìm ra mật khẩu ban đầu là gì, miễn là nó có cùng một giá trị băm. Mật khẩu văn bản thô có thể không phải là cùng một mật khẩu do người dùng tạo ra, nhưng miễn là mã băm được khớp, thì không quan trọng mật khẩu ban đầu là gì.

Việc sử dụng các Bảng Cầu vồng cho phép mật khẩu bị bẻ gãy trong một khoảng thời gian rất ngắn so với các phương thức brute-force, tuy nhiên, sự cân bằng là phải mất rất nhiều dung lượng (đôi khi Terabyte) để giữ các Bảng Cầu vồng, Lưu trữ những ngày này là phong phú và giá rẻ để thương mại-off này không phải là một thỏa thuận lớn như nó đã được một thập kỷ trước khi ổ đĩa terabyte không phải là một cái gì đó mà bạn có thể nhận tại Best Buy địa phương.

Tin tặc có thể mua các bảng Rainbow đầu tiên để bẻ khóa mật khẩu của các hệ điều hành dễ bị tấn công như Windows XP, Vista, Windows 7 và các ứng dụng sử dụng MD5 và SHA1 làm cơ chế băm mật khẩu của họ (nhiều nhà phát triển ứng dụng web vẫn sử dụng các thuật toán băm này).

Làm thế nào để bảo vệ chính mình chống lại các cuộc tấn công mật khẩu dựa trên bảng Rainbow

Chúng tôi muốn có lời khuyên tốt hơn về điều này cho tất cả mọi người. Chúng tôi muốn nói rằng mật khẩu mạnh hơn sẽ giúp ích, nhưng điều này không thực sự đúng bởi vì nó không phải là điểm yếu của mật khẩu, đó là điểm yếu liên quan đến hàm băm được sử dụng để mã hóa mật khẩu.

Lời khuyên tốt nhất mà chúng tôi có thể cung cấp cho người dùng là tránh xa các ứng dụng web giới hạn độ dài mật khẩu của bạn thành một số lượng ký tự ngắn. Đây là một dấu hiệu rõ ràng về thói quen xác thực mật khẩu trường học dễ bị tổn thương. Độ dài và độ phức tạp của mật khẩu mở rộng có thể giúp ích một chút, nhưng không phải là hình thức bảo vệ được bảo đảm. Mật khẩu của bạn càng dài thì Bảng Cầu vồng càng lớn, thì hacker có nhiều tài nguyên vẫn có thể thực hiện được điều này.

Lời khuyên của chúng tôi về cách bảo vệ chống lại Rainbow Table thực sự có ý nghĩa đối với các nhà phát triển ứng dụng và quản trị viên hệ thống. Họ đang ở trên hàng đầu khi nói đến việc bảo vệ người dùng chống lại kiểu tấn công này.

Dưới đây là một số mẹo dành cho nhà phát triển về bảo vệ chống lại các cuộc tấn công của Bảng Rainbow:

  1. Không sử dụng MD5 hoặc SHA1 trong hàm băm mật khẩu của bạn. MD5 và SHA1 là thuật toán băm mật khẩu lỗi thời và hầu hết các bảng cầu vồng được sử dụng để crack mật khẩu được xây dựng để nhắm mục tiêu các ứng dụng và hệ thống bằng cách sử dụng các phương pháp băm này. Xem xét sử dụng các phương pháp băm hiện đại hơn như SHA2.
  2. Sử dụng mật mã "Muối" trong thói quen băm mật khẩu của bạn. Thêm một mật mã muối vào hàm băm mật khẩu của bạn sẽ giúp bảo vệ chống lại việc sử dụng các bảng Rainbow được sử dụng để crack mật khẩu trong ứng dụng của bạn. Để xem một số ví dụ mã hóa về cách sử dụng một muối mật mã để giúp "Rainbow-Proof" ứng dụng của bạn, vui lòng xem trang WebMasters By Design có một bài viết tuyệt vời về chủ đề này.

Nếu bạn muốn xem làm thế nào tin tặc thực hiện một cuộc tấn công mật khẩu bằng cách sử dụng Rainbow Tables, bạn có thể đọc bài viết tuyệt vời này về cách sử dụng các kỹ thuật này để khôi phục mật khẩu của riêng bạn.