Bagaimana kata laluan dipecahkan?

Akaun jarang diceroboh seperti yang dipaparkan dalam filem. Secara praktikal, kata laluan diperoleh melalui salah satu daripada tiga cara. Ia dipecahkan: dicari dengan mencuba satu demi satu calon kata laluan, lazimnya terhadap pangkalan data nilai cincangan kata laluan yang dicuri daripada sesebuah perkhidmatan. Ia dicuri: ditaip ke dalam halaman palsu atau disalin oleh perisian hasad. Atau ia diguna semula: penyerang mengambil kata laluan daripada ketirisan data terdahulu dan mencubanya pada perkhidmatan lain, mengharapkan pemiliknya turut menggunakannya di situ. Perbezaan ini penting kerana setiap kaedah ditangani dengan cara yang berbeza. Artikel ini menghuraikan kaedah utama dan menyatakan perkara yang membantu terhadap setiap satunya.

Kata laluan yang diguna semula daripada ketirisan data

Setiap tahun banyak perkhidmatan diceroboh, dan pangkalan data pengguna berakhir dengan dijual atau dikongsi secara percuma. Penyerang mengambil pasangan alamat e-mel dan kata laluan daripada satu kebocoran lalu mencubanya secara automatik pada laman bank, penyedia e-mel, kedai dalam talian dan rangkaian media sosial — serangan yang dipanggil pemadat kelayakan (credential stuffing). Serangan ini tidak melibatkan sebarang tekaan langsung, dan ia berjaya atas sebab yang mudah: orang ramai kerap menggunakan semula kata laluan. Kata laluan yang kuat sekalipun tidak dapat membantu dalam situasi ini jika ia digunakan sama di merata-rata tempat.

Perkara yang membantu: kata laluan berbeza bagi setiap akaun, supaya kebocoran pada satu perkhidmatan tidak akan membuka akses kepada akaun lain.

Pancingan data

Halaman pancingan data (phishing) ialah salinan halaman log masuk sebenar pada alamat yang sedikit berbeza, yang dicapai melalui pautan dalam e-mel atau mesej bernada cemas: akaun disekat, bungkusan kurier, invois. Apa-apa sahaja yang anda taip di situ akan terus sampai kepada penyerang. Panjang dan kerawakan kata laluan tidak memberi sebarang perbezaan, kerana andalah yang memasukkannya sendiri.

Perkara yang membantu: buka laman web daripada tanda buku anda sendiri dan bukannya daripada pautan mesej. Gunakan pengurus kata laluan: ia hanya menawarkan untuk mengisi kata laluan pada alamat tepat tempat ia disimpan, jadi jika ia tidak memaparkan kata laluan yang disimpan, semak alamat web sebelum menaip secara manual. Dan aktifkan pengesahan dua faktor, yang menyebabkan kata laluan yang dicuri tidak lagi mencukupi dengan sendirinya. Walau bagaimanapun, kod satu kali boleh dipancing dengan cara yang sama seperti kata laluan. Kunci laluan (passkey) dan kunci keselamatan FIDO2 tidak boleh dipancing dengan cara ini, kerana ia hanya bertindak balas kepada laman web yang tulen — perbezaan yang dipanggil oleh NIST sebagai rintangan pancingan data.

Perisian hasad

Program yang dikenali sebagai pencuri maklumat (infostealer) menyalin kata laluan yang disimpan dalam pelayar, bersama kuki sesi, dan menghantarnya keluar dalam masa beberapa saat selepas dijalankan, manakala perakam ketikan (keylogger) merakam apa-apa yang ditaip. Kuki sesi yang dicuri membolehkan penyerang memasuki akaun yang sedia dilog masuk, tanpa memerlukan kata laluan dan tanpa faktor kedua. Program sedemikian biasanya menyusup melalui perisian cetak rompak, kemas kini palsu dan lampiran e-mel.

Perkara yang membantu: memasang perisian hanya daripada sumber rasmi, memastikan sistem dan pelayar sentiasa dikemas kini, serta menganggap lampiran yang tidak dijangka sebagai berbahaya — walaupun tiada satu pun daripadanya merupakan jaminan mutlak. Sekiranya peranti telah dijangkiti, bertindaklah daripada peranti lain yang anda tahu bersih: tukar kata laluan, gunakan pilihan setiap perkhidmatan untuk log keluar daripada semua sesi, dan semak bahawa e-mel pemulihan, nombor telefon serta tetapan dua faktor masih milik anda. Bersihkan peranti yang dijangkiti sebelum anda log masuk semula padanya.

Menebak pada borang log masuk

Mencuba kata laluan secara langsung terhadap laman web adalah perlahan: perkhidmatan yang dibina dengan baik akan melengahkan, menyekat atau meminta captcha selepas beberapa cubaan yang salah. Ini menjadikan tindakan menghentam satu akaun tunggal tidak cekap, jadi pendekatan yang kerap digunakan adalah sebaliknya: segelintir kata laluan yang paling popular — 123456, password, qwerty123 — dicuba terhadap jutaan akaun, satu kaedah yang dipanggil penyemburan kata laluan (password spraying). Tebakan bersasar berfungsi dengan cara serupa menggunakan maklumat peribadi: nama anak dan haiwan peliharaan, tarikh lahir, pasukan kegemaran, yang semuanya mudah ditemui di media sosial.

Perkara yang membantu: mana-mana kata laluan yang bukan kata laluan popular dan tidak dibina daripada fakta tentang diri anda — lihat cara mencipta kata laluan yang kuat.

