ฉันรู้ว่ามันฟังดูบ้า แต่ฟังฉันออก สืบเนื่องจาก สามารถใช้แท็กการตรวจสอบสิทธิ์ AES-GCM เป็นฟังก์ชันรับคีย์ได้หรือไม่ฉันยังพิจารณาเพิ่มเติม ความคิดสร้างสรรค์ โซลูชันเพื่อรับคีย์อุปกรณ์ที่ไม่ซ้ำใคร (สมมาตร) จากรูทคีย์ที่เก็บไว้อย่างปลอดภัย
(เบื้องหลังคือเรามีไคลเอนต์จำนวนมาก (=อุปกรณ์) ที่ไม่สามารถใช้การเข้ารหัสแบบอสมมาตรได้ (ส่วนใหญ่เป็นเพราะข้อจำกัดของฮาร์ดแวร์) ในการสร้างการเชื่อมต่อ TLS PSK เราจำเป็นต้องมีความลับร่วมกันระหว่างแบ็กเอนด์และไคลเอนต์ แทนที่จะจัดเก็บอย่างปลอดภัย คีย์เฉพาะต่อไคลเอ็นต์ในแบ็กเอนด์ เราได้รับคีย์เฉพาะไคลเอ็นต์จากความลับของรูทโดยใช้ ID เฉพาะของอุปกรณ์)
แรงจูงใจในการใช้คีย์ RSA มาจาก รูปแบบการกำหนดราคา Azure Key Vault และความพร้อมใช้งานของ HSM ในภูมิภาคต่างๆ การดำเนินการคีย์สมมาตรมีให้ใช้งานเป็น "คีย์ขั้นสูง" บน HSM เท่านั้น หากฉันอ่านเอกสารประกอบอย่างถูกต้อง จึงมีราคาแพงกว่าการดำเนินการ RSA ถึง 5 เท่า (นอกเหนือจากอัตรา HSM รายชั่วโมงแบบขั้นบันได) นอกจากนี้ ข้อจำกัดของภูมิภาคที่เลือก (ซึ่งมี HSM ที่มีการจัดการ) อาจเป็นตัวแบ่งข้อตกลงเช่นกัน
ดังนั้น เพื่อทำ ECC หรือ RSA ฉันมีความคิดดังต่อไปนี้:
$\text{KDF}(คีย์ ข้อมูล) = \text{SHA256}(\text{RSA-PKCS1v1.5-sign}(คีย์ ข้อมูล))$
คำ: จัดเก็บคีย์ RSA ที่ไม่สามารถส่งออกได้ใน Key vault และใช้รูปแบบลายเซ็นที่กำหนดขึ้นเอง PKCS1 v1.5 เป็นการรับคีย์โดยใช้ข้อมูลตามอำเภอใจเป็นค่าที่ได้รับมา (เช่น เกลือที่เชื่อมกับรหัสอุปกรณ์) หากต้องการแบ่งคุณสมบัติเชิงพีชคณิตของ RSA และเน้นเนื้อหาคีย์ลงที่ 256 บิต ลายเซ็นจะถูกแฮชด้วย SHA-256
สิ่งนี้ปลอดภัยโดยสัญชาตญาณ เนื่องจากลายเซ็นไม่สามารถปลอมแปลงได้ ดังนั้นจึงไม่สามารถเดาค่าเอาต์พุตที่เป็นรูปธรรมของการดำเนินการเซ็นได้ (หากไม่มีคีย์) ดังนั้นที่ใดที่หนึ่งในลายเซ็นนี้มี "เอนโทรปี" (บิตที่คาดเดาไม่ได้) มากพอที่จะทนต่อการดุร้ายและ "เอนโทรปี" นี้ควรกระจายอย่างเท่าเทียมกันทั่วทั้งผลลัพธ์ของการดำเนินการแฮช
บางคนสามารถให้เหตุผลที่เข้มงวดกว่านี้ (หรือแม้แต่การพิสูจน์ภายใต้สมมติฐานมาตรฐาน) ได้หรือไม่?