Bagaimana kata sandi bisa dibobol?
Akun jarang dibobol seperti adegan dalam film. Dalam praktiknya, kata sandi diperoleh melalui salah satu dari tiga cara. Kata sandi ditebak (dibobol): dicari dengan menguji satu per satu kandidat, biasanya terhadap basis data hash kata sandi yang dicuri dari suatu layanan. Kata sandi dicuri: diketikkan di halaman palsu atau disalin oleh malware. Atau kata sandi digunakan ulang: penyerang mengambil kata sandi dari kebocoran sebelumnya lalu mencobanya di layanan lain, mengandalkan fakta bahwa pemilik akun menggunakan kata sandi yang sama di sana. Perbedaan ini penting, karena setiap metode ditangkal dengan cara yang berbeda. Artikel ini membahas metode-metode utama tersebut dan menyebutkan langkah apa saja yang dapat membantu menghadapi masing-masing ancaman.
Kata sandi yang digunakan ulang dari kebocoran data
Setiap tahun banyak layanan mengalami peretasan, dan basis data pengguna mereka berakhir dijual atau dibagikan secara bebas. Penyerang mengambil pasangan alamat email dan kata sandi dari satu kebocoran lalu mencobanya secara otomatis pada akun bank, penyedia email, toko daring, dan jejaring sosial — jenis serangan ini disebut credential stuffing. Serangan ini sama sekali tidak memerlukan tebakan, dan berhasil karena alasan sederhana: banyak orang menggunakan ulang kata sandi yang sama. Bahkan kata sandi yang sangat kuat tidak akan membantu di sini jika digunakan di mana-mana.
Yang membantu: kata sandi yang berbeda untuk setiap akun, sehingga kebocoran pada satu layanan tidak dapat membuka akun di layanan lainnya.
Phishing
Halaman phishing adalah tiruan dari halaman login asli dengan alamat web yang sedikit berbeda, yang diakses melalui tautan di email atau pesan bernada mendesak: akun yang diblokir, kiriman paket, atau tagihan. Apa pun yang Anda ketikkan di sana akan langsung terkirim ke penyerang. Panjang dan keacakan kata sandi tidak berpengaruh di sini, karena Anda memasukkannya sendiri.
Yang membantu: buka situs web dari markah (bookmark) Anda sendiri alih-alih mengeklik tautan. Gunakan pengelola kata sandi: aplikasi ini hanya menawarkan pengisian kata sandi pada alamat yang telah disimpan, jadi jika pengelola tidak menawarkan kata sandi tersimpan, periksa kembali alamatnya sebelum mengetiknya secara manual. Dan aktifkan autentikasi dua faktor, yang membuat kata sandi curian tidak cukup untuk masuk akun. Namun, kode sekali pakai (OTP) masih dapat dicuri melalui phishing persis seperti kata sandi. Sebaliknya, kunci sandi (passkey) dan kunci keamanan FIDO2 tidak dapat dicuri dengan cara ini karena hanya merespons situs web yang asli — perbedaan yang disebut oleh NIST sebagai ketahanan terhadap phishing (phishing resistance).
Malware
Program jahat yang dikenal sebagai pencuri informasi (infostealer) menyalin kata sandi yang tersimpan di browser beserta kuki sesi (session cookie), lalu mengirimkannya dalam hitungan detik setelah dijalankan, sementara keylogger merekam apa pun yang diketik. Kuki sesi yang dicuri dapat memberi penyerang akses ke akun yang sedang login, tanpa memerlukan kata sandi dan tanpa faktor autentikasi kedua. Program-program semacam ini biasanya menyusup melalui perangkat lunak bajakan, pembaruan palsu, dan lampiran email.
Yang membantu: menginstal perangkat lunak hanya dari sumber resminya, selalu memperbarui sistem operasi dan browser, serta memperlakukan lampiran yang tidak terduga sebagai ancaman berbahaya — meskipun tidak ada satupun yang memberi jaminan mutlak. Jika sebuah perangkat telah terinfeksi, lakukan tindakan pengamanan dari perangkat lain yang Anda pastikan bersih: ubah kata sandi, gunakan opsi layanan untuk keluar dari semua sesi aktif, dan pastikan email pemulihan, nomor telepon, serta pengaturan autentikasi dua faktor masih milik Anda. Bersihkan perangkat yang terinfeksi sebelum Anda login kembali di perangkat tersebut.
Menebak langsung di formulir login
Mencoba kata sandi langsung di situs web berlangsung lambat: layanan yang dibangun dengan benar akan menunda, memblokir, atau meminta captcha setelah beberapa kali percobaan gagal. Hal itu membuat serangan bertubi-tubi pada satu akun menjadi tidak efisien, sehingga pendekatan umum yang dilakukan adalah sebaliknya: beberapa kata sandi yang paling populer — 123456, password, qwerty123 — dicoba pada jutaan akun, yang disebut sebagai password spraying. Tebakan yang ditargetkan bekerja dengan cara serupa menggunakan data pribadi: nama anak, hewan peliharaan, tanggal lahir, atau tim favorit, yang semuanya mudah ditemukan di media sosial.
Yang membantu: kata sandi apa pun yang tidak umum dan tidak disusun dari fakta tentang diri Anda — lihat panduan tentang cara membuat kata sandi yang kuat.
Menebak kata sandi dari hash curian secara offline
Layanan yang dirancang dengan benar tidak menyimpan kata sandi dalam bentuk teks yang dapat dibaca. Layanan menyimpan nilai hash — yaitu hasil dari fungsi satu arah yang tidak dapat dihitung kembali untuk menemukan kata sandi aslinya. Ketika basis data semacam itu bocor, penyerang menguji kemungkinan kata sandi: mereka menghitung nilai hash dari kandidat kata sandi di perangkat keras mereka sendiri dan membandingkan hasilnya. Tidak ada formulir login yang memperlambat mereka, dan kecepatannya bergantung pada fungsi hash yang dipilih layanan serta konfigurasinya. Untuk fungsi lama yang cepat seperti MD5, satu kartu grafis modern dapat menguji puluhan miliar kandidat per detik. Fungsi yang memang dirancang untuk menyimpan kata sandi — seperti Argon2id, atau bcrypt pada sistem yang lebih lama — sengaja dibuat lambat dan memangkas kecepatan tersebut hingga beberapa orde besaran, itulah sebabnya rekomendasi saat ini menyarankan penggunaannya.
Serangan kamus
Kandidat yang diuji bukanlah susunan karakter acak. Alat pembobol memulai dari daftar kata sandi nyata dari kebocoran sebelumnya serta kamus kata dan nama, kemudian menerapkan aturan yang meniru kebiasaan manusia: huruf awal kapital, tahun atau tanda seru di akhir, atau huruf yang diganti dengan simbol yang mirip. Kata sandi seperti Summer2024! tampak rumit tetapi justru termasuk kandidat yang pertama kali dicoba. Salting — penambahan nilai acak unik ke setiap kata sandi sebelum di-hash — mencegah penyerang menggunakan tabel yang telah dihitung sebelumnya, yang dikenal sebagai tabel rainbow (rainbow table), serta mencegah pembobolan semua kata sandi yang identik secara bersamaan, tetapi salting tidak membuat kata sandi yang mudah ditebak menjadi lebih sulit ditebak.
Brute force
Ketika kamus kata sudah habis digunakan, yang tersisa adalah mencoba setiap kombinasi karakter, dan untuk kata sandi yang dihasilkan secara acak, panjang karakternyalah yang menentukan hasilnya. Sebagai gambaran, bayangkan fungsi hash yang cepat dan kata sandi di mana setiap karakter dipilih secara independen dengan peluang yang sama dari 94 karakter ASCII yang dapat dicetak, tanpa spasi. Terdapat sekitar 6 × 1015 kata sandi semacam itu dengan panjang 8 karakter; dengan kecepatan sepuluh miliar tebakan per detik, menguji semua kombinasi membutuhkan waktu sekitar satu minggu, dan rata-rata kata sandi yang tepat akan ditemukan dalam separuh waktu tersebut. Untuk 12 karakter, mencoba semua kombinasi pada perangkat keras yang sama akan memakan waktu sekitar 1,5 juta tahun, dan untuk 16 karakter angkanya sudah berada di luar perbandingan praktis apa pun. Inilah alasan utama menggunakan kata sandi acak yang panjang: kamus kata hampir tidak berguna melawannya, dan berdasarkan asumsi ini mencoba setiap kombinasi tidaklah praktis. Generator kata sandi kuat kami membuatnya di browser Anda dan menampilkan perkiraan entropi untuk masing-masing kata sandi dalam bit.
Yang membantu: kata sandi panjang tanpa pola buatan manusia di dalamnya, yang dalam praktiknya berarti kata sandi yang dibuat oleh generator. Anda tidak dapat mengontrol bagaimana suatu layanan menyimpan kata sandi Anda, jadi anggaplah skenario terburuk dan pilihlah kata sandi yang kebal tebakan bahkan ketika disimpan menggunakan fungsi hash yang cepat.
Mengintip dan rekayasa sosial
Metode tertua sama sekali tidak memerlukan teknologi. Kata sandi diintip dari balik bahu, dibaca dari stiker di monitor, atau terlihat dari layar yang dibagikan saat panggilan video; atau penyerang langsung memintanya dengan menyamar sebagai staf dukungan teknis atau rekan kerja — teknik yang disebut rekayasa sosial (social engineering). Tidak ada layanan resmi yang akan meminta kata sandi Anda melalui telepon, email, atau obrolan pesan.
Yang membantu: jangan pernah memberi tahu atau mengirimkan kata sandi kepada siapa pun, dan jangan menyimpannya di tempat yang dapat dilihat orang lain.
Kesimpulan perlindungan
Serangan yang berbeda ditangkal dengan kebiasaan yang berbeda pula, dan tiga di antaranya melakukan sebagian besar pekerjaan: kata sandi unik untuk setiap akun, dihasilkan oleh generator dan bukan dikarang sendiri, ditambah dengan autentikasi dua faktor — atau gunakan kunci sandi (passkey) sebagai pengganti kata sandi jika layanan menyediakannya. Langkah-langkah ini memang tidak mencakup semua hal — misalnya pencurian sesi login — itulah sebabnya saran terkait malware di atas juga penting. Artikel lainnya dikumpulkan dalam materi generator kata sandi.