Apa nilai checksum MD5 jika hash MD5 itu sendiri berpotensi dimanipulasi?

39

Unduhan di situs web terkadang memiliki checksum MD5, memungkinkan orang untuk mengkonfirmasi integritas file. Saya telah mendengar bahwa ini tidak hanya memungkinkan file yang rusak diidentifikasi secara instan sebelum menyebabkan masalah, tetapi juga agar perubahan berbahaya mudah dideteksi.

Saya mengikuti logika sejauh menyangkut korupsi file, tetapi jika seseorang dengan sengaja ingin mengunggah file jahat , maka mereka dapat menghasilkan MD5 checksum yang sesuai dan mempostingnya di situs unduhan beserta file yang diubah. Ini akan menipu siapa pun yang mengunduh file tersebut dengan berpikir bahwa file itu tidak diubah.

Bagaimana MD5 checksum dapat memberikan perlindungan terhadap file yang diubah secara sengaja jika tidak ada cara untuk mengetahui apakah checksum itu sendiri telah dikompromikan?

Kekuatan Austin '' Bahaya ''
sumber
3
Jika kita mengandalkan host situs web yang melihat perbedaan cap waktu yang halus alih-alih hash MD5 yang bertindak sebagai segel keaslian ... maka perlindungan yang disediakan oleh checksum telah cukup banyak menguap.
Austin '' Bahaya '' Powers
4
@BigChris Saya tidak yakin apa yang Anda maksud, tetapi kedengarannya salah. Algoritma hash kriptografi seperti MD5 sepenuhnya tentang data pesan. Dua pesan acak dengan panjang yang sama hampir pasti memiliki hash yang berbeda.
Matt Nordhoff
3
@ MatNordhoff tepatnya. Jika checksum MD5 tidak dihasilkan berdasarkan data file, kemudian apa yang didasarkan pada?
Austin '' Bahaya '' Powers
2
Data hash MD5 akan dikonstruksikan pada data, ya, tetapi tidak akan terlalu banyak upaya untuk membuat file berbahaya dengan hash yang sama. Seperti yang dikatakan, tidak akan ada cara untuk memeriksa apakah file tersebut berbahaya atau tidak. Baca: mscs.dal.ca/~selinger/md5collision
Kinnectus
2
Kadang-kadang hash dipublikasikan di server pihak pertama sedangkan unduhan aktual di-host di mirror pihak ketiga dan / atau CDN.
el.pescado

Jawaban:

89

Saya telah mendengar ini untuk mengizinkan [...] agar perubahan berbahaya juga terdeteksi.

Nah, Anda salah dengar, kalau begitu. Checksum MD5 (atau SHA atau apa pun) disediakan (di sebelah tautan unduhan, khusus ) hanya untuk memverifikasi unduhan yang benar. Satu-satunya hal yang ingin mereka jamin adalah Anda memiliki file yang sama dengan server. Tidak lebih, tidak kurang. Jika server dikompromikan, Anda SOL. Ini sangat sederhana.

