Kỹ thuật tấn công brute force (Brute force attack)

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tìm hiểu và phân tích đánh giá độ an toàn của thuật toán MD5 (Trang 37 - 40)

Chương 3: ĐỘ AN TOÀN CỦA THUẬT TOÁN MD5

3.3 Tính an toàn của hàm băm MD5 đối với ứng dụng bảo vệ mật khẩu

3.3.3. Kỹ thuật tấn công brute force (Brute force attack)

Tấn công Brute force dựa trên nguyên lý vét cạn. Nội dung chính của kiểu tấn công này trong việc tấn công hàm băm MD5 là duyệt lần lượt từng thông điệp đầu vào có khả năng là mật khẩu trong bộ ký tự được lựa chọn sau đó băm giá trị này bằng hàm băm MD5 và kiểm tra giá trị này với giá trị băm cho trước, nếu chúng bằng nhau có nghĩa là attacker đã tấn công thành công, còn nếu không thì attacker tìm một bức thông điệp khác và băm chúng bằng hàm băm cho đến khi nào chúng tạo ra giá trị băm mong muốn. Ta thấy kiểu tấn công này không phụ thuộc vào cấu trúc của hàm băm mà nó chỉ phụ thuộc không gian xây dựng mật khẩu. Mật khẩu càng dài và chứa nhiều loại ký tự thì không gian mật khẩu càng lớn. Khi đó thời gian để tìm được mật khẩu mong muốn càng dài.

Thời gian này có thể là vài giây, vài phút, vài giờ, vài ngày thậm chí hàng trăm năm phụ thuộc vào chiều dài mật khẩu là 1, 2, 3 ký tự hay lên đến 15 ký tự. Với mật khẩu có chiều dài nhỏ hơn 4 ký tự thuộc tập các chữ cái (a..z), (A...Z), (0...9) thực hiện trên máy tính thông thường (có tốc độ xử lý 1 triệu phép tính/

giây) thì chỉ mất vài giây để tìm ra mật khẩu nhưng nếu mật khẩu có chiều dài là 6 ký tự thì phải mất khoảng 15 giờ đồng hồ mới có khả năng tìm ra. Do vậy với kiểu tấn công này thực hiện trên các máy tính thông thường là không khả thi tức là ở mức độ nào đó việc sử dụng hàm băm trong việc mã hóa mật khẩu vẫn an toàn khi kẻ tấn công sử dụng kiểu tấn công brute force trên máy tính thông thường.

Tuy nhiên hiện nay xu hướng sử dụng phần cứng chuyên biệt với sự kết hợp của các giải thuật xử lý song song phân cụm đã làm tăng tốc độ tính toán của máy tính lên gấp nhiều lần. Chỉ hơn 1 phút kẻ tấn công có thể tìm ra mật khẩu có độ dài tối đa là 6 ký tự khi sử dụng bộ xử lý đồ họa 4GPU. Với việc tăng số lượng các nút tính toán và tăng số card đồ họa xử lý thì ngay cả những mật khẩu có độ dài lớn hơn cũng có thể bị tấn công.

Có nhiều công cụ hỗ trợ kiểu tấn công brute force như md5brute, cain&able, BarsWF.

3.3.4 Kỹ thuật tấn công sử dụng bộ xử lý đồ họa GPU.

GPU viết tắt cho Graphics Processing Unit được gọi là Đơn vị xử lý đồ họa (đôi khi được gọi VPU – Visual Processing Unit) là một bộ vi xử lý chuyên dụng nhận nhiệm vụ tăng tốc, xử lý đồ họa cho bộ vi xử lý trung tâm CPU. Các GPU hiện đại có năng suất rất cao trong xử lý đồ họa máy tính. Với cấu trúc mang tính xử lý song song mạnh mẽ của mình, GPU cho thấy nó hiệu quả hơn CPU rất nhiều trong nhiều thuật toán phức tạp.

Trong giải mã MD5, một hệ thống máy tính được cài đặt bộ xử lý đồ họa song song nhiều lõi sẽ khiến cho tốc độ xử lý của máy tính tăng gấp ngàn lần.

Điều đó cũng đồng nghĩa với việc mức độ thành công để kẻ tấn công có khả năng tìm ra mật khẩu khi sử dụng công nghệ GPU là rất lớn.

Một thử nghiệm được tiến hành tại trung tâm máy tính hiệu năng cao trường Đại học Bách khoa Hà Nội với việc sử dụng một cụm GPU bao gồm hai nút, một nút được trang bị một card đồ họa kép NVIDIA GeForce GTX 295, một card Tesla C1060, và số còn lại nút được trang bị 2 card đồ họa kép NVIDIA GeForce GTX 295.

Kết quả được kiểm tra bởi các đầu vào: S = {az, AZ ,0-9}, số thread trong một khối là 128, số các khối là 256 (16x16). Các thuật toán song song thực hiện trên môi trường phần cứng nêu trên chỉ ra rằng tốc độ tạo ra và kiểm tra mật khẩu, tốc độ tìm ra mật khẩu tăng đáng kể khi so sánh với phiên bản dựa trên CPU. Bảng sau so sánh tốc độ tạo và kiểm tra mật khẩu trên GPU và trên CPU.

Bảng 3.1 : Minh họa tốc độ kiểm tra khóa MD5 trên CPU và các GPU

Số lượng CPU/GPU Số lượng khóa kiểm tra trong 1s

1 CPU 1.436.192 khóa/1s

1 GPU 194.379.500 khóa/1s

2 GPU 352.468.356 khóa/1s

4 GPU 678.091.868 khóa/1s

Bảng 3.2 : Minh hoạ hiệu năng thực hiện công việc giải mã MD5 trên CPU và GPU Độ dài mật

khẩu tối đa

Số lượng mật khẩu 1 GPU 2GPU 4GPU

1 62 0.33ms 0.28ms 0.25ms

2 3.906 0.65ms 0.58ms 0.44ms

3 242.234 2 ms 1.4ms 0.88ms

4 15.018.571 76 ms 47ms 22ms

5 931.151.403 5 s 2.9s 1.4 s

6 57.731.386.987 318s 194s 91 s

7 3.579.345.993.195 5h 7m 2h 49m 1h 28m 8 221.919.451.578.091 13d 5h 7d 7h 3d 19h

Theo bảng 3.1 ta có thể thấy, trong 1 giây có thể kiểm tra được 678.091.868 mật khẩu. Nếu so với việc kiểm tra trên các CPU thì tốc độ tạo và kiểm tra mật khẩu tăng khoảng 135 lần (trên một GPU), 472 lần (4 GPU) so với các phiên bản dựa trên CPU. Bảng 3.2 là thời gian để khôi phục mật khẩu (có chiều dài tối đa 1-8 ký tự) trên GPU. Với hệ thống thử nghiệm hiện tại mật khẩu MD5 với độ dài 7 ký tự - thuộc tập hợp{az, AZ ,0-9} có thể coi là không an toàn.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tìm hiểu và phân tích đánh giá độ an toàn của thuật toán MD5 (Trang 37 - 40)

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

(57 trang)