คำถามติดแท็ก password-hash

16
รหัสผ่าน“ การแฮ็ชสองเท่า” นั้นมีความปลอดภัยน้อยกว่าแค่เพียงครั้งเดียวหรือไม่
การแฮชรหัสผ่านสองครั้งก่อนที่จะจัดเก็บข้อมูลมีความปลอดภัยมากกว่าหรือน้อยกว่าเพียงแค่ทำการแฮชรหัสครั้งเดียวหรือไม่? สิ่งที่ฉันกำลังพูดถึงคือการทำสิ่งนี้: $hashed_password = hash(hash($plaintext_password)); แทนที่จะเป็นแค่นี้: $hashed_password = hash($plaintext_password); หากมีความปลอดภัยน้อยกว่าคุณสามารถให้คำอธิบายที่ดี (หรือลิงค์ไปยังหนึ่ง) ได้หรือไม่? ฟังก์ชั่นแฮชใช้เพื่อสร้างความแตกต่างหรือไม่? มันสร้างความแตกต่างหรือไม่ถ้าคุณผสม md5 และ sha1 (ตัวอย่าง) แทนที่จะทำซ้ำฟังก์ชันแฮชเดียวกัน หมายเหตุ 1: เมื่อฉันพูดว่า "การแฮ็กสองครั้ง" ฉันกำลังพูดถึงการแฮชรหัสผ่านสองครั้งเพื่อพยายามทำให้มันถูกบดบังมากขึ้น ฉันไม่ได้พูดเกี่ยวกับเทคนิคในการแก้ไขปัญหาการชนกัน หมายเหตุ 2: ฉันรู้ว่าฉันต้องเพิ่มเกลือแบบสุ่มเพื่อให้ปลอดภัยจริงๆ คำถามคือว่า hashing สองครั้งด้วยอัลกอริทึมเดียวกันช่วยหรือเจ็บกัญชา

6
ฉันจะเก็บรหัสผ่านของผู้ใช้อย่างปลอดภัยได้อย่างไร
สิ่งนี้ปลอดภัยกว่าMD5ธรรมดาแค่ไหน ฉันเพิ่งเริ่มมองหาการรักษาความปลอดภัยรหัสผ่าน ฉันค่อนข้างใหม่กับ PHP $salt = 'csdnfgksdgojnmfnb'; $password = md5($salt.$_POST['password']); $result = mysql_query("SELECT id FROM users WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '$password'"); if (mysql_num_rows($result) < 1) { /* Access denied */ echo "The username or password you entered is incorrect."; } else { $_SESSION['id'] = mysql_result($result, 0, 'id'); …

4
วิธีปฏิบัติที่ดีที่สุด: การเกลือ & การสร้างรหัสผ่านซ้ำซ้อน?
ฉันได้พบกับการสนทนาที่ฉันได้เรียนรู้ว่าสิ่งที่ฉันทำไม่ได้ในความเป็นจริงการใส่เกลือรหัสผ่าน แต่ทำให้พวกเขาวุ่นวายและฉันก็เริ่มทำทั้งสองอย่างด้วยฟังก์ชั่นเช่น: hash_function($salt.hash_function($pepper.$password)) [multiple iterations] ไม่สนใจอัลกอริทึมแฮชที่เลือก (ฉันต้องการให้นี่เป็นการอภิปรายของเกลือ & พริกไทยและไม่ใช่อัลกอริทึมเฉพาะ แต่ฉันใช้ secure one), นี่เป็นตัวเลือกที่ปลอดภัยหรือฉันควรทำสิ่งที่แตกต่างกันหรือไม่? สำหรับผู้ที่ไม่คุ้นเคยกับข้อกำหนด: เกลือเป็นค่าที่สร้างแบบสุ่มมักจะเก็บไว้กับสตริงในฐานข้อมูลได้รับการออกแบบที่จะทำให้มันเป็นไปไม่ได้ที่จะใช้ตารางแฮชจะ crack รหัสผ่าน เนื่องจากรหัสผ่านแต่ละอันมีเกลือเป็นของตัวเองพวกเขาทุกคนจะต้องถูกบังคับให้ดุร้ายเป็นรายบุคคลเพื่อที่จะถอดรหัสพวกเขา อย่างไรก็ตามเนื่องจากเกลือถูกเก็บไว้ในฐานข้อมูลด้วยรหัสผ่านแฮชการประนีประนอมฐานข้อมูลหมายถึงการสูญเสียทั้งสองอย่าง พริกไทยเป็นค่าคงที่ทั่วทั้งไซต์จัดเก็บแยกต่างหากจากฐานข้อมูล (โดยปกติจะกำหนดค่าตายตัวในรหัสที่มาของโปรแกรม) ซึ่งมีวัตถุประสงค์เพื่อเป็นความลับ มันถูกใช้เพื่อให้การประนีประนอมของฐานข้อมูลจะไม่ทำให้ตารางรหัสผ่านของแอปพลิเคชันทั้งหมดสามารถใช้งานได้อย่างดุร้าย มีอะไรที่ฉันขาดหายไปและการล้างรหัสผ่านของฉันเป็นทางเลือกที่ดีที่สุดในการป้องกันความปลอดภัยของผู้ใช้ มีข้อบกพร่องด้านความปลอดภัยที่เป็นไปได้ที่จะทำเช่นนี้? หมายเหตุ: สมมติว่ามีวัตถุประสงค์เพื่อการสนทนาที่เก็บแอปพลิเคชัน & ฐานข้อมูลไว้ในเครื่องที่แยกต่างหากอย่าแชร์รหัสผ่าน ฯลฯ ดังนั้นการละเมิดเซิร์ฟเวอร์ฐานข้อมูลจึงไม่ได้หมายถึงการละเมิดแอพพลิเคชันเซิร์ฟเวอร์โดยอัตโนมัติ

7
วิธีใช้ password_hash ของ PHP เพื่อแฮชและยืนยันรหัสผ่าน
เมื่อเร็ว ๆ นี้ฉันได้พยายามใช้การรักษาความปลอดภัยของตัวเองบนสคริปต์การเข้าสู่ระบบที่ฉันพบบนอินเทอร์เน็ต password_hashหลังจากที่ดิ้นรนพยายามที่จะเรียนรู้วิธีที่จะทำให้สคริปต์ของตัวเองในการสร้างเกลือสำหรับผู้ใช้แต่ละคนที่ผมเจอ จากสิ่งที่ฉันเข้าใจ (ตามออกของการอ่านในหน้านี้ ) password_hashเกลือจะถูกสร้างขึ้นแล้วในแถวเมื่อคุณใช้ นี่คือเรื่องจริง? อีกคำถามหนึ่งที่ฉันมีคือจะไม่ฉลาดที่จะมี 2 เกลือ? หนึ่งโดยตรงในไฟล์และหนึ่งใน DB? ด้วยวิธีนี้หากมีคนประนีประนอมเกลือของคุณในฐานข้อมูลคุณยังมีอยู่ในไฟล์โดยตรงหรือไม่? ฉันอ่านที่นี่ว่าการเก็บเกลือไม่ใช่ความคิดที่ชาญฉลาด แต่ทำให้ฉันสับสนอยู่เสมอว่าผู้คนหมายถึงอะไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.