Daniel B
sumber
31
+1. Mereka terutama digunakan untuk melindungi terhadap korupsi yang tidak disengaja (kesalahan transfer jaringan, bad sector pada disk, dan sebagainya). Untuk melindungi dari korupsi jahat , checksum perlu datang dari lokasi yang tidak terhubung yang tepercaya. Sama dengan PGP / GPG / pesan yang ditandatangani serupa: mereka hanya sepenuhnya menjamin konten jika Anda percaya dari mana Anda memperoleh kunci publik.
David Spillett
1
Anda mungkin juga ingin menambahkan ke jawaban Anda bahwa tanda tangan difital mengatasi batasan ini (dengan asumsi Anda mempercayai sertifikat / otoritas sertifikasi)
atk
2
Ini bahkan lebih buruk dari ini - jika seseorang dapat merusak lalu lintas Anda ke / dari server, maka bahkan jika server tidak dikompromikan mereka dapat memodifikasi file dan checksum yang Anda terima.
cpast
3
Untuk memperluas: Jika memang menjamin bahwa Anda memiliki file yang sama dengan server, itu akan menjadi langkah keamanan yang sah, karena itu berarti Anda tidak harus mempercayai jaringan. Itulah yang dilakukan oleh MAC di TLS - buktikan bahwa yang Anda dapatkan adalah apa yang dikirim oleh server, tetapi TLS juga tidak dapat melakukan apa pun tentang server yang dikompromikan. Jika hash yang baik ditransmisikan melalui koneksi tepercaya, itu dapat memberikan keamanan (yang berasal dari koneksi tepercaya); jika dikirim melalui koneksi yang sama dengan file, maka itu tidak berguna karena tidak lebih tahan terhadap kerusakan daripada file itu sendiri.
cpast
2
Ini salah. Terkadang checksum disediakan dengan aman, tetapi unduhan tidak. Karena MD5 rusak, checksum MD5 keamanan menyediakan lebih lemah daripada checksum lebih aman, tetapi sebelum MD5 rusak, MD5 disediakan secara aman (mis. Yang ditandatangani atau dikirim HTTP) yang cocok dengan MD5 unduhan adalah bukti kuat bahwa unduhan yang diterima adalah yang disediakan server. Saya akan menambahkan jawaban dengan lebih detail di bawah sekarang.
Matthew Elvey
15

Solusi yang digunakan oleh beberapa sistem manajemen paket seperti dpkg adalah menandatangani hash : gunakan hash sebagai input ke salah satu algoritma penandatanganan kunci publik. Lihat http://www.pgpi.org/doc/pgpintro/#p12

Jika Anda memiliki kunci publik dari penanda tangan, Anda dapat memverifikasi tanda tangan, yang membuktikan bahwa hash tidak dimodifikasi. Ini hanya membuat Anda memiliki masalah untuk mendapatkan kunci publik yang tepat di muka, meskipun jika seseorang pernah merusak distribusi kunci mereka juga harus merusak semua yang Anda bisa verifikasi dengan itu jika tidak Anda akan melihat bahwa ada sesuatu yang aneh sedang terjadi.

pjc50
sumber
9

Asumsi Anda benar. Namun ada pengecualian. Jika server menyediakan file dan halaman di mana hash tidak dikelola oleh entitas yang sama. Dalam hal ini pengembang perangkat lunak mungkin ingin mengatakan "hei orang mengunduh ini dari tempat itu tetapi hanya percaya jika hash = xxxx". (Ini mungkin berguna untuk CDN sebagai contoh). Saya kira ini adalah alasan mengapa seseorang melakukannya sejak awal. Daripada yang lain hanya mengikuti berpikir betapa kerennya menunjukkan hash. Bahkan tidak berpikir betapa bergunanya bahkan file dan hash tidak berada di lokasi yang sama.

Setelah ini dikatakan, ini layak apa adanya. Jangan terlalu banyak berasumsi tentang keamanan seperti yang sudah dinyatakan orang lain. Jika dan hanya jika Anda benar-benar dapat mempercayai hash asli, maka file tersebut bagus. Kalau tidak, seorang penyerang dengan motivasi dan pengetahuan yang cukup dapat merusak file dan hash, bahkan jika ini ada di server yang berbeda dan dikelola oleh entitas yang berbeda.

nsn
sumber
8

Terkadang checksum disediakan dengan aman, tetapi unduhan tidak. Karena MD5 rusak , checksum MD5 keamanan memberikan lebih lemah daripada checksum lebih aman, tetapi sebelum MD5 rusak, MD5 yang disediakan dengan aman (mis. Yang ditandatangani dengan PGP atau GPG atau Gatekeeper, atau diambil alih HTTPS) yang cocok dengan MD5 dari unduhan adalah bukti kuat bahwa unduhan yang diterima adalah yang disediakan oleh server.

Saya telah menulis tentang kurangnya checksum yang aman selama bertahun-tahun, di sini .

