Generator Kata Sandi Acak yang Kuat

Lemah0 bit
Waktu pembobolan offline: instantly

    Dihasilkan di peramban Anda dengan crypto.getRandomValues. Tidak ada yang dikirim, disimpan, atau dimasukkan ke URL — tautan yang dibagikan tidak bisa membocorkannya.

    Apa pun yang Anda masukkan di sini tidak disimpan, dicatat, atau dibagikan.

    Hasilkan kata sandi acak yang kuat di peramban Anda, dengan entropi sebenarnya dalam bit alih-alih meteran kekuatan yang samar. Tidak ada yang dikirim atau disimpan.

    Cara memakai

    1. Pilih panjang dan himpunan karakter yang ingin disertakan.
    2. Kata sandi langsung dihasilkan; tekan Hasilkan untuk kumpulan baru.
    3. Salin satu, atau salin seluruh daftarnya.

    Panjang lebih berpengaruh daripada kerumitan

    Entropi adalah panjang dikali logaritma basis dua dari ukuran alfabet, dan bentuk rumus itulah inti argumennya. Menambahkan satu karakter ke kata sandi melipatgandakan ruang pencarian sebesar ukuran alfabet; menambahkan satu kelas karakter utuh hanya melipatgandakannya sekali. Kata sandi 16 karakter berhuruf kecil semua bernilai sekitar 75 bit. Kata sandi 12 karakter yang memakai keempat kelas bernilai sekitar 79 bit. Menambah empat huruf kecil lagi lebih berharga daripada menambah simbol.

    Itulah sebabnya aturan komposisi - satu huruf besar, satu angka, satu simbol - mulai ditinggalkan. Secara teori aturan itu menambah beberapa bit, tetapi dalam praktiknya mendorong orang ke segelintir pola substitusi yang mudah ditebak: huruf besar di depan, angka dan tanda seru di belakang. Penyerang memodelkan pola-pola itu secara eksplisit, sehingga aturan tersebut membuat kata sandi lebih mudah ditebak sambil terasa lebih aman. Pedoman NIST SP 800-63B menghapus persyaratan komposisi dan kewajiban penggantian berkala justru karena alasan ini, dan sebagai gantinya merekomendasikan panjang serta pengecekan terhadap kata sandi yang diketahui sudah bocor.

    Entropi mengukur proses, bukan string

    Inilah perbedaan yang salah dipahami kebanyakan pengukur kekuatan kata sandi. Entropi adalah sifat dari cara kata sandi dipilih, bukan dari karakter yang dihasilkan. Generator yang memilih 12 karakter secara merata dari 72 karakter menghasilkan 74 bit, apa pun 12 karakter yang keluar - termasuk yang kebetulan membentuk sebuah kata, yang sama kuatnya dengan kombinasi lain.

    Kebalikannya juga berlaku, dan lebih penting. Kata sandi yang dikarang seseorang hanya punya entropi sebesar proses pemilihannya, yang jauh lebih kecil dari yang disiratkan rumus, karena orang memilih dari sudut yang sangat sempit di ruang itu. Pengukur yang hanya melihat string jadi tidak bisa melihat hal ini: ia memberi nilai tinggi untuk Tr0ub4dor&3, sementara daftar kata penyerang menemukannya dengan cepat.

    Angka yang ditampilkan di sini jujur karena prosesnya diketahui - pemilihan acak yang merata, dari sumber tanpa bias, persis pada alfabet yang Anda atur. Ini bukan tebakan tentang sebuah string; ini aritmetika tentang sebuah undian. Artinya juga, angka itu tidak berlaku lagi begitu Anda mengubah hasilnya secara manual.

    Passphrase

    Jika kata sandi harus diketik dengan kontroler konsol game atau dibacakan lewat telepon, passphrase dari kata-kata acak lebih mudah dipakai dengan kekuatan yang sama. Kata kuncinya acak: dipilih dari daftar, dengan dadu atau generator, bukan dikarang sendiri.

    Daftar Diceware standar berisi 7.776 kata, sehingga setiap kata menyumbang sekitar 12,9 bit. Empat kata sekitar 52 bit, yang kini tidak lagi cukup jika berdiri sendiri. Enam kata sekitar 77 bit dan merupakan target yang wajar untuk sesuatu yang harus dihafal, seperti master password pengelola kata sandi atau kunci enkripsi disk. Tujuh atau delapan kata untuk apa pun yang melindungi semua hal lainnya.

    Frasa yang Anda pikirkan sendiri sama sekali tidak mendekati kekuatan ini. Lirik lagu, kutipan, dan kalimat yang gramatikal banyak terdapat di kamus peretasan, dan tata bahasanya sendiri sangat mempersempit ruang pencarian.

    Yang benar-benar melindungi akun

    Kekuatan adalah bagian keamanan akun yang bisa dibantu oleh generator, dan biasanya bukan bagian yang gagal.

    Yang gagal adalah pemakaian ulang. Kredensial dari sebuah kebocoran dicoba ke semua layanan lain dalam hitungan jam, sehingga satu kata sandi yang dipakai di banyak situs berarti situs terlemah menentukan keamanan semuanya - dan setinggi apa pun entropi kata sandi yang dipakai ulang tidak membantu, karena penyerang sudah memegang teks aslinya. Kata sandi unik untuk setiap situs adalah kebiasaan paling bernilai, dan hanya praktis dengan pengelola kata sandi, yang juga menggagalkan halaman phishing yang tidak bisa dibedakan dengan mata.

    Berikutnya autentikasi dua faktor, idealnya passkey atau kunci perangkat keras, bukan SMS yang bisa disadap lewat SIM swap. Dan ada baiknya menyadari batas usaha Anda sendiri: jika sebuah layanan menyimpan kata sandi dengan buruk atau membocorkannya dalam bentuk teks biasa, apa pun yang Anda pilih tidak berpengaruh. Itu argumen untuk kata sandi unik dan 2FA, bukan untuk kata sandi yang lebih panjang.

    Bagaimana kata sandi sebenarnya diserang

    Tebakan online - mengetikkan kata sandi ke formulir login - adalah serangan yang paling mudah dibayangkan orang sekaligus yang paling tidak efektif, karena pembatasan laju dan penguncian akun menekannya hingga hanya beberapa percobaan per akun. Semua yang serius terjadi secara offline, setelah basis data berisi hash dicuri, dan di sana satu-satunya batasan penyerang adalah perangkat keras miliknya.

    Pembobolan offline tidak berjalan menurut urutan abjad. Prosesnya dimulai dari daftar kata yang disusun dari kebocoran sebelumnya, ratusan juta kata sandi yang benar-benar pernah dipilih orang, lalu menerapkan aturan pada masing-masingnya: mengubah huruf pertama jadi kapital, menambahkan tahun di belakang, mengganti a dengan @, membubuhkan tanda seru di ujung. Perubahan yang dilakukan orang supaya kata sandinya terasa lebih kuat justru persis yang dicakup aturan-aturan itu.

    Credential stuffing adalah serangan paling murah dan sama sekali tidak perlu pembobolan. Pasangan email dan kata sandi dari satu kebocoran dicoba ulang ke setiap layanan lain, dan tingkat keberhasilannya cukup tinggi untuk menjadi sebuah bisnis, karena kebanyakan orang memakai ulang kata sandinya. Inilah alasan kata sandi yang unik untuk tiap situs tetap melindungi Anda meskipun salah satu situs yang Anda pakai dikelola dengan buruk.

    Pengelola kata sandi dan passkey dalam praktik

    Pengelola kata sandi adalah satu-satunya cara realistis untuk memiliki kata sandi unik berentropi tinggi di setiap situs, dan manfaat keduanya jarang dibahas: ia tidak akan mengisi otomatis pada domain yang sekadar terlihat benar. Halaman phishing yang meyakinkan bisa menipu manusia, tetapi tidak menipu pengelola kata sandi, karena URL-nya tidak cocok.

    Passkey melangkah lebih jauh dengan menghapus rahasia bersama. Sepasang kunci dibuat di perangkat, bagian privatnya tidak pernah keluar dari sana, dan situs hanya menyimpan kunci publiknya - artinya tidak ada apa pun di basis data situs yang layak dicuri dan tidak ada yang bisa di-phishing, karena tanda tangannya terikat pada origin. Dukungannya kini sudah luas di berbagai peramban, sistem operasi, dan layanan besar.

    Peralihannya berlangsung bertahap dan berantakan. Sebagian besar akun akan tetap menyimpan kata sandi sebagai cadangan selama bertahun-tahun, alur pemulihan menjadi titik lemah pada kedua model, dan sinkronisasi passkey antarekosistem masih belum merata. Mengaktifkan passkey di tempat yang menyediakannya sambil tetap memakai kata sandi kuat dan unik di tempat lain adalah sikap yang pragmatis.

    Menyusun kebijakan untuk tim atau produk

    SP 800-63B dari NIST adalah rujukan yang diikuti sebagian besar panduan modern, dan rekomendasinya mengejutkan banyak orang: tanpa aturan komposisi karakter, tanpa masa berlaku berkala yang wajib, panjang minimum setidaknya delapan karakter dengan kebebasan untuk jauh lebih panjang, serta penyaringan terhadap daftar kata sandi yang diketahui telah bocor.

    Alasannya bersifat perilaku. Aturan komposisi mendorong semua orang ke substitusi yang sama dan mudah ditebak, sedangkan pergantian paksa menghasilkan Password1, Password2, Password3 - setiap perubahan lebih lemah dari sebelumnya dan berakhir tertulis di secarik kertas. Masa berlaku masih masuk akal sebagai respons terhadap dugaan pembobolan, dan itu hal yang berbeda dari sekadar mengikuti kalender.

    Ada tiga detail implementasi yang lebih penting daripada teks kebijakannya. Izinkan kata sandi panjang dan semua karakter, termasuk spasi dan emoji, karena batas panjang maksimum biasanya menandakan kata sandi disimpan dengan cara yang keliru. Jangan memotong secara diam-diam - bcrypt mengabaikan apa pun setelah 72 byte. Dan periksa kata sandi baru terhadap kumpulan data kebocoran, yang bisa dilakukan lewat range API dari Have I Been Pwned tanpa kata sandi itu keluar dari klien dalam bentuk yang bisa dipakai.

    Pemulihan akun adalah sasaran utama penyerang

    Setiap akun hanya sekuat jalur terlemah untuk masuk kembali ke dalamnya. Kata sandi dua puluh karakter tidak ada artinya bila tautan reset dikirim ke akun email yang dijaga oleh tanggal yang mudah diingat, dan itulah sebabnya akun email yang menopang segalanya layak mendapat kata sandi terkuat dan faktor kedua terkuat yang sanggup Anda rawat.

    Pertanyaan keamanan pada dasarnya adalah kata sandi yang jawabannya diketahui umum. Bila tidak bisa dihindari, perlakukan sebagai kata sandi tambahan: buat string acak untuk setiap pertanyaan dan simpan di pengelola kata sandi.

    Kode cadangan adalah bagian yang sering dilewati orang dan kemudian disesali. Buatlah kode itu saat mengaktifkan autentikasi dua faktor, cetak atau simpan di tempat yang tidak bergantung pada perangkat berisi aplikasi autentikator, dan daftarkan faktor kedua lain jika layanannya mengizinkan. Kegagalan yang tidak pernah diantisipasi siapa pun bukanlah penyerang, melainkan ponsel yang hilang dan akun yang satu-satunya faktor keduanya ada di ponsel itu.

    Yang bisa dan tidak bisa dilihat pengukur kekuatan

    Angka entropi yang ditampilkan di sini jujur karena prosesnya diketahui: pemilihan acak seragam dari alfabet persis seperti yang Anda atur. Ini aritmetika tentang sebuah pengundian, bukan tebakan tentang sebuah string, dan angka itu berhenti benar begitu hasilnya diedit dengan tangan.

    Pengukur yang menilai kata sandi yang Anda ketik sendiri sedang memperkirakan sesuatu yang jauh lebih sulit. Yang bagus, seperti zxcvbn, melakukannya dengan menelusuri daftar kata, pola papan ketik, tanggal, dan substitusi umum, lalu melaporkan seberapa cepat cara-cara itu menemukannya - angka yang jauh lebih berguna daripada menghitung jenis karakter, yang merupakan cara kerja pengukur naif.

    Karena itulah pengukur naif memberi nilai tinggi pada P@ssw0rd1 sementara daftar kata menemukannya dalam hitungan milidetik. Jika Anda membangun formulir pendaftaran, pengukur yang mengenali pola ditambah pemeriksaan kebocoran memberi pengguna umpan balik yang sesuai dengan risiko nyata; sedangkan bilah berwarna yang digerakkan oleh panjang dan simbol pada dasarnya hanya mengajari mereka menambahkan tanda seru.

    Pertanyaan umum

    Dari mana keacakannya berasal?
    Dari crypto.getRandomValues, sumber acak peramban yang aman secara kriptografis. Math.random sengaja tidak dipakai: ia generator pseudoacak cepat yang disemai dari keadaan jam, dan keluarannya bisa ditebak oleh siapa pun yang mengamatinya cukup banyak.
    Apa arti angka entropi itu?
    Itu jumlah bit keacakan sejati, dihitung sebagai panjang dikali log2 dari ukuran himpunan karakter. Setiap bit tambahan melipatgandakan usaha untuk menebaknya. Inilah ukuran kekuatan yang jujur, tidak seperti meteran yang sekadar mengecek apakah Anda menyertakan simbol.
    Berapa entropi yang cukup?
    Di bawah sekitar 45 bit tergolong lemah menghadapi penyerang yang gigih. Sekitar 70 bit tahan terhadap pembobolan offline pada hash cepat. Di atas 100 bit berada di luar jangkauan brute force untuk perangkat keras mana pun yang bisa diperkirakan. Pengaturan bawaan di sini menghasilkan jauh di atas 100.
    Bagaimana waktu pembobolan dihitung?
    Perhitungannya mengasumsikan serangan offline terhadap hash cepat pada 100 miliar tebakan per detik, lalu melaporkan waktu untuk menyisir separuh ruang kunci. Itu skenario terburuk yang realistis; penyerang yang menebak lewat halaman login sungguhan jauh lebih lambat berkali-kali lipat.
    Apakah kata sandi ini dikirim atau dicatat di suatu tempat?
    Tidak. Semuanya dihasilkan di peramban Anda, tidak pernah dikirim, tidak pernah disimpan, dan tidak pernah ditulis ke URL, jadi berbagi tautan tidak bisa membocorkannya. Meski begitu, pengelola kata sandi adalah tempat yang lebih baik daripada tab peramban.
    Kenapa mengecualikan karakter yang mirip?
    Karena 0 dan O, atau 1 dan l, sulit dibedakan ketika kata sandi harus dibacakan atau diketik ulang dari kertas. Opsi ini sedikit menurunkan entropi, dan itulah sebabnya hitungan bitnya ikut berubah saat Anda mengaktifkannya.

    Terakhir diperbarui:

    Laporkan masalah

    Sertakan langkah, hasil yang diharapkan, dan hasil sebenarnya. Hapus rahasia dan data pribadi.

    Alat terkait