Bahasa Indonesia

Alat pengembang · SHA kalkulator hash

Hashing Bukan Enkripsi: Mengapa Hash SHA-256 Tidak Dapat Didekripsi

· Mengapa itu penting

kriptografi keamanan pengkodean

Input mengalir ke fungsi hash dengan panah mengarah ke depan untuk dicerna, tetapi tidak ada panah yang kembali ke belakang
Ilustrasi vektor ToolAcre asli

Tidak ada kunci dan tidak ada invers: hash adalah fungsi satu arah. Posting ini menjelaskan perbedaan dari enkripsi, mengapa situs pencarian hash tampaknya membalikkan hash, dan apa artinya hashing data pribadi.

Harap dekripsi hash ini — tiket yang mengungkapkan kesalahpahaman tentang apa itu hashing

Tiket dukungan tiba meminta untuk mendekripsi beberapa hash SHA-256. Pengembang yang membacanya mencurigai adanya kesalahpahaman tentang apa itu hashing. Kebingungan ini masuk akal—baik hashing maupun enkripsi melibatkan algoritme kriptografi, keduanya menghasilkan keluaran yang terlihat acak-acakan, dan keduanya relevan dengan keamanan. Namun pada dasarnya keduanya adalah alat yang berbeda. Enkripsi dapat dibalik; hashing tidak. Perbedaan ini cukup penting sehingga membingungkan mereka telah merusak sistem keamanan yang sebenarnya. Tiket tersebut mewakili kesenjangan umum dalam pemahaman yang mempengaruhi desain sistem.

Fungsi hash adalah fungsi satu arah. Anda dapat melakukan hash pada masukan untuk mendapatkan intisari, tetapi tidak ada kunci dan tidak ada operasi invers yang memulihkan masukan dari intisari. Ini bukan batasan atau bug; itu adalah properti penentu dari sebuah hash. Kalkulator hash ToolAcre SHA menghasilkan ringkasan teks yang Anda tempel, dan tidak ada tombol "dekripsi" karena tidak ada tombol yang ada. Operasi ini tidak dapat diubah berdasarkan matematika, bukan karena pilihan. Tidak adanya fungsi sebaliknya bukanlah fitur yang dapat Anda minta.

Enkripsi memiliki kunci dan kebalikannya; hashing tidak memiliki keduanya - perbedaan definisi secara sederhana

Enkripsi bekerja secara berbeda. Algoritme enkripsi mengambil teks biasa dan kunci, dan menghasilkan teks tersandi. Teks tersandi diacak dan tidak dapat dibaca tanpa kunci. Yang terpenting, kunci yang sama dapat mendekripsi ciphertext kembali ke plaintext. Enkripsi dirancang untuk dapat dibalik. Anda mengenkripsi untuk menjaga kerahasiaan data; Anda mendekripsi untuk membacanya lagi. Keamanan enkripsi bergantung pada kunci yang dirahasiakan. Hanya pemegang kunci yang dapat membalikkan transformasi tersebut.

Hashing tidak memiliki kunci dan tidak ada pembalikan. Anda melakukan hashing pada sesuatu untuk menghasilkan intisari dengan panjang tetap. Input yang sama selalu menghasilkan intisari yang sama. Masukan yang berbeda menghasilkan intisari yang berbeda—yaitu properti tahan benturan. Tapi Anda tidak bisa mencerna dan menghasilkan masukan. Fungsinya hanya berjalan satu arah. Jika Anda perlu mengenkripsi data agar dapat mendekripsinya nanti, hashing adalah alat yang salah. Jika Anda memerlukan sidik jari data untuk verifikasi atau pengalamatan konten, hashing sudah benar. Memilih alat yang tepat memerlukan pemahaman perbedaannya.

Cara kerja situs pencarian hash — kamus masukan umum yang telah dihitung sebelumnya, bukan dekripsi

Perbedaan ini sangat penting sehingga mendasari keamanan verifikasi kata sandi. Server tidak menyimpan kata sandi. Ini menyimpan hasil hashing kata sandi. Saat pengguna masuk, server akan melakukan hash pada kiriman mereka dan membandingkannya dengan nilai yang disimpan. Jika server disusupi dan basis datanya dicuri, penyerang tidak mendapatkan kata sandinya sendiri, hanya hashnya. Sifat hash yang satu arah berarti penyerang tidak dapat merekayasa balik kata sandi dari hash tersebut. Keamanan sistem bergantung pada properti ini.

