Apabila kita memuat turun imej ISO atau fail DMG untuk memasang perisian pada macOS, Windows atau Linux, semuanya tidak mencukupi untuk "kelihatan" berjalan lancar. Kita perlu memastikan bahawa data adalah sama dengan apa yang diterbitkan oleh pembangun , bahawa ia tidak rosak sepanjang proses tersebut, dan bahawa tiada sesiapa yang telah mengusiknya secara berniat jahat.
Dalam konteks ini, checksum, hash kriptografi dan, dalam kes macOS, tandatangan digital dan pengesahan sijil memainkan peranan . Pemahaman yang kukuh tentang cara semua ini berfungsi adalah kunci untuk mempercayai pemasang, mengesahkan ISO yang akan anda bakar ke pemacu USB dengan balenaEtcher atau Ventoy dan, secara amnya, memindahkan fail penting tanpa sebarang masalah.
Apakah sebenarnya checksum dan apakah peranannya?
Checksum pada asasnya ialah rentetan aksara abjad angka yang meringkaskan kandungan fail . Ia diperoleh dengan menggunakan algoritma matematik (fungsi hash kriptografi) pada bit fail dan berfungsi sebagai cap jari unik untuk mengesahkan integritinya.
Apabila vendor perisian mengeluarkan pemasang, ISO atau kemas kini utama, ia biasanya merangkumi checksum. Pengguna memuat turun fail, mengira jenis hash yang sama secara setempat dan membandingkan kedua-dua nilai tersebut : jika sepadan, fail tersebut kemungkinan besar sama dengan yang asal; jika tidak, ada sesuatu yang tidak kena (kerosakan semasa muat turun, manipulasi berniat jahat, ralat penyimpanan, dsb.).
Jumlah ini juga dikenali sebagai nilai hash, kod hash, jumlah hash atau sekadar hash . Kegunaannya melangkaui muat turun: ia digunakan untuk mengesahkan paket pada rangkaian, menyimpan kata laluan dengan selamat dalam pangkalan data, menandatangani e-mel atau memastikan integriti imej forensik keseluruhan cakera.
Cara fungsi hash berfungsi: dari fail ke cap jari
Fungsi hash kriptografi ialah algoritma sehala: ia mengambil input daripada sebarang saiz dan menghasilkan output dengan panjang tetap . Tidak kira sama ada fail input ialah beberapa kilobait atau beberapa gigabait; hasil SHA-256, sebagai contoh, akan sentiasa menjadi jujukan 256-bit (64 aksara heksadesimal).
Satu sifat utama ialah apa yang dipanggil kesan avalanche: perubahan minimum dalam data input menghasilkan hash yang sama sekali berbeza . Jika anda mengira hash MD5 bagi frasa "Ini ialah ujian." dan kemudian mengalih keluar noktah pengekor, nilai yang terhasil akan sama sekali berbeza, membolehkan anda mengesan perubahan yang sekecil mungkin.
Tambahan pula, fungsi hash yang baik direka bentuk untuk menjadikannya tidak boleh dikira secara pengiraan untuk membina semula kandungan asal daripada hash , dan juga menjadikannya sangat sukar untuk mencari dua input berbeza yang menghasilkan nilai yang sama (perlanggaran). Apabila perlanggaran praktikal ditemui dalam algoritma, seperti yang telah berlaku dengan MD5 atau SHA-1, ia dianggap tidak selamat untuk kegunaan tertentu.
Jenis-jenis algoritma checksum dan perbezaannya
Di sebalik setiap checksum terletak algoritma tertentu. Tidak semuanya mempunyai tujuan yang sama atau menawarkan tahap kebolehpercayaan yang sama , dan adalah berguna untuk mengetahui sekurang-kurangnya kategori yang paling biasa untuk memahami apa yang kita gunakan pada bila-bila masa.
Algoritma kawalan ralat mudah
Dalam rangkaian dan sistem asas, mekanisme ringan yang tidak benar-benar kriptografi tetapi membantu mengesan ralat penghantaran telah digunakan selama beberapa dekad. Contoh klasik ialah perkataan atau bait pariti membujur , yang mengumpulkan data ke dalam perkataan n-bit, melaksanakan operasi XOR pada kesemuanya dan menambahkan hasilnya sebagai perkataan tambahan pada akhirnya.
Setelah penerimaan, operasi XOR dikira semula termasuk jumlah perkataan, dan jika hasilnya bukan semua sifar, kesalahan diandaikan . Kaedah ini murah dari segi pengiraan dan agak berkesan terhadap ralat bit tunggal atau bit nombor ganjil, tetapi ia tidak mengesan corak tertentu dengan baik (seperti perubahan simetri dalam dua perkataan atau penyusunan semula blok).
Algoritma pelengkap dua merupakan percubaan untuk menambah baik kaedah sebelumnya. Ia menjumlahkan perkataan sebagai integer binari yang tidak ditandatangani dan menambah pelengkap dua daripada jumlah tersebut sebagai checksum. Di destinasi, semuanya dijumlahkan semula, termasuk checksum, dan jika hasilnya bukan perkataan sifar, ada sesuatu yang tidak kena. Ia kekal mudah, dan seperti pariti, ia mengesan ralat mudah tetapi tidak teguh terhadap manipulasi yang disengajakan.
Checksum bergantung kedudukan
Untuk mengurangkan keadaan di mana ralat tidak disedari, algoritma telah muncul yang bukan sahaja mempertimbangkan nilai perkataan tetapi juga susunannya. Checksum yang bergantung pada kedudukan memberikan pemberat yang berbeza kepada setiap blok berdasarkan lokasinya dalam urutan.
Contoh keluarga ini termasuk Adler-32, pelbagai jenis CRC (semak redundansi kitaran), dan semakan Fletcher. Ia sangat biasa dalam protokol rangkaian, fail termampat dan sistem storan , kerana ia meningkatkan pengesanan ralat berulang, penyisipan blok atau pemadaman dengan ketara, walaupun ia masih bukan algoritma yang kuat secara kriptografi.
Checksum kabur
Dalam dunia penapisan spam dan pengesanan spam kolaboratif, teknik berbeza digunakan: checksum kabur . Daripada mencari sebarang perubahan kecil untuk mengubah nilai sepenuhnya, sebaliknya dicari: e-mel yang sangat serupa menghasilkan hash yang sama atau sangat serupa.
Untuk mencapai matlamat ini, kandungan mesej dinormalkan dan dikurangkan kepada versi minimum (menghapuskan bahagian pembolehubah, pemformatan, dll.) dan kemudian checksum dikira. Perkhidmatan seperti DCC menerima berjuta-juta hash ini daripada pembekal e-mel yang berbeza dan menandakan corak sebagai berpotensi spam apabila nilai yang sama diulang melebihi ambang tertentu.
fungsi hash kriptografi moden
Apabila kita bercakap tentang pengesahan imej ISO, pemasang atau perisian tegar , kita biasanya akan menemui algoritma hash kriptografi seperti MD5, SHA-1, SHA-2 atau SHA-3. Tujuannya bukan sahaja untuk mengesan ralat tidak sengaja tetapi juga untuk menentang serangan tertentu yang bertujuan untuk menjana fail berniat jahat dengan hash yang sama seperti fail asal yang sah.
MD5, sebagai contoh, selama bertahun-tahun merupakan standard de facto untuk mengesahkan muat turun, menggunakan hash 128-bit. Walau bagaimanapun, perlanggaran praktikal telah ditunjukkan, dan hari ini ia dianggap tidak selamat untuk melindungi integriti daripada penyerang , walaupun ia masih digunakan dalam konteks di mana hanya pengesanan kerosakan tidak sengaja yang penting.
SHA-1 (160 bit) mengikuti laluan yang serupa: digunakan secara meluas dalam sijil, tandatangan dan pengesahan fail, tetapi kini tidak digalakkan untuk sistem baharu disebabkan oleh kelemahan. Keluarga SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) sebahagian besarnya telah menggantikan MD5 dan SHA-1, dan SHA-256 telah menjadi standard yang disyorkan oleh NIST dan digunakan dalam pelayar, protokol seperti TLS, VPN dan juga rangkaian seperti Bitcoin.
SHA-3 ialah generasi piawai terkini, dengan panjang output yang serupa dengan SHA-2 tetapi reka bentuk dalaman yang berbeza. Algoritma moden seperti BLAKE2 dan BLAKE3 juga menawarkan kelajuan dan keselamatan yang tinggi , menjadikannya biasa dalam alat pengesahan fail pukal dan aplikasi yang memerlukan prestasi yang melampau.
Cara menyemak checksum dalam Windows
Pada Windows, anda tidak perlu memasang apa-apa untuk mengira hash fail asas. Anda boleh menggunakan arahan `certutil` dalam Command Prompt atau PowerShell , atau menggunakan cmdlet `Get-FileHash` dalam PowerShell untuk penggunaan yang lebih mudah.
Dengan certutil, anda hanya perlu membuka prompt arahan dan menjalankan sesuatu seperti `certutil -hashfile "path\to\file.iso" SHA256` . Alat ini akan menjana checksum menggunakan algoritma yang anda tentukan (MD5, SHA1, SHA256, SHA384, SHA512, dll.), dan anda hanya perlu membandingkannya dengan yang disediakan oleh pembangun di laman web mereka.
Dalam PowerShell, arahan Get-FileHash C:\path\to\file.iso mengembalikan hash SHA-256 fail secara lalai, walaupun anda boleh menentukan algoritma lain dengan parameter -Algorithm (MD5, SHA1, SHA384, SHA512, RIPEMD160, MACTripleDES…).
Jika nilai yang dipaparkan sepadan dengan aksara demi aksara yang diterbitkan di laman web rasmi, anda boleh menganggap fail tersebut utuh. Jika ia berbeza, perkara yang munasabah untuk dilakukan ialah memadamkannya dan memuat turunnya semula , kerana ia mungkin fail yang rosak atau dimanipulasi oleh pihak ketiga dengan niat jahat.
Cara mengesahkan checksum dalam macOS: Terminal, ISO dan DMG
macOS merangkumi semua yang anda perlukan untuk menjana dan membandingkan hash fail secara lalai, untuk ISO, DMG dan format lain. Tiada pemasangan perisian tambahan diperlukan; hanya gunakan aplikasi Terminal.
Perintah yang paling versatil ialah `shasum`, yang membolehkan anda memilih algoritma berbeza daripada keluarga SHA. Contohnya, jika anda telah memuat turun pemasang seperti `vlc-3.0.6.dmg` dan laman web projek menerbitkan hash SHA-256nya, pada macOS anda boleh melakukan perkara berikut:
shasum -a 256 vlc-3.0.6.dmg
Terminal akan memaparkan baris dengan nilai hash dan nama fail; letakkannya di sebelah yang ditunjukkan di laman web dan sahkan bahawa tiada perbezaan. Untuk algoritma lain, anda mempunyai arahan langsung : `md5` untuk MD5, `shasum -a 1` untuk SHA-1, `-a 384` untuk SHA-384, `-a 512` untuk SHA-512, dsb.
Dalam kes imej ISO yang menyertakan fail md5sum.txt atau yang serupa, fail ini biasanya mengandungi hash setiap fail dalaman ISO, bukan hanya imej itu sendiri. Setelah ISO dibakar ke pemacu USB, anda boleh memasang pemacu dan menggunakan `md5sum -c md5sum.txt` dalam Linux atau arahan yang setara dalam macOS untuk mengesahkan setiap fail secara individu, walaupun pada macOS, lebih biasa untuk mengesahkan hash keseluruhan ISO sebelum menyalinnya ke pemacu USB.
Tandatangan dan sijil dalam macOS: melangkaui hash
Selain hash, macOS banyak bergantung pada sistem tandatangan digital, sijil dan dasar kepercayaan yang diuruskan melalui Keychain Access dan Gatekeeper. Hakikat bahawa pemasang mempunyai hash yang betul tidak menjamin bahawa ia datang daripada pembangun yang sah; itulah gunanya tandatangan kod.
Dengan aplikasi Akses Rantai Kunci, anda boleh menggunakan Pembantu Sijil untuk memeriksa sijil tertentu, menyemak dasar kepercayaannya dan menentukan kesahihannya. macOS menyemak sama ada sijil tersebut dikeluarkan oleh pihak berkuasa root yang dipercayai, belum tamat tempoh dan belum dibatalkan dan berdasarkan itu, membenarkan atau menyekat pelaksanaan binari tertentu.
Dalam penggunaan seharian, apabila anda membuka fail DMG atau menjalankan aplikasi yang dimuat turun dari internet, macOS menggabungkan pengesahan tandatangan pembangun dengan mekanisme seperti Gatekeeper dan notarisasi . Komponen hash memberi tumpuan kepada integriti fail; komponen tandatangan dan sijil mengendalikan kesahihan penerbit.
Bagaimanakah alat seperti balenaEtcher atau Ventoy mengesahkan kandungan pemacu USB?
Apabila anda menggunakan utiliti seperti balenaEtcher atau Ventoy untuk mencipta pemacu USB yang boleh di-boot, ia bukan sahaja menyalin bait dan berharap untuk yang terbaik. Alat ini melakukan pemprosesan pasca untuk mengesahkan bahawa apa yang ditulis pada pemacu sepadan dengan sumbernya , biasanya dengan membandingkan kandungan yang dibaca daripada peranti dengan ISO asal.
Aliran kerja biasa sangat serupa dengan apa yang anda akan lakukan secara manual dengan `dd`: muat turun ISO, bersihkan pemacu, tulis data dan kemudian bacanya semula. balenaEtcher, sebagai contoh, biasanya membaca blok daripada pemacu USB dan membandingkannya terus dengan blok yang sama dalam imej cakera . Jika ia mengesan sebarang perbezaan, ia menandakan proses tersebut sebagai gagal tanpa memerlukan fail md5sum.txt dalam ISO.
Ventoy mengikuti strategi yang berbeza, kerana ia tidak "membakar" ISO ke pemacu, tetapi sebaliknya menyalinnya seperti sedia ada ke partition khas dan but semula memaparkan menu dari mana anda memilih ISO yang hendak digunakan . Dalam kes ini, integriti boleh disahkan dengan membandingkan hash fail ISO yang disimpan pada pemacu USB dengan hash yang ada pada komputer sumber, tanpa perlu memeriksa kandungan dalaman imej.
Jika ISO pengedaran Linux merangkumi fail seperti md5sum.txt atau SHA256SUMS, dan bootloader pemasangan dikonfigurasikan untuk menyokongnya, fail dalaman imej boleh disahkan semasa permulaan . Walau bagaimanapun, utiliti pembakaran tidak bergantung pada fail ini; pengesahannya adalah berdasarkan perbandingan data bertulis dengan data sumber pada peringkat blok.
Apa yang perlu dilakukan apabila ISO tidak menyertakan fail checksum dalaman
Tidak semua imej ISO menyertakan md5sum.txt atau fail serupa yang mengandungi hash kandungannya. Walau bagaimanapun, anda harus sentiasa meminta laman web rasmi menyediakan sekurang-kurangnya hash ISO lengkap (biasanya SHA-256) pada halaman muat turun atau dalam fail berasingan (SHA256SUMS, CHECKSUMS, dsb.).
Jika tiada fail dalaman dengan semakan setiap fail, proses pengesahan dikurangkan kepada membandingkan hash ISO. Anda mengira hash SHA-256 fail yang dimuat turun pada sistem anda dan membandingkannya dengan nilai yang diterbitkan . Jika ia sepadan, anda tahu imej lengkap adalah sama dengan yang dijana oleh pembangun, dan kemudian anda boleh membakarnya ke pemacu USB dengan yakin.
Jika vendor tidak menerbitkan sebarang jenis checksum atau tandatangan, keadaan menjadi rumit. Anda boleh membandingkan hash ISO anda dengan salinan lain yang dimuat turun dari rangkaian lain atau oleh orang lain , tetapi anda masih tidak akan mempunyai rujukan rasmi. Dalam senario ini, adalah bijak untuk berhati-hati jika perisian tersebut sensitif (sistem pengendalian, alat keselamatan, dompet mata wang kripto, dll.) dan mencari sumber yang lebih bereputasi.
Ingat bahawa walaupun dengan hash yang diterbitkan, keselamatan bergantung pada mendapatkannya daripada sumber yang dipercayai dan melalui sambungan selamat (HTTPS) . Penyerang boleh mencipta laman web palsu dengan ISO yang berniat jahat dan hash mereka sendiri, jadi pengesahan hanya bermakna jika anda benar-benar berada di laman web rasmi projek.