Pengguna tidak boleh mengunduh file executable yang tidak dipercaya melalui jaringan yang tidak dipercaya dan menjalankannya, karena risiko serangan MITM. Lihat, misalnya "Ketidakamanan dalam sistem pembaruan otomatis" oleh P. Ruissen, R. Vloothuis.

Adendum 2014: Tidak, BUKAN itu salah "checksum yang diposting di halaman web digunakan untuk mendeteksi modifikasi berbahaya," karena ini ADALAH peran yang dapat mereka lakukan. Mereka memang membantu melindungi dari korupsi yang tidak disengaja, dan jika dilayani dengan HTTPS atau dengan tanda tangan yang terverifikasi (atau lebih baik, keduanya) membantu melindungi dari korupsi jahat! Saya telah mendapatkan checksum lebih dari HTTPS dan memverifikasi bahwa mereka cocok dengan unduhan HTTP berkali-kali.

Saat ini, binari sering didistribusikan dengan hash yang ditandatangani dan diverifikasi secara otomatis, tetapi bahkan ini tidak sepenuhnya aman .

Kutipan dari tautan di atas: "Aplikasi KeRanger ditandatangani dengan sertifikat pengembangan aplikasi Mac yang valid; oleh karena itu, aplikasi ini dapat mem-bypass perlindungan Gatekeeper Apple." ... "Apple sejak itu telah mencabut sertifikat yang disalahgunakan dan memperbarui tanda tangan antivirus XProtect, dan Proyek Transmisi telah menghapus installer jahat dari situs webnya. Palo Alto Networks juga memperbarui penyaringan URL dan Pencegahan Ancaman untuk menghentikan KeRanger dari sistem yang berdampak. Analisis Teknis

Kedua installer Transmisi terinfeksi KeRanger ditandatangani dengan sertifikat yang sah yang dikeluarkan oleh Apple. Pengembang yang mendaftar sertifikat ini adalah perusahaan Turki dengan ID Z7276PX673, yang berbeda dari ID pengembang yang digunakan untuk menandatangani versi sebelumnya dari penginstal Transmisi. Dalam informasi penandatanganan kode, kami menemukan bahwa pemasang ini dibuat dan ditandatangani pada pagi hari tanggal 4 Maret. "

Tambahan 2016:

@Cornstalks: Re. komentar Anda di bawah ini: Salah. Seperti yang baru-baru ini dicatat pada artikel Wikipedia serangan tabrakan yang Anda tautkan ke, "Pada 2007, serangan tabrakan awalan yang dipilih ditemukan terhadap MD5" dan "penyerang dapat memilih dua dokumen yang berbeda secara sewenang-wenang, dan kemudian menambahkan nilai terhitung yang berbeda yang menghasilkan keseluruhan dokumen yang memiliki nilai hash yang sama. " Jadi, bahkan jika MD5 disediakan dengan aman dan penyerang tidak dapat memodifikasinya, penyerang masih BISA menggunakan serangan tabrakan awalan-dipilih dengan malware yang dipilih-awalan yang mengandung malware, yang berarti MD5 TIDAK aman untuk tujuan crypto. Ini adalah alasan utama mengapa US-CERT mengatakan MD5 "harus dianggap rusak secara kriptografis dan tidak cocok untuk penggunaan lebih lanjut."

Beberapa hal lagi: CRC32 adalah sebuah checksum. MD5, SHA, dll. Lebih dari sekadar checksum; mereka dimaksudkan sebagai hash yang aman. Itu berarti mereka seharusnya sangat tahan terhadap serangan tabrakan. Tidak seperti checksum, hash aman yang dikomunikasikan dengan aman melindungi terhadap serangan man-in-the-middle (MITM) di mana MITM berada di antara server dan pengguna. Itu tidak melindungi terhadap serangan di mana server itu sendiri dikompromikan. Untuk melindunginya, orang biasanya mengandalkan sesuatu seperti PGP, GPG, Gatekeeper, dll.

