Score:0

การเข้ารหัสคีย์สาธารณะสำหรับการเข้าสู่ระบบ

ธง ky

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

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

หากต้องการชะลอการโจมตีแบบเดรัจฉาน คีย์ต้องได้รับมาจากรหัสผ่านและเกลือโดยใช้ KDF ที่ช้า ก่อนที่จะสร้างคีย์ส่วนตัว/สาธารณะ

อีกทางเลือกหนึ่ง เซิร์ฟเวอร์สามารถกำหนดให้ไคลเอนต์รับคีย์จากค่าที่สร้างขึ้นแบบสุ่ม โดยใช้ KDF ที่ช้าก่อนที่จะลงนาม â แม้ว่าสำหรับฉันแล้ว ดูเหมือนว่าจะไม่ค่อยดีไปกว่าการชะลอการได้มาของคีย์ เพื่อประหยัดทรัพยากรของเซิร์ฟเวอร์เมื่อตรวจสอบลายเซ็น เราสามารถใช้กลไกสไตล์ Proof of Work แทน KDF ที่ช้า ซึ่งไคลเอนต์ต้องหา nonce ที่ hash(randomly_generated_value + nonce) > some_set_difficulty จากนั้น nonce จะถูกเซ็นและส่งไปยัง เซิร์ฟเวอร์ที่จะตรวจสอบ เซิร์ฟเวอร์อาจเปลี่ยนความยากได้ เช่น เพิ่มความยากสำหรับการพยายามเข้าสู่ระบบที่ไม่สำเร็จแต่ละครั้ง

ข้อดีและข้อเสียของโครงการดังกล่าวคืออะไร ฉันสงสัยว่าการเปิดเผยเกลือทุกครั้งที่พยายามเข้าสู่ระบบจะเป็นปัญหา

in flag
แม้ว่ามันจะใช้งานได้ แต่ฉันไม่เห็นประโยชน์ของการใช้สิ่งนี้เทียบกับการใช้อัลกอริทึมการแฮชที่ช้าเช่น bcrypt?
Manish Adhikari avatar
us flag
ใช้รหัสผ่าน + PBKDF ที่ดีเพื่อเข้ารหัสคีย์ส่วนตัวของคุณและจัดเก็บไว้ในที่ปลอดภัย เช่นเดียวกับใน SSH จะทำสิ่งเดียวกันโดยไม่เปิดเผยเกลือของคุณต่อเครือข่ายที่อาจไม่ปลอดภัย เก็บไว้ในที่ที่เชื่อถือได้ซึ่งคุณสามารถเข้าถึงได้ผ่านเครือข่ายที่ปลอดภัยและใช้เพื่อตรวจสอบความถูกต้องกับเซิร์ฟเวอร์นี้ผ่านช่องทางที่ไม่ปลอดภัยจะดีกว่า
Maarten Bodewes avatar
in flag
ปัญหาหนึ่งของสิ่งนี้คือการสร้างคีย์ส่วนตัวจากเมล็ดสุ่มใด ๆ นั้นไม่ใช่เรื่องเล็กน้อยอย่างน่าทึ่ง หากคุณไม่เคยเปลี่ยนอัลกอริทึมเชิงกำหนด คุณก็ไม่เป็นไร แต่นั่นหมายความว่า 1. RNG ไม่เปลี่ยนแปลง 2. การสกัดบิตไม่เคยเปลี่ยนแปลง และ 4. การสร้างคีย์ไม่เปลี่ยนแปลง และ 4. นั่น บิตถูกเรียกค้นจาก RNG ในลักษณะเดียวกันเสมอ บางอย่างอาจดูเล็กน้อย แต่จำไว้ว่าเช่น การสร้างคู่คีย์ RSA ต้องใช้ช่วงเวลาสุ่ม 2 ช่วงเวลา และมีหลายวิธีในการสร้างช่วงเวลาเหล่านั้น

โพสต์คำตอบ

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