Skip to main content

Apakah Fungsi Hash Cryptographic?

Passwords & hash functions (Simply Explained) (April 2025)

Passwords & hash functions (Simply Explained) (April 2025)
Anonim

Fungsi hash kriptografi adalah algoritma yang boleh dijalankan pada data seperti fail individu atau kata laluan untuk menghasilkan nilai yang disebut checksum.

Penggunaan utama fungsi hash kriptografi adalah untuk mengesahkan keaslian sekeping data. Dua fail boleh diandaikan sama sahaja jika pemeriksaan yang dihasilkan dari setiap fail, menggunakan fungsi hash kriptografi yang sama, adalah sama.

Beberapa ciri hash kriptografi yang biasa digunakan termasuk MD5 dan SHA-1, walaupun banyak yang lain juga wujud.

Fungsi hash kriptografi sering dirujuk sebagai "fungsi hash," tetapi itu tidak betul secara teknikal. Fungsi hash adalah istilah generik yang merangkumi fungsi hash kriptografi dan lain-lain algoritma seperti cek redundansi kitaran.

Fungsi Hash Kriptografi: Kes Penggunaan

Katakan anda memuat turun versi terkini penyemak imbas Firefox. Untuk sebab-sebab tertentu, anda perlu memuat turun dari laman web selain daripada Mozilla. Kerana ia tidak dihoskan di laman web yang telah anda pelajari untuk mempercayai, anda ingin memastikan bahawa fail pemasangan yang anda muat turun sama persis dengan yang ditawarkan oleh Mozilla.

Menggunakan kalkulator checksum, anda mengira checksum menggunakan fungsi hash kriptografi tertentu, seperti SHA-2, dan kemudian membandingkannya dengan yang diterbitkan di tapak Mozilla. Sekiranya mereka sama, anda boleh yakin bahawa muat turun yang anda miliki adalah Mozilla yang anda perlukan.

Bolehkah Fungsi Hash Kriptografi Dapat Dibalikkan?

Fungsi hash kriptografi direka untuk mencegah keupayaan untuk membalikkan cek yang mereka buat kembali ke teks asal. Walau bagaimanapun, walaupun mereka hampir mustahil untuk terbalik, mereka tidak 100 peratus dijamin untuk melindungi data.

Hacker boleh menggunakan jadual pelangi untuk memikirkan teks biasa pemeriksaan.

Jadual pelangi adalah kamus yang menyenaraikan beribu-ribu, berjuta-juta, atau bahkan berbilion-bilion pemeriksaan bersama nilai teks kosong yang sama.

Walaupun ini tidak secara teknikal membalikkan algoritma hash kriptografi, ia juga mungkin, memandangkan ia sangat mudah dilakukan. Pada kenyataannya, kerana tiada jadual pelangi boleh menyenaraikan setiap kemungkinan checksum yang ada, biasanya mereka hanya membantu frasa mudah seperti kata laluan yang lemah.

Berikut adalah versi ringkas jadual pelangi untuk menunjukkan bagaimana seseorang akan berfungsi apabila menggunakan fungsi hash cryptographic SHA-1:

Teks kosongSHA-1 Checksum
123458cb2237d0679ca88db6464eac60da96345513964
password1e38ad214943daad1d64c102faec29de4afe9da3d
saya sayang anjing sayaa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Seorang penggodam mesti tahu algoritma hash kriptografi yang digunakan untuk menjana cek untuk mencari nilai.

Untuk perlindungan tambahan, sesetengah laman web yang menyimpan kata laluan pengguna melaksanakan fungsi tambahan pada algoritma hash kriptografi selepas nilai dihasilkan tetapi sebelum disimpan. Proses ini menghasilkan nilai baru yang hanya difahami oleh pelayan web dan tidak sepadan dengan checksum asal.

Sebagai contoh, selepas kata laluan dimasukkan dan pemeriksaan dibuat, ia boleh dipisahkan ke beberapa bahagian dan disusun semula sebelum disimpan dalam pangkalan data kata laluan, atau aksara tertentu mungkin ditukar dengan orang lain. Apabila cuba mengesahkan pada masa yang akan datang pengguna menandatangani, pelayan web membalikkan fungsi tambahan ini, dan checksum asal dihasilkan semula untuk mengesahkan bahawa kata laluan pengguna sah.

Mengambil langkah-langkah ini mengehadkan kegunaan hack di mana semua cek dicuri. Idea ini adalah untuk melaksanakan fungsi yang tidak diketahui, jadi jika penggodam mengetahui algoritma hash kriptografi tetapi bukannya yang diperibadikan, maka mengetahui cek kata laluan tidak membantu.

Kata Laluan dan Fungsi Hash Kriptografi

