Score:1

การจัดเก็บแฮชของข้อความธรรมดาปลอดภัยหรือไม่

ธง us

เมื่อเข้ารหัสข้อมูล ฉันต้องการตรวจสอบว่าป้อนคีย์ที่ถูกต้องโดยไม่ต้องแฮช ปลอดภัยไหมที่จะถอดรหัสไซเฟอร์เท็กซ์และเปรียบเทียบแฮชของมันกับที่เก็บไว้ หรือสามารถอ่านข้อความธรรมดา (ซึ่งอาจยาวมาก) จากแฮชได้หรือไม่

kelalaka avatar
in flag
ยินดีต้อนรับสู่ CryptographySE รหัสผ่านจะไม่ถูกแฮชด้วยแฮชที่ป้องกันการชนกันแบบมาตรฐาน เช่น SHA256 หรือ SHA3-512 แต่จะถูกแฮชด้วยอัลกอริธึมการแฮชรหัสผ่านแบบพิเศษ เช่น PBKDF2, Scrypt หรือ Argon2 ที่ดีกว่า แม้ว่าจะมี [เครื่องมือจัดการรหัสผ่านแบบโอเพ่นซอร์ส](https://www.wizcase.com/blog/most-secure-open-source-password-managers/) ที่ดีจริงๆ เช่น Keepass แต่คำถามนี้ขาดการค้นคว้าพื้นฐานของ ผู้พัฒนาผู้จัดการรหัสผ่านต้องทำ **ค้นหาในสิ่งที่คนอื่นทำ**!
kelalaka avatar
in flag
นอกจากนี้ รหัสผ่านจะไม่ถูกจัดเก็บในรูปแบบแฮชในตัวจัดการรหัสผ่าน แต่จะถูกจัดเก็บแบบเข้ารหัสเพื่อให้ผู้จัดการรหัสผ่านสามารถถอดรหัสได้เมื่อจำเป็น การแฮชเป็นกระบวนการทางเดียวที่จะทำลายข้อมูลต้นฉบับ การแฮช != การเข้ารหัส คุณต้องสร้างคีย์เข้ารหัสจากรหัสผ่านของผู้ใช้ เพื่อให้คีย์นี้สามารถถอดรหัสคีย์จริงที่เข้ารหัสรหัสผ่านได้
kelalaka avatar
in flag
ผู้ใช้ของคุณป้อนคีย์เข้าสู่โปรแกรมของคุณอย่างไร? พวกเขาจำมันได้อย่างไร? พวกเขาจำเป็นต้องป้อนรหัสผ่าน ซึ่งมักจะสร้างด้วยรหัสผ่านที่ดี เช่น dicewire
Luqus avatar
us flag
รหัสผ่านจะถูกเข้ารหัสไว้ แต่เมื่อฉันใช้ฟังก์ชันเข้ารหัส ฉันไม่สามารถบอกได้ว่ามันถูกถอดรหัสเป็นข้อความธรรมดาที่ถูกต้องหรือไม่ ถ้าฉันเรียกใช้ฟังก์ชันด้วย **มาสเตอร์คีย์** ผิด มันจะยังคงให้ผลลัพธ์ ฉันกำลังแฮชข้อความธรรมดาเพื่อที่จะสามารถบอกได้ว่าป้อนคีย์ที่ถูกต้องหรือไม่ หลังจากนั้น ฉันจะแสดง UI ด้วยข้อความธรรมดา มิฉะนั้น ฉันจะบอกผู้ใช้ว่าเขาป้อนรหัสหลักผิด
Luqus avatar
us flag
ฉันไม่ได้พยายามเลียนแบบผู้จัดการรหัสผ่านที่ดีที่สุด ฉันต้องการหาวิธีที่ไม่มีข้อบกพร่องด้านความปลอดภัยขนาดใหญ่สำหรับฉัน ฉันไม่ได้แฮชรหัสผ่าน แต่เป็นข้อความธรรมดาตามที่ระบุไว้ในคำถามของฉัน
Score:1
ธง in

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

โดยหลักการแล้ว คุณสามารถแฮชข้อมูลแล้วเข้ารหัสได้ เนื่องจากแฮชยังคงเป็นความลับจนกว่าจะพบคีย์ สิ่งนี้จึงได้รับการพิจารณาเมื่อต้องปกป้องแฮชและข้อความธรรมดา อย่างไรก็ตาม โปรดทราบว่า แฮชแล้วเข้ารหัสเองอาจไม่ปลอดภัย; เราโดยทั่วไป ชอบวิธีการเช่นเข้ารหัสแล้ว-MAC. โดยส่วนตัวแล้ว ฉันจะลองใช้ฟังก์ชันการสืบทอดคีย์ด้วยรหัสผ่านและโหมดการเข้ารหัสที่รับรองความถูกต้อง เช่น EAX / encrypt-then-HMAC (ดูแล IV ด้วย)

นอกจากนี้ คุณควรเก็บค่าตรวจสอบคีย์ (เช่น MAC บนข้อมูลที่รู้จักบางส่วน) ไว้ข้างๆ ด้วย ด้วยวิธีนี้ คุณจะไม่มีปัญหาในการพยายามถอดรหัสฐานข้อมูลทั้งหมดของคุณก่อนที่จะตรวจสอบว่ารหัสผ่านของคุณถูกต้องหรือไม่ โปรดทราบว่าฝ่ายตรงข้ามสามารถตรวจสอบได้ว่ารหัสผ่านหลักถูกต้องหรือไม่โดยเพียงแค่ถอดรหัสบล็อกข้อมูลไม่กี่บล็อก ดังนั้นสิ่งนี้จะไม่ให้ประโยชน์มากนักหากผู้โจมตีจะเป็นผู้โจมตี ในขณะที่เพิ่มประสบการณ์ของผู้ใช้

Luqus avatar
us flag
ฉันไม่ได้พยายามแฮชข้อมูลของฉันและเข้ารหัส ฉันกำลังพยายามบอกว่าการถอดรหัสนั้นถูกต้องหรือไม่ นั่นคือเหตุผลเดียวที่ฉันคำนวณแฮช เพื่อบอกว่าผู้ใช้ป้อนคีย์หลักที่ถูกต้องหรือไม่
Luqus avatar
us flag
ฉันได้เพิ่มกราฟิกลงในคำถามของฉันซึ่งแสดงให้เห็นว่าฉันต้องการบรรลุอะไร
Maarten Bodewes avatar
in flag
ยังคงเป็นโครงร่างที่ฉันกำลังอธิบาย หากคุณไม่ต้องการตรวจสอบความสมบูรณ์ของข้อมูล คุณไม่จำเป็นต้องแฮชข้อมูลตั้งแต่แรก ด้วยความสัตย์จริง ฉันต้องการทราบว่ามีใครทำผิดพลาดกับฐานข้อมูลหรือไม่
Score:1
ธง in

ข้อความธรรมดาที่ยาวไม่ได้หมายความว่าเดาไม่ได้ หากแฮชของข้อความธรรมดาพร้อมใช้งานสำหรับผู้โจมตี ผู้โจมตีจะสามารถตรวจสอบการคาดเดาใดๆ ที่เขาอาจมีเกี่ยวกับข้อความธรรมดาได้อย่างมีประสิทธิภาพ

ในหลายๆ สถานการณ์ในโลกแห่งความเป็นจริง เราเข้ารหัสข้อความธรรมดาด้วยเอนโทรปีที่จำกัด ข้อความอาจมีขนาดใหญ่แต่ยังมีข้อมูลเพียงเล็กน้อยที่ผู้โจมตีไม่รู้จัก และด้วยแฮชที่เรียบง่ายที่มีประสิทธิภาพ แม้แต่การลองเดาข้อความธรรมดานับล้านครั้งก็สามารถทำได้จริง

มีวิธีที่ดีกว่าในการตรวจสอบการเข้ารหัส เราสามารถเข้ารหัสแล้ว mac เราสามารถใช้วิธีการรวมกันเช่น GCM ทั้งสองดีกว่าแฮชข้อความธรรมดา

โพสต์คำตอบ

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