เปิดใช้งานการสนับสนุนแฮชที่ใช้ปลาปักเป้าสำหรับฝังศพใต้ถุนโบสถ์


13

ฉันจะเปิดใช้งาน crypt_blowfish รองรับรหัสผ่านเงาและ PHP บนเซิร์ฟเวอร์ Linux (Debian) ได้อย่างไร

ฉันหมายถึงbcryptในรูปแบบ OpenBSDซึ่งเป็นที่รู้จักในภาษา PHP ว่า CRYPT_BLOWFISH

เท่าที่ฉันรู้ว่าไม่มีแพ็คเกจเดเบียนสำหรับตัวเลือกอื่น ๆ ฉันต้องเปิดใช้งานอัลกอริทึมการแฮชนี้สำหรับ PHP หรือไม่

หมายเหตุ: อินเทอร์เฟซ
ของcrypt () fuctionของ PHP ค่อนข้างตรงกับฟังก์ชันC-library crypt (3) ที่จัดเตรียมโดยระบบปฏิบัติการ

การอัปเดต
การตั้งชื่อแพ็คเกจไม่ชัดเจนเท่าที่ควร (ควร) แพคเกจ PEAR Crypt_Blowfishเป็นดรอปแทนสำหรับการขยาย Mcrypt ของ PHP เพื่อให้สามารถได้อย่างรวดเร็วสองทางเข้ารหัสปักเป้า

นอกจากนี้แพคเกจ Debian BCrypt ยังใช้งานอัลกอริทึมปักเป้าสองทาง 'ปกติ'

สิ่งที่ฉันกำลังมองหาคือการใช้ Bcrypt-hash สำหรับรหัสผ่านการแฮช


"แพร์ติดตั้ง Crypt_blowfish" ไม่ทำงานหรือ
Cori

แพคเกจแพร์ crypt_blowfish เป็นอัลกอริธึมการเข้ารหัสแบบสองทาง 'ปกติ' ปักเป้า ฉันกำลังมองหาอัลกอริทึมคร่ำเครียด hashing ที่ใช้ปลาปักเป้า
Jacco

อาตอนนี้ฉันเห็นปัญหาแล้ว
Cori

ไม่ทราบว่าคุณอาจมีค่าหัวที่สูงขึ้นสำหรับคำถามจากนั้นตัวแทนปัจจุบันของคุณ น่าสนใจ
Copas

ตัวแทนถูกหักทันทีดังนั้นเขาจึงมี ~ 200 ตัวแทนและตอนนี้มี ~ 50
ceejayoz

คำตอบ:


9

libpam-unix2แพคเกจที่คุณจำเป็นต้องติดตั้งในเดเบียนคือ

จากนั้นคุณจะต้องแก้ไขไฟล์ต่อไปนี้ภายใต้/etc/pam.d/และเปลี่ยนpam_unix.soการใช้งานทั้งหมดเป็นpam_unix2.so:

  • ที่พบบ่อยบัญชี
  • ร่วมกันรับรองความถูกต้อง
  • ทั่วไปรหัสผ่าน
  • ร่วมกันเซสชั่น

สุดท้ายแก้ไขcommon-passwordไฟล์และแทนที่พารามิเตอร์ "md5" ด้วย "blowfish"

รหัสผ่านที่อัปเดตหลังจากทำการแก้ไขเหล่านี้จะถูกแฮชโดยใช้ปักเป้า รหัสผ่านเงาที่มีอยู่จะไม่ถูกแก้ไข แหล่ง

หากต้องการใช้ปักเป้าใน PHP crypt()คุณให้เกลือปักเป้าไป แบบนี้:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

คุณควรตรวจสอบก่อนว่า CRYPT_BLOWFISH == 1 และคุณจะต้องใช้เกลือที่มีความยาวเพียงพอซึ่งเท่ากับ (หรือมากกว่า) 22 ตัวอักษร แหล่ง


อืมหลังจากทำการเปลี่ยนแปลงเหล่านั้นแล้ว CRYPT_BLOWFISH ยังคงไม่เท่ากับ 1 ด้วยเหตุผลบางอย่าง
Kzqai

1
A caveat: หากเวอร์ชันของ pam_unix2 ของคุณไม่รองรับอัลกอริทึมการแปลงรหัสผ่านที่ใช้ในปัจจุบันสำหรับรหัสผ่านของผู้ใช้ผู้ใช้รายนั้นอาจไม่สามารถเข้าสู่ระบบได้ฉันคิดว่านั่นเป็นสิ่งที่ฉันพบในกล่อง Debian ของฉัน บางบัญชีใช้ SHA512 และไม่สามารถเข้าสู่ระบบได้ แต่บัญชีที่ใช้ MD5 สามารถทำได้ คุณสามารถตั้งรหัสผ่านเหล่านั้นได้จากรูทเพราะpasswdจะไม่ถามรหัสผ่านเก่าเมื่อรันจากรูท สำคัญ: เปิดรูทเซสชันของคุณไว้จนกว่าคุณจะแน่ใจว่าคุณสามารถเข้าสู่ระบบได้อีกครั้ง!
Tom Zych
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.