Solaris ให้ฉันใช้รหัสผ่านที่แตกต่างกันโดยมีอักขระ 8 ตัวแรกเหมือนกัน


42

ฉันไม่รู้ว่านี่เป็นเรื่องปกติหรือไม่ แต่ก็เป็นเช่นนั้นสมมติว่าฉันมีผู้ใช้ Solaris ชื่อgloaizaและรหัสผ่านของมันคือpassword2getin

ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ด้วย PuTTY ฉันใส่ 192.168.224.100 และแจ้งให้ windows ถามผู้ใช้ดังนั้นฉันพิมพ์gloaizaจากนั้นจะถามรหัสผ่านและสมมติว่าฉันพิมพ์รหัสผ่าน2getiโดยไม่ได้ตั้งใจและทำงานได้! ฉันอยู่ในเซิร์ฟเวอร์!

เป็นเรื่องปกติหรือไม่ นอกจากนี้ยังทำงานถ้าฉันใส่สิ่งที่ต้องการpassword2getin2

ฉันไม่ใช่เจ้าของภาษาอังกฤษดังนั้นในกรณีที่มีบางสิ่งที่คุณไม่เข้าใจโปรดถามฉัน

ระบบปฏิบัติการ: Oracle Solaris 10 1/13


4
เกิดอะไรขึ้นภายใต้ตัวละครแปดตัว ไม่passworkได้รับคุณมีอะไรบ้าง?
thrig

@thrig ตกลงรหัสผ่านที่เกิดขึ้นจริงของฉันคือ 9 ตัวละครยาวดังนั้นขอบอกว่ารหัสผ่านpass2wordแล้วจะทำงานร่วมกับpass2wor, pass2word1, pass2worr1และอื่น ๆ ... ฉันคิดว่าจะทำงานร่วมกับทุกอย่างที่เมื่อคุณพิมพ์pass2wor ผมไม่คิดว่ามันเป็นใหญ่ ปัญหา แต่ก็ไม่ดีเช่นกัน
gloaiza

3
ตราบใดที่คุณได้รับอักขระ 8 ตัวแรกที่ถูกต้องมันก็จะให้คุณเข้ามา แต่น่าเสียดายที่การสร้างรหัสผ่านนั้นใช้การเข้ารหัสใน Solaris รุ่นเก่าโดยไม่สนใจอักขระ 9 และหลังจากนั้น
MelBurslan

14
ย้ำทุก devs ฝังที่นี่คิดว่า "เรื่องนี้ไม่เคยที่อาจเกิดขึ้นในวันที่ฉันระบบ:" busyboxเงียบจะถอยกลับไป DES ถ้าคุณไม่ได้มีตัวเลือกทั้งหมดของการเข้ารหัสลับขวาเปิดใช้งานในของตน.config และlibcของคุณ อาจจะใช้เวลาสักครู่ในวันนี้เพื่อตรวจสอบอีกครั้งของคุณpasswd/ shadowไฟล์? ;)

11
@drewbenn - ใครที่คิดว่าความปลอดภัยที่ลดระดับลงอย่างเงียบ ๆเป็นความคิดที่ดี? พระเยซู.
Davor

คำตอบ:


65

ระบบปฏิบัติการจัดเก็บแฮชของรหัสผ่านไว้ใน/etc/shadow(หรือในอดีต, /etc/passwdหรือที่ตั้งอื่นในตัวแปร Unix อื่น ๆ ) ในอดีตการแฮชรหัสผ่านที่แพร่หลายครั้งแรกเป็นแบบแผน DESซึ่งมีข้อ จำกัด ว่าจะต้องคำนึงถึงอักขระ 8 ตัวแรกของรหัสผ่านเท่านั้น นอกจากนี้อัลกอริทึมการแฮชรหัสผ่านจะต้องช้า รูปแบบ DES-based ค่อนข้างช้าเมื่อถูกคิดค้น แต่ไม่เพียงพอตามมาตรฐานของวันนี้

ตั้งแต่นั้นมาอัลกอริทึมที่ดีกว่าได้รับการคิดค้น แต่ Solaris 10 มีค่าเริ่มต้นเป็นแบบแผน DES ที่อิงตามประวัติศาสตร์ Solaris 11 ใช้ค่าเริ่มต้นเป็นอัลกอริธึมตาม SHA-256 แบบซ้ำซึ่งขึ้นอยู่กับมาตรฐานที่ทันสมัย

ยกเว้นว่าคุณต้องการความเข้ากันได้ทางประวัติศาสตร์กับระบบโบราณให้เปลี่ยนไปใช้รูปแบบ SHA-256 ที่ซ้ำแล้วซ้ำอีก แก้ไขไฟล์/etc/security/policy.confและเปลี่ยนCRYPT_DEFAULTการตั้งค่า 5 crypt_sha256ซึ่งย่อมาจาก นอกจากนี้คุณยังอาจต้องการตั้งและCRYPT_ALGORITHMS_ALLOWCRYPT_ALGORITHMS_DEPRECATE

เมื่อคุณเปลี่ยนการกำหนดค่าแล้วให้รันpasswdเพื่อเปลี่ยนรหัสผ่านของคุณ การดำเนินการนี้จะอัปเดตรหัสผ่านแฮชด้วยชุดรูปแบบที่กำหนดไว้ในปัจจุบัน


1
ขอบคุณสำหรับคำตอบ เมื่อคุณพูดว่า " ถ้าคุณไม่ต้องการความเข้ากันได้ทางประวัติศาสตร์กับระบบโบราณ " คุณหมายถึงมันจริง ๆ สิ่งที่ฉันหมายถึงคือ ... เป็นไปได้ไหมที่จะต้องใช้รูปแบบ DES ตามและไม่สามารถเปลี่ยนเป็น SHA-256 สำหรับบางคน เหตุผล?
gloaiza

