Fungsi Hash Cryptographic

Definisi Fungsi Hash Cryptographic

Fungsi hash kriptografi adalah sejenis algoritma yang boleh dijalankan pada sekeping 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 menjadi identik hanya jika cek yang dihasilkan daripada setiap fail, menggunakan fungsi hash kriptografi yang sama, sama.

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

Nota: Fungsi hash kriptografi sering dirujuk sebagai fungsi hash untuk pendek, tetapi itu tidak betul secara teknikal. Fungsi hash adalah istilah yang lebih generik yang biasanya digunakan untuk merangkumi fungsi hash kriptografi dan lain-lain jenis algoritma seperti pemeriksaan redundansi kitaran.

Fungsi Hash Kriptografi: Kes Penggunaan

Katakan anda memuat turun versi terbaru penyemak imbas Firefox . Atas sebab apa pun, anda perlu memuat turunnya dari tapak selain daripada Mozilla. Tidak dihoskan di tapak yang telah anda pelajari untuk mempercayai, anda ingin memastikan bahawa fail pemasangan yang anda muat turun adalah perkara yang sama yang ditawarkan oleh Mozilla.

Menggunakan kalkulator checksum , anda mengira cek menggunakan fungsi hash kriptografi tertentu (katakan SHA-2) dan kemudian membandingkannya dengan yang diterbitkan di tapak Mozilla.

Sekiranya mereka sama, maka anda pasti yakin bahawa muat turun yang anda miliki adalah Mozilla yang anda mahu.

Lihat Apa itu Pemeriksaan? untuk lebih banyak pada kalkulator khas ini, ditambah dengan lebih banyak contoh menggunakan cek untuk memastikan fail yang anda muat turun adalah apa yang anda harapkan.

Bolehkah Fungsi Hash Kriptografi Dapat Dibalikkan?

Fungsi hash kriptografi direka untuk menghalang keupayaan untuk membalikkan cek yang mereka buat kembali ke dalam teks asal.

Walau bagaimanapun, walaupun mereka hampir mustahil untuk dibalikkan, itu tidak bermakna mereka 100% dijamin untuk melindungi data.

Sesuatu yang dipanggil meja pelangi boleh digunakan untuk mengetahui dengan cepat plaintext pemeriksaan. Jadual pelangi pada dasarnya adalah kamus yang menyenaraikan ribuan, berjuta-juta, atau bahkan berbilion ini bersama nilai plaintext yang sepadan.

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

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

Teks kosong SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
saya sayang anjing saya a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Untuk nilai-nilai ini yang akan digunakan menggunakan checksum, akan memerlukan bahawa peretas memahami algoritma hash kriptografi yang digunakan untuk menghasilkannya.

Untuk perlindungan tambahan, sesetengah laman web yang menyimpan kata laluan pengguna melaksanakan fungsi tambahan kepada algoritma hash kriptografi selepas nilai dihasilkan tetapi sebelum disimpan.

Ini menghasilkan nilai baru yang hanya difahami oleh pelayan web dan tidak sepadan dengan semakan asal.

Sebagai contoh, selepas kata laluan dimasukkan dan pemeriksaan dibuat, ia mungkin dipisahkan kepada beberapa bahagian dan disusun semula sebelum disimpan dalam pangkalan data kata laluan, atau aksara tertentu mungkin ditukar dengan orang lain. Apabila pengguna cuba untuk mengesahkan masa depan mereka masuk, fungsi tambahan ini kemudiannya akan diterbalikkan oleh pelayan web dan checksum asal dihasilkan semula, untuk mengesahkan bahawa kata laluan pengguna sah.

Melakukan ini membantu mengehadkan kegunaan hack di mana semua cek dicuri.

Sekali lagi, idea di sini adalah untuk melaksanakan fungsi yang tidak diketahui supaya jika penggodam mengetahui algoritma hash kriptografi tetapi bukannya adat ini, maka mengetahui cek kata laluan tidak membantu.

Kata Laluan dan Fungsi Hash Kriptografi

Sama seperti jadual pelangi adalah bagaimana pangkalan data menyimpan kata laluan pengguna. 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 boleh diubah, ini bermakna anda boleh membuat kata laluan anda semudah 12345 , bukannya 12 @ 34 $ 5 , semata-mata kerana pemeriksaan itu sendiri tidak dapat difahami? Ia pasti tidak , dan inilah mengapa ...

Seperti yang anda dapat lihat, kedua-dua kata laluan ini kedua-duanya mustahil untuk mentakrifkan hanya dengan melihat hanya pada checksum:

MD5 untuk 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 untuk 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Oleh itu, pada pandangan pertama anda mungkin berfikir bahawa ia benar-benar baik untuk menggunakan kata laluan ini. Ini adalah benar jika seorang penyerang cuba memikirkan kata laluan anda dengan meneka MD5 checksum (yang tidak ada), tetapi tidak benar jika serangan kasar atau serangan kamus dilakukan (yang merupakan taktik biasa).

Serangan kekerasan adalah apabila banyak tikaman rawak diambil untuk meneka kata laluan. Dalam kes ini, sangat mudah untuk meneka "12345," tetapi cukup sukar untuk secara rawak memikirkan yang lain. Serangan kamus adalah serupa kerana penyerang boleh mencuba setiap perkataan, nombor, atau frasa dari senarai kata laluan biasa (dan kurang kerap digunakan), "12345" pasti menjadi salah satu yang akan dicuba.

Oleh itu, walaupun fungsi hash kriptografi menghasilkan sukar untuk mengesan cek, anda masih perlu menggunakan kata laluan yang kompleks untuk semua akaun pengguna dalam talian dan tempatan anda.

Petua: Lihat Contoh Kata Laluan Lemah dan Kuat jika anda tidak pasti sama ada kata laluan anda dianggap sebagai kata laluan yang kuat.

Maklumat Lanjut mengenai Fungsi Hash Cryptographic

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

Penyulitan adalah proses dua cara di mana sesuatu disulitkan untuk menjadi tidak boleh dibaca, tetapi 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.

Seperti yang dijelaskan di atas, fungsi hash kriptografi berfungsi dengan berbeza di mana cek tidak dimaksudkan untuk diterbalikkan dengan kata laluan de-hashing khas seperti bagaimana fail yang disulitkan dibaca dengan kata laluan penyahsulitan khas. Fungsi fungsi hash kriptografi hanya bertujuan untuk membandingkan dua data, seperti ketika memuat turun fail, menyimpan kata laluan, menarik data dari pangkalan data, dll.

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

Sebab-sebab perlanggaran boleh berlaku adalah kerana setiap fungsi hash kriptografi menghasilkan nilai panjang tetap tanpa mengira data masukan. 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 lebih 700 huruf dan angka, dan yang ketiga adalah dari 123456 . Ketiga-tiga input adalah panjang yang berlainan tetapi hasilnya selalu hanya 32 aksara sejak MD5 digunakan.

Seperti yang anda lihat, hampir tidak ada had untuk bilangan cek yang boleh dibuat kerana setiap perubahan kecil dalam input sepatutnya menghasilkan pemeriksaan yang sama sekali berbeza. Walau bagaimanapun, kerana terdapat had bilangan pemeriksaan satu fungsi hash kriptografi boleh menghasilkan, selalu ada kemungkinan bahawa 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 aksara yang terdapat di checksum, semakin kecil kemungkinan perlanggaran berlaku kerana ia menyediakan lebih banyak ruang untuk nilai unik.