Fungsi hash kriptografi (CHF) adalah algoritme yang dapat dijalankan pada data seperti file individual atau kata sandi untuk menghasilkan nilai yang disebut checksum.
Penggunaan utama CHF adalah untuk memverifikasi keaslian sepotong data. Dua file dapat dianggap identik hanya jika checksum yang dihasilkan dari setiap file, menggunakan fungsi hash kriptografi yang sama, adalah identik.
Beberapa fungsi hash kriptografi yang umum digunakan antara lain MD5 dan SHA-1, meskipun banyak juga yang lainnya. Ini sering disebut sebagai “fungsi hash”, tapi itu tidak benar secara teknis. Fungsi hash adalah istilah umum yang mencakup CHF bersama dengan jenis algoritme lain seperti pemeriksaan redundansi siklik.
Fungsi Hash Kriptografis: Kasus Penggunaan
Katakanlah Anda mengunduh versi terbaru dari browser Firefox. Untuk beberapa alasan, Anda perlu mengunduhnya dari situs selain Mozilla. Karena tidak dihosting di situs yang telah Anda percayai, Anda ingin memastikan bahwa file instalasi yang baru saja Anda unduh sama persis dengan yang ditawarkan Mozilla.
Menggunakan kalkulator checksum, Anda menghitung checksum menggunakan fungsi hash kriptografik tertentu, seperti SHA-2, lalu membandingkannya dengan yang dipublikasikan di situs Mozilla. Jika keduanya sama, Anda dapat yakin bahwa unduhan yang Anda miliki adalah yang diinginkan oleh Mozilla.
Yagi Studio / Digital Vision / Getty Images
Bisakah Fungsi Hash Kriptografi Dibalik?
Fungsi hash kriptografi dirancang untuk mencegah kemampuan membalikkan checksum yang mereka buat kembali ke teks asli. Namun, meskipun hampir tidak mungkin untuk dibalik, mereka tidak dijamin 100 persen untuk melindungi data.
Peretas dapat menggunakan tabel pelangi untuk mencari tahu teks biasa dari sebuah checksum. Tabel pelangi adalah kamus yang mencantumkan ribuan, jutaan, atau bahkan miliaran checksum di samping nilai teks biasa yang sesuai.
Meskipun ini tidak secara teknis membalikkan algoritme hash kriptografi, mungkin juga demikian, mengingat sangat mudah dilakukan. Pada kenyataannya, karena tidak ada tabel pelangi yang dapat mencantumkan setiap kemungkinan checksum yang ada, tabel tersebut biasanya hanya berguna untuk frasa sederhana seperti kata sandi yang lemah.
Cara Membuat Kata Sandi yang Kuat
Berikut adalah versi tabel pelangi yang disederhanakan untuk menunjukkan cara kerjanya saat menggunakan fungsi hash kriptografi SHA-1:
Contoh Meja Pelangi | |
Teks biasa | SHA-1 Checksum |
12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
kata sandi1 | e38ad214943daad1d64c102faec29de4afe9da3d |
aku cinta anjingku | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
Jenny400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
dallas1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
Seorang hacker harus tahu algoritma hash kriptografi mana yang digunakan untuk menghasilkan checksum untuk mengetahui nilainya.
Untuk perlindungan tambahan, beberapa situs web yang menyimpan kata sandi pengguna melakukan fungsi tambahan pada algoritme hash kriptografik setelah nilai dihasilkan tetapi sebelum disimpan. Proses ini menghasilkan nilai baru yang hanya dipahami oleh server web dan tidak cocok dengan checksum asli.
Misalnya, setelah kata sandi dimasukkan dan checksum dihasilkan, kata sandi tersebut dapat dipisahkan menjadi beberapa bagian dan disusun ulang sebelum disimpan dalam basis data kata sandi, atau karakter tertentu mungkin ditukar dengan yang lain. Saat mencoba mengautentikasi saat berikutnya pengguna masuk, server membalikkan fungsi tambahan ini, dan checksum asli dibuat lagi untuk memverifikasi bahwa kata sandi pengguna valid.
Mengambil langkah-langkah ini membatasi kegunaan peretasan di mana semua checksum dicuri. Idenya adalah untuk menjalankan fungsi yang tidak diketahui, jadi jika peretas mengetahui algoritme hash kriptografis tetapi bukan algoritme khusus, maka mengetahui checksum kata sandi tidak akan membantu.
Kata Sandi dan Fungsi Hash Kriptografis
Database menyimpan kata sandi pengguna dengan cara yang mirip dengan tabel pelangi. Saat kata sandi Anda dimasukkan, checksum dibuat dan dibandingkan dengan yang tercatat dengan nama pengguna Anda. Anda kemudian diberi akses jika keduanya identik.
Mengingat bahwa CHF menghasilkan checksum yang tidak dapat dibalik, apakah aman bagi Anda untuk membuat kata sandi sesederhana 12345 , bukan 12@34$5 , hanya karena checksum itu sendiri tidak dapat dipahami? Tidak, dan inilah alasannya.
Kedua kata sandi ini sama-sama tidak mungkin diuraikan hanya dengan melihat checksum saja:
MD5 untuk 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 seharga 12@34$5: a4d3cc004f487b18b2ccd4853053818b
Sekilas, Anda mungkin berpikir tidak apa-apa menggunakan salah satu dari kata sandi ini. Ini benar jika penyerang mencoba mencari tahu kata sandi Anda dengan menebak checksum MD5, yang tidak dilakukan siapa pun, tetapi tidak benar jika serangan brute force atau kamus dilakukan, yang merupakan taktik umum.
Serangan brute force terjadi ketika beberapa tusukan acak dilakukan untuk menebak kata sandi. Dalam hal ini, akan mudah ditebak 12345 , tetapi cukup sulit untuk mengetahui yang lainnya secara acak. Serangan kamus serupa karena penyerang dapat mencoba setiap kata, angka, atau frasa dari daftar kata sandi umum (dan tidak terlalu umum), dan 12345 adalah salah satu kata sandi umum tersebut.
Meskipun fungsi hash kriptografik menghasilkan checksum yang sulit ditebak, Anda tetap harus menggunakan kata sandi yang kompleks untuk semua akun pengguna online dan lokal Anda.
Informasi Lebih Lanjut tentang Fungsi Hash Kriptografis
Sepertinya fungsi hash kriptografi terkait dengan enkripsi, tetapi keduanya bekerja dengan cara yang berbeda.
Enkripsi adalah proses dua arah di mana sesuatu dienkripsi menjadi tidak dapat dibaca dan kemudian didekripsi nanti untuk digunakan kembali secara normal. Anda dapat mengenkripsi file yang Anda simpan sehingga siapa pun yang mengaksesnya tidak dapat menggunakannya, atau Anda dapat menggunakan enkripsi transfer file untuk mengenkripsi file yang berpindah melalui jaringan, seperti yang Anda unggah atau unduh secara online.
Fungsi hash kriptografis bekerja secara berbeda, karena checksum tidak dimaksudkan untuk dibalik dengan kata sandi dehashing khusus. Satu-satunya tujuan CHF adalah untuk membandingkan dua bagian data, seperti saat mengunduh file, menyimpan kata sandi, dan menarik data dari database.
Fungsi hash kriptografis dapat menghasilkan checksum yang sama untuk bagian data yang berbeda. Ketika ini terjadi, ini disebut tabrakan, yang merupakan masalah besar mengingat inti dari fungsi ini adalah membuat checksum unik untuk setiap input data ke dalamnya.
Tabrakan dapat terjadi karena setiap CHF menghasilkan nilai dengan panjang yang tetap terlepas dari input data. Misalnya, fungsi hash kriptografi MD5 menghasilkan 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983, dan e10adc3949ba59abbe56e057f20f883e untuk tiga blok data yang sama sekali berbeda.
Checksum pertama adalah dari 12345 . Yang kedua dihasilkan dari lebih dari 700 huruf dan angka, dan yang ketiga dari 123456 . Ketiga input memiliki panjang yang berbeda, tetapi hasilnya selalu hanya sepanjang 32 karakter, karena checksum MD5 digunakan.
Tidak ada batasan jumlah checksum ya
ng dapat dibuat karena setiap perubahan kecil pada masukan seharusnya menghasilkan checksum yang sama sekali berbeda. Karena ada batasan jumlah checksum yang dapat dihasilkan oleh satu CHF, selalu ada kemungkinan Anda akan mengalami tabrakan.
Inilah sebabnya mengapa fungsi hash kriptografi lainnya telah dibuat. Sementara MD5 menghasilkan nilai 32 karakter, SHA-1 menghasilkan 40 karakter dan SHA-2 (512) menghasilkan 128. Semakin besar jumlah karakter yang dimiliki checksum, semakin kecil kemungkinan terjadinya tabrakan.