Score:2

ฉันไม่ค่อยเข้าใจการแฮช

ธง id

ฉันไม่ค่อยเข้าใจการแฮช การเข้ารหัส หรืออื่นๆ

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

สมมติว่าคุณกำลังแฮชประโยคโดยใช้ SHA-256 คุณเคยถอดรหัสแฮชดังกล่าว หรือแม้กระทั่งมีความสามารถหรือไม่

การติดตามครั้งสุดท้าย: Whatsapp บอกว่าข้อความของฉันถูกเข้ารหัส ดังนั้น หากฉันเข้ารหัสขณะที่ฉันส่งไป อุปกรณ์ของบุคคลอื่นจะถอดรหัสได้อย่างไร

ฉันทราบดีว่านี่เป็นคำถามทั่วไป แต่ฉันพยายามสรุปวิธีการทำงาน กรุณาอย่าตะโกน

et flag
ไม่ แฮชไม่สามารถย้อนกลับได้ การแฮชเป็นการดำเนินการทางเดียว การแฮชไม่ใช่การเข้ารหัส
meshcollider avatar
gb flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ความแตกต่างระหว่างอัลกอริทึมแฮชและการเข้ารหัส](https://crypto.stackexchange.com/questions/62036/differences-between-hash-and-encryption-algorithms)
Sheldon avatar
nl flag
**ฟังก์ชันแฮชการเข้ารหัสลับ (CHF)** เป็นอัลกอริทึมทางคณิตศาสตร์ที่แมปข้อมูล **ขนาดตามอำเภอใจ** (มักเรียกว่า "**ข้อความ**") กับอาร์เรย์บิตของ **ขนาดคงที่** ( "ค่าแฮช", "แฮช" หรือ "**ข้อความย่อย**") เป็นฟังก์ชัน **ทางเดียว** นั่นคือ ฟังก์ชันที่เป็นไปไม่ได้ในทางปฏิบัติที่จะกลับด้านหรือย้อนกลับการคำนวณ
kelalaka avatar
in flag
ใช่ เป็นคำถามที่กว้างเกินไปและจำเป็นต้องได้รับคำตอบที่ยาวมาก แต่ก็ยังไม่มีใครตอบได้ง่ายๆ วอทส์แอพ? ดูสิ่งนี้ [ในการเข้ารหัสแบบ end-to-end เซิร์ฟเวอร์ไม่จำเป็นต้องเชื่อถือได้ใช่ไหม](https://crypto.stackexchange.com/q/54082/18298) และจาก WhatsApp: [WhatsApp Security Whitepaper](https ://www.documentcloud.org/documents/2806301-WhatsApp-Security-Whitepaper-1)
Score:1
ธง ng

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

ได้ โดยมีรายละเอียดเพิ่มเติมสามประการในวิธีการมาตรฐานสมัยใหม่ในการทำเช่นนี้:

  • รหัสผ่านเข้าถึงเว็บไซต์ที่เข้ารหัส TLS; มันถูกถอดรหัสก่อนการแฮช
  • เกลือ (สุ่มจากการลงทะเบียนรหัสผ่าน หรือ/และชื่อผู้ใช้/อีเมล) จะถูกแฮชพร้อมกับรหัสผ่าน และจัดเก็บไว้ตามแฮชของรหัสผ่านโดยเซิร์ฟเวอร์
  • มีการใช้แฮชแบบวนซ้ำแบบช้าๆ โดยหวังว่าจะใช้หน่วยความจำแบบฮาร์ดหน่วยความจำซึ่งออกแบบมาสำหรับรหัสผ่าน เช่น อาร์กอน2. สิ่งนี้ออกแบบมาเพื่อการป้องกันในกรณีที่เซิร์ฟเวอร์ปล่อยให้รายการแฮชและเกลือรั่วไหล (การรั่วไหลดังกล่าวเกิดขึ้นเป็นประจำ) ข้อควรระวังนี้ทำให้ค้นหารหัสผ่านได้ยากขึ้น (หรือมากกว่านั้นคือรหัสผ่านที่ยอมรับได้ซึ่งน่าจะเป็นรหัสผ่านดั้งเดิม) ในพจนานุกรมของรหัสผ่านปกติ โดยแฮชรหัสผ่านของผู้สมัครและเกลือ และเปรียบเทียบกับแฮชรหัสผ่าน เช่นเดียวกับที่เซิร์ฟเวอร์ทำเพื่อตรวจสอบ รหัสผ่านเมื่อเข้าสู่ระบบ

สมมติว่าคุณกำลังแฮชประโยคโดยใช้ SHA-256 คุณเคยถอดรหัสแฮชดังกล่าว หรือแม้กระทั่งมีความสามารถหรือไม่

ไม่ อย่างแรก "ถอดรหัส" ไม่ใช่คำที่ถูกต้องสำหรับการค้นหาอินพุตของฟังก์ชันแฮชเนื่องจากเป็นเอาต์พุต คำที่ถูกต้องคือ "ย้อนกลับ" และแฮชได้รับการออกแบบให้ไม่สามารถย้อนกลับได้ในการทำงานปกติ หากไม่ทราบอินพุตของแฮชและเลือกแบบสุ่มในชุดใหญ่ และการออกแบบแฮชดี เป็นไปไม่ได้ที่จะย้อนกลับแฮช


Whatsapp บอกว่าข้อความของฉันถูกเข้ารหัส ดังนั้น หากฉันเข้ารหัสขณะที่ฉันส่งไป อุปกรณ์ของบุคคลอื่นจะถอดรหัสอย่างไร

การแฮชไม่ใช่สิ่งเดียวกับการเข้ารหัส การแฮชจะแปลงข้อความในลักษณะที่ออกแบบมาให้เปลี่ยนกลับไม่ได้ และไม่ใช้คีย์ การเข้ารหัสจะแปลงข้อความตามคีย์เข้ารหัส ในลักษณะที่ย้อนกลับได้ด้วยคีย์ถอดรหัส

คีย์ถอดรหัสต้องเป็นความลับ มิฉะนั้นจะไม่บรรลุเป้าหมายของการเข้ารหัส (ซ่อนสิ่งที่เข้ารหัสไว้ไม่ให้ศัตรูรู้คีย์ถอดรหัส) ในการเข้ารหัสแบบสมมาตร (เช่น AES-GCM) คีย์การเข้ารหัสและถอดรหัสจะเหมือนกัน ในการเข้ารหัสแบบอสมมาตร (เช่น RSA, ECIES) มีความแตกต่างกัน: คีย์การเข้ารหัสสามารถเปิดเผยต่อสาธารณะได้ และเรียกว่าคีย์สาธารณะ คีย์ถอดรหัสคือคีย์ส่วนตัว

เมื่อคุณส่งข้อความด้วยแอปพลิเคชันสมัยใหม่ที่ใช้การเข้ารหัสแบบอสมมาตร (เช่น Whatsapp) นี่คือภาพรวม:

  • แอปของคุณดึงคีย์เฉพาะของข้อความสมมาตรแบบสุ่ม
  • แอปของคุณเข้ารหัสข้อความโดยใช้การเข้ารหัสแบบสมมาตรด้วยคีย์เฉพาะของข้อความนี้ และผลลัพธ์จะถูกส่งไป
  • แอปของคุณเข้ารหัสคีย์เฉพาะของข้อความซ้ำๆ ซ้ำๆ ไปยังผู้รับที่ต้องการแต่ละราย โดยใช้การเข้ารหัสแบบอสมมาตร (เช่น ECIES) และคีย์สาธารณะแต่ละคีย์ของผู้รับที่ต้องการ และผลลัพธ์จะถูกส่ง
  • เมื่อผู้รับต้องการถอดรหัสข้อความ แอปของผู้รับจะได้รับคีย์เฉพาะของข้อความที่เข้ารหัสซึ่งเข้ารหัสภายใต้คีย์สาธารณะก่อน และถอดรหัส (ต่อการถอดรหัสแบบไม่สมมาตร) โดยใช้คีย์ส่วนตัว เพื่อให้ได้คีย์เฉพาะของข้อความ
  • แอปของผู้รับจะได้รับข้อความที่เข้ารหัส ถอดรหัสต่อการถอดรหัสแบบสมมาตรโดยใช้คีย์เฉพาะของข้อความ จากนั้นจึงแสดงข้อความที่ถอดรหัส

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

Score:0
ธง kr

นอกจากคำตอบของ @frieu:

สมมติว่าคุณกำลังแฮชประโยคโดยใช้ SHA-256 คุณเคยถอดรหัสเช่นนั้นหรือไม่ แฮชหรือแม้กระทั่งมีความสามารถที่จะ?

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

สิ่งสำคัญคือต้องรู้ว่าอาจมีรหัสผ่านมากกว่าหนึ่งรหัสที่สร้างแฮชเดียวกันได้ แต่สำหรับอัลกอริทึมเช่น SHA-256 หรือ Argon2 มีสองประเด็นสำคัญ:

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

โพสต์คำตอบ

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