Bahasa Melayu

Alat pembangun · SHA kalkulator cincang

Hashing Bukan Penyulitan: Mengapa SHA-256 Hash Tidak Boleh Dinyahsulit

· Mengapa ia penting

kriptografi keselamatan pengekodan

Input mengalir ke dalam fungsi cincang dengan anak panah menghala ke hadapan untuk mencerna, tetapi tiada anak panah kembali ke belakang
Ilustrasi vektor ToolAcre asal

Tiada kunci dan tiada songsang: cincang ialah fungsi sehala. Siaran ini menerangkan perbezaan daripada penyulitan, mengapa tapak carian cincang nampaknya membalikkan cincang, dan maksudnya untuk pencincangan data peribadi.

Sila nyahsulit cincang ini — tiket yang mendedahkan salah faham tentang pencincangan

Tiket sokongan tiba meminta untuk menyahsulit beberapa cincangan SHA-256. Pembangun membacanya mengesyaki salah faham tentang apa itu pencincangan. Kekeliruan itu masuk akal—kedua-dua pencincangan dan penyulitan melibatkan algoritma kriptografi, kedua-duanya menghasilkan output yang kelihatan bercelaru dan kedua-duanya berkaitan dengan keselamatan. Tetapi mereka pada asasnya adalah alat yang berbeza. Penyulitan boleh diterbalikkan; pencincangan tidak. Perbezaan ini cukup penting sehingga mengelirukan mereka telah memecahkan sistem keselamatan sebenar. Tiket itu mewakili jurang biasa dalam pemahaman yang mempengaruhi reka bentuk sistem.

Fungsi cincang ialah fungsi sehala. Anda boleh mencincang input untuk mendapatkan ringkasan, tetapi tiada kunci dan tiada operasi songsang yang memulihkan input daripada ringkasan. Ini bukan had atau pepijat; ia adalah sifat penentu cincang. Kalkulator cincang ToolAcre SHA menghasilkan ringkasan teks yang anda tampalkan dan tiada butang "nyahsulit" kerana tiada butang boleh wujud. Operasi ini tidak boleh diterbalikkan oleh matematik, bukan dengan pilihan. Ketiadaan fungsi terbalik bukanlah ciri yang boleh anda minta.

Penyulitan mempunyai kunci dan songsang; pencincangan tidak mempunyai — perbezaan takrifan dalam istilah biasa

Penyulitan berfungsi secara berbeza. Algoritma penyulitan mengambil teks biasa dan kunci, dan menghasilkan teks sifir. Teks sifir dikacau dan tidak boleh dibaca tanpa kunci. Yang penting, kunci yang sama boleh menyahsulit teks sifir kembali kepada teks biasa. Penyulitan boleh diterbalikkan mengikut reka bentuk. Anda menyulitkan untuk merahsiakan data; anda menyahsulit untuk membacanya semula. Keselamatan penyulitan bergantung kepada kunci yang dirahsiakan. Sahaja pemegang kunci boleh membalikkan transformasi.

Hashing tidak mempunyai kunci dan tiada pembalikan. Anda mencincang sesuatu untuk menghasilkan ringkasan panjang tetap. Input yang sama sentiasa menghasilkan digest yang sama. Input yang berbeza menghasilkan pencernaan yang berbeza—iaitu sifat rintangan perlanggaran. Tetapi anda tidak boleh mencerna dan menghasilkan input. Fungsi ini sahaja berjalan sehala. Jika anda perlu menyulitkan data supaya anda boleh menyahsulitnya kemudian, pencincangan adalah alat yang salah. Jika anda memerlukan cap jari data untuk pengesahan atau pengalamatan kandungan, pencincangan adalah betul. Memilih alat yang betul memerlukan memahami perbezaannya.

Cara tapak carian cincang berfungsi — kamus prakiraan input biasa, bukan penyahsulitan

Perbezaan ini sangat penting sehingga ia mendasari keselamatan pengesahan kata laluan. Pelayan tidak menyimpan kata laluan. Ia menyimpan hasil pencincangan kata laluan. Apabila pengguna log masuk, pelayan mencincang penyerahan mereka dan membandingkannya dengan nilai yang disimpan. Jika pelayan dikompromi dan pangkalan datanya dicuri, penyerang tidak mendapat kata laluan itu sendiri, sahaja cincang. Sifat sehala cincang bermakna penyerang tidak boleh merekayasa balik kata laluan daripada cincang. Keselamatan sistem bergantung pada harta ini.

