Solaris membiarkan saya masuk dengan kata sandi yang berbeda dengan 8 karakter pertama yang sama

42

Saya tidak tahu apakah ini normal, tetapi masalahnya, katakanlah saya memiliki pengguna Solaris bernama gloaiza dan kata sandinya adalah password2getin

Saya masuk ke server dengan Putty, saya hanya meletakkan 192.168.224.100 dan itu meminta jendela meminta pengguna, jadi saya mengetik gloaiza , lalu meminta kata sandi dan katakanlah saya mengetik kata sandi2geti karena kesalahan, dan berhasil! Saya di server!

Apakah itu normal? Ini juga berfungsi jika saya meletakkan sesuatu seperti password2getin2 .

Saya bukan penutur asli bahasa Inggris, jadi, kalau-kalau ada sesuatu yang tidak Anda mengerti, tanyakan kepada saya

OS: Oracle Solaris 10 1/13

gloaiza
sumber
4
Apa yang terjadi di bawah delapan karakter? Apakah passworkAnda masuk?
thrig
@thrig Ok, password saya sebenarnya adalah 9 karakter panjang, jadi mari kita katakan password pass2word, maka bekerja dengan pass2wor, pass2word1, pass2worr1, dan seterusnya ... saya pikir itu bekerja dengan segala sesuatu setelah Anda mengetik pass2wor Saya tidak berpikir itu adalah besar suatu masalah, tetapi juga tidak baik.
gloaiza
3
Selama Anda mendapatkan 8 karakter pertama dengan benar, itu akan membiarkan Anda masuk. Sayangnya, menghasilkan kata sandi telah menggunakan enkripsi pada rilis solaris yang lebih lama, abaikan karakter 9 dan sesudahnya.
MelBurslan
14
Pengingat lembut untuk semua pengembang tertanam di sini berpikir, "ini tidak akan pernah terjadi pada sistem saya :" busyboxakan diam-diam kembali ke DES jika Anda tidak memiliki semua opsi crypto yang tepat diaktifkan di dalamnya .config dan Anda libc. Mungkin luangkan waktu hari ini untuk mengecek passwd/ shadowfile Anda? ;)
11
@drewbenn - siapa sih yang berpikir bahwa diam-diam keamanan merendahkan adalah ide yang baik? Yesus Kristus.
Davor

Jawaban:

65

Sistem operasi menyimpan hash kata sandi di /etc/shadow(atau, secara historis /etc/passwd,; atau lokasi berbeda pada beberapa varian Unix lainnya). Secara historis, hash kata sandi pertama yang tersebar luas adalah skema berbasis DES yang memiliki keterbatasan yang hanya memperhitungkan 8 karakter kata sandi pertama. Selain itu, algoritma hashing kata sandi harus lambat; skema berbasis DES agak lambat ketika ditemukan tetapi tidak cukup oleh standar saat ini.

Sejak itu, algoritma yang lebih baik telah dirancang. Tapi Solaris 10 default ke skema berbasis DES historis. Solaris 11 default untuk suatu algoritma yang didasarkan pada iterasi SHA-256 yang hingga standar modern.

Kecuali Anda membutuhkan kompatibilitas historis dengan sistem kuno, beralihlah ke skema SHA-256 yang diulang. Edit file /etc/security/policy.confdan ubah CRYPT_DEFAULTpengaturan menjadi 5 yang merupakan kepanjangan dari crypt_sha256. Anda mungkin juga ingin mengatur CRYPT_ALGORITHMS_ALLOWdan CRYPT_ALGORITHMS_DEPRECATE.

Setelah Anda mengubah konfigurasi, jalankan passwduntuk mengubah kata sandi Anda. Ini akan memperbarui hash kata sandi dengan skema yang saat ini dikonfigurasi.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Terima kasih atas jawabannya. Ketika Anda mengatakan " Kecuali jika Anda memerlukan kompatibilitas historis dengan sistem kuno " Anda benar-benar bersungguh-sungguh, apa yang saya maksud adalah ... Apakah mungkin untuk benar-benar membutuhkan skema berbasis DES, dan tidak dapat mengubah ke SHA-256, untuk beberapa alasan?
gloaiza
11
@ gloaiza Anda mungkin jika file hash kata sandi Anda dibagikan dengan NIS atau metode lain dengan mesin yang menjalankan sistem operasi yang benar-benar kuno (seperti Solaris 2.x). Kalau tidak, tidak.
Gilles 'SANGAT berhenti menjadi jahat'
21

