ทำไมความยาวสูงสุดของรหัสผ่านรูทของ OpenWrt ถึง 8 ตัว


29

เมื่อฉันพยายามตั้งrootรหัสผ่าน:

root@OpenWrt:~# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.

ดูเหมือนว่าความยาวสูงสุดคือ 8 ถ้าฉันพยายามตั้งรหัสผ่านที่ยาวกว่า 8 ตัวอักษร 8 ตัวแรกเท่านั้นที่ถูกต้อง ฉันจะตั้งรหัสผ่านที่ยาวขึ้นได้rootอย่างไร

รุ่น OpenWrt ของฉัน:

Linux OpenWrt 4.14.108 #0 SMP Wed Mar 27 21:59:03 2019 x86_64 GNU/Linux

คำตอบ:


35

นี่เป็นเพราะการเข้ารหัสลับตาม DES (AKA 'descrypt') ตัดรหัสผ่านที่ 8 ไบต์และตรวจสอบ 8 ครั้งแรกเท่านั้นเพื่อจุดประสงค์ในการตรวจสอบรหัสผ่าน

นั่นเป็นคำตอบสำหรับคำถามโดยตรงของคุณ แต่นี่เป็นคำแนะนำทั่วไปที่เกี่ยวข้องกับบริบทของคุณ:

  • โชคดีที่จากการอ่านของฉันMD5ในความ/etc/login.defsเป็นจริง md5crypt ($ 1 $) ซึ่งในขณะที่เล็กน้อยล้าสมัยและประกาศเลิกใช้โดยผู้เขียนของมันยังดีกว่าแฮกเกอร์ DES ตาม (และแน่นอนดีกว่าแฮชดิบที่ไม่จืดชืดเช่นธรรมดา MD5! แฮชที่ไม่ผ่านการประมวลผลส่วนใหญ่สามารถถอดรหัสกับ GPU สินค้าโภคภัณฑ์ในอัตราพันล้านต่อวินาที)

  • ดูเหมือนว่าSHA256(จริง ๆ แล้ว sha256crypt) และSHA512(จริง ๆ แล้ว sha512crypt) ก็มีเช่นกัน ฉันจะเลือกหนึ่งในนั้นแทน

  • หากคุณตั้งค่ารหัสผ่านของคุณเป็นpasswordหรือบางสิ่งภายใต้แต่ละชุดรูปแบบคุณสามารถตรวจสอบด้วยสายตาว่าข้อสรุปของฉันว่าเป็น -crypt หรือไม่ตัวแปรที่ถูกต้อง (ตัวอย่างที่นี่นำมาจากhashcat ตัวอย่าง hashcatทั้งหมด 'hashcat' การอ่าน):

ไม่แนะนำ - ประเภทแฮชที่ไม่ผ่านการปรับแต่งหรือแบบดั้งเดิมมากเกินไป "เร็ว" (อัตราการถอดรหัส) สำหรับการจัดเก็บรหัสผ่าน:

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

ตกลง - ดีกว่าไม่จืดชืดไม่มีการตัดทอน แต่ไม่ทนต่อแรงเดรัจฉานบนฮาร์ดแวร์สมัยใหม่อีกต่อไป:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

ดีกว่า - แฮชที่ค่อนข้างทันสมัยพร้อมเกลือขนาดใหญ่และปัจจัยการทำงาน:

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

ของเหล่านี้เท่านั้นที่จะตัดทอนเข้ารหัสที่ 8 สองคนสุดท้ายเป็นทางออกที่ดีที่สุดของคุณ

(หมายเหตุด้านข้าง: ตัวเลขเกลืออย่างเดียวในตัวอย่าง md5crypt และ sha512crypt ด้านบนเป็นเพียงผลข้างเคียงของวิธีที่ hashcat สร้างตัวอย่างแฮชโดยปกติแล้วเกลือที่ดีต่อสุขภาพมักจะดึงมาจาก keyspace ขนาดใหญ่กว่ามาก)

โปรดทราบว่าฉันจะแสดงรายการประเภทแฮชที่ /etc/login.defs สนับสนุนบนแพลตฟอร์มนี้เท่านั้น สำหรับการใช้งานทั่วไปแม้แต่ sha256crypt และ sha512crypt ก็ถูกแทนที่โดย bcrypt ก่อนแล้วจึงต่อด้วยแฮชที่ต้านทานการโจมตีแบบขนานอย่างแท้จริงเช่น scrypt และตระกูล Argon2 (อย่างไรก็ตามโปรดทราบว่าสำหรับการลงชื่อเข้าใช้แบบโต้ตอบที่ควรทำให้เสร็จภายในไม่ถึงหนึ่งวินาที bcrypt จะต้านทานการโจมตีได้ดีกว่าในภายหลัง)


20

ฉันแก้ไขสิ่งนี้ใน/etc/login.defs:

PASS_MAX_LEN            8

ปัญหาได้รับการแก้ไข


สิ่งสำคัญเพิ่มเติม:

หลังจากที่ฉันเปลี่ยนพารามิเตอร์ข้างต้นแม้ว่าฉันจะสามารถตั้งรหัสผ่านที่มีขนาดใหญ่กว่า 8 หลักได้ แต่ก็ยังไม่ถูกต้องเพราะรหัสผ่านจริงเป็นเพียงแปดหลักแรก ฉันไม่รู้ว่านี่เป็นปัญหาของฉันหรือไม่

ทางออกสุดท้ายของฉันคือการตั้งค่า

# ENCRYPT_METHOD DES

ไปยัง

ENCRYPT_METHOD MD5

ใน/etc/login.defs.

ตอนนี้ฉันสามารถตั้งค่ารหัสผ่านรูทที่มีขนาดใหญ่กว่าแปด


16
แก้ไขได้ดี แต่เป็นตัวเลือกดั้งเดิมที่ไม่ดีสำหรับการผิดพลาดของระบบแม้ว่า ...
HBruijn

8
ฉันคิดว่าคุณเปลี่ยนรหัสผ่านของคุณเป็นอะไรที่ยาวเกิน 8 ตัวอักษรในขณะนี้ คุณลองได้ไหมว่าการล็อกอินด้วยอักขระ 8 ตัวแรกของรหัสผ่านที่ยาวกว่านั้นใช้ได้หรือไม่ เพราะมันอาจจะ ...
marcelm

9
คุณอาจพิจารณาเปลี่ยนเป็น SHA256 หรือ SHA512 หรือได้รับการสนับสนุน - MD5 นั้นถือว่าใช้งานไม่ได้ในวันนี้
PhilippNagel

8
จริงๆแล้ว sha256 และ sha512 ด้วยตัวเองก็ไม่ได้ดีไปกว่า md5 มากนัก คุณต้องการเกลือและใช้อัลกอริธึมในเวอร์ชัน crypt เหล่านี้
SnakeDoc

4
@PhilippNagel ด้วยรหัสผ่านเอนโทรปีสูงมันไม่ได้เลวร้ายเกินไป ในขณะที่ MD5 ควรได้รับการพิจารณาว่าผิดปกติจุดอ่อนที่ทราบในปัจจุบันจะไม่ส่งผลกระทบต่อการแฮ็กด้วยรหัสผ่าน สิ่งที่เป็นปัญหาสำหรับ hashing รหัสผ่านคือความเร็ว; MD5 ที่ไม่ได้ทำซ้ำนั้นเร็วมากจนการบังคับใช้เดรัจฉานนั้นเป็นไปได้มากสำหรับรหัสผ่านจำนวนมาก
marcelm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.