Jika pelayan sebaliknya menggunakan penyulitan—jika ia menyulitkan kata laluan dan boleh menyahsulitnya—maka kompromi yang mencuri kunci akan mendedahkan setiap kata laluan dengan serta-merta. Hashing dipilih secara khusus kerana ia tidak boleh diterbalikkan. Inilah sebabnya mengapa sistem kata laluan menggunakan pencincangan, bukan penyulitan. Ketakterbalikan bukanlah satu batasan; ia adalah keseluruhan model keselamatan. Pangkalan data kata laluan yang disulitkan pada asasnya lebih lemah daripada yang dicincang kerana penyulitan boleh diterbalikkan.

Input entropi rendah ialah kelemahan — mengapa pencincangan alamat e-mel, nombor telefon atau pendek PIN menawarkan sedikit perlindungan

Tapak carian hash wujud untuk mencipta ilusi penyahsulitan. Tapak ini mengehoskan jadual prapengiraan input biasa dan cincangnya. "Jadual pelangi" ialah kamus yang telah disediakan sebelumnya: jadual mungkin mengandungi cincangan seribu kata laluan yang paling biasa, atau semua gabungan abjad angka sehingga panjang tertentu, atau keseluruhan senarai perkataan dalam berbilang bahasa. Pengendali tapak telah pun melakukan kerja pencincangan dan menyimpan hasilnya. Apabila seseorang menyerahkan cincangan ke tapak carian, tapak itu tidak menyahsulit apa-apa. Ia sahaja melihat cincangan dalam jadualnya. Jika cincang ada—jika beberapa perkataan kamus atau corak kata laluan berlaku padanan—jadual mengembalikan input asal. Ini kelihatan seperti penyahsulitan ajaib kepada seseorang yang tidak biasa dengan teknik ini, tetapi ia hanyalah carian pangkalan data. Tapak ini tidak membalikkan cincang; ia membandingkannya dengan nilai prakiraan.

Contoh yang berkesan — mencirikan nilai yang boleh diteka dan menunjukkan cara kamus akan memulihkannya, berbanding nilai rawak panjang yang tidak dapat

Inilah sebabnya mengapa input entropi rendah terdedah. Jika anda mencincang kata laluan biasa seperti "kata laluan" atau nilai yang boleh diramal seperti alamat e-mel seseorang, terdapat kemungkinan yang munasabah tapak carian telah mengira cincang itu dan menyimpannya. Carian mengembalikan nilai asal serta-merta. Jika anda mencincang rentetan rawak aksara 256, tiada tapak carian di bumi akan mempunyai cincangan tertentu itu diprakira. Tapak carian tidak mengembalikan apa-apa, kerana input tiada dalam kamus mereka. Keselamatan cincang bergantung sepenuhnya pada entropi input.

Kalkulator cincang ToolAcre SHA menunjukkan perkara ini secara langsung. Cincang perkataan biasa, dan penyerang yang gigih boleh mencarinya jika mereka menjalankan perkhidmatan kamus mereka sendiri. Hash nilai rawak yang panjang, malah kamus besar-besaran tidak mungkin mengandunginya. Determinisme pencincangan—input yang sama memberikan output yang sama—adalah yang menjadikan serangan kamus mungkin. Ia juga yang menjadikan cincang berguna untuk pengesahan. Sifat yang sama yang membolehkan carian juga mendayakan pengesahan.

Apabila anda benar-benar mahukan penyulitan — kes di mana data mesti keluar semula, dan di mana cincangan adalah alat yang salah

Apabila anda benar-benar mahukan penyulitan—apabila anda perlu menghantar data rahsia dan memulihkannya kemudian—sifir ialah alat yang betul. AES ialah standard moden untuk penyulitan simetri: satu kunci dikongsi, dan ia menyulitkan teks biasa dan menyahsulit teks sifir. RSA atau kriptografi lengkung eliptik digunakan untuk penyulitan asimetri: kunci awam menyulitkan dan kunci persendirian menyahsulit. Alat ini boleh diterbalikkan mengikut reka bentuk. Keselamatan datang dari kerahsiaan utama, bukan dari keterbalikan. Kesilapannya ialah menggunakan pencincangan di mana penyulitan diperlukan. Jika anda mencincang nombor kad kredit yang bertujuan untuk mengesahkannya kemudian, anda tidak mempunyai cara untuk menyahsulitnya. Jika anda mencincang pengecam peribadi dan kemudiannya perlu memulihkannya, pencincangan adalah pilihan yang salah. Ini adalah situasi yang memerlukan penyulitan.

