Score:1

E2EE พร้อมรหัสผ่านเมื่อเข้าสู่ระบบ?

ธง cn

ลองนึกภาพสถานการณ์:

  1. อลิซและบ็อบต้องการใช้แพลตฟอร์มที่พวกเขาเข้าสู่ระบบโดยใช้อีเมลและรหัสผ่าน แพลตฟอร์มนี้สามารถเข้าถึงได้บนเดสก์ท็อปและอุปกรณ์เคลื่อนที่
  2. Alice ต้องการจัดเก็บข้อมูลที่เข้ารหัสไว้ในฐานข้อมูลหรือส่งไฟล์ที่เข้ารหัสไปยังเซิร์ฟเวอร์ S3
  3. Bob จะสามารถดึงข้อมูลที่เข้ารหัสนี้ (ข้อมูล + ไฟล์) หากเซิร์ฟเวอร์อนุญาต (Alice อนุญาตให้ Bob เข้าถึงข้อมูลนี้)
  4. ทั้ง Bob และ Alice ควรจะสามารถถอดรหัสข้อมูล (ข้อมูล + ไฟล์) จากฝั่งของเขาได้

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

Gilles 'SO- stop being evil' avatar
โปรดทราบว่าไม่มีคำตอบง่ายๆ [Neirpyc](https://crypto.stackexchange.com/a/91645)นั้นง่ายพอๆ กับกรณีเล็กน้อย แต่มีภาวะแทรกซ้อนมากมายที่ต้องพิจารณาเพื่อให้งานนี้ในโลกแห่งความเป็นจริง จะเกิดอะไรขึ้นถ้าอลิซทำรหัสผ่านหาย วิธีลดการรั่วไหลของรหัสผ่าน (ผ่านการสอดแนม ฟิชชิ่ง เดรัจฉาน ฯลฯ) – การตรวจสอบสิทธิ์แบบสองปัจจัยช่วยลดการยืนยันตัวตนได้ แต่การเข้ารหัสไม่มีอะไรที่คล้ายกัน คุณจะเพิ่มผู้ใช้ในรายชื่อการแจกจ่ายไฟล์ได้อย่างไร คุณจะยกเลิกการเข้าถึงได้อย่างไร เป็นต้น
Score:2
ธง us

เพื่อแก้ปัญหาของคุณอย่างมีประสิทธิภาพ คุณควรอ่านเกี่ยวกับ ที่มาของคีย์ และ การได้มาของคีย์รหัสผ่าน.

ตามที่ฉันเข้าใจ วิธีแก้ไขปัญหาของคุณมีดังต่อไปนี้:

  1. เมื่อสร้างบัญชี คุณจะใช้รหัสผ่านของคุณเพื่อสร้างมาสเตอร์คีย์ กม. คุณควรสร้างคู่คีย์อสมมาตรแบบสุ่ม (RSA, เส้นโค้งวงรี หรือรหัสอสมมาตรใดๆ) คุณควรอัปโหลดรหัสสาธารณะและรหัสส่วนตัวของคุณที่เข้ารหัสไปยังเซิร์ฟเวอร์ k0คีย์ที่ได้มาจากมาสเตอร์คีย์ กม.
  2. อลิซสร้างคีย์สมมาตร เคเอ็กซ์ และเข้ารหัสข้อมูลในเครื่องก่อนส่งไปยังเซิร์ฟเวอร์ (AES, พญานาค, ChaCha, ...) เคเอ็กซ์ น่าจะมาจากมาสเตอร์คีย์ของอลิซ กม ดังนั้นจึงสามารถสร้างคีย์เดิมอีกครั้งเพื่อถอดรหัสไฟล์ ไฟล์ควรได้รับรหัสเฉพาะ x ซึ่งใช้ในฟังก์ชันการหาค่าคีย์เพื่อให้ได้ a เคเอ็กซ์โดยไม่ต้องใช้คีย์เดิมซ้ำสำหรับแต่ละไฟล์
  3. หากต้องการให้สิทธิ์ Bob ให้เข้าสู่ระบบ สร้างใหม่ กม มาสเตอร์คีย์, ขอรหัสไฟล์จากเซิร์ฟเวอร์, สืบทอดมา เคเอ็กซ์ จากมาสเตอร์คีย์ของคุณ กม และรหัสไฟล์จากนั้น ขอรหัสสาธารณะของ Bob จากเซิร์ฟเวอร์และใช้เพื่อเข้ารหัส เคเอ็กซ์. จากนั้นคุณสามารถส่งข้อมูลนี้ไปยังเซิร์ฟเวอร์ได้
  4. Bob เข้าสู่ระบบ สร้างมาสเตอร์คีย์ของเขา จากนั้นเขาก็ใช้มันเพื่อรับกุญแจดอกแรกของเขา k0, สอบถามเซิร์ฟเวอร์สำหรับรหัสส่วนตัวที่เข้ารหัสของเขา, ใช้ k0 เพื่อถอดรหัสคีย์ส่วนตัว เมื่อคุณมีคีย์ส่วนตัวแล้ว คุณสามารถถอดรหัสสิ่งที่อลิซส่งถึงคุณได้: เคเอ็กซ์คีย์ที่ใช้ในการเข้ารหัสไฟล์ จากนั้นคุณสามารถขอไฟล์จากเซิร์ฟเวอร์และถอดรหัสไฟล์ในเครื่องได้

โพสต์คำตอบ

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