Apabila penggodam atau penguji penembusan merosakkan sistem dan ingin mengakses kata laluan teks jelas dari dump pangkalan data, mereka mesti terlebih dahulu memecahkan hash kata laluan yang disimpan. Ramai penyerang terjun ke dalam konsep ini: mereka mencuba apa-apa serangan kriptografi sewenang-wenangnya yang mereka mahu, dengan sedikit sebab. Perbincangan ini akan menunjukkan beberapa kaedah retak kata laluan yang berkesan dan bagaimana analisis statistik kata laluan boleh digabungkan dengan alat untuk mencipta kaedah terhad masa untuk retak yang cekap dan berjaya. Mengapa ini penting?
Pecah kata laluan adalah sebab yang hampir mati. Pengguna perlu membuat kata laluan yang lebih kompleks, dan sesetengah pembangun backend mula menggunakan mekanisme seperti Bcrypt untuk menggantikan fungsi hash standard. Nilai hash Bcrypt mengambil masa yang lebih lama untuk dijana, dan oleh itu, kata laluan menjadi lebih sukar untuk dipecahkan. Pemecah perlu menjana hash dengan sangat cepat untuk memecahkan kata laluan dengan berkesan, jadi Bcrypt adalah alat yang sangat berkuasa untuk melawan serangan sedemikian. Untuk menggambarkan contoh ini, program pemecah kata laluan yang dibuat oleh 25 kluster GPU yang dilancarkan pada tahun 2012 mampu mencapai kelajuan penjanaan hash NTLM sebanyak 350 bilion hash sesaat berbanding 71,000 hash Bcrypt. Menggunakan ini sebagai model perbandingan, untuk setiap hash Bcrypt yang dijana, 5 juta hash NTLM boleh dijana. Apabila berhadapan dengan algoritma Bcrpyted, penggodam perlu membuat lebih banyak tekaan yang dikira pada kata laluan dan tidak boleh bergantung pada penggunaan daya kasar untuk setiap kemungkinan.
Nota: Jika penyerang mengetahui bahawa panjang kata laluan adalah sangat pendek sehingga tidak mengambil masa yang lama untuk memecahkan ruang kunci secara brute force, langkah serangan tambahan tidak diperlukan.
Kecekapan masa menjadi faktor utama dalam kejayaan memecahkan kata laluan. Walaupun ia akan menjadi baik untuk menutup seluruh ruang kritikal kata laluan pengguna, masa yang diperlukan untuk berbuat demikian biasanya tidak boleh dilaksanakan. Oleh itu, apabila memecahkan, adalah penting untuk mencuba serangan yang paling menjimatkan masa terlebih dahulu, dan jika tidak berjaya, teruskan dengan serangan kriptografi yang lebih perlahan yang meliputi lebih banyak ruang kunci. Kaedah terpantas ialah serangan kamus mudah berdasarkan kata laluan pengguna biasa dan lambakan kata laluan sebelumnya. Dari situ, anda harus cuba memanipulasi kamus untuk menambah nombor atau simbol pada penghujungnya atau menukar huruf. Ini dipanggil serangan hibrid atau serangan berasaskan peraturan. Seterusnya, anda boleh cuba menggunakan keupayaan pembelajaran mesin untuk menjana kata laluan yang mungkin. Rantaian Markov adalah contoh yang baik. Dengan menggabungkan unsur-unsur biasa yang wujud dalam bahasa Inggeris untuk membentuk perkataan (contohnya, "ing", "er", "qu"), tekaan yang baik tentang kata laluan boleh dijana, seperti kata laluan di bawah. Walaupun mudah untuk memecahkan kata laluan khusus ini menggunakan sebarang kaedah, untuk memudahkan semua vektor serangan, kami akan menggunakan kata laluan ini. Password1234Password1234
Akhirnya, serangan kekerasan kasar yang disasarkan (dipanggil serangan topeng) menutup semua ruang kunci bagi kata laluan yang diberikan berdasarkan struktur kata laluan. Yang saya maksudkan dengan "struktur" kata laluan ialah jenis dan susunan aksara yang digunakan untuk membuat kata laluan. Sebagai contoh, "struktur" dengan huruf besar, diikuti dengan 7 huruf kecil, diikuti dengan 4 digit (dilambangkan sebagai). Password1234ullllllldddd
Huruf kecil, huruf besar, simbol, nombor (l) (u) (s) (d)
Oleh itu, jika penyerang memutuskan untuk menggunakan struktur ini untuk mencipta semua kemungkinan gabungan aksara, dia akhirnya akan mencari kata laluan. Kemudian persoalan penyerang menjadi: Apakah struktur yang harus disasarkan terlebih dahulu apabila menyerang set hash? Password1234
Untuk membantu menjawab soalan ini, saya telah melakukan beberapa analisis statistik mengenai lambakan kata laluan popular untuk melihat sama ada terdapat struktur kata laluan yang lebih biasa daripada struktur kata laluan lain, dan sejauh mana struktur ini betul. Saiz sampel lebih 34 juta kata laluan yang didedahkan secara terbuka termasuk dump kata laluan terkenal seperti RockYou, LinkedIn, phpBB dan banyak lagi.
Rajah di bawah menunjukkan kekerapan struktur topeng untuk setiap topeng unik. Garis merah mewakili garis 50%, yang muncul selepas topeng ke-13 yang paling kerap muncul.
Ini bermakna 13 struktur topeng unik pertama menyumbang 50% daripada sampel kata laluan. Struktur lebih daripada 20 juta kata laluan dalam sampel terletak di 13 topeng pertama. Keputusan ini agak mengejutkan dari segi universaliti kata laluan berstruktur. 50% yang lain wujud di dalam ekor kanan yang panjang dan telah dikurangkan dalam rajah ini. Malah, daripada 260,500 topeng unik, hanya 400 yang dipaparkan dalam graf ini. Konsep kriptografi struktur universal ini adalah luar biasa; Walau bagaimanapun, ia tidak menghairankan apabila anda mempertimbangkan bagaimana pengguna membuat dan mengingati kata laluan mereka. Berdasarkan data analisis, terdapat beberapa faktor logik yang membantu menjelaskan bagaimana ini mungkin. Apabila pengguna diminta untuk memberikan kata laluan yang mengandungi huruf besar, ia digunakan sebagai aksara pertama lebih daripada 90% daripada masa. Apabila diminta menggunakan nombor, kebanyakan pengguna akan menambah dua digit pada akhir kata laluan (mungkin tahun tamat pengajian). Pilihan paling popular seterusnya ialah menamatkan kata laluan dengan empat digit (mungkin tahun lepas atau tahun ini). Dalam kes ini, nombor paling popular seterusnya mempunyai satu nombor di akhir dan tiga nombor di penghujungnya. Kesamaan struktur seperti ini membolehkan penyerang meramalkan apa struktur kata laluan pengguna yang paling mungkin.
Menggunakan pengetahuan struktur ini, adalah selamat untuk menganggap bahawa pengguna berkemungkinan besar akan menetapkan kata laluan mereka kepada than (huruf rawak), walaupun semuanya bermula dengan 9 huruf dan mempunyai 9 huruf. Oleh itu, kita mengandaikan bahawa memandangkan struktur kata laluan, jika kita melihat huruf berturut-turut, kemungkinan besar ia adalah perkataan. Ini adalah andaian yang sangat berguna untuk keropok kerana ia menghapuskan banyak ruang kunci. Ini kemudian menjadi serangan hibrid yang memanfaatkan kepentingan statistik struktur kriptografi universal. potatoespwivwdhpp
Biasanya, sebagai penguji penembusan, walaupun kita memecahkan satu set hash, kita mungkin tidak mempunyai masa untuk memecahkan semua hash. Walau bagaimanapun, memecahkannya boleh membantu meningkatkan akses kepada sistem dan membawa penemuan yang lebih berguna kepada pelanggan. Oleh itu, apabila memecahkan kata laluan, mungkin berguna untuk menentukan berapa banyak masa yang akan diperuntukkan untuk memecahkan satu set nilai hash. Menggunakan struktur yang ditemui dalam analisis sebelumnya, penyerang boleh menentukan 10 struktur popular teratas yang dia mahu liputi berdasarkan keperluan kerumitan kata laluan yang disusun mengikut masa selesai terpantas. Akhirnya, penyerang boleh mengehadkan masa kaedahnya dengan menghabiskan masa tidak lebih daripada satu jam untuk melaksanakan retak. Ini didapati dalam ujian penembusan baru-baru ini untuk mendapatkan hash. Berikut ialah gambar hasil cracker berasaskan CPU.
Dalam kes ini, struktur yang paling cepat disiapkan ialah, kita mentakrifkan ia sebagai satu huruf besar, diikuti oleh tiga huruf kecil ("W" untuk "perkataan"), dan kemudian empat digit. Terdapat 69 kata laluan yang sepadan dengan struktur dalam set hash, dan CPU standard saya mampu melintasi semua kemungkinan struktur dalam satu minit. Kami menghentikan retak pada 62 minit dan retak menghasilkan 221 hash retak unik yang sepadan dengan 491 akaun, yang membawa kepada 11% kebocoran secara keseluruhan. Sebab perbezaan besar dalam bilangan kata laluan yang retak dan kebocoran akaun adalah kerana tetapan Office cenderung menyebabkan orang ramai menggunakan kata laluan biasa. Jika penyerang menentukan bahawa kata laluan umum digunakan dalam persekitaran, semua pengguna dengan kata laluan yang sama juga akan terancam. U (W3) dddd
Walaupun serangan hibrid atau serangan berasaskan peraturan (contohnya) boleh memecahkan beberapa kata laluan ini dengan lebih cepat, struktur kata laluan serangan membolehkan kita menutup lebih banyak ruang kunci. Kaedah ini adalah langkah seterusnya yang berkesan jika serangan Faster terbukti gagal untuk memecahkan hash sasaran. Di samping itu, adalah penting untuk diingat bahawa contoh ini dilakukan pada CPU yang agak biasa-biasa saja, dan melakukan serangan yang sama pada GPU yang berkuasa boleh mengurangkan masa ini kepada beberapa saat. Oleh itu, masa yang tepat adalah kurang penting daripada pelaksanaan teori yang berkesan. best64
membantu kita secara amnya menyerang struktur kata laluan biasa; Walau bagaimanapun, terdapat beberapa alat yang boleh membantu mencari aplikasi tertentu. Alat seperti CeWL boleh merangkak perkataan dari halaman web dan digunakan untuk menghasilkan senarai perkataan atau kamus khusus untuk syarikat. Ia berkesan kerana syarikat cenderung menggunakan kata laluan yang berkaitan dengan industri, syarikat atau pekerjaan mereka. Selain itu, kerana kami telah menentukan bahawa kata laluan yang biasa digunakan adalah popular dalam persekitaran kerja, kata laluan yang telah retak juga boleh digunakan sebagai asas untuk kata laluan lain, yang mungkin serupa. Sebagai contoh, jika kita mendapati bahawa "" adalah kata laluan pengguna, kita mungkin meletakkan "" dalam senarai perkataan baru, meletakkannya dalam set peraturan, dan kemudian mendapati bahawa orang lain mempunyai kata laluan "". Konsep ini menggunakan perkataan asas retak (seperti ' ') dan dihiasi dengan aksara sekeliling sangat berkesan apabila memecahkan hash yang dibuang dari persekitaran perusahaan, yang boleh dikesan kembali kepada konsep penggunaan semula kata laluan. Berdasarkan ujian penembusan yang kami jalankan, ini paling sesuai digunakan untuk memecahkan 20% terakhir hash yang tidak retak. AcmeCorp1234AcmeCorpAcmeCorp@2015AcmeCorp
Penting juga untuk memangkas kamus supaya semua kata laluan yang diteka memenuhi keperluan yang ditetapkan oleh aplikasi supaya masa tidak terbuang untuk meneka kata laluan yang tidak boleh diteka kerana panjang atau komposisi aksara.
Bermula dengan serangan terpantas, meliputi ruang kunci yang paling sedikit (serangan kamus standard) kepada ruang kunci yang paling perlahan dan maksimum (kekuatan kasar tulen) adalah kemajuan yang paling ideal untuk mempertimbangkan masa yang diperuntukkan untuk serangan. Oleh itu, penyerang harus melaksanakan kaedah standard yang mengambil kira perkara ini. Jika akaun yang ingin digodam oleh penyerang selesai dalam fasa pertama, mungkin tidak ada sebab untuk meneruskan serangan lain; Walau bagaimanapun, dalam banyak kes, serangan kamus mudah mungkin tidak mencukupi jika akaun sasaran wujud, atau penyerang hanya mahu memecahkan sebanyak mungkin akaun, jadi serangan hibrid yang menggunakan struktur statistik dan serangan kekerasan yang disasarkan mungkin diperlukan. Oleh itu, membina kaedah adalah penting untuk berjaya retak, yang boleh merangkumi kaedah yang dinyatakan di atas serta beberapa proses automasi. Alat terkini (seperti PRINCE) boleh membantu memudahkan pemecahan kata laluan. Adalah penting untuk membangunkan tali pinggang alat, seperti PRINCE mencuba dalam kaedah, tetapi memahami fungsi di sebalik alat dan bukannya bergantung sepenuhnya pada mereka akan menjadikan retak lebih berkesan.
Dengan menganalisis menggunakan kata laluan ini, struktur yang paling popular untuk tahap kerumitan yang dikehendaki dapat ditentukan. Oleh itu, pemaju mungkin harus melaksanakan beberapa kawalan untuk menghalang pengguna daripada menggunakan beberapa struktur yang sangat popular untuk meratakan lengkung graf sebelumnya. Walau bagaimanapun, masalah dengan idea ini ialah tanpa struktur yang mudah, pengguna mungkin sukar untuk mengingati kata laluan mereka. Saya mengesyorkan menggunakan pengurus kata laluan yang memerlukan pengesahan dua kali ganda. Aplikasi ini akan menjana dan menyimpan semua kata laluan anda untuk anda, jadi memori tidak menjadi masalah. Kata laluan yang mereka hasilkan adalah rawak dalam struktur dan boleh digunakan sepanjang masa selagi aplikasi membenarkannya. Seperti yang saya nyatakan sebelum ini, kata laluan penyulitan adalah satu lagi kaedah yang sangat berkesan untuk memperlahankan prospek penyerang. Akhirnya, melaksanakan strategi di dalam pejabat untuk membantu pengguna memahami bahaya berkongsi kata laluan atau menggunakannya semula adalah langkah yang berjaya ke arah yang betul, walaupun pengguna tidak selalu mematuhinya. Walaupun kemungkinan besar mereka tidak akan mematuhinya sepanjang masa, ia adalah langkah kawalan yang berkesan.
Pecah kata laluan mungkin merupakan konsep yang samar-samar. Apabila kesukaran retak meningkat, serangan yang disasarkan berdasarkan kecekapan diperlukan, dan kaedah retak peribadi harus ditubuhkan. Ia tidak berbaloi untuk melabur wang untuk akhirnya meningkatkan kelajuan penjanaan hash. Oleh itu, menggunakan statistik dan alat sebagai alat serangan untuk melaksanakan satu kaedah dan proses yang dipermudahkan boleh memudahkan pemecahan kata laluan. Pembangun boleh membangunkan kawalan untuk menangani situasi ini, dan pengguna boleh menggunakan pengurus kata laluan yang selamat untuk meminimumkan keberkesanan serangan ini; Walau bagaimanapun, pelaksanaan sedemikian belum begitu popular. Pada masa ini, serangan statistik terhadap kata laluan berkesan dari segi bilangan retak dan kecekapan sambungan masa. Fikirkan kata laluan anda sendiri dan tanya diri anda seberapa cepat ia boleh dipecahkan bergantung pada struktur kata laluan dan kawalan apa di pejabat anda yang boleh menyebabkan penyerang menceroboh akaun pengguna.