Contoh yang berfungsi memisahkan kedua-dua kegunaan dengan jelas. Anda mempunyai senarai ID pengguna yang mesti dirahsiakan antara satu sama lain dan daripada kakitangan anda sendiri. Anda menyulitkannya dengan AES dan menyimpan hasilnya. Kemudian, apabila anda perlu mencari pengguna, anda menyahsulit dan membacanya. Hashing tidak akan berfungsi; sekali dicincang, ID hilang selama-lamanya. Sebaliknya, anda mempunyai kata laluan pengguna. Anda cincang mereka dan simpan cincang itu. Apabila pengguna log masuk, anda mencincang penyerahan mereka dan membandingkan dengan nilai yang disimpan. Anda tidak perlu memulihkan kata laluan itu sendiri. Penyulitan akan menjadi salah; anda tidak boleh menggunakan kata laluan teks biasa selepas persediaan awal.

Perkara yang tidak dicakupi ini — reka bentuk pencincangan berkunci dan masin, yang meningkatkan bar tetapi merupakan topik yang berasingan

Pemasinan dan pencincangan berkunci berhak mendapat rawatan yang berasingan kerana kedua-duanya tidak mengubah penghadaman kepada penyulitan. Garam menjadikan input rendah entropi yang sama menghasilkan rekod tersimpan yang berbeza, dan kunci boleh menyekat siapa yang mengira nilai pengesahan yang sah. Keluaran kekal tidak boleh diterbalikkan; percubaan pemulihan masih diteruskan dengan menguji input calon dan bukannya menggunakan songsang.

Pencincangan kata laluan menambah kos yang disengajakan serta garam, manakala HMAC mengesahkan mesej dengan kunci rahsia. ToolAcre tidak melaksanakan kedua-dua operasi. Menyimpannya di luar artikel ini mengelakkan pintasan berbahaya untuk menerangkan SHA-256 biasa serta awalan improvisasi sebagai setara dengan rekod kata laluan yang disemak atau pembinaan pengesahan mesej.

Bawa pulang: sehala sahaja — ToolAcre SHA kalkulator cincang mengira cerna; tiada butang terbalik kerana tiada satu pun boleh wujud

Kalkulator cincang ToolAcre SHA menunjukkan anda pencincangan dalam tindakan: tampal teks, selesaikan ringkasan, selesai. Tiada pembalikan mungkin atau bertujuan. Alat itu dengan betul menolak untuk menyediakan fungsi "nyahsulit", kerana seseorang tidak boleh wujud. Jika anda memerlukan penyulitan, gunakan sifir yang betul. Ketiadaan pembalikan bukanlah batasan alat; ia adalah fakta matematik tentang pencincangan. Fungsi sehala ialah alat yang berkuasa dengan tepat kerana ia tidak boleh diterbalikkan. Mereka melakukan data dengan cara yang tidak boleh ditarik balik. Mereka menyediakan pengesahan tanpa mendedahkan yang asal. Mereka membolehkan sistem kata laluan yang selamat walaupun pangkalan data dicuri. Cincang kata laluan yang masin dan ditala dengan betul menjadi tidak boleh dilakukan untuk diterbalikkan melalui tekaan. Ketidakbolehbalikan adalah mekanisme keselamatan.

Kalkulator cincang ToolAcre SHA mengira ringkasan yang sehala, bertujuan dan dikira dengan betul oleh pelaksanaan Kripto Web pelayar sendiri. Jika anda perlu cincang untuk pengesahan atau integriti, gunakannya. Jika anda perlu merahsiakan data dan mendapatkannya kemudian, penyulitan ialah alat anda. Memahami perbezaan antara pencincangan tidak boleh balik dan penyulitan boleh balik adalah asas kepada keselamatan dan untuk membina sistem yang melakukan perkara yang anda perlukan.