Score:0

AES GCM + สคีมาอสมมาตรนี้ปลอดภัยหรือไม่

ธง cn

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

  • สร้าง คีย์สุ่ม 32 ไบต์ ภายในเบราว์เซอร์ด้วย window.crypto.getRandomValues

  • ใช้ ไลบรารี crypto sjcl สำหรับ:

    • การเลือกอัลกอริทึม AES cipher.aes
    • สร้างเวกเตอร์ IV แบบสุ่ม 4 คำ สุ่มคำสุ่ม (4, 0)
    • การเข้ารหัสไฟล์ในโหมด GCM mode.gcm.encrypt (แท็ก 128 บิต)
    • การเชื่อม IV และเอาต์พุตที่เข้ารหัสทำให้เกิด binaryFile1
  • ใช้ ห้องสมุดเครือข่าย NaCl และการเข้ารหัสผ่านเครื่องมือที่ใช้ ECIES สำหรับ:

    • สร้าง เข้ารหัสคีย์แพร์ โดยใช้ nacl.box.keyPair.fromSecretKey
    • การเข้ารหัสข้างต้น คีย์สุ่ม 32 ไบต์ กับ ชั่วคราว PublicKey (ใช้ x25519 ส่วนหนึ่งของสคีมา x25519-xsalsa20-poly1305) ผลิต binaryFile2บันเดิลที่มีคีย์ AES ที่เข้ารหัส และข้อมูลเมตาอื่นๆ ได้แก่ ชั่วคราว PublicKey.
  • เชื่อม binaryFile2 + ตัวคั่น + binaryFile1 ผลิต ไฟล์ไบนารีสุดท้าย

  • ดูแล ไฟล์ไบนารีสุดท้าย บนคลาวด์จนกว่าจะจำเป็นต้องดาวน์โหลดแล้วถอดรหัสผ่านกระบวนการย้อนกลับโดยใช้ รหัสลับ ฉันเป็นเจ้าของ

ในการเข้ารหัสไฟล์ ฉันสามารถใช้คีย์สมมาตรได้โดยตรงเพื่อให้ปลอดภัย แต่ฉันต้องการใช้ DB ของคีย์สาธารณะแบบสแตติกที่ใช้ร่วมกัน ซึ่งความน่าเชื่อถือที่ฉันถือว่าใช้ได้

kelalaka avatar
in flag
คำถามคืออะไร?
cn flag
ฉันทำให้คำถามชัดเจนในชื่อเรื่อง ขอขอบคุณ.
kelalaka avatar
in flag
เหตุใดคุณจึงไม่ใช้โปรแกรมที่ได้รับการบำรุงรักษาอย่างดี เช่น Veracrypt หรือไลบรารี เช่น [age](https://github.com/FiloSottile/age) (_age เป็นเครื่องมือเข้ารหัสไฟล์ รูปแบบ และไลบรารี Go ที่เรียบง่าย ทันสมัย ​​และปลอดภัย_ .)
Maarten Bodewes avatar
in flag
การตรวจสอบโปรโตคอลและรูปแบบการเข้ารหัสแบบสมบูรณ์นั้นอยู่นอกหัวข้อ การใช้ ECIES เพื่อเข้ารหัสคีย์ลับนั้นค่อนข้างหลอกลวง คุณสามารถใช้ส่วนของข้อตกลงหลักเพื่อสร้างรหัสได้ แน่นอน คุณต้องส่งคีย์สาธารณะชั่วคราวสำหรับ ECIES ด้วย ซึ่งเป็นสิ่งที่ขาดหายไปในโปรโตคอลของคุณ ฉันไม่เห็นว่าคุณสร้างคู่คีย์คงที่ของตัวรับอย่างไร หรือคีย์สาธารณะนั้นเชื่อถือได้อย่างไร ดังนั้นคำอธิบายจึงไม่ใช่ข้อผิดพลาดหรือสมบูรณ์อย่างแน่นอน
cn flag
ขอบคุณสำหรับคำพูดของคุณมาร์เท่น ที่จริงฉันลืมพูดถึงว่าใน `binaryFile2` มีคีย์ publick ชั่วคราวด้วย ดังนั้นฉันจะอัปเดตคำถาม ฉันทราบดีว่าฉันกำลังสอบถามเกี่ยวกับความถูกต้อง โดยไม่คำนึงถึงขั้นตอนการลงทะเบียนของคู่คีย์แบบสแตติกและความน่าเชื่อถือสัมพัทธ์
Score:2
ธง si

NaCL ให้ชุดของ crypto_box วิธีการที่ทำทั้งหมดนี้ในครั้งเดียว Libsodium ให้ชุดที่ง่ายยิ่งขึ้น crypto_box_easy วิธีการ

cn flag
ขอบคุณสำหรับคำแนะนำ การใช้งานของฉันต้องอยู่ในจาวาสคริปต์ ดังนั้นฉันแค่ใช้ชุด NaCl ที่นำเสนอและจัดการการสร้างคู่คีย์
SAI Peregrinus avatar
si flag
มีการรวม JS สำหรับ libsodium เช่นกัน

โพสต์คำตอบ

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