it-swarm-id.com

Mengapa kata sandi dibatasi hingga 16 karakter?

Apa alasan sebagian besar situs web membatasi hingga 16 karakter?

Saya akan berpikir semakin lama kata sandi semakin sulit membuatnya seseorang untuk memecahkannya?

Apakah ada hubungannya dengan tabrakan hash?

36
orange

Jika Anda mematuhi CWE-521: Persyaratan Kata Sandi Lemah . Maka semua kata sandi harus memiliki panjang kata sandi minimum dan maksimum.

Ada dua alasan untuk membatasi ukuran kata sandi. Untuk satu, hashing sejumlah besar data dapat menyebabkan konsumsi sumber daya yang signifikan atas nama server dan akan menjadi sasaran empuk bagi Denial of Service. Terutama jika server menggunakan peregangan kunci seperti PBKDF2.

Kekhawatiran lainnya adalah hash serangan ekstensi-panjang atau serangan awalan terhadap MD5. Namun jika Anda menggunakan fungsi hash yang tidak rusak, seperti bcrypt atau sha-256, maka ini seharusnya tidak menjadi perhatian untuk kata sandi.

IMHO 16 byte terlalu kecil . bcrypt memiliki batas bawaan 72 karakter, yang mungkin ukuran yang wajar untuk fungsi hash yang berat. Peregangan Kunci yang digunakan oleh fungsi-fungsi ini menciptakan kemungkinan Algorithmic Complexity Attack atau ACA.

32
rook

Apa alasan sebagian besar situs web membatasi hingga 16 karakter?

Batas implementasi sewenang-wenang.

Mungkin mereka hanya ingin mengalokasikan buffer 17-oktet (16 ASCII/1-oktet karakter + mengakhiri NUL).

Mungkin mereka percaya bahwa memiliki kata sandi dengan lebih dari 16 karakter tidak berguna atau konyol, karena mereka tidak mengerti kata sandi.

Saya akan berpikir semakin lama kata sandi semakin sulit membuatnya seseorang untuk memecahkannya?

Memang. Kata sandi dengan 16 karakter alfabet independen acak dengan distribusi seragam memiliki cukup entropi. Tetapi manusia buruk dalam memilih secara acak 16 karakter alfabet independen acak dengan distribusi seragam, dan sangat buruk dalam mengingat urutan karakter yang tidak berarti, sehingga mereka memilih kata sandi yang dapat mereka ingat, tetapi dengan lebih sedikit entropi per karakter .

Yang penting hanya entropi total, bukan entropi per karakter. Sebagai contoh, urutan kata-kata kamus acak, dihasilkan dengan Word-die (Word-die: buka halaman acak dalam kamus, dll. lebih mudah diingat daripada urutan huruf yang diperoleh dengan huruf-mati.

Kata sandi semacam itu akan lebih panjang daripada urutan huruf yang acak, tetapi akan lebih mudah diingat untuk entropi yang setara; atau, jika Anda mau, mereka akan memiliki lebih banyak entropi untuk upaya memori mental yang sama.

Untuk kekuatan yang memadai, kata sandi yang terbuat dari kata-kata kamus ini mungkin akan memiliki lebih dari 16 karakter.

Dengan kata lain, batas ini bodoh.

Apakah ada hubungannya dengan tabrakan hash?

Tidak.

Tidak ada jaminan formal sehubungan dengan tabrakan dengan kata sandi singkat, tetapi dampak praktis dari tabrakan hash tidak ada.

18
curiousguy