Fungsi Hash Kriptografi

Definisi Fungsi Hash Kriptografi

Fungsi hash kriptografi adalah sejenis algoritme yang dapat dijalankan pada sepotong 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 dipastikan identik hanya 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.

Catatan: Fungsi hash kriptografi seringkali hanya disebut sebagai fungsi hash untuk jangka pendek, tetapi itu tidak benar secara teknis. Fungsi hash adalah istilah yang lebih umum yang biasanya digunakan untuk mencakup fungsi hash kriptografi bersama dengan jenis lain dari algoritma seperti cek redundansi siklik.

Fungsi Hash Kriptografi: Kasus Penggunaan

Misalnya Anda mengunduh versi terbaru peramban Firefox . Untuk alasan apa pun, Anda perlu mengunduhnya dari situs selain Mozilla. Tidak dihosting di situs yang telah Anda pelajari untuk dipercayai, Anda ingin memastikan bahwa file instalasi yang baru saja diunduh sama persis dengan yang ditawarkan Mozilla.

Menggunakan kalkulator checksum , Anda menghitung checksum menggunakan fungsi hash kriptografi tertentu (katakanlah SHA-2) dan kemudian bandingkan dengan yang dipublikasikan di situs Mozilla.

Jika mereka sama, maka Anda dapat yakin bahwa unduhan yang Anda miliki adalah Mozilla yang Anda inginkan.

Lihat Apa itu Checksum? untuk lebih lanjut tentang kalkulator khusus ini, ditambah lebih banyak contoh tentang penggunaan checksum untuk memastikan file yang Anda unduh benar-benar sesuai dengan yang Anda harapkan.

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, itu tidak berarti mereka dijamin 100% untuk melindungi data.

Sesuatu yang disebut tabel pelangi dapat digunakan untuk dengan cepat mengetahui plaintext dari sebuah checksum. Tabel pelangi pada dasarnya adalah kamus yang mencantumkan ribuan, jutaan, atau bahkan miliaran ini bersama nilai plainteks yang sesuai.

Meskipun ini tidak secara teknis membalikkan algoritma hash kriptografi, itu mungkin juga karena itu sangat sederhana untuk dilakukan. Kenyataannya, karena tidak ada tabel pelangi yang dapat mencantumkan 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

Untuk nilai-nilai ini harus diketahui menggunakan checksum, akan membutuhkan bahwa hacker memahami algoritma hash kriptografi yang digunakan untuk menghasilkan mereka.

Untuk perlindungan tambahan, beberapa situs web yang menyimpan kata sandi pengguna melakukan fungsi tambahan ke algoritma hash kriptografi setelah nilai dibuat tetapi sebelum disimpan.

Ini menghasilkan nilai baru yang hanya dimengerti oleh server web dan tidak sama persis dengan checksum asli.

Misalnya, setelah kata sandi dimasukkan dan checksum dihasilkan, ia mungkin dipisahkan menjadi beberapa bagian dan disusun kembali sebelum disimpan dalam basis data kata sandi, atau karakter tertentu dapat ditukarkan dengan yang lain. Ketika pengguna mencoba untuk mengotentikasi saat berikutnya mereka masuk, fungsi tambahan ini kemudian akan dibalik oleh server web dan checksum asli yang dihasilkan lagi, untuk memverifikasi bahwa kata sandi pengguna valid.

Melakukan hal ini membantu membatasi kegunaan peretasan di mana semua checksum dicuri.

Sekali lagi, ide di sini adalah untuk melakukan fungsi yang tidak diketahui sehingga jika hacker tahu algoritma hash kriptografi tetapi tidak ini kustom, maka mengetahui checksum password tidak membantu.

Sandi dan Fungsi Hash Kriptografi

Mirip dengan tabel pelangi adalah bagaimana basis data menyimpan kata sandi pengguna. 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 dikembalikan, apakah itu berarti Anda dapat membuat kata sandi Anda sesederhana 12345 , bukan 12 @ 34 $ 5 , hanya karena checksum itu sendiri tidak dapat dipahami? Itu pasti tidak , dan inilah alasannya ...