Matthew Elvey
sumber
Saya suka jawaban ini karena menyoroti bagian mendasar dari sebuah checksum - hanya satu metrik, dari banyak, untuk memeriksa validitas isi file. Jika jaringan itu sendiri tidak dipercaya, bukan tidak mungkin untuk membayangkan seseorang mengganti MD5-hash dan menambal binari dengan cepat (seperti yang telah kita lihat pada beberapa node keluar Tor) ... Tentu saja, MD5 tidak memberikan perlindungan terhadap sengaja memodifikasi file karena Anda sudah menaruh kepercayaan pada penyedia file tersebut untuk memulai.
Terobosan
2
MD5 tidak sepenuhnya rusak: serangan di atasnya adalah serangan tabrakan , bukan lampiran preimage (yang akan jauh, jauh lebih buruk). Jika MD5 disediakan dengan aman dan penyerang tidak dapat memodifikasinya, maka penyerang tidak dapat menggunakan serangan tabrakan (dan harus menggunakan serangan preimage), yang berarti MD5 masih cukup aman untuk tujuan itu. MD5 layak dihapus karena kerentanan tabrakannya, tetapi tidak memiliki kerentanan preimage (dikenal) sehingga tidak sepenuhnya rusak. Hanya setengah patah.
Cornstalks
+1! Tapi ... Apakah hash yang ditandatangani benar-benar sama aman ( dapat dipercaya ) dengan hash yang tidak ditandatangani diambil alih https (ssl / tls)? Saya pikir itu masih lebih disukai bahwa hash itu sendiri sudah ditandatangani ...
matpop
4

Ini adalah alasan yang tepat mengapa checksum yang diposting sering membawa penafian yang mengatakan "Ini tidak dapat melindungi dari modifikasi file yang berbahaya". Jadi, jawaban singkatnya adalah "mereka tidak dapat memberikan perlindungan apa pun terhadap file yang sengaja diubah" (meskipun, jika halaman dikirim melalui HTTPS, HTTPS sendiri melindungi terhadap modifikasi; jika file tidak dikirim melalui HTTPS tetapi checksum adalah, maka itu mungkin membantu beberapa, tetapi bukan kasus umum). Siapa pun yang memberi tahu Anda bahwa checksum yang diposting di halaman web digunakan untuk mendeteksi modifikasi berbahaya adalah salah, karena ini bukan peran yang dapat mereka lakukan; semua yang mereka lakukan adalah membantu melindungi dari korupsi yang tidak disengaja , dan malas korupsi jahat (jika seseorang tidak repot-repot mencegat halaman memberi Anda checksum).

Jika Anda ingin melindungi dari modifikasi yang disengaja, Anda harus mencegah orang dari mengacaukan checksum, atau membuatnya mustahil bagi orang lain untuk menghasilkan checksum yang valid. Yang pertama dapat melibatkan memberikannya secara langsung atau serupa (sehingga checksum itu sendiri dipercaya); yang terakhir pergi ke algoritme tanda tangan digital (di mana Anda harus mendapatkan kunci publik dengan aman untuk pengunduh; di TLS, ini dilakukan dengan memercayai otoritas sertifikat secara langsung dan meminta mereka memverifikasi orang lain; itu juga dapat dilakukan melalui jaringan kepercayaan , tetapi intinya adalah bahwa sesuatu harus ditransfer dengan aman di beberapa titik, dan hanya memposting sesuatu di situs Anda tidak cukup).