Alat khusus untuk mengendalikan hash dan mengesahkan integriti
Selain utiliti yang terbina dalam setiap sistem pengendalian, terdapat banyak program khusus yang memudahkan pengendalian hash, terutamanya apabila anda perlu mengira jumlah untuk banyak fail, membandingkan keseluruhan folder atau mengautomasikan salinan yang disahkan.
Aplikasi seperti QuickHash menawarkan antara muka grafik yang komprehensif untuk Windows, Linux dan macOS, dengan sokongan untuk MD5, SHA-1, SHA-2 (256 dan 512), SHA-3, BLAKE2, BLAKE3 dan lain-lain . Ia membolehkan anda menjana hash teks, hash fail tunggal, hash berbilang fail, membandingkan dua fail atau dua direktori dan mencipta salinan yang disahkan hash.
Alatan lain seperti HashMyFiles, MultiHasher atau MD5 & SHA Checksum Utility memberi tumpuan pada Windows dan membolehkan anda menjana hash secara pukal untuk keseluruhan folder dan subfolder , malah boleh disepadukan ke dalam menu konteks Explorer untuk memanggilnya dengan klik kanan.
Terdapat juga penyelesaian ringan atau mudah alih (HashCalc, MD5 Hash Check, Hasher Lite, DeadHash, Hash Generator, FCIV, Checksum Control…) yang merangkumi keperluan yang lebih khusus, seperti menyemak pemasang yang dimuat turun dengan cepat tanpa perlu mengingati arahan atau membuka terminal.
Risiko, serangan dan had keselamatan hash
Walaupun hash sering digambarkan sebagai "tidak boleh dipecahkan," adalah penting untuk memahami bahawa terdapat teknik untuk cuba memecahkannya. Yang paling langsung ialah serangan brute-force , yang melibatkan percubaan semua kombinasi input yang mungkin sehingga satu ditemui yang menghasilkan hash yang diingini—sesuatu yang tidak realistik untuk kata laluan panjang yang menggunakan algoritma moden.
Serangan kamus dan jadual pelangi mempercepatkan proses apabila penyerang mengesyaki jenis input (cth., kata laluan manusia yang tipikal). Daripada menguji rentetan rawak, ia berfungsi dengan senarai yang telah dikompilasi dan hash yang telah dikira terlebih dahulu , sekali gus mengurangkan masa yang diperlukan untuk mendedahkan kekunci yang lemah.
Serangan perlanggaran mengeksploitasi fakta bahawa, dengan bilangan output yang terhad, mesti ada input berbeza yang menghasilkan hash yang sama. Jika algoritma mempunyai kelemahan matematik, perlanggaran boleh ditemui dengan agak cekap , membolehkan penciptaan dua fail berbeza dengan hash yang sama. Inilah yang telah berlaku dengan MD5 dan SHA-1, yang telah menjadi tidak boleh dipercayai untuk aplikasi kritikal.
Untuk mengurangkan banyak risiko ini, beberapa strategi digunakan: menggunakan hash yang kukuh dan terkini, menambah "garam" rawak pada input sebelum melakukan hash, dan menggunakan algoritma kata laluan tertentu (bcrypt, scrypt, Argon2) yang direka bentuk untuk disengajakan secara perlahan dan mahal untuk disejajarkan.
Amalan terbaik untuk mengesahkan imej ISO dan DMG pada macOS
Jika anda akan memuat turun fail ISO atau DMG untuk digunakan pada macOS, terutamanya jika anda memasang sistem atau alat yang sensitif, adalah lebih baik untuk mengikuti prosedur yang jelas. Pertama, sentiasa muat turun dari laman web rasmi projek, pastikan URL dan sijil HTTPS adalah betul.
Seterusnya, cari bahagian tempat checksum atau tandatangan PGP yang berkaitan diterbitkan. Utamakan algoritma moden seperti SHA-256 atau lebih tinggi dan elakkan MD5 atau SHA-1 melainkan anda hanya mementingkan pengesanan kerosakan tidak sengaja dalam fail yang tidak sensitif.
Dengan fail ISO atau DMG yang sudah ada dalam folder Muat Turun anda, buka Terminal, navigasi ke folder tersebut dan kira hash menggunakan shaSum atau MD5, yang sesuai . Bandingkan hasilnya dengan nilai rasmi, berhati-hati agar tidak meninggalkan sebarang digit atau mengelirukan aksara yang serupa. Jika tidak sepadan, padamkan fail tersebut dengan segera.
Jika anda merancang untuk menggunakan balenaEtcher, Ventoy atau alat lain untuk menulis imej ke pemacu USB, pastikan aplikasi tersebut menawarkan fasa pengesahan pasca tulis . Dengan cara ini, anda bukan sahaja boleh yakin bahawa ISO adalah betul tetapi juga salinan pada pemacu kilat menghasilkan semula data asal dengan tepat.
Walaupun ia mungkin kelihatan seperti sedikit lebih banyak kerja, proses pengesahan ini dapat menjimatkan anda daripada sakit kepala dan mengurangkan risiko menjalankan kod yang rosak atau diusik. Pemahaman yang kukuh tentang cara checksum, tandatangan dan sijil berfungsi dalam macOS membolehkan anda menggunakan ISO dan DMG anda dengan lebih tenang , mengetahui bahawa apa yang anda pasang adalah apa yang dimaksudkan oleh pembangun dan tiada yang lain.

