Saya telah menemukan beberapa situs yang membatasi panjang kata sandi yang diizinkan dan / atau melarang karakter tertentu. Itu membatasi saya karena saya ingin memperluas dan memperpanjang ruang pencarian kata sandi saya. Itu juga memberi saya perasaan tidak nyaman bahwa mereka mungkin tidak hashing.
Adakah alasan yang baik untuk menetapkan panjang bagian atas atau mengecualikan karakter dalam kata sandi?
Jawaban:
Tidak
Tidak ada alasan bagus .
EDIT: Saya tidak dapat membuktikan bahwa tidak ada alasan yang baik, karena seseorang tidak dapat membuktikan yang negatif. Saya bisa memikirkan tidak ada alasan yang baik untuk ini - seperti yang orang lain tunjukkan, hash akan menjadi ukuran yang sama terlepas dari ukuran input, dan menghilangkan karakter yang valid (dari konteks pertanyaan) hanya mengurangi ruang-negara. Jawabannya tampak jelas di wajahnya: tidak ada alasan yang bagus . Mungkin ada sejumlah besar alasan yang terdengar bagus atau yang tampaknya bagus, tetapi tidak. Jika ya, seseorang pasti sudah mempostingnya di sini, atau jika tidak ada di sini maka tentu saja di security.stackexchange.com, dan jawaban ini tidak akan terlalu banyak diputuskan.
sumber
Membatasi panjang dapat menjadi ukuran untuk membatasi waktu eksekusi dari hashing serta membatasi bandwidth (dan kedua dari mereka adalah benar-benar pula marginal). Selain itu, tidak ada alasan yang bagus, terutama dari sudut pandang keamanan.
Orang bisa mengatakan: "Orang-orang akan melupakan kata sandi yang lebih lama dengan lebih mudah" - tetapi itu benar-benar pernyataan yang bodoh dan tidak langsung sampai pada intinya.
Mengenai karakter, selama Anda mengetahui potensi masalah penyandian dengan transfer data dan / atau migrasi di masa mendatang (mis. Anda akan beralih dari ASCII ke UTF-8 dalam 2 tahun) memungkinkan lebih banyak karakter hanya akan bagus untuk kekuatan kata sandi.
sumber
Ya , ada alasan untuk karakter khusus.
Menolak karakter khusus lebih merupakan hal yang berguna, bukan terkait keamanan. Pertama-tama mereka mungkin hancur oleh masalah pengkodean. Kedua, bahkan jika Anda menjamin untuk selalu menggunakan pengkodean yang sama, masih ada masalah dengan perangkat input. Anda akan bergantung pada memiliki keyboard lengkap (yang menghilangkan sebagian besar perangkat seluler), dengan tata letak keyboard yang sama. Nanti berbeda tidak hanya antara bahasa, tetapi juga antara OS, tata letak untuk Windows, Linux dan OSX mungkin sedikit berbeda. Jadi saya melihat alasan untuk tidak mengizinkan password seperti:
√Ω≈ç∫∞§…¬å∑±
.sumber
Ada sedikit kontroversi di dunia keamanan beberapa tahun yang lalu ketika pelanggan Chase menemukan bahwa kata sandi mereka tidak peka terhadap huruf besar-kecil. Ternyata halaman web mereka hanya sebuah frontend untuk sistem backend OS / 400 yang berusia 30 tahun, yang memiliki keterbatasan teknis sehingga mengabaikan case. Memperbaiki ini tampaknya akan menelan biaya jutaan dolar.
Intinya adalah, mungkin ada alasan warisan mahal untuk tidak mengizinkan kata sandi lebih dari panjang tertentu.
(Perhatikan bahwa saya tidak memaafkan alasan ini ...)
sumber
Sebagian besar bank, departemen TI, dll. Siapa yang memberlakukan pembatasan kata sandi maksimum tidak melakukannya karena alasan teknis. Mereka sangat menyadari bagaimana hashing kata sandi bekerja, dan bagaimana cara menyimpan kata sandi yang kompleks. Mereka memberlakukan batasan ini karena mengurangi jumlah panggilan untuk mendukung orang-orang yang lupa kata sandi mereka. Apakah ini alasan yang bagus untuk menerapkan batasan seperti itu? Dengan tidak bermaksud. Tetapi, bagaimanapun, itu adalah alasan utama.
sumber
valid Business reason
(Secara pribadi saya tidak benar-benar percaya bahwa ada korelasi)Tidak semua perangkat input (berdasarkan perangkat keras) sering memiliki semua karakter yang dimiliki keyboard lengkap, atau juga demikian. Jika seseorang tidak menggunakan pengelola kata sandi, orang dapat menemukan dirinya dalam kesulitan memasukkan kata sandi tersebut, bukan? Dan Unicode masih jauh dari standar.
sumber
Saya akan membuat perkiraan dan mengatakan bahwa beberapa pembatasan ini disebabkan oleh pemfilteran karakter di situs web mereka (
& < > #
) untuk mencegah peretas. Sementara yang lain adalah ide-ide berkepala dingin yang keluar dari komite bos berambut runcing.Saya telah menemukan sejumlah keputusan "keamanan" yang benar-benar bodoh (menurut saya). Sebagai contoh, satu perusahaan investasi besar menangani akun IRA saya dan juga pensiun saya. Dalam rangka untuk melakukan setiap kontak dengan pensiun mengharuskan saya untuk mengetikkan password saya di telepon (Anda tidak dapat mencapai mereka sebaliknya). Akun pialang / IRA saya menggunakan huruf (huruf besar dan kecil) serta beberapa tanda baca - tidak ada karakter ini yang muncul di pad nomor telepon. Jika Anda tidak dapat masuk dengan kata sandi melalui telepon, ini memungkinkan Anda mereset kata sandi akun pialang Anda ke sesuatu yang dapat Anda ketik di telepon.
Sistem penggajian saya (untuk perusahaan konsultan tempat saya bekerja) memerlukan angka, dan hanya angka - ini memungkinkan mereka menggunakan basis data yang sama apakah pengguna menelepon (saya belum pernah melakukan ini) atau menggunakan antarmuka web (saya hanya menggunakan ini) .
Yang sedang berkata, sekarang saatnya untuk mengubah kata sandi saya di kantor. Mereka memiliki batasan gila yang saya perkirakan akan memakan waktu sekitar setengah hari untuk menemukan kata sandi yang dapat diterima oleh sistem: setidaknya 2 huruf besar, setidaknya 2 huruf kecil, setidaknya 2 digit (yang tidak dapat +/- 1 dari kata sandi sebelumnya), setidaknya 2 karakter non-alfa / non-numerik, tidak dapat cocok dengan salah satu dari 24 kata sandi terakhir, tidak dapat berisi string apa pun (maju atau mundur) yang terdiri dari kata (panjang 3 atau lebih huruf) dalam bahasa Inggris ( juga beberapa bahasa lain saya tidak punya izin untuk tahu). Saya pikir panjang minimumnya adalah 10-11 karakter.
sumber
Salah satu alasan untuk membatasi karakter adalah karena cara memasukkan kata sandi.
Beberapa bank misalnya, dengan situs web Internet Banking mereka, meminta karakter tertentu dari kata sandi, dan Anda memilih karakter yang sesuai melalui kotak drop-down.
Mereka melakukan ini, mungkin, sehingga keyloggers tidak dapat mendeteksi penekanan tombol, dan dengan demikian mengetahui [karakter dari] kata sandi Anda. Sementara saya tahu bahwa ada banyak cara lain langkah-langkah seperti itu bisa dielakkan misalnya screencapture; masih efektif terhadap keyloggers.
Jika mereka harus mengizinkan semua karakter, maka panjang kotak dropdown akan menjadi rumit, dan juga memungkinkan untuk kebingungan antara karakter yang mirip.
sumber
Menolak karakter khusus seperti tab akan valid. Anda dapat masuk atau mengubah kata sandi dengan karakter tab dalam mode teks tetapi Anda tidak dapat menggunakannya di GUI atau lingkungan web. Sebuah backslash char juga akan menghadirkan beberapa masalah lintas platform.
btw kata sandi yang panjang bukan kata sandi - itu kata sandi. Pengguna rata-rata Anda tidak dapat mengingat 2Z8d!% G # x tetapi mereka dapat mengingat 'nama hewan peliharaan saya adalah anjing fido'. Teks yang lebih panjang lebih sulit dipecahkan melalui brute force dan jauh lebih kecil kemungkinannya untuk dituliskan pada catatan yang terpasang di layar.
sumber
Ketika orang mengetik mereka membuat kesalahan, yang disebut "kesalahan ketik". Biasanya orang melihat kesalahan mereka dan memperbaikinya. Untuk entri kata sandi biasanya Anda tidak dapat melihat apa yang Anda ketikkan dan karena itu Anda tidak dapat memperbaiki kesalahan ketik Anda. Anda membuat kesalahan tanpa menyadarinya, mengirimkan kata sandi Anda, dan itu kembali sebagai "kata sandi tidak valid". Lalu kamu coba lagi. Lalu kamu coba lagi.
Anda dapat menganggapnya sebagai "3 kesalahan kecil kecil dan kemudian Anda tidak dapat dibedakan dari serangan brute force". Bagaimana sistem bertahan melawan serangan brute force? Respons eksplisit " Terlalu banyak upaya, pergilah, Anda tidak akan dapat masuk meskipun Anda telah melakukannya dengan benar "? Meningkat secara eksponensial pada entri kata sandi yang mengarah ke batas waktu browser ketika penundaan terlalu lama, sehingga mustahil untuk mencoba masuk lagi? Pendekatannya bervariasi, tetapi selalu ada konsekuensi dalam sistem yang dirancang dengan baik.
Anda dapat menganggapnya sebagai "3 kesalahan ketik kecil kecil dan kemudian Anda mendapatkan semacam penolakan layanan".
Ketika panjang kata sandi meningkatkan risiko kesalahan ketik (dan karena itu risiko menolak akses orang yang berwenang) meningkat. Lebih dari 20 karakter akan sering salah ketik (kecuali jika pengguna cerdas / malas dan menyimpan kata sandi mereka di suatu tempat sehingga mereka dapat "menyalin dan menempel" tanpa khawatir tentang kesalahan ketik, seperti file teks biasa di desktop yang disebut " kata sandi ") .txt ").
sumber