Situs web yang menyediakan file ISO untuk diunduh sering akan memberikan checksum md5 dari file-file itu, yang dapat kita gunakan untuk mengonfirmasi bahwa file telah diunduh dengan benar, dan belum rusak.
Mengapa ini perlu? Tentunya sifat koreksi kesalahan TCP sudah cukup. Jika suatu paket tidak diterima dengan benar, itu akan dikirim ulang. Bukankah sifat koneksi TCP / IP menjamin integritas data?
Jawaban:
Seperti yang telah dicatat oleh orang lain, ada banyak kemungkinan untuk korupsi data di mana checksum apa pun pada lapisan transport tidak dapat membantu, seperti korupsi yang sudah terjadi sebelum checksum dihitung di sisi pengirim, MITM menyadap dan memodifikasi aliran (data juga sebagai checksum), korupsi terjadi setelah memvalidasi checksum di ujung penerima, dll.
Jika kita mengabaikan semua kemungkinan lain ini dan fokus pada spesifikasi TCP checksum itu sendiri dan apa yang sebenarnya dilakukannya dalam memvalidasi integritas data, ternyata sifat-sifat checksum ini sama sekali tidak komprehensif dalam hal mendeteksi kesalahan. Cara algoritma checksum ini dipilih agak mencerminkan persyaratan untuk kecepatan dalam kombinasi dengan periode waktu (akhir 1970-an).
Ini adalah bagaimana TCP checksum dihitung:
Ini berarti bahwa setiap korupsi yang menyeimbangkan saat menjumlahkan data dengan cara ini akan tidak terdeteksi. Ada sejumlah kategori korupsi pada data yang akan diizinkan tetapi hanya sebagai contoh sepele: mengubah urutan kata 16 bit akan selalu tidak terdeteksi.
Dalam praktiknya, ia menangkap banyak kesalahan umum tetapi sama sekali tidak menjamin integritas. Ini juga dibantu oleh bagaimana lapisan L2 juga melakukan pemeriksaan integritas (mis. CRC32 dari frame Ethernet), meskipun hanya untuk transmisi pada tautan lokal, dan banyak kasus data yang rusak bahkan tidak pernah diteruskan ke tumpukan TCP.
Memvalidasi data menggunakan hash yang kuat, atau lebih disukai tanda tangan kriptografi, berada pada tingkat yang berbeda dalam hal memastikan integritas data. Keduanya bahkan tidak bisa dibandingkan.
sumber
Mungkin ada jutaan alasan mengapa seseorang harus memeriksa md5sum tetapi beberapa memang muncul di pikiran saya:
Dan itu hanya membutuhkan beberapa detik saja.
sumber
TCP / IP menjamin integritas data *. Tetapi itu tidak menjamin bahwa 100% file telah diunduh. Mungkin ada banyak alasan mengapa ini bisa terjadi. Misalnya: Ada kemungkinan bahwa Anda dapat memasang ISO yang melewatkan satu atau dua byte di suatu tempat di tengah. Anda tidak akan memiliki masalah dengan itu sampai Anda memerlukan satu atau dua file tertentu yang rusak. Membandingkan checksum memastikan bahwa Anda benar-benar mengunduh seluruh file.
* lihat komentar
sumber
TCP checksum hanya 16 bit. Ini berarti bahwa, dengan tidak adanya checksum lain, satu dari setiap 65536 paket yang rusak akan diterima sebagai tidak rusak. Jika, misalnya, Anda mengunduh gambar DVD 8GB melalui tautan berisik dengan tingkat korupsi 1%, Anda akan mengharapkan 81 paket yang rusak tidak terdeteksi.
MD5 adalah checksum yang jauh lebih besar, pada 128 bit. Peluang 81 paket itu menghasilkan sesuatu dengan checksum yang sama seperti aslinya adalah sekitar 1 dalam 1.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
sumber
Ada beberapa alasan untuk memverifikasi checksum file yang diunduh melalui HTTP:
1 sumber dalam komentar karena lol rep
sumber
Daniel, Bergantung pada alat yang Anda gunakan untuk Unduhan ISO per katakan. Jika itu Say Firefox. Ini mungkin menunjukkan unduhan file. Namun Anda mungkin tidak memiliki ISO lengkap. Jika Anda membakarnya lalu mencoba menggunakannya, informasi mungkin hilang. Ini terjadi dari waktu ke waktu pada file hosting server yang berbeda.
Ini adalah praktik yang baik untuk setidaknya membandingkan ukuran file (total byte atau bit) memastikan mereka cocok. Windows akan menunjukkan jumlah byte file yang berbeda kemudian mengatakan Linux. Pemeriksaan jumlah MD5 akan menunjukkan nilai yang sama dengan OS mana yang digunakan. Semoga ini bisa membantu sedikit. Bersulang...
sumber
Saya melihat banyak jawaban menarik tetapi ada hal terakhir yang perlu dipertimbangkan: Masalah Dua Jenderal
Masalah dua jenderal dan masalah Jenderal Bizantium mempertimbangkan secara khusus implikasi dari mentransfer informasi secara andal melalui saluran yang tidak dapat diandalkan.
Checksums hanyalah lapisan lain dari "peningkatan keandalan", dan lapisan dengan peluang kegagalan yang sangat kecil. Ini adalah alasan mengapa sangat populer.
sumber