4
bcrypt มีเกลือในตัวได้อย่างไร
บทความของ Coda Hale "วิธีเก็บรหัสผ่านอย่างปลอดภัย"อ้างว่า: bcrypt มีเกลือในตัวเพื่อป้องกันการโจมตีของตารางสายรุ้ง เขาอ้างอิงบทความนี้ซึ่งกล่าวว่าในการดำเนินการของ OpenBSD bcrypt: OpenBSD สร้างเกลือ bcrypt 128- บิตจากกระแสหลักของ arcfour (arc4random (3)) ซึ่งประกอบด้วยข้อมูลแบบสุ่มที่เคอร์เนลรวบรวมจากการจับเวลาอุปกรณ์ ฉันไม่เข้าใจวิธีการทำงานนี้ ในความคิดของฉันของเกลือ: มันจะต้องแตกต่างกันสำหรับแต่ละรหัสผ่านที่เก็บไว้ดังนั้นตารางสายรุ้งแยกต่างหากจะต้องถูกสร้างขึ้นสำหรับแต่ละรหัส จำเป็นต้องเก็บไว้ที่ไหนสักแห่งเพื่อให้สามารถทำซ้ำได้: เมื่อผู้ใช้พยายามเข้าสู่ระบบเราใช้ความพยายามรหัสผ่านของพวกเขาทำซ้ำขั้นตอนเกลือและแฮชเดียวกันกับที่เราทำเมื่อเราเก็บรหัสผ่านเดิมและเปรียบเทียบ เมื่อฉันใช้ Devise (ผู้จัดการการเข้าสู่ระบบ Rails) กับ bcrypt ไม่มีคอลัมน์เกลือในฐานข้อมูลดังนั้นฉันจึงสับสน หากเกลือถูกสุ่มและไม่ได้เก็บไว้ที่ใดเราจะทำขั้นตอนการแฮชซ้ำได้อย่างน่าเชื่อถือได้อย่างไร ในระยะสั้นbcrypt สามารถมีเกลือในตัวได้อย่างไร