11
@gloaiza คุณอาจจะแชร์ไฟล์แฮชรหัสผ่านของคุณกับ NIS หรือวิธีอื่นด้วยเครื่องที่ใช้ระบบปฏิบัติการโบราณอย่างแท้จริง (เช่น Solaris 2.x) มิฉะนั้นจะไม่
Gilles 'หยุดความชั่วร้าย'


21

คาดว่าจะเป็นอย่างน้อยใน Solaris 10 ที่เป็นค่าเริ่มต้นและการกำหนดค่าที่เก่ากว่า

ระบบของคุณใช้crypt_unixอัลกอริทึมUnix ดั้งเดิมซึ่ง จำกัด จำนวนอักขระที่ใช้ถึงแปดตัว

เอกสารนี้มีอยู่ในpasswdหน้าคู่มือ :

ต้องสร้างรหัสผ่านเพื่อให้เป็นไปตามข้อกำหนดต่อไปนี้:

  รหัสผ่านแต่ละตัวต้องมีอักขระ PASSLENGTH โดยที่ PASSLENGTH นั้นถูกกำหนดไว้
  / etc / default / passwd และตั้งไว้ที่ 6 ตั้งค่า PASSLENGTH มากกว่าแปด
  อักขระต้องมีการกำหนดค่า policy.conf (4) ด้วยอัลกอริทึมที่รองรับมากกว่าแปดตัวอักษร

  

เนื่องจากอัลกอริทึมนี้ล้าสมัยเป็นหลัก คุณควรเปลี่ยนไปใช้สิ่งที่ดีกว่า (ค่าที่มีอยู่ในรายการในcrypt.confหน้าคู่มือ) โดยการตั้งค่าCRYPT_ALGORITHMS_DEPRECATEและCRYPT_DEFAULTป้อน/etc/security/policy.confไฟล์

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


1
มันไม่เป็นความจริงเลยที่ "ยิ่งสูงยิ่งดี" อัลกอริทึม2a(bcrypt) อาจจะดีที่สุด
หยุดทำร้ายโมนิก้า

@OrangeDog จุดนำคำแนะนำออก
jlliagre

7

ดูกระทู้นี้ในฟอรั่ม Oracle :

ลักษณะการทำงานที่คุณอธิบายนั้นคาดว่าเมื่อใช้โครงร่างการเข้ารหัสรหัสผ่าน "crypt_unix" เริ่มต้น แบบแผนนี้จะเข้ารหัสอักขระแปดตัวแรกของรหัสผ่านเท่านั้นดังนั้นอักขระแปดตัวแรกเท่านั้นที่จำเป็นต้องตรงกันเมื่อพิมพ์รหัสผ่านอีกครั้ง มันไม่ใช่ "บั๊ก" แต่เป็นข้อ จำกัด ของอัลกอริทึม - ส่วนใหญ่จะถูกเก็บไว้รอบ ๆ เพื่อความเข้ากันได้แบบย้อนหลังและน่าเสียดายที่ถูกตั้งค่าเป็นค่าเริ่มต้นบนระบบ Solaris เมื่อติดตั้ง

หากต้องการแก้ไขปัญหานี้ให้ตั้งค่าระบบปฏิบัติการของคุณให้ใช้อัลกอริทึม MD5 หรือ Blowfish แทน crypt_unix

สิ่งนี้สามารถเปลี่ยนแปลงได้ในไฟล์ /etc/security/policy.conf คุณสามารถตั้งค่าอัลกอริทึม crypt ให้อนุญาตและยังมีการตั้งค่าให้เลิกใช้ (ห้าม) การใช้อัลกอริทึม "crypt_unix" และเปลี่ยนค่าเริ่มต้นให้ปลอดภัยยิ่งขึ้น

ดู "คู่มือการบริหารระบบ Solaris 10: Security Services" ของคุณสำหรับข้อมูลเพิ่มเติม

ดูเพิ่มเติมการเปลี่ยนอัลกอริทึมรหัสผ่าน (แผนผังงาน)และโดยเฉพาะอย่างยิ่งวิธีระบุอัลกอริทึมสำหรับการเข้ารหัสรหัสผ่าน :

ระบุตัวระบุสำหรับอัลกอริทึมการเข้ารหัสที่คุณเลือก

...

พิมพ์ตัวระบุเป็นค่าสำหรับตัวแปร CRYPT_DEFAULT ในไฟล์ /etc/security/policy.conf

...

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าตัวเลือกอัลกอริทึมให้ดูที่policy.conf(4)หน้า man


2

เพียงแค่ FYI สิ่งนี้จะเกิดขึ้นกับระบบ IBM AIX จนถึงเวอร์ชัน 7.1

มันตลกเพราะระบบนี้ผมทำงานกับมี "ไม่สามารถนำมาใช้ใด ๆ ของช่วง 10 รหัสผ่าน" นโยบายที่ไม่คำนึงถึงความยาวรหัสผ่านทั้งหมด แต่แล้วการตรวจสอบเพียง 8 ตัวอักษรแรกเมื่อเข้าสู่ระบบใน. เพื่อให้คุณสามารถตั้งค่ารหัสผ่านของคุณ เช่นeasypass_%$xZ!01, easypass_%&ssY!02, easypass_%$33zoi@@... สำหรับทุกการเปลี่ยนรหัสผ่านที่บังคับใช้อย่างมีประสิทธิภาพการรักษาeasypassเป็นรหัสผ่านของคุณสำหรับปี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.