Jika server menggunakan enkripsi—jika server mengenkripsi kata sandi dan dapat mendekripsinya—maka kompromi yang mencuri kunci akan segera mengungkap setiap kata sandi. Hashing dipilih secara khusus karena tidak dapat diubah. Inilah sebabnya mengapa sistem kata sandi menggunakan hashing, bukan enkripsi. Sifat yang tidak dapat diubah bukanlah suatu batasan; itu adalah keseluruhan model keamanan. Basis data kata sandi terenkripsi pada dasarnya lebih lemah daripada basis data yang di-hash karena enkripsi dapat dibalik.

Input dengan entropi rendah adalah kelemahannya — mengapa hashing pada alamat email, nomor telepon, atau PIN singkat hanya menawarkan sedikit perlindungan

Situs pencarian hash ada untuk menciptakan ilusi dekripsi. Situs-situs ini menghosting tabel input umum dan hashnya yang telah dihitung sebelumnya. "Tabel pelangi" adalah kamus yang telah disiapkan sebelumnya: sebuah tabel mungkin berisi hash dari ribuan kata sandi yang paling umum, atau semua kombinasi alfanumerik hingga panjang tertentu, atau seluruh daftar kata dalam berbagai bahasa. Operator situs telah melakukan pekerjaan hashing dan menyimpan hasilnya. Ketika seseorang mengirimkan hash ke situs pencarian, situs tersebut tidak mendekripsi apa pun. Itu hanya mencari hash di tabelnya. Jika hashnya ada—jika beberapa kata kamus atau pola kata sandi cocok—tabel akan mengembalikan input asli. Ini tampak seperti dekripsi ajaib bagi seseorang yang tidak terbiasa dengan teknik ini, tetapi ini hanyalah pencarian basis data. Situs ini tidak membalikkan hash; itu membandingkannya dengan nilai yang dihitung sebelumnya.

Contoh praktis - melakukan hashing pada nilai yang dapat ditebak dan menunjukkan bagaimana kamus dapat memulihkannya, dibandingkan dengan nilai acak panjang yang tidak dapat dipulihkan

Inilah sebabnya mengapa input dengan entropi rendah rentan. Jika Anda melakukan hash pada kata sandi umum seperti "kata sandi" atau nilai yang dapat diprediksi seperti alamat email seseorang, ada kemungkinan besar situs pencarian telah menghitung hash tersebut dan menyimpannya. Pencarian mengembalikan nilai asli secara instan. Jika Anda melakukan hash pada string acak berkarakter 256, tidak ada situs pencarian di dunia yang akan menghitung hash tertentu tersebut sebelumnya. Situs pencarian tidak menghasilkan apa pun, karena masukannya tidak ada dalam kamusnya. Keamanan hash bergantung sepenuhnya pada entropi masukan.

Kalkulator hash ToolAcre SHA menunjukkan hal ini secara langsung. Hash sebuah kata yang umum, dan penyerang yang gigih dapat mencarinya jika mereka menjalankan layanan kamusnya sendiri. Hash memiliki nilai acak yang panjang, dan bahkan kamus besar pun tidak mungkin memuatnya. Determinisme hashing—input yang identik memberikan output yang identik—adalah hal yang memungkinkan terjadinya serangan kamus. Hal ini juga yang membuat hash berguna untuk verifikasi. Properti yang sama yang mengaktifkan pencarian juga mengaktifkan verifikasi.

Saat Anda benar-benar menginginkan enkripsi — kasus di mana data harus keluar kembali, dan hash adalah alat yang salah

Saat Anda benar-benar menginginkan enkripsi—saat Anda perlu mengirim data rahasia dan memulihkannya nanti—sandi adalah alat yang tepat. AES adalah standar modern untuk enkripsi simetris: satu kunci dibagikan, dan kunci tersebut mengenkripsi teks biasa dan mendekripsi teks tersandi. RSA atau kriptografi kurva elips digunakan untuk enkripsi asimetris: kunci publik mengenkripsi dan kunci pribadi mendekripsi. Alat-alat ini dirancang untuk dapat dibalik. Keamanan berasal dari kerahasiaan kunci, bukan dari sifat yang tidak dapat diubah. Kesalahannya adalah menggunakan hashing yang memerlukan enkripsi. Jika Anda melakukan hash pada nomor kartu kredit yang ingin diverifikasi nanti, Anda tidak memiliki cara untuk mendekripsinya. Jika Anda melakukan hashing pada pengenal pribadi dan kemudian perlu memulihkannya, hashing adalah pilihan yang salah. Ini adalah situasi yang memerlukan enkripsi.

