GNU/Linux >> Belajar Linux >  >> Linux

Mengapa panjang maksimum kata sandi root OpenWrt adalah 8 karakter?

Solusi 1:

Ini karena crypt berbasis DES (AKA 'descrypt') memotong kata sandi sebesar 8 byte, dan hanya memeriksa 8 byte pertama untuk tujuan verifikasi kata sandi.

Itulah jawaban atas pertanyaan langsung Anda, tetapi inilah beberapa saran umum yang tersirat dari konteks Anda:

  • Untungnya, dari bacaan saya, MD5 di /etc/login.defs sebenarnya md5crypt ($1$), yang, meskipun sedikit ketinggalan jaman dan dinyatakan tidak digunakan lagi oleh pembuatnya, masih jauh lebih unggul daripada crypt berbasis DES (dan pasti jauh lebih baik daripada hash mentah tanpa garam seperti MD5 biasa! Sebagian besar hash tawar dapat dipecahkan pada GPU komoditas dengan kecepatan miliar per detik)

  • Sepertinya SHA256 (sebenarnya sha256crypt) dan SHA512 (sebenarnya sha512crypt) juga ada. Saya akan memilih salah satunya.

  • Jika Anda menyetel sandi menjadi password atau sesuatu di bawah setiap skema, Anda dapat memverifikasi secara visual apakah kesimpulan saya bahwa mereka adalah varian -crypt benar (contoh di sini diambil dari hash contoh hashcat, semua 'hashcat', beberapa dibungkus agar mudah dibaca):

Tidak disarankan - jenis hash tawar atau lama, terlalu "cepat" (tingkat cracking) untuk penyimpanan sandi:

MD5         - 8743b52063cd84097a65d1633f5c74f5
SHA256      - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA512      - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e2 \
              9134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
descrypt    - 48c/R8JAv757A

Oke - jauh lebih baik daripada tanpa garam, tanpa pemotongan, tetapi tidak lagi cukup tahan terhadap kekerasan pada perangkat keras modern:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

Lebih baik - hash yang relatif modern dengan garam besar dan faktor kerja:

sha256crypt - $5$rounds=5000$GX7BopJZJxPc/KEK$le16UF8I2Anb.rOrn22AUPWvzUETDGefUmAV8AZkGcD
sha512crypt - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/

Dari jumlah tersebut, hanya descrypt terpotong di 8. Dua yang terakhir adalah taruhan terbaik Anda.

(Catatan sampingan:garam khusus digit dalam contoh md5crypt dan sha512crypt di atas hanyalah efek samping dari cara hashcat membuat contoh hash; garam asli dan sehat biasanya diambil dari ruang kunci yang jauh lebih besar).

Perhatikan juga bahwa saya hanya mencantumkan tipe hash yang didukung oleh /etc/login.defs pada platform ini. Untuk penggunaan umum, bahkan sha256crypt dan sha512crypt telah digantikan - pertama oleh bcrypt, dan kemudian oleh hash yang benar-benar tahan serangan paralel seperti scrypt dan keluarga Argon2. (Perhatikan, bagaimanapun, bahwa untuk login interaktif yang harus diselesaikan dalam waktu kurang dari satu detik, bcrypt sebenarnya lebih tahan terhadap serangan daripada yang terakhir)

Solusi 2:

Saya memodifikasi ini di /etc/login.defs :

PASS_MAX_LEN            8

masalah diperbaiki.

Tambahan penting:

Setelah saya mengubah parameter di atas, meskipun saya dapat mengatur kata sandi lebih besar dari 8 digit, itu tetap tidak valid karena kata sandi sebenarnya hanya delapan digit pertama. Saya tidak tahu apakah ini masalah saya.

Solusi terakhir saya adalah menyetel

# ENCRYPT_METHOD DES

ke

ENCRYPT_METHOD MD5

di /etc/login.defs .

Sekarang, saya akhirnya dapat menetapkan kata sandi root yang benar-benar lebih besar dari delapan.


Linux
  1. Linux – Bagaimana Cara Mengubah Kata Sandi Root yang Terlupakan?

  2. Linux – Mengapa Direktori Root Dilambangkan Dengan A / Sign?

  3. Berapa panjang nama pengguna maksimum pada sistem GNU/Linux saat ini

  1. Mengapa "Sudo Su" Dalam Skrip Shell Tidak Menjalankan Skrip Lainnya Sebagai Root?

  2. Mengapa Pengguna Root Membutuhkan Izin Sudo?

  3. Cara mengubah kata sandi root mysql

  1. berapa panjang maksimal kata sandi pada sistem unix/linux?

  2. Bagaimana cara membuat sudo meminta kata sandi root?

  3. Mengapa melindungi kernel Linux dari pengguna root?