Menebak kata laluan daripada cincangan yang dicuri di luar talian

Perkhidmatan yang dibina dengan betul tidak menyimpan kata laluan dalam bentuk yang boleh dibaca. Ia menyimpan nilai cincangan (hash) — hasil daripada fungsi satu hala yang mana kata laluan asal tidak boleh dikira semula daripadanya. Apabila pangkalan data sedemikian bocor, penyerang menguji kemungkinan kata laluan: mereka mengira nilai cincangan calon pada perkakasan mereka sendiri dan membandingkan keputusannya. Tiada borang log masuk yang melambatkan mereka, dan kelajuan bergantung pada fungsi cincangan yang dipilih oleh perkhidmatan tersebut serta tetapannya. Bagi fungsi yang pantas dan lapuk seperti MD5, satu kad grafik moden tunggal boleh menguji puluhan bilion calon sesaat. Fungsi yang direka khas untuk menyimpan kata laluan — Argon2id, atau bcrypt dalam sistem terdahulu — diperlahankan secara sengaja dan mengurangkan kadar tersebut dengan amat ketara, dan itulah sebabnya syor terkini menamakannya.

Serangan kamus

Calon-calon kata laluan tersebut bukanlah rawak. Alat pemecah bermula dengan senarai kata laluan sebenar daripada ketirisan data terdahulu serta kamus perkataan dan nama, kemudian menggunakan peraturan yang meniru tabiat manusia: huruf besar pada permulaan, tahun atau tanda seru di bahagian hujung, atau huruf yang digantikan dengan simbol serupa. Kata laluan seperti Summer2024! kelihatan rumit tetapi merupakan antara calon terawal yang akan diuji. Penambahan garam (salting) — menambah nilai rawak yang unik pada setiap kata laluan sebelum proses pencincangan — menghalang penyerang daripada menggunakan jadual yang dikira terlebih dahulu, yang dikenali sebagai jadual pelangi (rainbow table) dan daripada memecahkan semua kata laluan yang serupa serentak, namun ia tidak menjadikan kata laluan yang mudah dijangka kurang mudah dijangka.

Kekerasan penuh

Apabila kamus telah habis digunakan, langkah yang tinggal hanyalah mencuba setiap kemungkinan kombinasi, dan bagi kata laluan yang dijana secara rawak, faktor panjang ialah penentu keputusannya. Sebagai gambaran, andaikan fungsi cincangan pantas dan kata laluan yang setiap aksaranya dipilih secara bebas dengan kebarangkalian sama rata daripada 94 aksara ASCII boleh cetak, tanpa aksara ruang. Terdapat sekitar 6 × 1015 kata laluan sedemikian bagi panjang 8 aksara; pada kelajuan sepuluh bilion tekaan sesaat, mencuba kesemuanya mengambil masa kira-kira seminggu, dan secara purata tekaan yang tepat ditemui dalam separuh masa tersebut. Bagi 12 aksara, mencuba kesemuanya pada perkakasan yang sama akan mengambil masa sekitar 1.5 juta tahun, dan bagi 16 aksara angkanya melangkaui apa-apa perbandingan yang bermakna. Itulah hujah utama bagi kata laluan rawak yang panjang: kamus tidak banyak membantu penyerang, dan di bawah andaian ini, percubaan setiap kombinasi adalah tidak praktikal. Penjana kata laluan yang kuat kami menghasilkannya dalam pelayar anda dan memaparkan anggaran entropi dalam bit bagi setiap satu.

Perkara yang membantu: kata laluan yang panjang tanpa sebarang corak manusia di dalamnya, yang secara praktikalnya bermaksud kata laluan yang dijana. Anda tidak dapat mengawal cara sesuatu perkhidmatan menyimpan kata laluan anda, jadi jangkakan keadaan yang paling buruk dan pilih kata laluan yang kalis tekaan walaupun ia disimpan menggunakan fungsi cincangan yang pantas.

Mengintai skrin dan kejuruteraan sosial

Kaedah yang paling lama langsung tidak memerlukan teknologi. Kata laluan diintai dari belakang bahu, dibaca daripada nota pelekat pada monitor, atau dilihat daripada skrin yang dikongsi dalam panggilan video; atau penyerang hanya memintanya secara terus dengan menyamar sebagai kakitangan sokongan atau rakan sekerja — perkara yang dipanggil kejuruteraan sosial (social engineering). Tiada perkhidmatan yang sah akan sesekali meminta kata laluan anda melalui telefon, e-mel atau ruang sembang.

Perkara yang membantu: jangan sesekali memberitahu atau menghantar kata laluan kepada sesiapa, dan jangan menyimpannya di tempat yang boleh dilihat oleh orang lain.

Kesimpulannya

Serangan yang berbeza ditangani dengan amalan yang berbeza, dan tiga daripadanya melakukan sebahagian besar kerja: kata laluan unik bagi setiap akaun, yang dijana secara automatik dan bukannya direka sendiri, serta dilengkapi pengesahan dua faktor — atau kunci laluan (passkey) sebagai pengganti kata laluan sekiranya perkhidmatan menawarkannya. Langkah ini tidak merangkumi segala-galanya — contohnya sesi yang dicuri — dan itulah sebabnya nasihat mengenai perisian hasad di atas turut penting. Lebih banyak artikel dihimpunkan dalam bahan kata laluan.