Các cuộc tấn công này có thể được sử dụng chống lại bất kỳ loại mã hóa nào, với mức độ thành công khác nhau. Các cuộc tấn công brute-force trở nên nhanh hơn và hiệu quả hơn với mỗi ngày trôi qua khi phần cứng máy tính mới hơn được phát hành nhanh hơn.
Brute-Force Khái niệm cơ bản
Các cuộc tấn công brute-force rất đơn giản để hiểu. Kẻ tấn công có một tệp được mã hóa - giả sử là cơ sở dữ liệu mật khẩu LastPass hoặc KeePass của bạn. Họ biết rằng tệp này chứa dữ liệu họ muốn xem và họ biết rằng có khóa mã hóa mở khóa. Để giải mã nó, họ có thể bắt đầu thử mọi mật khẩu có thể và xem liệu nó có dẫn đến một tập tin được giải mã hay không.
Chúng tự động thực hiện điều này với một chương trình máy tính, do đó tốc độ mà ai đó có thể tăng cường mã hóa khi phần cứng máy tính trở nên nhanh hơn và nhanh hơn, có khả năng thực hiện nhiều phép tính hơn mỗi giây. Tấn công brute-force có khả năng sẽ bắt đầu bằng mật khẩu một chữ số trước khi chuyển sang mật khẩu có hai chữ số và cứ như vậy, hãy thử tất cả các kết hợp có thể cho đến khi một hoạt động.
Một "tấn công từ điển" là tương tự và cố gắng từ trong một từ điển - hoặc một danh sách các mật khẩu phổ biến - thay vì tất cả các mật khẩu có thể. Điều này có thể rất hiệu quả, vì nhiều người sử dụng mật khẩu yếu và phổ biến như vậy.
Tại sao những kẻ tấn công không thể tàn bạo-buộc các dịch vụ web
Có sự khác biệt giữa các cuộc tấn công bạo lực trực tuyến và ngoại tuyến. Ví dụ: nếu kẻ tấn công muốn tìm cách xâm nhập vào tài khoản Gmail của bạn, họ có thể bắt đầu thử mọi mật khẩu có thể - nhưng Google sẽ nhanh chóng xóa chúng. Các dịch vụ cung cấp quyền truy cập vào các tài khoản đó sẽ làm giảm các nỗ lực truy cập và cấm các địa chỉ IP cố đăng nhập nhiều lần. Do đó, một cuộc tấn công vào một dịch vụ trực tuyến sẽ không hoạt động tốt bởi vì rất ít nỗ lực có thể được thực hiện trước khi cuộc tấn công sẽ bị dừng lại.
Ví dụ: sau một vài lần đăng nhập không thành công, Gmail sẽ hiển thị cho bạn hình ảnh CATPCHA để xác minh bạn không phải là máy tính tự động thử mật khẩu. Họ có thể sẽ dừng hoàn toàn các lần đăng nhập của bạn nếu bạn đã tiếp tục đủ lâu.
Hashing
Các thuật toán băm mạnh có thể làm chậm các cuộc tấn công bạo lực. Về cơ bản, các thuật toán băm thực hiện công việc toán học bổ sung trên mật khẩu trước khi lưu trữ một giá trị bắt nguồn từ mật khẩu trên đĩa. Nếu sử dụng thuật toán băm chậm hơn, nó sẽ đòi hỏi hàng nghìn lần công việc toán học để thử mỗi mật khẩu và làm chậm đáng kể các cuộc tấn công brute-force. Tuy nhiên, càng cần nhiều công việc, máy chủ hoặc máy tính khác phải làm việc nhiều hơn mỗi khi người dùng đăng nhập bằng mật khẩu của họ. Phần mềm phải cân bằng khả năng phục hồi chống lại các cuộc tấn công brute-force với việc sử dụng tài nguyên.
Tốc độ Brute-Force
Tốc độ tất cả phụ thuộc vào phần cứng. Các cơ quan tình báo có thể xây dựng phần cứng chuyên dụng chỉ để tấn công brute-force, cũng giống như các thợ mỏ Bitcoin xây dựng phần cứng chuyên dụng của riêng họ được tối ưu hóa cho khai thác Bitcoin. Khi nói đến phần cứng người tiêu dùng, loại phần cứng hiệu quả nhất cho các cuộc tấn công brute-force là một card đồ họa (GPU). Vì thật dễ dàng để thử nhiều khóa mã hóa khác nhau cùng một lúc, nhiều thẻ đồ họa chạy song song là lý tưởng.
Vào cuối năm 2012, Ars Technica đã báo cáo rằng một cụm 25-GPU có thể crack mọi mật khẩu Windows dưới 8 ký tự trong vòng chưa đầy sáu giờ. Thuật toán NTLM mà Microsoft đã sử dụng không đủ khả năng phục hồi. Tuy nhiên, khi NTLM được tạo, sẽ mất nhiều thời gian hơn để thử tất cả các mật khẩu này. Điều này không được coi là đủ đe dọa cho Microsoft để làm cho mã hóa mạnh hơn.
Tốc độ ngày càng tăng và trong vài thập kỷ, chúng tôi có thể phát hiện ra rằng ngay cả các thuật toán mã hóa mạnh nhất và các khóa mã hóa mà chúng ta sử dụng ngày nay có thể nhanh chóng bị nứt bởi máy tính lượng tử hoặc bất kỳ phần cứng nào khác mà chúng tôi đang sử dụng trong tương lai.
Bảo vệ dữ liệu của bạn khỏi tấn công Brute-Force
Không có cách nào để tự bảo vệ mình hoàn toàn. Không thể nói phần cứng máy tính sẽ nhanh như thế nào và liệu có bất kỳ thuật toán mã hóa nào mà chúng ta sử dụng ngày nay có điểm yếu sẽ được phát hiện và khai thác trong tương lai hay không. Tuy nhiên, đây là những điều cơ bản:
- Giữ an toàn cho dữ liệu được mã hóa của bạn nơi những kẻ tấn công không thể truy cập vào dữ liệu đó. Một khi họ có dữ liệu của bạn sao chép vào phần cứng của họ, họ có thể thử các cuộc tấn công bạo lực chống lại nó lúc rảnh rỗi của họ.
- Nếu bạn chạy bất kỳ dịch vụ nào chấp nhận thông tin đăng nhập qua Internet, hãy đảm bảo rằng nó hạn chế các lần đăng nhập và chặn những người cố gắng đăng nhập bằng nhiều mật khẩu khác nhau trong một khoảng thời gian ngắn. Phần mềm máy chủ thường được thiết lập để làm điều này ra khỏi hộp, vì nó là một thực hành bảo mật tốt.
- Sử dụng các thuật toán mã hóa mạnh, chẳng hạn như SHA-512. Đảm bảo bạn không sử dụng các thuật toán mã hóa cũ với các điểm yếu đã biết có thể dễ dàng bị bẻ khóa.
- Sử dụng mật khẩu dài, an toàn. Tất cả công nghệ mã hóa trên thế giới sẽ không giúp ích gì nếu bạn đang sử dụng “mật khẩu” hoặc “hunter2” phổ biến.
Các cuộc tấn công brute-force là thứ cần quan tâm khi bảo vệ dữ liệu của bạn, chọn thuật toán mã hóa và chọn mật khẩu. Chúng cũng là một lý do để tiếp tục phát triển các thuật toán mã hóa mạnh mẽ hơn - mã hóa phải theo kịp tốc độ mà nó không được hiệu quả bởi phần cứng mới.