cpast
sumber
2
Hash dapat melindungi terhadap perubahan berbahaya jika ada yang tahu melalui beberapa sumber independen apa yang seharusnya hash dari versi file yang dapat dipercaya. Nilai memiliki situs web membuat daftar nilai hash dari file-nya tidak terletak pada membiarkan orang yang mengunduh file dari suatu situs memeriksa hash dari file yang diunduh terhadap situs yang sama, tetapi lebih pada membiarkan orang yang tahu dari sumber lain hash dari file yang mereka inginkan , tahu apakah file tersebut akan cocok dengan mereka sebelum mereka mengunduhnya. BTW, satu hal yang ingin saya lihat ...
supercat
... akan menjadi bentuk URL / URI yang menyertakan nilai hash yang diharapkan (mungkin SHA daripada MD5), dan akan menentukan bahwa browser hanya boleh menerima file jika hash cocok dengan yang ditentukan. Dalam kasus di mana file besar yang sama perlu diakses oleh banyak orang, memberikan semua orang itu URL melalui https: // tetapi meminta mereka mengunduh file dari proxy bisa lebih efisien daripada meminta mereka semua menggunakan https: // langsung dari sumbernya.
supercat
@supercat Itulah yang saya maksudkan dengan "menjaga orang agar tidak mengacaukan checksum" - sesuatu harus ditransfer dengan aman, dan jika itu adalah checksum maka checksum dapat membantu melindungi terhadap perusakan yang merusak file.
cpast
MD5 checksum yang dikirimkan melalui beberapa jalur selain dari file itu sendiri akan memberikan perlindungan terhadap gangguan kecuali jika file itu sengaja dibuat untuk memfasilitasi gangguan tersebut. Sebaliknya, sesuatu seperti CRC32 hampir tidak akan memberikan perlindungan terhadap gangguan bahkan jika sumber asli file dapat dipercaya dan CRC32 dikirimkan dengan aman.
supercat
4

Ini benar-benar masalah. Menampilkan checksum di situs yang sama dengan file yang diunduh tidak aman. Seseorang yang dapat mengubah file juga dapat mengubah checksum. Checksum harus ditunjukkan melalui sistem terpisah yang lengkap tetapi ini hampir tidak layak, karena bagaimana memberi tahu pengguna dengan cara yang aman di mana checksum dapat ditemukan.

Solusi yang mungkin adalah penggunaan file yang ditandatangani.

(BTW: MD5 tidak aman di mana pun dan tidak boleh digunakan lagi.)

rawa-goyang
sumber
2

Bagaimana MD5 checksum dapat memberikan perlindungan terhadap file yang diubah secara sengaja jika tidak ada cara untuk mengetahui apakah checksum itu sendiri telah dikompromikan?

Anda sepenuhnya benar. Tujuannya, maka, akan membuat kesalahan "jika" Anda - jika kita tahu bahwa hash kriptografi aman dari suatu file tidak terganggu, maka kami tahu bahwa file tersebut juga tidak dikompromikan.

Misalnya, jika Anda memposting hash file di situs web Anda, dan kemudian menautkan ke salinan file di server mirror pihak ketiga - praktik umum dalam distribusi perangkat lunak kuno-kuno - pengguna Anda dapat dilindungi terhadap beberapa jenis serangan. Jika server mirror berbahaya atau terganggu, tetapi situs web Anda baik-baik saja, mirror tidak akan dapat menumbangkan file Anda.

Jika situs web Anda menggunakan HTTPS, atau Anda menandatangani hash gpg, file Anda juga dapat (sebagian besar) dilindungi dari penyerang jaringan seperti hotspot Wi-Fi berbahaya, simpul keluar Tor yang nakal, atau NSA.

Matt Nordhoff
sumber
1
Mengenai gpg: ingat bahwa ini memiliki masalah yang sama jika Anda tidak sepenuhnya percaya kunci publik belum digantikan dengan kunci publik yang dikompromikan dan konten yang ditandatangani dengan kunci pribadi yang terkait dengan itu.
David Spillett
1

Anda tidak dapat mengubah MD5 checksum tanpa juga memodifikasi file. Jika Anda mengunduh file, maka unduh hash, dan kemudian perhitungan file Anda tidak sesuai dengan apa yang diberikan, apakah hash atau file salah atau tidak lengkap.

Jika Anda ingin "mengikat" file ke sesuatu yang eksternal, seperti penulis, mesin, dll. Itu harus ditandatangani , menggunakan proses tipe PKI dengan sertifikat. Pembuat file, dll. Dapat menandatangani file dengan kunci privatnya, dan Anda dapat memverifikasi tanda tangan dengan kunci publik, yang harus tersedia untuk umum, itu sendiri ditandatangani oleh CA baik oleh Anda dan penulis, dan dapat diunduh, lebih disukai dari beberapa lokasi.

