Saya dapat memahami bahwa memaksakan panjang minimum pada kata sandi masuk akal (untuk menyelamatkan pengguna dari diri mereka sendiri), tetapi bank saya memiliki persyaratan bahwa kata sandi berukuran antara 6 dan 8 karakter, dan saya mulai bertanya-tanya ...
- Bukankah ini hanya akan memudahkan serangan brute force? (Buruk)
- Apakah ini menyiratkan bahwa kata sandi saya disimpan tidak terenkripsi? (Buruk)
Jika seseorang dengan (mudah-mudahan) beberapa profesional keamanan TI yang bekerja untuk mereka memaksakan panjang kata sandi maksimal, haruskah saya berpikir untuk melakukan hal serupa? Apa pro / kontra dari ini?
security
encryption
passwords
nickf
sumber
sumber
Jawaban:
Kata sandi di-hash menjadi 32, 40, 128, berapa pun panjangnya. Satu-satunya alasan untuk panjang minimum adalah untuk mencegah kata sandi yang mudah ditebak. Tidak ada tujuan untuk panjang maksimal.
Wajib XKCD menjelaskan mengapa Anda melakukan pengguna Anda merugikan jika Anda memaksakan panjang max:
sumber
Panjang maksimum yang ditentukan pada bidang kata sandi harus dibaca sebagai PERINGATAN KEAMANAN . Setiap pengguna yang masuk akal dan sadar keamanan harus menganggap yang terburuk dan berharap bahwa situs ini menyimpan kata sandi Anda secara harfiah (yaitu tidak diacak, seperti yang dijelaskan oleh epochwolf).
Dalam hal ini masalahnya:
Jika Anda mengembangkan situs yang menerima kata sandi, jangan berikan batas kata sandi konyol, kecuali jika Anda ingin mendapatkan tar dengan kuas yang sama.
[Secara internal, tentu saja kode Anda hanya dapat memperlakukan 256/1024 / 2k / 4k / (apa pun) byte pertama sebagai "signifikan", untuk menghindari pengetikan pada kata sandi raksasa.]
sumber
Mengizinkan panjang kata sandi yang sama sekali tidak terikat memiliki satu kelemahan utama jika Anda menerima kata sandi dari sumber yang tidak tepercaya.
Pengirim dapat mencoba memberi Anda kata sandi yang begitu panjang sehingga mengakibatkan penolakan layanan untuk orang lain. Misalnya, jika kata sandi adalah 1GB data dan Anda menghabiskan seluruh waktu Anda menerimanya sampai kehabisan memori. Sekarang anggaplah orang ini mengirimkan kata sandi ini sebanyak yang Anda mau terima. Jika Anda tidak berhati-hati dengan parameter lain yang terlibat, ini dapat menyebabkan serangan DoS.
Mengatur batas atas ke sesuatu seperti 256 karakter tampaknya terlalu murah hati dengan standar saat ini.
sumber
Pertama, jangan berasumsi bahwa bank memiliki profesional keamanan TI yang bekerja untuk mereka. Banyak yang tidak .
Yang mengatakan, panjang kata sandi maksimum tidak berharga. Sering kali mengharuskan pengguna untuk membuat kata sandi baru (argumen tentang nilai menggunakan kata sandi yang berbeda di setiap situs selain untuk saat ini), yang meningkatkan kemungkinan mereka hanya akan menuliskannya. Ini juga sangat meningkatkan kerentanan untuk menyerang, oleh vektor apa pun dari brute force ke social engineering.
sumber
Mengatur panjang kata sandi maksimal kurang dari 128 karakter sekarang tidak disarankan oleh OWASP Authentication Sheet Cheat
https://www.owasp.org/index.php/Authentication_Cheat_Sheet
Mengutip seluruh paragraf:
sumber
Salah satu alasan yang dapat saya bayangkan untuk menegakkan panjang kata sandi maksimum adalah jika frontend harus berinteraksi dengan banyak sistem backend yang lama, salah satunya memaksakan panjang kata sandi maksimum.
Proses pemikiran lain mungkin adalah bahwa jika seorang pengguna dipaksa untuk pergi dengan kata sandi singkat mereka lebih mungkin untuk menciptakan omong kosong acak daripada kata-kata atau julukan catch catching (oleh teman / keluarga mereka). Pendekatan ini tentu saja hanya efektif jika frontend memberlakukan pencampuran angka / huruf dan menolak kata sandi yang memiliki kata-kata kamus, termasuk kata-kata yang ditulis dalam l33t-speak.
sumber
Salah satu alasan yang berpotensi sah untuk memaksakan beberapa panjang kata sandi maksimum adalah bahwa proses hashing itu (karena penggunaan fungsi hashing lambat seperti bcrypt) memakan terlalu banyak waktu; sesuatu yang bisa disalahgunakan untuk menjalankan serangan DOS terhadap server.
Kemudian lagi, server harus dikonfigurasi untuk secara otomatis menjatuhkan penangan permintaan yang terlalu lama. Jadi saya ragu ini akan menjadi masalah.
sumber
Saya pikir Anda sangat tepat pada kedua poin tersebut. Jika mereka menyimpan kata sandi hash, sebagaimana seharusnya, maka panjang kata sandi tidak mempengaruhi skema DB mereka sama sekali. Memiliki panjang kata sandi terbuka membuka satu variabel lagi yang harus diperhitungkan oleh penyerang brute-force.
Sulit untuk melihat alasan untuk membatasi panjang kata sandi, selain desain yang buruk.
sumber
Satu-satunya manfaat yang bisa saya lihat untuk panjang kata sandi maksimum adalah untuk menghilangkan risiko serangan buffer overflow yang disebabkan oleh kata sandi yang terlalu panjang, tetapi ada banyak cara yang lebih baik untuk menangani situasi itu.
sumber
Abaikan orang yang mengatakan tidak memvalidasi kata sandi yang panjang. Owasp secara harfiah mengatakan bahwa 128 karakter seharusnya cukup. Hanya untuk memberi ruang napas yang cukup, Anda bisa memberi sedikit lebih banyak, katakanlah 300, 250, 500 jika Anda menginginkannya.
https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Password_Length
sumber
Penyimpanan murah, mengapa membatasi panjang kata sandi. Bahkan jika Anda mengenkripsi kata sandi sebagai lawan dari hanya hashing string 64 karakter tidak akan mengambil lebih dari string 6 karakter untuk mengenkripsi.
Kemungkinannya adalah sistem bank overlay sistem yang lebih lama sehingga mereka hanya dapat memberikan ruang untuk kata sandi dalam jumlah tertentu.
sumber
Bank saya juga melakukan ini. Ini digunakan untuk mengizinkan kata sandi apa pun, dan saya memiliki 20 karakter. Suatu hari saya mengubahnya, dan lihatlah itu memberi saya maksimal 8, dan telah memotong karakter non-alfanumerik yang ada di kata sandi lama saya. Tidak masuk akal bagi saya.
Semua sistem back-end di bank bekerja sebelumnya ketika saya menggunakan kata sandi 20 char saya dengan non-alpha-numerics, jadi dukungan lama tidak bisa menjadi alasannya. Dan bahkan jika itu, mereka masih harus memungkinkan Anda untuk memiliki kata sandi sewenang-wenang, dan kemudian membuat hash yang sesuai dengan persyaratan sistem warisan. Lebih baik lagi, mereka harus memperbaiki sistem warisan.
Solusi kartu pintar tidak cocok dengan saya. Saya sudah memiliki terlalu banyak kartu karena ... Saya tidak perlu trik lain.
sumber
Jika Anda menerima kata sandi berukuran sewenang-wenang maka orang menganggap bahwa kata sandi itu dipotong ke panjang tirai untuk alasan kinerja sebelum hash. Masalah dengan pemotongan adalah bahwa ketika kinerja server Anda meningkat dari waktu ke waktu Anda tidak dapat dengan mudah menambah panjang sebelum pemotongan karena hash-nya jelas akan berbeda. Tentu saja Anda bisa memiliki periode transisi di mana kedua panjang hash dan diperiksa tetapi ini menggunakan lebih banyak sumber daya.
sumber
Cobalah untuk tidak memaksakan batasan apa pun kecuali perlu. Berhati-hatilah: mungkin dan akan diperlukan dalam banyak kasus berbeda. Berurusan dengan sistem warisan adalah salah satu alasan ini. Pastikan Anda menguji kasus kata sandi yang sangat panjang dengan baik (dapatkah sistem Anda menangani kata sandi panjang 10MB?). Anda dapat mengalami masalah Denial of Service (DoS) karena Key Defivation Functions (KDF) yang akan Anda gunakan (biasanya PBKDF2, bcrypt, scrypt) akan membutuhkan banyak waktu dan sumber daya. Contoh kehidupan nyata: http://arstechnica.com/security/2013/09/long-passwords-are-good-but-too-much-length-can-be-bad-for-surity/
sumber
Haruskah ada panjang maksimal? Ini adalah topik yang aneh di IT dalam hal itu, kata sandi yang lebih panjang biasanya lebih sulit untuk diingat, dan karena itu lebih mungkin untuk dituliskan (yang BESAR tidak-tidak karena alasan yang jelas). Kata sandi yang lebih lama juga cenderung lebih dilupakan, yang walaupun tidak selalu menimbulkan risiko keamanan, dapat menyebabkan kerepotan administratif, kehilangan produktivitas, dll. Admin yang percaya bahwa masalah ini mendesak cenderung memaksakan panjang maksimum kata sandi.
Saya pribadi percaya pada masalah khusus ini, untuk masing-masing pengguna. Jika Anda pikir Anda dapat mengingat kata sandi 40 karakter, maka semakin besar kekuatan untuk Anda!
Karena itu, kata sandi dengan cepat menjadi mode keamanan yang ketinggalan jaman, Smart Card dan otentikasi sertifikat terbukti sangat sulit untuk tidak mungkin dilakukan karena Anda menyatakan masalah, dan hanya kunci publik yang perlu disimpan di server dengan private. kunci pada kartu / komputer Anda setiap saat.
sumber
Kata sandi yang lebih panjang, atau frasa sandi, lebih sulit untuk dipecahkan hanya berdasarkan panjangnya, dan lebih mudah diingat daripada membutuhkan kata sandi yang rumit.
Mungkin yang terbaik untuk pergi untuk panjang minimum yang cukup panjang (10+), membatasi panjang tidak berguna.
sumber
Sistem legacy (sudah disebutkan) atau interfacing sistem vendor luar mungkin mengharuskan tutup 8 karakter. Ini juga bisa merupakan upaya sesat untuk menyelamatkan pengguna dari diri mereka sendiri. Membatasinya dengan cara itu akan menghasilkan terlalu banyak password pssw0rd1, pssw0rd2, dll. Dalam sistem.
sumber
Salah satu alasan kata sandi mungkin tidak di-hash adalah algoritma otentikasi yang digunakan. Misalnya, beberapa algoritme intisari memerlukan versi plaintext dari kata sandi di server karena mekanisme otentikasi melibatkan klien dan server yang melakukan perhitungan matematika yang sama pada kata sandi yang dimasukkan (yang umumnya tidak akan menghasilkan keluaran yang sama setiap kali kata sandi dikombinasikan dengan 'nonce' yang dibuat secara acak, yang dibagi antara dua mesin).
Seringkali ini dapat diperkuat karena pencernaan dapat menjadi bagian yang dihitung dalam beberapa kasus, tetapi tidak selalu. Rute yang lebih baik adalah agar kata sandi disimpan dengan enkripsi yang dapat dibalik - ini berarti sumber aplikasi perlu dilindungi karena mengandung kunci enkripsi.
Digst auth ada untuk memungkinkan otentikasi melalui saluran yang tidak dienkripsi. Jika menggunakan SSL atau enkripsi saluran lengkap lainnya, maka tidak perlu menggunakan mekanisme intisari digest, artinya kata sandi dapat disimpan dengan hash sebagai gantinya (karena kata sandi dapat dikirim dengan teks biasa melalui kabel dengan aman (untuk nilai keamanan tertentu).
sumber
Kata sandi yang panjang hanya 8 karakter terdengar salah. Jika seharusnya ada batasan, maka setidaknya 20 char adalah ide yang lebih baik.
sumber
Saya pikir satu-satunya batas yang harus diterapkan adalah seperti batas 2000 huruf, atau sesuatu yang terlalu tinggi, tetapi hanya untuk membatasi ukuran database jika itu merupakan masalah
sumber