Alat pengembang · SHA kalkulator hash
SHA-1 Penjelasan Tabrakan: Apa yang Masih Aman dan Apa yang Harus Bermigrasi
· Mengapa itu penting
sha-256 kriptografi keamanan
Pemindai menandai SHA-1 dan manajemen menanyakan seberapa mendesaknya hal ini. Postingan ini menjelaskan apa yang dapat dan tidak dapat dirusak oleh serangan tabrakan, di mana SHA-1 masih ditoleransi, dan bagaimana merencanakan migrasi.
Pemindai mengatakan SHA-1 rusak — tetapi rusak karena apa? Pertanyaan yang menentukan urgensi migrasi
Pemindai keamanan jaringan menandai SHA-1 pada infrastruktur Anda. Manajemen menanyakan seberapa mendesaknya hal ini. Jawabannya bergantung sepenuhnya pada tujuan penggunaan SHA-1 Anda, dan pertanyaan tersebut mengungkapkan apakah Anda memiliki masalah kepatuhan, masalah keamanan aktif, atau sekadar artefak lama yang harus dikatalogkan. SHA-1 rusak secara kriptografis—demonstrasi akademis telah membuktikan adanya tabrakan. Namun "rusak" memiliki arti yang berbeda tergantung pada peran yang dimainkan SHA-1 di sistem Anda.
Hash kriptografi memiliki tujuan berbeda dalam konteks berbeda. Terkadang ini merupakan checksum yang melindungi terhadap korupsi yang tidak disengaja. Terkadang ini merupakan komitmen, seperti checksum unduhan yang dipublikasikan yang memungkinkan pengguna memverifikasi bahwa mereka menerima file yang diinginkan penerbit. Terkadang ini merupakan bagian dari rantai tanda tangan atau sertifikat, di mana penyerang dengan kontrol yang cukup dapat menghasilkan dua dokumen, keduanya bermakna, yang berbagi hash yang sama, dan dengan demikian memalsukan otentikasi. Tingkat keparahan tabrakan SHA-1 sangat bergantung pada peran mana yang dimiliki SHA-1 di sistem Anda.
Collision versus preimage — mengapa serangan tersebut mendemonstrasikan secara publik tabrakan target, dan apa artinya bagi hash yang ada
Serangan tabrakan menghasilkan dua masukan berbeda dengan keluaran yang sama. Penyerang tidak menemukan pesan yang di-hash ke nilai yang telah ditentukan—itu akan menjadi serangan preimage, dan pesan tersebut tetap tidak dapat dilakukan untuk SHA-1. Sebaliknya, serangan tabrakan berarti penyerang dapat membuat dua dokumen yang di-hash secara identik. Jika suatu sistem mengandalkan hash untuk membuktikan dua hal itu sama, tabrakan akan merusak bukti tersebut. Penyerang harus membuat kedua masukan tersebut, yang memerlukan waktu dan komputasi, namun hasilnya adalah dua hal berbeda yang tampak identik di bawah hash.
Serangan preimage berarti penyerang dapat mengambil hash SHA-1 yang dipublikasikan dan menemukan beberapa masukan yang cocok. Itu bukan cara kerja serangan SHA-1. Jika Anda memiliki repositori SHA-1 intisari dan khawatir apakah suatu file benar-benar cocok dengan intisari tersebut, serangan tabrakan bukanlah ancamannya. Ancamannya adalah apakah seseorang yang memiliki akses ke repositori Anda dapat memalsukan file berbeda ke intisari yang sama. Dalam kebanyakan kasus, hal ini juga tidak realistis tanpa kendali atas proses hashing itu sendiri. Model serangan spesifik sama pentingnya dengan algoritma.
Demonstrasi 2017 — dua file berbeda dengan SHA-1 yang sama, dijelaskan secara kualitatif, dan pekerjaan awalan yang dipilih setelahnya
Serangan SHAttered dari 2017 menunjukkan tabrakan praktis: dua file PDF berbeda dengan intisari SHA-1 yang sama. Para peneliti dengan hati-hati membuat kedua file tersebut, menjadikannya PDF yang valid saat bertabrakan. Pekerjaan ini memerlukan upaya komputasi yang besar dan perangkat keras khusus. Yang penting adalah hal itu mungkin saja terjadi: resistensi tabrakan yang membenarkan penggunaan SHA-1 untuk keamanan telah hilang. Serangan tersebut membuktikan bahwa dua dokumen yang berbeda secara semantik dapat berbagi intisari, sehingga merusak sistem apa pun yang mempercayai intisari tersebut sebagai bukti identitas.
Serangan berikutnya di 2020, yang disebut "SHA-1 adalah Shambles," mengambil langkah berikutnya: tabrakan awalan yang dipilih. Varian ini berarti penyerang dapat mengambil dua dokumen arbitrer, menggabungkan sufiks yang berbeda pada masing-masing dokumen, dan menghasilkan tabrakan. Ini adalah serangan berbahaya terhadap tanda tangan dan sertifikat. Seorang penyerang tidak harus memulai dari awal; mereka dapat bertabrakan dengan dua dokumen yang bermakna dan berbeda. Hal ini merusak model keamanan sistem apa pun yang menandatangani intisari SHA-1. Penyerang dapat menghasilkan dua dokumen yang memiliki hash yang sama dan keduanya memiliki arti yang berbeda.
Jika SHA-1 tidak dapat diterima — tanda tangan, sertifikat, dan apa pun yang dapat dipengaruhi oleh penyerang di kedua sisi
Pembedaan ini penting karena SHA-1 masih dapat ditoleransi pada beberapa peran dan sama sekali tidak dapat diterima pada peran lainnya. Di Git, SHA-1 digunakan sebagai alamat konten—nama untuk snapshot file tertentu. Git tidak menggunakan SHA-1 untuk otentikasi; itu adalah skema penamaan. Seorang penyerang secara teoritis dapat menghitung dua status repositori berbeda dengan ID yang sama, namun hal ini memerlukan pengendalian seluruh proses pembuatan konten dan mendorong kedua versi sebelum ada yang menyadarinya. Bagi sebagian besar tim, tingkat kendali penyerang bukanlah model ancaman. Inilah sebabnya Git sengaja melakukan transisi ke SHA-256 daripada menganggapnya sebagai keadaan darurat.
Dalam skenario verifikasi unduhan web, penerbit memposting file dan checksum SHA-1-nya di server yang sama. Penyerang yang mengkompromikan server tersebut mengontrol file dan checksum. Mereka dapat mengunggah file dan memposting SHA-1-nya, dan tidak diperlukan tabrakan. Jika checksum diposting di tempat lain—di VPN yang aman, dicetak dalam email yang ditandatangani, dipublikasikan di infrastruktur berbeda—maka penyerang harus bertabrakan, dan hal itu menjadi tidak mungkin dilakukan. Checksum hanya dapat dipercaya jika salurannya. Inilah sebabnya mengapa verifikasi unduhan memerlukan lebih dari sekadar hash.
Di mana risikonya lebih kecil — identifikasi konten dalam pengaturan non-permusuhan dan transisi bertahap Git ke SHA-256
Untuk tanda tangan dan sertifikat, SHA-1 tidak dapat dipertahankan. Rantai sertifikat dari akar tepercaya. Jika CA menandatangani dua sertifikat berbeda menggunakan intisari SHA-1 yang sama, serangan tabrakan memungkinkan penyerang memalsukan keduanya. Hal ini tidak bersifat teoritis: serangan terhadap CA perantara telah didokumentasikan. Skema tanda tangan apa pun yang mengandalkan SHA-1 berpotensi dapat dipalsukan oleh penyerang dengan sumber daya yang cukup. Setiap browser utama dan vendor OS tidak lagi menggunakan sertifikat SHA-1. Sertifikat baru harus menggunakan SHA-256. Vendor platform telah berbicara dengan jelas karena ancamannya nyata dan langsung terjadi.
NIST, badan standar AS, telah menyatakan jangka waktunya secara eksplisit. Mulai 2024, SHA-1 tidak boleh digunakan untuk aplikasi baru apa pun. Mulai 2030, SHA-1 diperkirakan akan dihentikan seluruhnya dari sistem federal. Ini bukanlah sebuah penghinaan yang samar-samar; Hal ini merupakan mandat nyata bagi kontraktor pemerintah dan sinyal bagi industri. Mengikuti garis waktu NIST memastikan sistem Anda tetap berada di depan kurva penghentian penggunaan dibandingkan harus bekerja keras setelah tenggat waktu.
Bukti penyimpanan mendukung penghentian SHA-1, bukan tanggal publikasi atau penghentian NIST yang belum dibaca
Sumber repositori mendokumentasikan SHA-1 sebagai interoperabilitas warisan dan nama-nama yang menunjukkan pekerjaan tabrakan, namun tidak berisi jadwal penghentian badan standar. Oleh karena itu, bagian ini mengoreksi garis besarnya dengan memperlakukan penghentian sebagai masalah inventaris teknik daripada mengutip nomor publikasi atau tanggal kepatuhan yang belum dibaca.
Untuk lingkungan yang dikontrol kebijakan, konsultasikan dengan otoritas yang mengatur penerapan tersebut dan catat dokumen yang ditinjau secara tepat. Bukti produk di sini mendukung tindakan yang lebih sempit: tetap menyediakan SHA-1 untuk mereproduksi nilai yang ada, memberi label sebagai tidak cocok untuk penggunaan keamanan baru, dan menghitung pengganti SHA-256 di mana pun protokol di sekitarnya mengizinkan migrasi.
Contoh praktis — daftar periksa migrasi diterapkan ke halaman verifikasi unduhan lama
Jalur migrasi dari SHA-1 biasanya dimulai dengan inventaris: di mana SHA-1 digunakan? Sertifikat dan tanda tangan? Prioritas segera. Repositori Git dan pengalamatan konten? Prioritas menengah, ikuti kecepatan migrasi Git. Checksum yang diterbitkan untuk diunduh? Tergantung pada model kepercayaan. Checksum internal untuk deduplikasi atau pengarsipan? Prioritas lebih rendah, lebih banyak waktu untuk perencanaan. Fase inventarisasi mengungkapkan luas permukaan sebenarnya dan membantu Anda membuat prioritas berdasarkan risiko aktual, bukan urgensi abstrak.
Untuk setiap peran, migrasi terlihat berbeda. Sertifikat segera ditingkatkan ke SHA-256. Fase repositori Git dalam SHA-256 dirujuk secara bertahap sambil mempertahankan SHA-1 untuk kompatibilitas ke belakang. Checksum unduhan mulai dipublikasikan di SHA-1 dan SHA-256, kemudian pada akhirnya hanya SHA-256. Intisari SHA-1 lama dalam database checksum dapat diverifikasi dengan kalkulator hash ToolAcre SHA, dan entri baru harus menggunakan SHA-256. Alat ini mendukung kedua sisi transisi, memungkinkan Anda memverifikasi hash lama dan membuat hash baru.
Kesimpulan: SHA-1 sebagai perbandingan, SHA-256 untuk karya baru — kalkulator hash ToolAcre SHA menyertakan SHA-1 sehingga intisari lama dapat diperiksa, bukan sebagai dukungan
Bagi sebagian besar organisasi, migrasi tidak "mematikan SHA-1 besok". Hal ini adalah “memahami di mana teknologi ini digunakan, memprioritaskan peran penting keamanan, dan memiliki rencana multi-tahun.” Repositori Git dengan SHA-1 komitmen selama bertahun-tahun harus bertransisi secara bertahap, dengan alat yang menangani keduanya. Infrastruktur sertifikat seharusnya sudah dimigrasi. Checksum yang dipublikasikan harus berupa algoritma ganda selama jendela transisi. Migrasi bertahap mengurangi perubahan yang dapat mengganggu dan memberikan waktu bagi sistem untuk beradaptasi dengan realitas baru.
Kalkulator hash ToolAcre SHA menyediakan kedua sisi transisi tersebut. Anda dapat memverifikasi intisari SHA-1 yang ada dari sistem lama Anda untuk mengonfirmasi bahwa ada file yang cocok dengan intisari tersebut. Anda dapat menghitung hash SHA-256 untuk mulai memublikasikan jalur migrasi. Alat ini tidak berpura-pura SHA-1 aman; itu memberi label rusak dan menjelaskan alasannya. Namun hal ini memungkinkan Anda bekerja dengan hash lama yang masih perlu Anda pertahankan saat Anda membangun jembatan ke SHA-256 dan merencanakan penghentian Anda.