Ini diharapkan, setidaknya pada Solaris 10 dan konfigurasi yang lebih lama.

Sistem Anda menggunakan crypt_unixalgoritma Unix lama yang memang membatasi jumlah karakter yang digunakan hingga delapan.

Ini didokumentasikan di passwdhalaman manual :

Kata sandi harus dibuat untuk memenuhi persyaratan berikut:

  Setiap kata sandi harus memiliki karakter PASSLENGTH, tempat PASSLENGTH didefinisikan
  / etc / default / passwd dan diatur ke 6. Mengatur PASSLENGTH menjadi lebih dari delapan
  karakter memerlukan konfigurasi policy.conf (4) dengan algoritma yang mendukung
  lebih dari delapan karakter .

Karena algoritma ini pada dasarnya sudah usang. Anda harus beralih ke sesuatu yang lebih baik (nilai yang tersedia tercantum di crypt.confhalaman manual) dengan mengatur CRYPT_ALGORITHMS_DEPRECATEdan CRYPT_DEFAULTmemasukkan /etc/security/policy.conffile.

Lihat http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html

Jlliagre
sumber
1
Tidak benar bahwa "semakin tinggi semakin baik". Algoritma 2a(bcrypt) mungkin yang terbaik .
Stop Harming Monica
@OrangeDog Point diambil, saran dihapus
jlliagre
7

Lihat utas ini di forum Oracle :

Perilaku yang Anda uraikan diharapkan saat menggunakan skema enkripsi kata sandi "crypt_unix" default. Skema ini hanya akan mengenkripsi delapan karakter pertama kata sandi, dan hanya delapan karakter pertama yang harus cocok ketika kata sandi diketikkan lagi. Ini bukan "bug", tetapi keterbatasan algoritma yang diketahui - sebagian besar disimpan untuk kompatibilitas ke belakang, dan sayangnya ditetapkan sebagai default pada sistem Solaris saat diinstal.

Untuk mengatasi ini, atur OS Anda untuk menggunakan algoritma MD5 atau Blowfish alih-alih crypt_unix.

Ini dapat diubah dalam file /etc/security/policy.conf. Anda dapat mengatur algoritma crypt untuk memungkinkan, dan ada juga pengaturan untuk menghentikan (melarang) penggunaan algoritma "crypt_unix" dan mengubah default ke yang lebih aman.

Lihat "Panduan Administrasi Sistem Solaris 10 Anda: Layanan Keamanan" untuk informasi lebih lanjut.

Lihat juga Mengubah Algoritma Kata Sandi (Peta Tugas) dan terutama Cara Menentukan Algoritma untuk Enkripsi Kata Sandi :

Tentukan pengidentifikasi untuk algoritma enkripsi yang Anda pilih.

...

Ketik identifier sebagai nilai untuk variabel CRYPT_DEFAULT dalam file /etc/security/policy.conf.

...

Untuk informasi lebih lanjut tentang mengkonfigurasi pilihan algoritma, lihat policy.conf(4)halaman manual.

Andrew Henle
sumber
2

Hanya FYI, ini juga terjadi pada sistem IBM AIX hingga versi 7.1.

Ini lucu, karena sistem ini saya bekerja dengan memiliki "tidak dapat menggunakan kembali salah satu dari 10 password terakhir" kebijakan yang tidak mengambil memperhitungkan seluruh sandi panjang, tapi kemudian hanya memeriksa 8 karakter pertama ketika logging di. Jadi Anda bisa mengatur password Anda seperti easypass_%$xZ!01, easypass_%&ssY!02, easypass_%$33zoi@@, ... untuk setiap perubahan password wajib, efektif menjaga easypasssebagai password Anda selama bertahun-tahun.

walen
sumber