ข้อมูลความเป็นมา:
ฉันจำเป็นต้องเข้ารหัสไฟล์ในพื้นที่ทำงานขององค์กรที่มีผู้ใช้หลายคน เป้าหมายคือการเข้ารหัสไฟล์โดยตรงจากเบราว์เซอร์เพื่อบันทึกบนเซิร์ฟเวอร์ และผู้ใช้แต่ละคนสามารถถอดรหัสไฟล์สำหรับการดูได้
โซลูชันทางเทคนิค:
สร้าง Kw คีย์ที่สร้างขึ้นแบบสุ่มสำหรับพื้นที่ทำงานสำหรับการเข้ารหัสไฟล์ด้วย AES คีย์นี้จะไม่ถูกเก็บไว้ในฐานข้อมูลหรือในเซสชันของผู้ใช้
สำหรับผู้ใช้แต่ละราย ให้สร้างคีย์อื่น "Ku" จากรหัสผ่านผู้ใช้ด้วยฟังก์ชันการสืบทอดคีย์ เช่น PBKDF2 โดยใช้รหัสผู้ใช้เป็นเกลือ จากนั้นเข้ารหัสคีย์ "Kw" ด้วยคีย์ "Ku" โดยใช้ AES และบันทึกคีย์เข้ารหัส "Kw" นี้ในฐานข้อมูลพร้อมข้อมูลผู้ใช้
จากนั้นในการเข้าสู่ระบบของผู้ใช้แต่ละครั้ง ให้สร้างคีย์ "Ku" ใหม่จากรหัสผ่านของผู้ใช้โดยใช้ฟังก์ชันการสืบทอดคีย์ เช่น PBKDF2 รับคีย์เข้ารหัส "Kw" และถอดรหัสด้วย Ku
จากนั้นใช้ Kw เพื่อถอดรหัส/เข้ารหัสไฟล์
โซลูชันนี้มีความปลอดภัยเพียงพอที่จะจัดเก็บไฟล์ที่ละเอียดอ่อน เช่น เอกสารการรักษาพยาบาล หรือไม่
ขอขอบคุณล่วงหน้าสำหรับการตอบรับของคุณ