Fungsi hash kriptografi adalah algoritma yang dapat dijalankan pada data seperti file individu atau kata sandi untuk menghasilkan nilai yang disebut checksum.
Penggunaan utama dari fungsi hash kriptografi adalah untuk memverifikasi keaslian sebagian data. Dua file dapat diasumsikan hanya identik jika checksum yang dihasilkan dari setiap file, menggunakan fungsi hash kriptografi yang sama, adalah identik.
Beberapa fungsi hash kriptografi yang umum digunakan termasuk MD5 dan SHA-1, meskipun banyak lainnya juga ada.
Fungsi hash kriptografi sering disebut sebagai "fungsi hash," tetapi itu tidak benar secara teknis. Fungsi hash adalah istilah umum yang mencakup fungsi hash kriptografi bersama dengan jenis lain dari algoritma seperti cek redundansi siklik.
Fungsi Hash Kriptografi: Kasus Penggunaan
Katakanlah Anda mengunduh versi terbaru dari peramban Firefox. Untuk beberapa alasan, Anda perlu mengunduhnya dari situs selain Mozilla. Karena tidak dihosting di situs yang telah Anda pelajari untuk dipercayai, Anda ingin memastikan bahwa file instalasi yang baru saja Anda unduh persis sama dengan yang ditawarkan oleh Mozilla.
Menggunakan kalkulator checksum, Anda menghitung checksum menggunakan fungsi hash kriptografi tertentu, seperti SHA-2, dan kemudian membandingkannya dengan yang dipublikasikan di situs Mozilla. Jika mereka setara, Anda dapat yakin bahwa unduhan yang Anda miliki adalah Mozilla yang Anda inginkan.
Dapatkah Fungsi Hash Kriptografis Dibalik?
Fungsi hash kriptografi dirancang untuk mencegah kemampuan membalikkan checksum yang mereka buat kembali ke teks asli. Namun, meskipun mereka hampir tidak mungkin untuk berbalik, mereka tidak dijamin 100 persen untuk melindungi data.
Peretas dapat menggunakan tabel pelangi untuk mencari teks biasa dari sebuah checksum.
Tabel pelangi adalah kamus yang memuat ribuan, jutaan, atau bahkan milyaran checksum di samping nilai teks biasa mereka.
Meskipun ini tidak secara teknis membalikkan algoritma hash kriptografi, itu mungkin juga, mengingat bahwa itu sangat sederhana untuk dilakukan. Kenyataannya, karena tidak ada tabel pelangi yang dapat mendaftar setiap kemungkinan checksum, mereka biasanya hanya membantu untuk frasa sederhana seperti kata sandi yang lemah.
Berikut ini adalah versi sederhana dari tabel pelangi untuk menunjukkan bagaimana cara kerjanya ketika menggunakan fungsi hash kriptografi SHA-1:
| Plaintext | 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 algoritma hash kriptografi setelah nilai dibuat tetapi sebelum disimpan. Proses ini menghasilkan nilai baru yang hanya dimengerti oleh server web dan tidak cocok dengan checksum asli.
Sebagai contoh, setelah kata sandi dimasukkan dan checksum dihasilkan, ia dapat dipisahkan menjadi beberapa bagian dan disusun kembali sebelum disimpan dalam basis data kata sandi, atau karakter tertentu dapat ditukar dengan yang lain. Ketika mencoba untuk mengotentikasi saat berikutnya pengguna masuk, server web 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 melakukan fungsi yang tidak diketahui, jadi jika hacker tahu algoritma hash kriptografi tetapi bukan yang kustom, maka mengetahui checksum password tidak membantu.
Sandi dan Fungsi Hash Kriptografi
Database menyimpan kata sandi pengguna dengan cara yang mirip dengan tabel pelangi. Ketika kata sandi Anda dimasukkan, checksum dihasilkan dan dibandingkan dengan yang direkam dengan nama pengguna Anda. Anda kemudian diberikan akses jika keduanya identik.
Mengingat bahwa fungsi hash kriptografi menghasilkan checksum yang tidak dapat diubah, apakah aman bagi Anda untuk membuat kata sandi Anda sesederhana 12345, dari pada 12@34$5, hanya karena checksum itu sendiri tidak bisa dimengerti? Tidak, dan inilah alasannya.
Kedua kata sandi ini sama-sama mustahil untuk dipahami hanya dengan melihat hanya pada checksum:
MD5 untuk 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 untuk 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b
Pada pandangan pertama, Anda mungkin berpikir bahwa tidak masalah untuk 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 diambil untuk menebak kata sandi. Dalam hal ini, itu akan mudah ditebak 12345, tapi cukup sulit untuk secara acak mencari yang lain. Serangan kamus serupa di mana penyerang dapat mencoba setiap kata, angka, atau frasa dari daftar kata sandi umum (dan tidak umum), dan12345 adalah salah satu dari kata sandi umum itu.
Meskipun fungsi-fungsi hash kriptografi menghasilkan checksum yang sulit dan tidak dapat diduga, Anda tetap harus menggunakan kata sandi yang rumit untuk semua akun pengguna online dan lokal Anda.
Informasi Lebih Lanjut tentang Fungsi Hash Kriptografis
Mungkin tampak seperti 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 secara normal lagi. Anda mungkin mengenkripsi file yang telah disimpan sehingga siapa pun yang mengaksesnya tidak dapat menggunakannya, atau Anda dapat menggunakan enkripsi transfer file untuk mengenkripsi file yang bergerak melalui jaringan, seperti yang Anda unggah atau unduh secara online.
Fungsi hash kriptografi bekerja secara berbeda karena checksum tidak dimaksudkan untuk dibalik dengan kata sandi penghapusan khusus. Fungsi hash kriptografi hanya berfungsi untuk membandingkan dua bagian data, seperti saat mengunduh file, menyimpan kata sandi, dan menarik data dari database.
Ini mungkin untuk fungsi hash kriptografi untuk menghasilkan checksum yang sama untuk bagian data yang berbeda. Ketika ini terjadi, itu disebut tabrakan, yang merupakan masalah besar mengingat seluruh poin dari fungsi hash kriptografi adalah membuat checksum unik untuk setiap input data ke dalamnya.
Tabrakan dapat terjadi karena setiap fungsi hash kriptografi menghasilkan nilai panjang tetap terlepas dari input data. Sebagai contoh, fungsi hash kriptografi MD5 menghasilkan 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983, dan e10adc3949ba59abbe56e057f20f883e untuk tiga blok data yang sangat berbeda.
Checksum pertama berasal 12345. Yang kedua dihasilkan dari lebih dari 700 huruf dan angka, dan yang ketiga berasal dari 123456.
Ketiga input memiliki panjang yang berbeda, tetapi hasilnya selalu hanya 32 karakter sejak MD5 checksum digunakan.
Tidak ada batasan untuk jumlah checksum yang dapat dibuat karena setiap perubahan kecil dalam input seharusnya menghasilkan checksum yang sama sekali berbeda. Karena ada batasan jumlah checksum yang dapat dihasilkan oleh satu fungsi hash kriptografi, 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 tabrakan akan terjadi.




