Alat pembangun · SHA kalkulator cincang
Jumlah Semakan Padanan Bukan Tandatangan: Integriti vs Ketulenan
· Mengapa ia penting
sha-256 kriptografi keselamatan
SHA-256 yang diterbitkan membolehkan pengguna mengesan muat turun yang rosak, tetapi jika penyerang mengawal halaman, mereka juga mengawal jumlah semak. Siaran ini memisahkan integriti daripada keaslian dan menerangkan perkara yang ditambahkan oleh tandatangan.
Checksum pada halaman yang sama dengan muat turun — sebab ia melindungi daripada rasuah tetapi tidak terhadap hos yang terjejas
Keluaran perisian diterbitkan dengan jumlah semak SHA-256 pada halaman yang sama dengan muat turun. Pengguna boleh mengambil arkib, mencincangnya dan membandingkan hasilnya dengan nilai yang diterbitkan. Jika ia sepadan, muat turun tidak rosak. Ini adalah pengesahan integriti, dan ini adalah pemeriksaan yang sebenar dan berguna. Walau bagaimanapun, jika penyerang menjejaskan pelayan web yang mengehos keluaran, mereka boleh menggantikan perduaan, mengira semula SHA-256nya dan mengemas kini jumlah semak pada halaman. Pengguna mengesahkan jumlah semak dan perisian hasad penyerang nampaknya datang daripada penerbit. Sistem ini berfungsi betul-betul seperti yang direka, tetapi ia gagal menjawab soalan yang pengguna fikir mereka bertanya.
Ini bukan kegagalan checksum itu sendiri. Ia adalah pemerhatian yang betul tentang perkara yang dilakukan dan tidak dilakukan oleh checksum. Checksum membuktikan bahawa dua salinan data adalah sama. Ia tidak membuktikan siapa yang mencipta data. Itulah perbezaan antara integriti dan ketulenan, dan menggabungkannya adalah salah satu kesilapan keselamatan yang paling biasa dalam pengesahan keluaran. Banyak sistem rosak bukan kerana jumlah semak mereka salah, tetapi kerana pengguna mempercayai mereka untuk menjawab soalan yang tidak dapat mereka jawab.
Apa yang dibuktikan oleh cincangan — bahawa dua input adalah bait yang sama, dan tidak mengenai siapa yang menghasilkannya
Integriti adalah hak milik data itu sendiri. Jika anda mempunyai fail dan SHA-256nya, dan fail itu belum diubah suai, cincangan sepadan. Hash membuktikan bahawa setiap bait tidak berubah dari semasa ia dikira. Jika fail telah rosak oleh ralat penghantaran, kegagalan cakera atau bit terbalik pada kabel rangkaian, cincang tidak akan sepadan. Inilah yang dilakukan dengan baik oleh checksum. Mereka sangat baik dalam menangkap kemalangan dan rasuah secara rawak. Mereka gagal menentang musuh yang juga boleh mengira cincang.
Ketulenan ialah sifat dakwaan tentang siapa yang menghasilkan data. Soalan "adakah fail ini datang daripada penerbit yang saya percayai?" pada asasnya berbeza daripada soalan "adakah fail ini telah diubah suai?" Cincang dengan sendirinya tidak boleh menjawab soalan ketulenan kerana sesiapa sahaja boleh mengira cincang. Penyerang yang mengubah suai fail boleh mengira cincang baharu dan menyiarkannya semudah yang boleh dilakukan oleh penerbit yang sah. Hashing adalah simetri; kedua-dua pemain pertahanan dan penyerang mempunyai keupayaan pengiraan yang sama.
Keperluan saluran dipercayai — sebab checksum sahaja boleh dipercayai seperti tempat anda memperolehnya
Keperluan saluran dipercayai ialah cerapan utama. Checksum sahaja boleh dipercayai seperti saluran yang dilaluinya. Jika anda memuat turun binari perisian daripada CDN rasmi penerbit dan memuat turun checksum daripada pelayan yang sama, mereka melalui laluan yang sama. Mengkompromi pelayan bermakna penyerang mengawal kedua-duanya. Checksum menyediakan pertahanan terhadap rasuah semasa penghantaran—fail yang rosak tidak akan sepadan—tetapi bukan terhadap penyerang yang mengawal sumber. Checksum dan fail berkongsi satu titik kegagalan.
Jika checksum diterbitkan secara berasingan, pada pelayan yang berbeza, dengan kawalan akses yang berbeza, maka ia memberikan lebih pertahanan. Penyerang yang menjejaskan tapak utama perlu menjejaskan kedua-dua lokasi untuk memalsukan pasangan yang sepadan. Ini lebih baik, tetapi ia masih bergantung pada dua titik kawalan bebas yang kekal selamat. Penyerang kini mesti melanggar dua sistem dan bukannya satu, meningkatkan kos serangan. Tetapi ia masih bukan bukti keaslian; ia sahaja serangan yang lebih mahal.
Tandatangan mengikat cincang pada identiti — cara menandatangani ringkasan dengan kunci peribadi menambah keaslian
Tandatangan digital menangani perkara ini dengan mengikat data kepada identiti menggunakan kriptografi. Penerbit menghasilkan pasangan kunci: kunci peribadi yang mereka rahsiakan dan kunci awam yang mereka terbitkan. Mereka menandatangani fail dengan mengira ringkasan dan kemudian menyulitkan ringkasan itu dengan kunci peribadi mereka. Hasilnya ialah tandatangan. Seorang pengguna mengesahkan tandatangan dengan menyahsulitnya dengan kunci awam penerbit dan menyemak bahawa hasilnya sepadan dengan ringkasan pengiraan fail yang diterima. Kriptografi mencipta asimetri yang tidak dapat dicapai oleh checksum.
Jika ini berjaya, dua perkara terbukti: data sepadan dengan ringkasan yang ditandatangani oleh penerbit dan kunci peribadi yang digunakan untuk menandatanganinya sepadan dengan kunci awam yang diterbitkan. Itu membuktikan penerbit yang menciptanya, bukan sahaja yang dilakukan oleh penyerang. Kunci awam mesti datang melalui saluran selamat—biasanya sijil daripada pihak berkuasa sijil yang dipercayai—tetapi selepas anda mempunyai kunci awam, anda boleh mengesahkan tandatangan daripada penerbit itu selama-lamanya. Serangan itu kini memerlukan mencuri kunci peribadi, yang jauh lebih sukar daripada menjejaskan pelayan web.
Contoh berkesan — tiga senario ancaman (cermin rosak, halaman terjejas, orang dalam berniat jahat) dan jumlah semak dan tandatangan setiap tangkapan
Tiga senario ancaman menggambarkan perbezaannya. Senario satu: cermin muat turun rosak oleh ralat rawak. Checksum menangkapnya; tandatangan menangkapnya. Kedua-duanya berfungsi dengan baik kerana kedua-duanya tidak perlu mengalahkan penyerang. Senario dua: cermin dikompromi oleh penyerang yang menggantikan fail dan checksum. Checksum gagal melindungi; tandatangan masih berfungsi, kerana penyerang tidak mempunyai kunci peribadi dan tidak boleh memalsukan tandatangan yang sah. Penyerang boleh menyiarkan apa sahaja, tetapi tandatangan membuktikan ia bukan dari penerbit.
Senario tiga: CDN telah terjejas tetapi tandatangan telah diterbitkan melalui saluran lain. Jumlah semak pada CDN tidak boleh dipercayai, tetapi mengesahkan tandatangan masih berfungsi, kerana semakan integriti terikat secara kriptografi pada kunci penerbit, bukan pada saluran. Penyerang kini mesti memalsukan tandatangan, yang memerlukan kunci peribadi. Tandatangan adalah satu-satunya pengesahan yang bertahan daripada kompromi pelayan. Inilah sebabnya mengapa tandatangan diperlukan untuk keaslian; mereka adalah satu-satunya alat yang membuktikan identiti walaupun saluran kompromi.
Peranan TLS dan hadnya — keselamatan pengangkutan melindungi muat turun dalam penerbangan, bukan pelayan penerbit
Keselamatan pengangkutan melindungi sambungan kepada hos yang dinamakan oleh sijil. Ia boleh menghalang pemerhati di laluan daripada menggantikan bait muat turun, tetapi ia tidak boleh membuat asal penerbit yang terjejas jujur. Jika asal itu menyediakan arkib yang diubah suai dan jumlah semak yang baru dikira atas TLS yang sah, kedua-duanya tiba dengan utuh dan masih menerangkan kandungan dikawal penyerang.
Inilah sebabnya mengapa pengangkutan, integriti dan ketulenan adalah lapisan yang berasingan. TLS menjamin saluran, ringkasan membandingkan bait dan tandatangan mengikat hasil pengesahan dengan kawalan kunci peribadi. Tiada lapisan harus diterangkan sebagai membuktikan sifat yang dibekalkan oleh yang lain, walaupun apabila aliran kerja keluaran menggabungkan ketiga-tiganya dengan wajar.
Perkara yang tidak dicakupi ini — pengedaran kunci dan akar kepercayaan, yang merupakan bahagian sukar tandatangan
Pengagihan kunci ialah sempadan keras yang tidak dilalui oleh kalkulator ringkasan ini. Pengesah tandatangan masih memerlukan kunci awam atau rantaian sijil yang tulen dan dasar untuk penggiliran, pembatalan dan algoritma yang boleh diterima. Tandatangan yang sah secara matematik di bawah kunci yang tidak dipercayai sahaja membuktikan bahawa pemegang kunci yang tidak dipercayai itu menandatangani bait.
Sehubungan itu, senario yang berfungsi berhenti apabila kunci yang dipercayai sudah tersedia. Mereka tidak menetapkan penyematan sijil, infrastruktur kunci awam atau upacara kunci pelepasan. Pilihan penempatan tersebut memerlukan reka bentuk yang disemak sendiri; ToolAcre membekalkan ringkasan biasa yang mungkin ditandatangani, bukan akar amanah yang digunakan untuk mengesahkan identiti.
Bawa pulang: jumlah semak untuk integriti, tandatangan untuk ketulenan — kalkulator cincang ToolAcre SHA mengira ringkasan; mengesahkan siapa yang menerbitkannya adalah langkah yang berasingan
Kalkulator cincang ToolAcre SHA mengira bahagian integriti pengesahan ini. Gunakannya untuk mencincang fail yang dimuat turun dan semak nilai yang diterbitkan. Jika ia sepadan, muat turun tidak rosak. Tetapi jika ia sepadan kerana penyerang menulis semula kedua-duanya, pengesahan integriti sahaja tidak akan menangkapnya. Alat ini jujur tentang had ini dan tidak mendakwa mengesahkan ketulenan. Untuk integriti sahaja, checksum adalah pantas dan baik. Untuk kesahihan, anda memerlukan tandatangan. TLS menyediakan keselamatan pengangkutan untuk muat turun itu sendiri. Sambungan ke pelayan disulitkan dan disahkan, jadi penyerang pada rangkaian tidak boleh mengubah suai fail dalam transit. Walau bagaimanapun, TLS tidak membantu jika pelayan itu sendiri terjejas. Pelayan yang terjejas boleh menyampaikan mana-mana fail melalui sebarang sambungan TLS yang selamat. Inilah sebabnya mengapa pengesahan peringkat aplikasi—jumlah semak dan tandatangan—penting secara berasingan daripada keselamatan pengangkutan.
Corak biasa dalam keluaran perisian adalah untuk menerbitkan kedua-dua checksum dan tandatangan. Checksum adalah mudah; pengguna boleh mengesahkannya dengan cepat dengan arahan shell satu baris. Tandatangan memberikan ketulenan untuk pengguna yang mempunyai kunci awam penerbit. Pengguna mungkin menyemak checksum terlebih dahulu untuk pas integriti pantas, dan kemudian mengesahkan tandatangan terhadap kunci yang disimpan dalam cincin kekunci GPG mereka untuk keasliannya. Kedua-dua cek mempunyai tujuan yang berbeza dan boleh dilapisi untuk pertahanan secara mendalam. Bahagian yang sukar dalam tandatangan ialah pengedaran dan kepercayaan utama. Anda memerlukan kunci awam penerbit, dan anda perlu mempercayai bahawa ia benar-benar milik mereka. Ini ialah masalah sijil yang wujud untuk diselesaikan oleh pihak berkuasa: mereka menandatangani sijil penerbit, dan sijil CA akar dipramuat dalam pelayar dan sistem pengendalian. Untuk projek yang lebih kecil, anda mungkin menerbitkan kunci GPG pada tapak web yang berasingan dan keras atau pada pelayan kunci awam. Checksum adalah murah untuk disahkan; tandatangan memerlukan pengurusan akar amanah. Kerumitan tambahan ialah harga keaslian.