Alat baris perintah untuk menghasilkan kata sandi yang mudah diingat?

19

Saya mencari alat, baris perintah atau GUI, untuk Linux yang menghasilkan kata sandi yang mudah diingat.

Setara dengan apa yang saya cari adalah kata sandi yang dapat dihasilkan oleh gantungan kunci Mac OS X, seperti apples12$/fourteen. Sesuatu yang kuat, tetapi mudah diingat oleh pengguna.

James McMahon
sumber

Jawaban:

22

Sejak itu saya beralih ke frasa sandi gaya XCKD untuk sebagian besar kata sandi saya. Berikut ini adalah 1 liner dari commandlinefu untuk menghasilkan kata sandi:

shuf -n4 /usr/share/dict/words | tr -d '\n'
James McMahon
sumber
2
sebenarnya, ada masalah dengan one-liner ini: mungkin menggunakan kata-kata seperti "the", "mereka", "mereka" dan "parit", "iris", "he". Apakah kamu melihat masalahnya? Ada tumpang tindih antara awalan dan sufiks, yang mengurangi entropi aktual dari kata sandi yang dihasilkan dan dapat menyebabkan kata sandi yang sangat lemah jika string tidak cukup panjang (terutama dengan 4 kata). Inilah sebabnya mengapa pembuat kata sandi berbasis kata menggunakan daftar kata yang dibuat. Memang, kata sandi yang dihasilkan dengan di atas cukup bagus: minimum 14 karakter dalam pengujian saya, dengan ukuran rata-rata 34. Tetapi entropi mereka tidak dapat diandalkan.
anarcat
Apa masalah dengan memiliki awalan / akhiran yang tumpang tindih? Saya dapat memahami poin Anda tentang panjang, tetapi Anda harus menjelaskan poin lainnya.
James McMahon
mari sederhanakan sampai yang ekstrim. Anda memiliki dictionnary terbuat dari tiga kata: the, medan theme. biasanya, Anda akan mengharapkan Anda memiliki entropi yang sama dari tiga kata itu, tetapi dalam kasus ini, Anda tidak dapat menghitung themekarena itu adalah kombinasi dari dua kata lainnya. pada dasarnya, themesebenarnya menambahkan nol entropi ke kata sandi.
anarcat
Tetapi bukankah "aku" berbeda dari "tema"? Saya mendapatkan surat-surat yang mungkin menambahkan entropi tetapi pendekatan ini lebih tentang ukuran kata sandi. Saya tidak mengerti bagaimana "tema saya" akan lebih mudah ditebak daripada urutan tanpa karakter yang tumpang tindih seperti "do ray music"
James McMahon
1
@ wbg jawaban saya ada di sini superuser.com/a/1246245/177019
anarcat
11

Anda mungkin ingin memeriksa pwgenaplikasi. Saya tahu itu akan tersedia di repositori Ubuntu, Fedora, Debian dan Suse.

Dari halaman manual :

Program pwgen menghasilkan kata sandi yang dirancang agar mudah diingat oleh manusia, sekaligus seaman mungkin. Kata sandi yang mudah diingat manusia tidak akan pernah seaman kata sandi yang sepenuhnya acak. Secara khusus, kata sandi yang dihasilkan oleh pwgen tanpa opsi -s tidak boleh digunakan di tempat-tempat di mana kata sandi dapat diserang melalui serangan brute-force off-line. Di sisi lain, kata sandi yang dibuat secara acak memiliki kecenderungan untuk ditulis, dan dapat dikompromikan dengan cara itu.

Program pwgen dirancang untuk digunakan baik secara interaktif, maupun dalam skrip shell. Oleh karena itu, perilaku default berbeda tergantung pada apakah output standar adalah perangkat tty atau pipa ke program lain. Digunakan secara interaktif, pwgen akan menampilkan layar penuh kata sandi, memungkinkan pengguna untuk memilih satu kata sandi, dan kemudian dengan cepat menghapus layar. Ini mencegah seseorang dari dapat "berselancar di" kata sandi yang dipilih pengguna.

