Tôi đã nghiên cứu các cuộc tấn công tiền điện tử khác nhau và một trong những cuộc tấn công mà tôi đã nghiên cứu gần đây là cuộc tấn công tiên tri đệm. Bây giờ, tôi hầu như đã hiểu nó, nhưng có một khía cạnh của cuộc tấn công tiên tri đệm mà các giáo viên khác nhau từ các nguồn khác nhau đã làm tôi bối rối:
Giả sử tôi có một URL:
http://somesite.com/place?ciphertext=aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccdddddddddddddddd
(Giả sử rằng bản mã ở dạng hex và 'aa' là một byte, do đó, tổng cộng, bản mã này bao gồm 32 byte được sắp xếp thành hai khối 16 byte. Trong ví dụ này, khối đầu tiên bắt đầu từ 'aa' đầu tiên và kết thúc bằng chữ 'bb' cuối cùng. Mọi thứ sau đó là khối thứ 2 của bản mã.)
Bây giờ, tôi biết rằng để bắt đầu cuộc tấn công tiên tri đệm, bạn sẽ thêm vào một khối 0 làm vectơ khởi tạo cho bản mã này. Tuy nhiên, tôi đã nhận được các tín hiệu không rõ ràng và không nhất quán về vị trí các số 0 này sẽ được thêm vào.
Ví dụ: một nguồn làm cho có vẻ như số 0 sẽ được thêm vào dưới dạng tiền tố cho khối bản mã đầu tiên, vì vậy URL trên sẽ trở thành:
http://somesite.com/place?ciphertext=000000000000000000000000000000000aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Tuy nhiên, một nguồn khác cho rằng dường như các số 0 sẽ thay thế khối bản mã đầu tiên, vì vậy URL sẽ trở thành:
http://somesite.com/place?ciphertext=000000000000000000000000000000000ccccccccccccccccdddddddddddddddd
Tuy nhiên, một nguồn khác làm cho có vẻ như bạn thêm các số 0 vào cuối bản mã như sau:
http://somesite.com/place?ciphertext=aaaaaaaaaaaaaaaabbbbbbbbbbbbbbccccccccccccccccdddddddddddddd000000000000000000000000000000000
Đó là nó, hoặc nó là tùy chọn?
Ngoài ra, phương pháp cố gắng tấn công tiên tri đệm ở trên giả định rằng bản mã có trong một URL, nhưng nếu bạn muốn giải mã một tệp như cookie hoặc thứ gì đó tương tự thì sao? Khi tấn công qua một URL, bạn có thể nhận được các phản hồi như trạng thái 200 và 500 phản hồi từ máy chủ. Tuy nhiên, nếu đó chỉ là một tệp trên máy tính mà bạn đang cố giải mã, thì cái gì sẽ đóng vai trò là máy chủ? Theo như tôi biết, nếu đó chỉ là một tệp thì không có máy chủ nào cung cấp cho bạn bất kỳ phản hồi nào hoặc bất kỳ lỗi "badPaddingException" nào hoặc bất kỳ lỗi nào tương tự.Điều này cũng có nghĩa là không có máy chủ nào thực sự biết các byte trung gian được sử dụng trong mã hóa. Sau đó, bạn sẽ giải mã một tệp (trái ngược với URL) bằng cách sử dụng phương pháp tấn công tiên tri đệm như thế nào?