Bagaimana crack-force cracking dapat mengungkapkan kata sandi Anda
Dalam kriptografi, serangan brute force mencoba menguraikan konten yang dienkripsi dengan menebak kunci enkripsi. Serangan ini layak ketika kunci enkripsi pendek, atau jika penyerang memiliki informasi yang cukup untuk mencoba dan menebak kunci.
Ketika datang ke formulir web, penyerang tidak punya banyak waktu untuk menebak kunci. Google atau Facebook hanya akan membiarkan seseorang mencoba masuk ke akun Anda berkali-kali sebelum mereka “mengunci”.
Namun, ketika peretas mendapatkan basis data internal perusahaan, mereka memiliki seluruh waktu di dunia untuk menebak kata sandi Anda — bahkan jika itu dienkripsi.
Situs web harus memberi garam dan kata sandi hash untuk melindungi pengguna
Ketika situs web menyimpan kata sandi Anda, mereka harus (tetapi tidak selalu) memberi garam dan memilah kata sandi pengguna, sehingga seseorang yang memiliki basis data pengguna tidak dapat menggunakannya.
Fungsi hash, seperti SHA-256, adalah fungsi kriptografi satu arah. Setiap bagian dari data, teks, gambar, atau angka dapat “hash,” dan tidak peduli berapa lama inputnya, hasilnya akan selalu panjang 256 bit. Ketika dikodekan dalam heksadesimal (seperti di bawah), ini menghasilkan string 64-karakter.
Contoh hash “asin”, hash lagi.
Bagaimana penyerang memecahkan kata sandi Anda
Untuk mempersulit peretas potensial, situs web akan mengubah kata sandi dengan “garam”, yang merupakan data acak (lihat bagaimana cara kerja salting dan hashing).
Menghitung hash dari teks, gambar atau file adalah sepele dan tidak akan memakan waktu atau sumber daya komputer dalam jumlah besar. Tetapi jika semua yang Anda tahu adalah hash, satu-satunya cara untuk mengetahui nilai aslinya adalah serangan brute-force. Inilah sebabnya mengapa fungsi hashing juga disebut enkripsi satu arah. Sangat mudah untuk beralih dari teks ke hash, tetapi sangat sulit untuk pergi ke arah lain.
Kerupuk kata sandi yang memiliki basis data pengguna curian mungkin melihat daftar nama pengguna, nilai garam untuk setiap pengguna, dan hash.
Dengan perincian ini, mereka dapat mencoba menebak kata sandi setiap pengguna, memberi garam dan hash, dan memeriksa hasilnya terhadap hash yang disimpan dalam database. Jika hash cocok, mereka tahu mereka telah menemukan kata sandi.
Penyerang harus memasukkan nama pengguna dan kata sandi dengan tepat, karena mengubah hash bahkan sedikit saja (seperti yang terlihat di atas) akan menghasilkan hash yang sama sekali berbeda..
Ada berapa kombinasi kata sandi?
Dengan asumsi kata sandi hanya terdiri dari huruf kecil, untuk setiap karakter ada 26 kemungkinan. Karenanya, Anda dapat menebak kata sandi satu karakter dalam 13 upaya.
Kata sandi dua karakter memiliki 26 × 26 pilihan dan akan mengambil (26 × 26) / 2 upaya untuk menguraikan.
Rumus c = (m ^ n) / 2 menggambarkan hubungan antara kemungkinan untuk setiap karakter (m), panjang kata sandi (n) dan perkiraan jumlah tebakan (c).
Hubungan antara panjang kata sandi dan jumlah tebakan untuk memecahkannya
- Kata sandi huruf kecil (m = 26)
- Huruf besar dan huruf kecil (m = 52)
- Huruf besar dan kecil dan khusus (m = 67)
Meskipun kompleksitas dan panjang berkontribusi pada kekuatan kata sandi, jauh lebih bernilai untuk menambahkan karakter daripada meningkatkan kompleksitasnya.
Menambahkan karakter tambahan ke kata sandi empat karakter, hanya menggunakan karakter huruf kecil, membuatnya 26 kali lebih sulit untuk dipecahkan, sedangkan menggandakan karakter yang mungkin menjadi 52 (yaitu, menambahkan karakter huruf besar) hanya membuatnya 16 kali lebih sulit untuk dipecahkan..
Skala logaritmik membuat hubungan antara panjang kata sandi dan tebakan yang dibutuhkan lebih mudah terlihat
- Kata sandi huruf kecil (m = 26)
- Huruf besar dan huruf kecil (m = 52)
- Huruf besar dan kecil dan khusus (m = 67)
Berapa lama untuk memecahkan kata sandi?
Seberapa cepat penyerang dapat memecahkan kata sandi Anda tergantung pada seberapa cepat perangkat keras komputer penyerang.
Komputer biasa kemungkinan akan menghasilkan sekitar 100.000 tebakan per detik. GPU khusus dapat 100 kali lebih cepat dari ini, dan dimungkinkan untuk membuat layanan peretas kata sandi dengan ratusan GPU.
Jika kita menganggap penyerang memiliki komputer biasa, yang mampu 100.000 tebakan per detik, kata sandi huruf kecil dengan kurang dari enam karakter akan membutuhkan waktu kurang dari satu menit untuk memecahkan.
Tetapi waktu pemecahan meningkat secara eksponensial, dan kata sandi delapan karakter membutuhkan waktu 12 hari untuk dipecahkan. Kata sandi 12 karakter akan memakan waktu lebih dari 12.000 tahun.
Apakah kata sandi 12 karakter sudah cukup tergantung pada nilai apa yang dilindungi dan skala serangan. Jika penyerang hanya mengejar target tunggal, kata sandi 12 karakter mungkin berada dalam jangkauan mereka.
Maka, sangat penting untuk melindungi data berharga (seperti informasi pribadi atau kunci pribadi Bitcoin) dengan kata sandi yang jauh lebih lama. Ketika mengenkripsi dompet Bitcoin Anda, misalnya, kunci lebih dari 32 karakter mungkin ide yang bagus.
Semakin banyak informasi yang dimiliki penyerang, semakin cepat celah akan terjadi
Perhitungan di atas menganggap bahwa penyerang tidak tahu apa-apa tentang kata sandi, selain apakah itu termasuk karakter huruf besar atau kecil.
Pada kenyataannya, penyerang mungkin memiliki beberapa tebakan. Dari daftar kata sandi yang didekripsi sebelumnya kita tahu apa kata sandi yang paling umum. Jika tidak ada target khusus, penyerang dapat memeriksa kata sandi umum dengan daftar email yang relatif cepat.
Orang-orang juga cenderung memilih kata sandi yang hanya memiliki angka di bagian akhir (seperti hello111), dan menyertakan nama layanan atau URL di suatu tempat. Kata sandi yang digunakan untuk Gmail yang berisi kata-kata google atau gmail dan memiliki empat digit di akhir (seperti gmailpanther1234), mudah retak, meskipun panjang.
Orang-orang juga cenderung menggunakan nama hewan peliharaan atau anak-anak mereka sebagai kata sandi, kadang-kadang dikombinasikan dengan tanggal lahir atau tahun, membuat kata sandi mereka lebih mudah ditebak daripada yang mungkin dipikirkan orang..
Gunakan kata sandi yang kuat dengan pengelola kata sandi
Aturan yang paling penting adalah: Selalu gunakan kata sandi yang kuat.
Untuk menghindari kerumitan membuat dan mengingat begitu banyak kata sandi yang kuat, gunakan penghasil kata sandi acak untuk membuat kata sandi yang panjang, unik, dan benar-benar tidak dapat dilewati dengan mudah.
Jika Anda kemudian menyimpan kata sandi tersebut dengan pengelola kata sandi, Anda hanya perlu mengingat satu kata sandi (yang dapat Anda hasilkan dengan Diceware, untuk membuatnya lebih aman). Selain itu, otentikasi dua faktor membantu melindungi akun dari serangan yang bahkan lebih canggih, seperti kata sandi yang diperoleh melalui serangan phishing.
Guillermo
17.04.2023 @ 16:19
untuk menambahkan kompleksitas dengan menggunakan kombinasi huruf besar, kecil, dan karakter khusus hanya akan membuatnya 2-3 kali lebih sulit untuk dipecahkan. Skala logaritmik membuat hubungan antara panjang kata sandi dan tebakan yang dibutuhkan lebih mudah terlihat Ketika kita melihat tabel di atas, kita dapat melihat bahwa untuk kata sandi yang terdiri dari 8 karakter huruf kecil, diperlukan sekitar 208 miliar upaya untuk memecahkannya. Namun, ketika kita menambahkan satu karakter lagi, jumlah upaya yang diperlukan meningkat menjadi 5,5 triliun. Ini menunjukkan bahwa semakin panjang kata sandi, semakin sulit untuk memecahkannya. Berapa lama untuk memecahkan kata sandi? Waktu yang dibutuhkan untuk memecahkan kata sandi tergantung pada sejumlah faktor, termasuk panjang kata sandi, kompleksitasnya, dan kecepatan komputer yang digunakan. Namun, dengan menggunakan teknologi yang ada saat ini, kata sandi yang terdiri dari 8 karakter huruf kecil dapat dipecahkan dalam waktu kurang dari satu hari. Semakin banyak informasi yang dimiliki penyerang, semakin cepat celah akan terjadi Penyerang yang memiliki akses ke informasi tambahan, seperti daftar nama pengguna atau nilai garam, dapat mempercepat proses memecahkan kata sandi. Oleh karena itu, penting untuk tidak menggunakan kata sandi yang sama di berbagai situs web dan untuk mengubah kata sandi secara teratur. Gunakan kata sandi yang kuat dengan pengelola kata sandi Untuk melindungi akun Anda dari serangan brute force, gunakan kata sandi yang kuat dan unik untuk setiap situs web. Gunakan pengelola kata sandi untuk menghasilkan kata sandi yang kuat dan mengingatnya untuk Anda. Jangan pernah menggunakan kata sandi yang mudah ditebak, seperti tanggal lahir atau nama hewan peliharaan Anda. Dengan mengambil langkah-langkah ini, Anda dapat melindungi akun Anda dari serangan brute force