BloodPhilia
sumber
3
Kata sandi seperti 'Zei7jool' atau 'Oowee6ei' sepertinya tidak terlalu berkesan bagi saya. Mungkin saya kehilangan bendera?
James McMahon
3
@ James Mereka dihasilkan menurut suatu algoritma yang menempatkan huruf-huruf dalam suatu yang tidak masuk akal, namun karena mereka logis dalam linguistik manusia, urutan yang dapat diingat. Anda mungkin harus melakukan upaya serupa untuk mengingat apples12$/fourteenkata sandi. Cobalah saja.
BloodPhilia
1
Ini mengeluarkan daftar kata sandi raksasa, cukup pilih yang paling berkesan - ada beberapa permata di sana ;-)
virtualeyes
4
kata sandi pwgen memiliki masalah keamanan serius secara default, dan tidak terlalu diingat. gunakan diceware atau xkcdpass saja.
anarcat
@anarcat, apa masalah serius yang Anda sebutkan? Silakan tambahkan beberapa rincian lebih lanjut.
Carl Winbäck
8

Saya akan merekomendasikan orang-orang berhenti menggunakan pwgen - peminat utamanya adalah menghasilkan "kata sandi yang dapat diingat manusia", tetapi itu menunjukkan banyak kerentanan dalam melakukan hal itu. Dan menggunakannya untuk menghasilkan string acak sepenuhnya tidak berguna juga.

Saya menulis artikel terperinci tentang topik itu, tetapi pada dasarnya, intinya adalah menggunakan program diceware (atau, jika Anda suka dadu, sistem diceware yang sebenarnya ) atau xkcdpass . Untuk menghasilkan kata sandi yang kuat dan mudah diingat, saya biasanya menggunakan diceware dengan file konfigurasi berikut:

[diceware]
caps = off
delimiter = "-"
wordlist = en_eff

Contoh:

$ diceware
turkey-eligibly-underwire-recite-lifter-wasp
$ diceware
lend-rubdown-cornflake-tint-shawl-ozone
$ diceware
syndrome-ramp-cresting-resolved-flinch-veneering
$ diceware
alto-badass-eclipse-surplus-rudder-quit

Saya mematikan topi dan spasi karena mereka menghasilkan suara yang berbeda yang dapat didengar oleh penyerang. The -pembatas adalah kejahatan yang lebih rendah: akan lebih baik untuk tidak menggunakan pemisah setiap dan en_effwordlist terutama dibuat untuk tujuan itu. Tetapi saya merasa lebih mudah untuk berkomunikasi dan berbagi kata sandi ketika mereka memiliki beberapa pemisah.

Untuk menghasilkan kata sandi yang sepenuhnya acak, saya menggunakan fungsi shell berikut:

# secure password generator or, as dkg puts it:
# high-entropy compact printable/transferable string generator
# a password generator would be pwqgen or diceware
pwg() {
    ENTROPY=${1:-20} # in bytes
    # strip possible newlines if output is wrapped and trailing = signs as they add nothing to the password's entropy
    head -c $ENTROPY /dev/random | base64 | tr -d '\n='
    echo
}

Saya menyebutkan ini karena saya percaya penting untuk menghafal lebih sedikit kata sandi dan alih-alih mengandalkan pengelola kata sandi untuk menyimpan string besar yang sulit ditebak. Rincian lebih lanjut tentang alasan di balik pilihan-pilihan itu dijelaskan dalam artikel tersebut dan ulasan manajer kata sandi saya .

anarcat
sumber
4

Coba 'gpw'. Itu menghasilkan kata sandi seperti ini:

Deskripsi: Generator Kata Sandi Trigraph Paket ini menghasilkan kata sandi yang dapat diucapkan. Ini menggunakan statistik kombinasi tiga huruf (trigraph) yang diambil dari kamus apa pun yang Anda masukkan. Dengan demikian kemampuan pengucapan dapat berbeda dari satu bahasa ke bahasa lainnya. Berdasarkan ide-ide di generator kata sandi Morrie Gasser untuk Multics, dan generator Dan Edwards untuk CTSS. FIPS Standard 181 menggambarkan
generator berbasis digraf serupa , yang berasal dari Gasser.

Thomas
sumber
1

Pilihan bagus yang muncul sejak saya bertanya ini adalah XKCD-password-generator Redacted .

Ini adalah skrip Python yang bagus untuk menghasilkan kata sandi gaya XKCD yang memiliki beberapa opsi tingkat lanjut seperti dukungan akrostik.

James McMahon
sumber
0

sf-pwgen adalah alat baris perintah yang menghasilkan kata sandi menggunakan kerangka SecurityFoundation di OS X.

vdm
sumber