Memodifikasi file akan membuat tanda tangan tidak valid, jadi ini dapat digunakan untuk memverifikasi integritas file juga.

LawrenceC
sumber
1

Hash menunjukkan apakah versi file Anda ("unduhan") berbeda dari versi server. Mereka tidak memberikan jaminan keaslian file.

Tanda tangan digital (enkripsi asimetris + fungsi hash) dapat digunakan untuk memverifikasi bahwa file tersebut belum dimodifikasi oleh siapa pun yang tidak memiliki kunci pribadi yang sesuai.

Pembuat file mem-hash file dan mengenkripsi hash menggunakan kunci pribadi (rahasia) mereka. Dengan begitu, siapa pun dengan kunci publik (non-rahasia) yang sesuai dapat memverifikasi bahwa hash cocok dengan file, tetapi sementara konten file dapat dimodifikasi, tidak ada yang dapat mengganti hash yang sesuai dengan yang cocok dengan file (setelah hash didekripsi menggunakan menggunakan kunci publik) - kecuali jika mereka berhasil memaksa kunci privat, atau mendapatkan akses entah bagaimana.

Apa yang harus menghentikan Tuan "A. Hacker" dari hanya memodifikasi file, kemudian menandatanganinya dengan kunci pribadi mereka sendiri?

Untuk memvalidasi file, Anda harus membandingkan hash-nya dengan hash yang Anda peroleh dengan mendekripsi tanda tangan digital terkait. Jika Anda berpikir file tersebut dari "IMAwesome", maka Anda mendekripsi hash menggunakan kuncinya dan hash tidak cocok dengan file tersebut, karena hash dienkripsi menggunakan kunci A.Hacker.

Oleh karena itu, tanda tangan digital memungkinkan seseorang mendeteksi perubahan tidak disengaja dan jahat.

Tapi bagaimana kita bisa mendapatkan kunci publik IMAwesome? Bagaimana kita memastikan bahwa ketika kita memperoleh kuncinya, sebenarnya bukan kunci A.Hacker dilayani oleh server yang dikompromikan atau serangan manusia-di-tengah? Di sinilah rantai sertifikat dan sertifikat akar tepercaya masuk, tak satu pun di antaranya yang sepenuhnya aman [1] solusi untuk masalah ini, dan keduanya mungkin harus dijelaskan dengan baik di Wikipedia dan pada pertanyaan lain di SO.

[1] Setelah diperiksa, sertifikat root yang dikirimkan dengan OS Microsoft di PC kerja saya menyertakan sertifikat dari Pemerintah AS. Siapapun dengan akses ke kunci pribadi yang sesuai batuk NSA batuk karena dapat melayani konten untuk web browser yang melewati "apakah ada gembok di address bar" cek. Berapa banyak orang yang benar-benar akan repot mengklik gembok dan melihat siapa pasangan kunci yang digunakan untuk "mengamankan" koneksi?

Mark K Cowan
sumber
Hanya diperlukan satu orang yang memeriksa rantai sertifikat untuk menyebabkan skandal. Jika Anda berpikir NSA akan menggunakan kunci CA pemerintah untuk MITM daripada menggunakan yang dicuri dari otoritas sertifikat asing yang dimiliki secara pribadi atau - bahkan lebih baik - (dengan demikian memberikan penyangkalan yang masuk akal), saya memiliki jembatan untuk menjual Anda.
Charles Duffy
Saya menyarankan kemungkinan bahwa itu dapat digunakan untuk menargetkan MITM pada pengguna tertentu. Seperti apakah itu benar-benar mungkin, itu untuk diperdebatkan oleh orang-orang timah
Mark K Cowan
Saya tidak mempertanyakan apakah kemungkinan MITM yang ditargetkan. Saya mempertanyakan apakah cukup ceroboh untuk menggunakan kunci CA yang mudah dilacak dan dikaitkan untuk melakukan itu mungkin. Khusus untuk target bernilai tinggi yang cukup, lalu lintas neto outbound dapat dicatat secara cukup rinci untuk memasukkan metadata hingga dan termasuk bagian publik dari jabat tangan SSL, sehingga bahkan jika pengguna tidak melihat, staf keamanan mereka atau infrastruktur otomatis mungkin melakukannya dalam analisis retrospektif.
Charles Duffy
1

