Untuk waktu yang lama saya berasumsi bahwa tidak benar-benar mungkin untuk mengunduh file yang rusak melalui http selama tidak rusak di server dan implementasi protokol http sudah benar, yang kemungkinan besar merupakan kasus untuk perangkat lunak arus utama modern.
Jadi saya selalu terkekeh ketika melihat situs pengunduhan menawarkan hash md5 dari file yang mereka sediakan untuk diunduh. Saya belum pernah melihat kasus sebelumnya, di mana saya mengunduh file, ukurannya sudah benar tetapi isinya tidak.
Nah, hari ini, saya punya kasus pertama tentang ini. Saya mengunduh iso Ubuntu, mencoba menginstalnya, gagal dan setelah penelitian panjang (saya tidak percaya bahwa alasannya bisa karena unduhan yang rusak) Saya memeriksa MD5 dan apa yang Anda tahu, itu salah (ukurannya salah benar). Jadi saya mengunduh ulang dan mendapat md5 yang salah lagi. Hanya pada unduhan ketiga saya md5 benar.
Jadi pertanyaan saya adalah, mungkinkah pada prinsipnya untuk mendapatkan unduhan yang rusak melalui http, dengan anggapan bahwa implementasinya benar, transfer telah selesai dengan sukses dan bahwa file tersebut benar di server. Jika ini mungkin, lalu bagaimana ini bisa terjadi?
Jawaban:
Ya, itu mungkin, terutama pada koneksi Internet berkualitas buruk - biasanya nirkabel, tetapi beberapa koneksi kabel (seperti yang saya miliki) juga memiliki tingkat kesalahan tinggi pada kecepatan tinggi.
Protokol HTTP tidak memiliki ketentuan untuk memastikan integritas data. Pada layer transport, TCP memang memiliki deteksi kesalahan dengan menggunakan checksum, tetapi itu tidak terlalu dapat diandalkan .
Ada alasan lain untuk menyediakan hash atau tanda tangan digital. Seringkali, file aktual didistribusikan melalui banyak server mirror, yang tidak dapat dijamin 100% aman. Jika tidak ada hash atau tanda tangan untuk diverifikasi, seseorang dengan akses ke mirror (tidak harus sah) dapat mengganti file dan tetap tidak terdeteksi, tanpa harus masuk ke server yang sama sekali berbeda di mana situs web di-host.
Anda bisa mendapatkan verifikasi file secara otomatis jika Anda mengunduh Ubuntu melalui BitTorrent alih-alih HTTP. (Setiap bagian diverifikasi saat unduhan, jadi Anda tidak perlu mengunduh ulang semuanya.)
sumber
Seperti yang dikatakan Grawity, itu mungkin, tetapi di samping itu, apa yang saya perhatikan:
Bahkan dengan koneksi internet yang stabil, pengunduhan dapat dilakukan lebih awal tanpa alasan yang sah - itu bisa saja terjadi.
Dan yang paling penting, jika Anda memiliki memori buruk, ada kemungkinan mengunduh cache dalam memori sebelum ditulis ke disk, dan karena memori buruk, itu menulis file salah. Jika Anda selalu memiliki unduhan yang buruk, ini adalah kemungkinan yang tinggi.
sumber