Bagaimana crack-force cracking dapat mengungkapkan kata sandi Anda

Palu mencoba dengan kasar membuka gembok.

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.

Hash asin menambah perlindungan ekstraContoh 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

Grafik untuk menunjukkan berapa banyak tebakan yang diperlukan untuk memecahkan kata sandi dengan panjang yang berbeda-beda.

  • 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

Grafik untuk menunjukkan skala panjang kata sandi terhadap upaya yang diperlukan untuk menebaknya.

  • 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.