Contoh praktis memisahkan kedua penggunaan dengan jelas. Anda memiliki daftar ID pengguna yang harus dirahasiakan satu sama lain dan dari staf Anda sendiri. Anda mengenkripsinya dengan AES dan menyimpan hasilnya. Nanti, saat Anda perlu mencari pengguna, Anda mendekripsi dan membacanya. Hashing tidak akan berhasil; setelah di-hash, ID akan hilang selamanya. Sebaliknya, Anda memiliki kata sandi pengguna. Anda melakukan hash dan menyimpan hash tersebut. Saat pengguna masuk, Anda melakukan hash pada kiriman mereka dan membandingkannya dengan nilai yang disimpan. Anda tidak perlu memulihkan kata sandinya sendiri. Enkripsi akan salah; Anda tidak dapat menggunakan kata sandi teks biasa setelah pengaturan awal.

Apa yang tidak tercakup di sini — desain hashing dengan kunci dan asin, yang meningkatkan standar tetapi merupakan topik terpisah

Pengasinan dan hashing yang dikunci memerlukan perlakuan terpisah karena tidak ada yang mengubah intisari menjadi enkripsi. Salt membuat input dengan entropi rendah yang sama menghasilkan catatan tersimpan yang berbeda, dan kunci dapat membatasi siapa yang menghitung nilai autentikasi yang valid. Outputnya tetap tidak dapat dibalikkan; upaya pemulihan masih dilakukan dengan menguji masukan kandidat daripada menerapkan kebalikannya.

Pencirian kata sandi menambah biaya dan kerugian yang disengaja, sementara HMAC mengautentikasi pesan dengan kunci rahasia. ToolAcre tidak mengimplementasikan operasi mana pun. Menyimpannya di luar artikel ini menghindari jalan pintas yang berbahaya dalam mendeskripsikan SHA-256 biasa ditambah awalan improvisasi yang setara dengan catatan kata sandi yang ditinjau atau konstruksi autentikasi pesan.

Kesimpulan: hanya ada satu cara — kalkulator hash ToolAcre SHA menghitung intisari; tidak ada tombol mundur karena tidak ada yang bisa ada

Kalkulator hash ToolAcre SHA menunjukkan tindakan hashing: menempelkan teks, membuat intisari, selesai. Tidak ada pembalikan yang mungkin atau dimaksudkan. Alat ini dengan tepat menolak menyediakan fungsi "dekripsi", karena fungsi tersebut tidak ada. Jika Anda memerlukan enkripsi, gunakan sandi yang tepat. Tidak adanya pembalikan bukan merupakan batasan alat; ini adalah fakta matematis tentang hashing. Fungsi satu arah adalah alat yang ampuh karena tidak dapat dibalik. Mereka memasukkan data dengan cara yang tidak dapat ditarik kembali. Mereka memberikan verifikasi tanpa mengungkapkan aslinya. Mereka mengaktifkan sistem kata sandi yang aman bahkan jika database dicuri. Hash kata sandi yang asin dan disesuaikan dengan biaya menjadi tidak mungkin untuk dibalik hanya dengan menebak-nebak. Ketidakterbalikan adalah mekanisme keamanan.

Kalkulator hash ToolAcre SHA menghitung intisari yang bersifat satu arah, memiliki tujuan, dan dihitung dengan benar oleh implementasi Kripto Web milik browser. Jika Anda perlu melakukan hash untuk verifikasi atau integritas, gunakanlah. Jika Anda perlu menjaga kerahasiaan data dan mengambilnya kembali nanti, enkripsi adalah alat Anda. Memahami perbedaan antara hashing yang tidak dapat diubah dan enkripsi yang dapat dibalik merupakan hal mendasar bagi keamanan dan untuk membangun sistem yang melakukan apa yang benar-benar Anda perlukan.