Bagaimana MD5 checksum dapat memberikan perlindungan terhadap file yang diubah secara sengaja jika tidak ada cara untuk mengetahui apakah checksum juga tidak dikompromikan?

Ini pertanyaan yang sangat bagus. Secara umum, penilaian Anda tentang manipulasi MD5 tepat. Tapi saya percaya nilai checksum MD5 pada unduhan adalah dangkal di terbaik. Mungkin setelah Anda mengunduh file, Anda dapat memeriksa MD5 yang Anda miliki terhadap sebuah situs web, tetapi saya cenderung melihat penyimpanan MD5 berdampingan sebagai "tanda terima" atau sesuatu yang baik untuk dimiliki tetapi tidak dapat diandalkan. Karena itu, saya umumnya tidak pernah peduli tentang checksum MD5 dari file yang diunduh, tetapi saya dapat berbicara dari pengalaman saya membuat proses MD5 berbasis server ad-hoc.

Pada dasarnya apa yang telah saya lakukan ketika seorang klien ingin menyapu sistem file untuk MD5 checksum adalah membuatnya dihasilkan ke file CSV yang memetakan nama file, path, MD5 — dan info file lainnya - ke dalam format data terstruktur yang kemudian saya telan. ke dalam basis data untuk perbandingan dan penyimpanan.

Jadi menggunakan contoh Anda, sementara MD5 checksum mungkin duduk di sebelah file di file teks itu sendiri, catatan otoritas MD5 checksum akan disimpan dalam sistem database yang tidak terhubung. Jadi jika seseorang entah bagaimana meretas ke fileshare untuk memanipulasi data, penyusup itu tidak akan memiliki akses ke catatan otoritas MD5 atau riwayat yang terhubung.

Baru-baru ini saya menemukan software perpustakaan yang bagus yang disebut ACE Audit manager yang pada dasarnya adalah aplikasi Java yang dirancang untuk duduk dan menonton filesystem untuk perubahan. Ini mencatat perubahan melalui perubahan MD5. Dan beroperasi pada filosofi yang sama dengan proses ad-hoc saya - menyimpan checksum dalam database - tetapi membawanya selangkah lebih maju tetapi membuat MD5 checksum MD checksum yang dikenal sebagai pohon hash atau pohon Merkle .

Jadi misalkan Anda memiliki 5 file dalam koleksi. Kelima file di ACE Audit manager kemudian akan mendapatkan yang lain — sebut saja “induk” —pilihan yang merupakan hash yang dihasilkan dari checksum 5 MD5 dari setiap file. Jadi jika seseorang mengutak-atik hanya satu file, hash untuk file akan berubah dan begitu juga hash untuk seluruh koleksi "induk".

Secara umum cara Anda perlu melihat MD5 checksum dan hash integritas terkait adalah kecuali mereka tidak terhubung ke beberapa penyimpanan tidak langsung untuk hash MD5 sendiri, mereka dapat rusak. Dan nilainya sebagai alat integritas data jangka panjang setara dengan kunci murah yang “gratis” di bagasi baru; jika Anda serius ingin mengunci bagasi Anda, Anda akan mendapatkan kunci yang tidak dapat dibuka dalam 5 detik dengan penjepit kertas.

JakeGould
sumber
"MD5 checksum dari MD5 checksums" dikenal sebagai Merkle Tree .
pjc50
@ pjc50 Terima kasih! Mengedit jawaban untuk referensi itu.
JakeGould
0

kecepatan