Seperti yang Anda lihat, kedua kata sandi ini tidak mungkin untuk diuraikan hanya dengan hanya melihat pada checksum:

MD5 untuk 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 untuk 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Jadi, sekilas Anda mungkin berpikir bahwa baik-baik saja menggunakan salah satu dari kata sandi ini. Ini benar-benar 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 adalah ketika beberapa tusukan acak diambil untuk menebak kata sandi. Dalam hal ini, akan sangat mudah untuk menebak "12345," tetapi cukup sulit untuk secara acak mencari yang lain. Serangan kamus sama dengan penyerang dapat mencoba setiap kata, angka, atau frasa dari daftar kata sandi umum (dan yang lebih jarang digunakan), "12345" pasti menjadi salah satu yang akan dicoba.

Jadi, meskipun fungsi hash kriptografi menghasilkan checksum yang sulit untuk dibayangkan, Anda tetap harus menggunakan kata sandi yang rumit untuk semua akun pengguna online dan lokal Anda.

Kiat: Lihat Contoh Sandi Lemah dan Kuat jika Anda tidak yakin apakah kata sandi Anda dianggap sebagai kata sandi yang kuat.

Informasi Lebih Lanjut tentang Fungsi Hash Kriptografis

Ini mungkin tampak seperti fungsi hash kriptografi yang terkait dengan enkripsi tetapi keduanya bekerja dengan cara yang sangat berbeda.

Enkripsi adalah proses dua arah di mana sesuatu dienkripsi menjadi tidak dapat dibaca, tetapi kemudian didekripsi nanti untuk digunakan secara normal lagi. Anda mungkin mengenkripsi file yang telah Anda simpan sehingga siapa pun yang mengaksesnya tidak akan dapat menggunakannya, atau Anda dapat menggunakan enkripsi transfer file untuk mengenkripsi file yang bergerak melalui jaringan, seperti yang Anda unggah atau unduh secara online.

Seperti yang dijelaskan di atas, fungsi hash kriptografi bekerja secara berbeda karena checksum tidak dimaksudkan untuk dibalik dengan kata sandi de-hashing khusus seperti bagaimana file terenkripsi dibaca dengan kata sandi dekripsi khusus. Fungsi hash kriptografi hanya berfungsi untuk membandingkan dua bagian data, seperti saat mengunduh file, menyimpan kata sandi, menarik data dari database, dll.

Ini mungkin untuk fungsi hash kriptografi untuk menghasilkan checksum yang sama untuk bagian data yang berbeda. Ketika ini terjadi, itu disebut tabrakan. Jelas, ini adalah masalah besar mengingat seluruh poin dari fungsi hash kriptografi adalah untuk membuat checksum sepenuhnya unik untuk setiap data yang dimasukkan ke dalamnya.

Alasan tabrakan dapat terjadi adalah karena setiap fungsi hash kriptografi menghasilkan nilai panjang tetap terlepas dari data input. Sebagai contoh, fungsi hash kriptografi MD5 menghasilkan 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 , dan e10adc3949ba59abbe56e057f20f883e untuk tiga blok data yang sangat berbeda.

Checkum pertama adalah dari 12345 , yang kedua dihasilkan dari lebih dari 700 huruf dan angka, dan yang ketiga adalah dari 123456 . Ketiga input memiliki panjang yang berbeda tetapi hasilnya selalu hanya 32 karakter sejak MD5 digunakan.

Seperti yang Anda lihat, hampir tidak ada batasan untuk jumlah checksum yang dapat dibuat karena setiap perubahan kecil dalam input seharusnya menghasilkan checksum yang sama sekali berbeda. Namun, karena ada batasan jumlah checksum yang dapat dihasilkan oleh 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 bahwa tabrakan akan terjadi karena menyediakan lebih banyak ruang untuk nilai-nilai unik.