Pangkalan data menyimpan kata laluan pengguna dengan cara yang serupa dengan jadual pelangi. Apabila kata laluan anda dimasukkan, pemeriksaan dijana dan dibandingkan dengan yang direkodkan dengan nama pengguna anda. Anda kemudian diberikan akses jika kedua-duanya sama.

Memandangkan fungsi hash kriptografi menghasilkan pemeriksaan tidak dapat dipulihkan, adakah ia selamat untuk anda membuat kata laluan anda semudah 12345, bukannya 12@34$5, semata-mata kerana pemeriksaan itu sendiri tidak dapat difahami? Tidak, dan inilah sebabnya.

Kedua kata laluan ini kedua-duanya mustahil untuk mentakrifkan hanya dengan melihat hanya pada cek:

MD5 untuk 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 untuk 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Pada pandangan pertama, anda mungkin berfikir bahawa ia adalah baik untuk menggunakan kata laluan ini. Ini adalah benar jika penyerang cuba memikirkan kata laluan anda dengan meneka MD5 checksum, yang tiada siapa, tetapi tidak benar jika serangan kasar atau serangan kamus dilakukan, yang merupakan taktik biasa.

Serangan kekerasan terjadi apabila menikam banyak rawak diambil untuk meneka kata laluan. Dalam kes ini, mudah untuk ditebak 12345, tetapi agak sukar untuk secara rawak memikirkan yang lain. Serangan kamus adalah serupa kerana penyerang itu boleh mencuba setiap perkataan, nombor, atau frasa dari senarai kata laluan umum (dan tidak umum), dan12345 adalah salah satu kata laluan yang biasa.

Walaupun fungsi hash kriptografi menghasilkan sukar untuk tidak dapat menangkap cek, anda masih perlu menggunakan kata laluan yang kompleks untuk semua akaun pengguna dalam talian dan tempatan anda.

Maklumat Lanjut mengenai Fungsi Hash Cryptographic

Ia mungkin kelihatan seperti fungsi hash kriptografi yang berkaitan dengan penyulitan, tetapi kedua-dua kerja dengan cara yang berbeza.

Penyulitan adalah proses dua arah di mana sesuatu disulitkan untuk menjadi tidak boleh dibaca dan kemudian didekripsi kemudian digunakan semula secara normal. Anda mungkin menyulitkan fail yang anda simpan supaya sesiapa sahaja yang mengaksesnya tidak dapat menggunakannya, atau anda boleh menggunakan penyulitan pemindahan fail untuk menyulitkan fail yang bergerak melalui rangkaian, seperti yang anda muat naik atau muat turun dalam talian.

Fungsi hash kriptografi berfungsi dengan berbeza di mana pemeriksaan tidak dimaksudkan untuk diterbalikkan dengan kata laluan dehashing khas. Fungsi fungsi hash kriptografi hanya bertujuan untuk membandingkan dua data, seperti ketika memuat turun fail, menyimpan kata laluan, dan menarik data dari pangkalan data.

Ia mungkin untuk fungsi hash kriptografi untuk menghasilkan pemeriksaan yang sama untuk kepingan data yang berbeza. Apabila ini berlaku, ia dipanggil perlanggaran, yang merupakan masalah besar memandangkan keseluruhan titik fungsi hash kriptografi adalah untuk membuat pemeriksaan unik untuk setiap input data ke dalamnya.

Perlanggaran boleh berlaku adalah kerana setiap fungsi hash kriptografi menghasilkan nilai panjang tetap tanpa mengira data input. Sebagai contoh, fungsi hash kriptografi MD5 menjana 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983, dan e10adc3949ba59abbe56e057f20f883e untuk tiga blok data yang sama sekali berbeza.

Pemeriksaan pertama adalah dari 12345. Yang kedua dihasilkan dari 700 huruf dan nombor, dan yang ketiga adalah dari 123456.

Ketiga-tiga input adalah panjang yang berlainan, tetapi hasilnya selalu hanya 32 aksara sejak MD5 checksum digunakan.

Tidak ada batasan bilangan cek yang boleh dibuat kerana setiap perubahan kecil dalam input sepatutnya menghasilkan pemeriksaan yang sama sekali berbeza. Oleh kerana terdapat batas bilangan pemeriksaan yang satu fungsi hash kriptografi dapat menghasilkan, selalu ada kemungkinan bahwa Anda akan mengalami perlanggaran.

Inilah sebabnya fungsi hash kriptografi lain telah dibuat. Walaupun MD5 menjana nilai 32 aksara, SHA-1 menghasilkan 40 aksara dan SHA-2 (512) menjana 128. Semakin banyak bilangan watak-watak yang terdapat di checksum, semakin kecil kemungkinan perlanggaran berlaku.