Seringkali orang menemukan bahwa lebih cepat untuk (a) mengunduh file besar dari jaringan pengiriman konten (terdekat) yang tidak terpercaya (mirror terdekat), situs mirror, torrent peer, dll. Dan juga mengunduh file checksum pendek yang sesuai (seringkali SHA256; perangkat lunak yang lebih lama) sering menggunakan MD5) dari beberapa sumber tepercaya. Mereka merasa lambat untuk (b) mengunduh seluruh file besar secara langsung dari sumber yang tepercaya.

validasi

Seringkali orang tersebut menemukan bahwa semuanya valid - sumber (tepercaya dan tidak tepercaya) menyetujui checksum yang sama, dan menjalankan shasum (atau md5sum) dengan salah satu file checksum pendek itu (tidak masalah yang mana, ketika semuanya identik) ) menunjukkan bahwa file besar memiliki checksum yang cocok.

modifikasi

Anda benar bahwa ketika Mallory mengubah file besar yang tersimpan di beberapa situs unduhan, akan mudah bagi Mallory untuk juga merusak checksum untuk file itu di situs unduhan yang sama sehingga shasum (atau md5sum) dijalankan pada file checksum berbahaya itu akan tampaknya memvalidasi file besar. Tetapi file checksum itu bukan satu-satunya yang harus digunakan pengunduh untuk validasi.

Ketika pengunduh membandingkan file checksum berbahaya ke file checksum yang diunduh dari sumber tepercaya, jika checksum asli lolos satu kali saja, maka pengunduh akan melihat bahwa semuanya tidak valid, dan akan tahu bahwa ada sesuatu yang salah.

Seperti yang dikatakan cpast sebelumnya, jika checksum kriptografi yang baik ditransmisikan melalui koneksi tepercaya, itu dapat memberikan keamanan (yang diturunkan dari koneksi tepercaya).

Seperti yang dikatakan supercat sebelumnya, file checksum satu situs tidak membantu orang yang mengunduh file besar dari situs yang sama dan dengan cara yang sama mereka mengunduh file checksum - mereka membantu orang yang ingin mengunduh file dari situs lain.

"Dalam hal keamanan, hash kriptografis seperti MD5 memungkinkan untuk otentikasi data yang diperoleh dari cermin tidak aman. Hash MD5 harus ditandatangani atau berasal dari sumber yang aman (halaman HTTPS) dari organisasi yang Anda percayai." - https://help.ubuntu.com/community/HowToMD5SUM

Checksum kriptografi adalah bagian penting dari tanda tangan kunci publik praktis (seperti yang diterapkan dalam GnuPG dan perangkat lunak yang mendukung OpenPGP lainnya). Tanda tangan kunci publik memiliki beberapa keunggulan dibandingkan checksum saja.

David Cary
sumber
0

Saya telah mendengar [MD5 checksum] ini untuk mengizinkan [...] juga agar perubahan berbahaya mudah dideteksi.

Nah, Anda belum mendengar benar-benar salah . Tanda tangan digital sebenarnya adalah apa yang digunakan untuk mendeteksi perubahan berbahaya. Untuk beberapa alasan penting, hashing adalah bagian mendasar dari tanda tangan digital, karena hanya hash yang benar-benar ditandatangani , bukan keseluruhan file aslinya.

Yang sedang berkata, jika sumber tidak memberikan tanda tangan dari hash dan cara tepercaya untuk memverifikasinya , maka Anda benar, tidak ada perlindungan terhadap file yang sengaja diubah , tetapi hash masih berguna sebagai checksum terhadap kecelakaan. korupsi .

Berikut adalah contoh dunia nyata yang dapat mengklarifikasi semuanya. Bagian berikut ini sangat penting pada subjek:

Untuk rilis CD yang diarsipkan lebih lama, hanya MD5 checksum yang dihasilkan [...] Untuk rilis yang lebih baru, algoritma checksum yang lebih baru dan lebih kuat secara kriptografi (SHA1, SHA256 dan SHA512) digunakan

matpop
sumber