Cuộc tấn công Shattered tìm thấy một tệp/tin nhắn B khác có cùng hàm băm SHA-1 như một tệp/tin nhắn A, nhưng chỉ khi một số phần dữ liệu trong A có đặc điểm sẽ không ngẫu nhiên xảy ra. Đối với hầu hết các định dạng tệp/ngữ nghĩa dữ liệu, điều đó vẫn cho phép các đối thủ tấn công không thể thay đổi ý nghĩa/hình thức/tác dụng của A, nhưng có thể ảnh hưởng một chút đến nội dung nhị phân của A.
Tôi có dữ liệu nguồn A và hàm băm H(A) của A này. Tài liệu bị hỏng của google có thể tạo dữ liệu B mới để tạo ra H(A) này không?
Câu trả lời phụ thuộc vào dữ liệu A, bản thân dữ liệu này phụ thuộc vào cách A được lấy hoặc tạo ra, điều mà câu hỏi không nêu hoặc không cho phép đoán.
- Đúng, không cần nỗ lực tính toán, nếu A bắt đầu bằng một trong hai giá trị 320 byte cụ thể mà cuộc tấn công Shattered đã đưa ra. Chúng ta chỉ có thể thay thế cái này bằng cái kia để tạo thành B với cùng hàm băm SHA-1. Điều này có thể (trong số những thứ khác) được sử dụng để dễ dàng tạo hai tệp PDF hợp lệ khác nhau với nội dung byte hơi khác nhau và giao diện trực quan hoàn toàn khác nhau.
- Không, nếu A nhỏ hơn khoảng 125 byte, khi tuân theo phương thức trong bài báo Shattered, ngay cả với nỗ lực tính toán của họ. Nhưng chúng ta phải giảm giới hạn đó xuống khoảng 19 byte nếu chúng ta thay đổi phương pháp và chấp nhận tăng nỗ lực tính toán theo một hệ số khiêm tốn (khoảng 250 nghìn) lên khoảng $2^{81}$ Băm SHA-1.
- Đúng, với nỗ lực tính toán của Shattered, nếu kẻ thù có thể chọn 128 byte đầu tiên của A. Đó vẫn là cuộc tấn công Shattered, nhưng nó đòi hỏi công việc khá lớn. Chúng tôi có thể hạ giới hạn đó xuống 64 byte là chúng tôi chấp nhận sự gia tăng nỗ lực tính toán của điểm trước đó.
- Đúng, như một phần mở rộng của 3, nếu đối thủ biết điều đầu tiên $n$ byte của A và có thể chọn tiếp theo $128+(-n\bmod 64)$ byte. Và chúng ta phải hạ thấp nó xuống $64+(-n\bmod 64)$ byte với nỗ lực tính toán tăng lên. Điều này có thể được mở rộng hơn nữa cho kẻ thù chọn thông tin có giá trị khoảng 20 byte trong bất kỳ lần đầu tiên nào. $64\,f$ byte của A với kiến thức về phần đó của A và tăng thêm công việc theo hệ số không lớn hơn $f$.
- Đúng, là hệ quả của 4, nếu A được chuẩn bị theo cách dưới sự kiểm soát của đối thủ, ví dụ: nếu A là tài liệu PDF, hình ảnh PNG, hình ảnh "ISO" của CD/DVD, có thể là tệp thực thi được chuẩn bị bằng các công cụ do kẻ thù tạo ra. Đối với chứng chỉ kỹ thuật số, xem câu hỏi này.
- Không, nếu A vượt qua bài kiểm tra do tác giả Shattered cung cấp và chúng tôi tuân theo phương pháp tấn công của họ. Nhưng thử nghiệm của họ không thể bảo vệ chống lại các cuộc tấn công khác có chi phí tương đương và không có thử nghiệm nào có thể bảo vệ chống lại các cuộc tấn công với chi phí tăng nhẹ.
- Không, nếu có ít nhất 64 bit entropy trong 64 byte đầu tiên của A mà kẻ thù không biết tại thời điểm mà kẻ thù có thể ảnh hưởng đến A, cho bất kỳ nỗ lực tính toán khả thi nào. Điều đó bao gồm A ngẫu nhiên và chứng chỉ kỹ thuật số do cơ quan cấp chứng chỉ cấp bằng biện pháp phòng ngừa đơn giản là sử dụng số sê-ri ngẫu nhiên khi bắt đầu chứng chỉ.
Tôi muốn đảm bảo rằng định dạng của tệp không bị giới hạn ở PDF.
Phần mở rộng và cuộc tấn công Shattered không giới hạn ở PDF, xem 3/4/5. Nó có thể được thực hiện (với một số công việc) với bất kỳ định dạng tệp nào mà không cần kiểm tra dự phòng bên trong; đó là, hầu hết. Hơn nữa, các tiền tố tương tự như 1 (chuyên dùng để giả mạo PDF rẻ tiền) có thể được tạo ra cho nhiều định dạng bao gồm JPEG, PNG, GIF, MP4, JPEG2000, định dạng Portable Excutable, v.v., với công việc khá lớn nhưng khả thi chỉ được thực hiện Một lần. Các tiền tố của 1 thậm chí hoạt động với một số định dạng tệp hiện có, ví dụ:. âm thanh và video cho trình phát bỏ qua những gì họ không nhận ra (vì câu hỏi không yêu cầu A và B khác nhau hoạt động khác nhau; điều đó khó đạt được với các tiền tố 1 cho thứ không phải PDF và trình phát tiêu chuẩn không được tạo ra cho mục đích này).
Nếu nghi ngờ: an toàn hơn là xin lỗi, hãy giả sử rằng có thể tấn công và sử dụng hàm băm không bị gián đoạn và rộng hơn đáng kể so với SHA-1
(nguyên tắc) của bài báo là bổ sung hai khối tin nhắn
Không chính xác. Nó được bổ sung một vài bit trong hai liên tiếp khối thông báo (mỗi khối 64 byte), nội dung nào được chọn (với công việc khá lớn nhưng khả thi) làm hàm của trạng thái băm trước khi xử lý hai khối thông báo này. Do đó, nội dung của hai khối thông báo này trong A không phải là tùy ý, nó phải khớp với 128 byte được tính toán một cách đau đớn này. Sự trùng khớp như vậy sẽ không xảy ra một cách tình cờ (ví dụ: đối với A ngẫu nhiên), nó yêu cầu một số quyền kiểm soát đối với A và kiến thức về trạng thái của hàm băm trước khi băm hai khối này. Kiến thức như vậy có thể thu được bằng cách biết một phần của thông báo A trước hai khối A này mà người ta phải chọn để thực hiện cuộc tấn công.
Một cuộc tấn công hoạt động cho A tùy ý sẽ là một cuộc tấn công tiền định (thứ hai). Cuộc tấn công như vậy không được biết đến với SHA-1.