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