Alat pembangun · SHA kalkulator cincang
Mengapa Web Crypto Menawarkan SHA-1 kepada SHA-512 tetapi Bukan MD5 atau SHA-3
· Bagaimana ia berfungsi
kriptografi pelayar-apis sha-256 javascript
Ringkasan pelayar API menyokong tepat empat algoritma. Siaran ini menerangkan sebab MD5 ditinggalkan, sebab SHA-3 belum ditambahkan dan maksudnya untuk alat yang enggan menghantar perkara yang tidak disediakan oleh platform.
Di manakah MD5? — soalan pertama daripada sesiapa yang memindahkan aliran kerja checksum lama
Web Crypto API pelayar menghantar tepat empat algoritma ringkasan: SHA-1, SHA-256, SHA-384 dan SHA-512. Jika anda mencapai ToolAcre SHA kalkulator cincang menjangkakan MD5 atau SHA-3, anda tidak akan menemuinya. Kekhususan itu bukan batasan alat; ia mencerminkan pilihan platform yang disengajakan. Memahami mengapa keempat-empat ini disertakan dan sebab dua alternatif popular ditinggalkan memberitahu anda banyak tentang cara API pelayar direka bentuk.
Setiap pelayar utama mendedahkan crypto.subtle.digest pada asal selamat. Apabila JavaScript anda memanggil kaedah itu, kaedah itu meneruskan ke pelaksanaan kriptografi platform—kod asli yang dijalankan dengan kotak pasir keselamatan dan pengoptimuman prestasi. Algoritma ringkasan yang ditawarkan telah dipilih oleh Kumpulan Kerja Kripto Web W3C dengan keutamaan khusus: keserasian dengan piawaian keselamatan sedia ada, sokongan tersedia merentas perpustakaan kriptografi, kematangan dan keperluan keselamatan praktikal platform web.
Empat algoritma SubtleCrypto.digest menyokong — SHA-1, SHA-256, SHA-384 dan SHA-512, dan tiada yang lain
ToolAcre menerima empat pengecam yang sama yang dikuatkuasakan oleh digestBytes: SHA-1, SHA-256, SHA-384 dan SHA-512. Nama yang tidak dikenali ditolak sebelum Web Crypto dipanggil, dan suite ujian secara khusus melepasi MD5 untuk mengesahkan penolakan itu. Oleh itu, pemilih menerangkan sempadan produk yang diuji dan bukannya tinjauan setiap ringkasan yang pernah diseragamkan.
SHA-1 yang muncul dalam senarai itu tidak membuat keempat-empat pengesyoran yang setara. Objek hasilnya membawa bendera yang rosak dan antara muka mengulangi amaran warisan; tiga yang lain ialah pilihan SHA-2 yang tersedia. Ketersediaan dan kesesuaian mesti kekal berasingan apabila alat keserasian mengeluarkan semula nilai lama tanpa menggalakkan pergantungan baharu padanya.
MD5 tidak hadir dalam pelaksanaan ini dan Web Crypto; artikel ini tidak menambah rasional standard tanpa sumber
MD5 ialah fungsi cincang kriptografi yang menghasilkan pencernaan 128-bit, menjadikannya lebih pendek dan lebih murah dari segi pengiraan daripada SHA-256. Selama beberapa dekad ia adalah pilihan standard untuk checksum dan tandatangan digital. Walau bagaimanapun, rintangan perlanggaran MD5 secara asasnya rosak. Dalam 2004, pakar kriptografi menunjukkan perlanggaran praktikal—dua input berbeza dengan cernaan yang sama—dan algoritma telah dirungkai secara menyeluruh oleh kerja akademik. Kerentanan matematik adalah mutlak dan kekal.
Spesifikasi W3C Web Crypto membuat pilihan yang disengajakan untuk tidak menyertakan MD5. Alasannya adalah mudah: menghantar algoritma yang rosak kepada berjuta-juta pengguna pelayar akan menormalkan penggunaannya dalam aplikasi baharu, walaupun ia sepatutnya sahaja muncul dalam senario keserasian warisan. Jika aplikasi benar-benar memerlukan MD5 untuk saling kendali dengan sistem lama, kod itu tergolong dalam masa jalan sebelah pelayan di mana keperluan itu difahami dan diaudit, bukan dalam pelayar. Membuat algoritma yang rosak mudah diakses akan mewujudkan jangkaan keselamatan dalam sistem baharu.
Kalkulator cincang ToolAcre SHA tidak menghantar pelaksanaan MD5 sama ada. Seperti platform API yang digunakannya, ia enggan menjadikan algoritma yang rosak mudah diakses. Jika aplikasi anda benar-benar memerlukan MD5—sistem Git legasi luar yang jarang berlaku—pelaksanaan itu tergolong dalam pangkalan kod anda sendiri dengan nota yang jelas bahawa ia adalah shim keserasian. Kebolehcapaian mencipta jangkaan, dan algoritma yang rosak tidak sepatutnya dijangka.
SHA-3 berada di luar pelayar API dan alat; sejarah penerimaannya adalah di luar bukti repositori
SHA-3 telah diseragamkan oleh NIST dalam 2015 selepas persaingan awam yang panjang, dan ia kukuh dari segi kriptografi. Ia menggunakan binaan asas yang berbeza daripada SHA-2, dipanggil span, yang menawarkan sifat teori yang menarik dan pertukaran prestasi bergantung pada perkakasan anda. Pada sistem moden, SHA-3 boleh lebih pantas daripada SHA-256. Namun platform pelayar tidak mendedahkannya hari ini, dan kelewatan ini mencerminkan keputusan praktikal tentang kematangan platform dan kadar penggunaan.
Kelewatan dalam penghantaran SHA-3 mencerminkan realiti: Kripto Web telah direka untuk merangkumi algoritma dalam penggunaan meluas di seluruh web dan dalam HTTPS/TLS. Pada API penyelesaian, SHA-2 (256, 384, 512) adalah konsensus yang menggalakkan untuk sistem baharu, dan berpindah ke SHA-3 berlaku lebih perlahan daripada bergerak dari MD5 atau SHA-1. Kebanyakan aplikasi tidak memerlukan SHA-3 belum lagi. Kos untuk mengembangkan API dan mengujinya merentasi setiap pelayar dan platform tidak dibenarkan oleh permintaan semasa pelancaran.
Ini bukan penolakan kekal. Web Crypto API boleh berkembang. Jika SHA-3 diterima pakai semakin pantas, kumpulan kerja boleh menambahnya. Set semasa mewakili algoritma matang dan piawaian meluas yang Web Crypto perlukan untuk memenuhi keperluan keselamatan segera platform. API Pelayar mestilah stabil dan diselenggara dengan teliti; tergesa-gesa untuk menambah ciri sebelum keperluan meluas mewujudkan beban penyelenggaraan dan risiko keserasian untuk tahun-tahun akan datang.
Sebab SHA-1 masih ada — keperluan pengesahan warisan dan perbezaan antara menawarkan dan mengesyorkan
SHA-1 disertakan dalam Web Crypto walaupun dipecahkan secara kriptografi. Pilihan berlawanan dengan intuisi ini sering mengejutkan pembangun. Algoritma menghasilkan ringkasan 160-bit, dan serangan perlanggaran terhadap SHA-1 kini praktikal—dua dokumen berbeza boleh dibuat untuk berkongsi ringkasan yang sama. Perlanggaran awalan pilihan membolehkan penyerang membuat dua dokumen yang kedua-duanya bermakna semasa berlanggar, yang memecahkan tandatangan dan sijil. Namun ia kekal dalam platform.
SHA-1 kekal dalam Web Crypto atas satu sebab yang perlu: keserasian warisan. Pengecam objek Git adalah berdasarkan SHA-1 dan semasa projek Git beralih kepada SHA-256, berjuta-juta repositori sedia ada, rujukan dan sistem binaan masih mengeluarkan cincangan SHA-1. TLS cap jari sijil daripada sistem lama membawa SHA-1 digest. API yang mengeluarkan HMAC-SHA1 tandatangan tahun lalu masih memerlukan pengesahan. Sistem yang digunakan ini mesti disahkan atau dipindahkan. Platform ini termasuk SHA-1 untuk membolehkan kerja yang diperlukan itu.
Platform API termasuk SHA-1 dengan pemahaman yang jelas bahawa ia ada untuk keserasian, bukan cadangan. UI pelayar melabelkan SHA-1 dengan amaran. Kalkulator cincang ToolAcre SHA memaparkan "Cryptographyally broken" di sebelah hasil SHA-1, memastikan sesiapa yang menggunakannya memahami bahawa mereka sedang bekerja dengan bahan warisan. Ketelusan adalah penting; pengguna tidak boleh tersilap SHA-1 keserasian untuk pengesahan SHA-1.
Jika keserasian memerlukan MD5, gunakan pelaksanaan yang disemak di luar alat ini dan jangan sesekali tersilap keserasian untuk keselamatan
Empat algoritma dalam Web Crypto sejajar dengan ekosistem suite sifir TLS dan dengan piawaian keselamatan yang paling penting. SHA-256 ialah lalai semasa untuk pencincangan tujuan umum, digunakan dalam semakan integriti subsumber, pengalamatan kandungan dan sistem keselamatan baharu. SHA-512 lebih pantas pada perkakasan 64-bit dan menawarkan pencernaan yang lebih luas. SHA-384 terutamanya dikenali kerana penggunaannya dalam TLS suite sifir.
SHA-1 disimpan untuk saling kendali, bukan kerana sesiapa sahaja harus memulakan sistem baharu dengannya. Jika anda mengesahkan jumlah semak SHA-1 sedia ada, memadankan cap jari sijil lama atau menghasilkan semula ID komit Git, SHA-1 dalam ToolAcre membolehkan anda berbuat demikian. Jika anda mereka bentuk sistem baharu, SHA-256 ialah pilihan yang jelas. Algoritma yang anda pilih menandakan pemahaman anda tentang model keselamatan.
Perkara ini tidak meliputi — masa jalan sebelah pelayan, yang biasanya mendedahkan lebih banyak algoritma penghadaman
Jika aplikasi anda benar-benar memerlukan MD5, SHA-3 atau mana-mana algoritma lain, pilihannya adalah jelas: simpan kod itu dalam masa jalan sebelah pelayan dan dedahkan sahaja hasil akhir kepada pelayar. Jangan hantar pelaksanaan JavaScript anda sendiri bagi algoritma kriptografi untuk kegunaan pelayar. Web Crypto asli pelayar adalah lebih pantas, lebih selamat dan diaudit dalam cara fungsi JavaScript tulisan tangan tidak dapat dipadankan. Mewakilkan kepada platform sentiasa merupakan pilihan yang betul apabila platform menyediakan apa yang anda perlukan.
Ini terpakai walaupun kepada algoritma "mudah". Pelaksanaan MD5 yang ditulis sendiri mungkin kelihatan tidak berbahaya kerana MD5 rosak juga, tetapi algoritma yang rosak tidak mempunyai penggredan—ia sahaja rosak. Penghantaran satu menormalkan amalan melaksanakan kriptografi dalam kod aplikasi. Pelayar menyediakan apa yang diperlukan oleh platform; gunakan apa yang disediakan. Kriptografi gulung tangan ialah satu-satunya sumber kelemahan keselamatan terbesar dalam aplikasi web kerana pembangun memandang rendah kes kehalusan dan kelebihan.
Bawa pulang: pengehadan adalah sebahagian daripada produk — kalkulator cincang ToolAcre SHA menawarkan empat algoritma yang dilaksanakan pelayar secara asli dan dokumen yang membatasi
Kalkulator cincang ToolAcre SHA memaparkan kekangan ini secara langsung: anda melihat betul-betul empat algoritma yang disediakan oleh Web Crypto, tidak lebih dan tidak kurang. Jika anda menampal nilai dan fikir "Saya perlukan MD5", ketiadaan itu adalah disengajakan. Jika anda memerlukannya, itu adalah isyarat bahawa sistem anda mempunyai komponen warisan yang memerlukan pengendalian yang teliti—tepat jenis alat migrasi sebelah pelayan khusus, bukan utiliti pelayar. Kejujuran alat tentang perkara yang dilakukan dan tidak ditawarkannya adalah maklumat yang berharga itu sendiri.
Reka bentuk Web Crypto mencerminkan amalan kriptografi berdekad-dekad: algoritma yang diseragamkan, diaudit dan terbukti dalam penggunaan yang luas. SHA-256 dan SHA-512 ialah lalai yang wajar. SHA-384 mempunyai keturunan TLS. SHA-1 ada kerana web mempunyai SHA-1 ringkasan yang perlu disahkan selama bertahun-tahun. MD5 dan SHA-3 tiada kerana MD5 rosak dan SHA-3 masih belum kritikal pada platform.