Score:0

การจัดการมาสเตอร์คีย์ที่ใช้ใน PBKDF2 และ HMAC (จัดเก็บ หมุน)

ธง in

กรณีการใช้งานของฉัน:

ฉันมีมาสเตอร์คีย์ไม่กี่คีย์ ฉันใช้คีย์หลักแต่ละคีย์สำหรับการดำเนินการเฉพาะ (เช่น คีย์หนึ่งสำหรับเข้ารหัสข้อมูลของผู้ใช้ และอีกคีย์หนึ่งสำหรับสร้างลายเซ็น JWT เป็นต้น...)

ฉันใช้มาสเตอร์คีย์เหล่านี้ในสองสิ่งที่เฉพาะเจาะจง:

  1. ใน PBKDF2 เป็นอินพุต + เกลือเพื่อรับคีย์สมมาตรและ nonces (iv) จากนั้นเก็บเกลือด้วยไซเฟอร์เท็กซ์ในฐานข้อมูลเท่านั้น
  2. ใน HMAC เป็นรหัสลับ (พริกไทย)

ฉันต้องหมุนมาสเตอร์คีย์เหล่านี้เมื่อมันเก่า

คำถามเพื่อชี้แจงสิ่งที่ฉันจำเป็นต้องรู้:

  1. มาสเตอร์คีย์เหล่านี้จะเก่าหรือต้องหมุนเมื่อใด
  2. จะหมุนคีย์เหล่านี้ได้อย่างไรและยังสามารถดึงคีย์เก่ากลับมาจากคีย์ใหม่เพื่อถอดรหัสข้อมูลที่เข้ารหัสหรือตรวจสอบแฮชที่สร้างโดยคีย์เก่าเหล่านี้ได้อย่างไร ฉันคิดว่าฉันควรทำ bit-XOR กับคีย์เก่าด้วยคีย์ใหม่ที่สอดคล้องกัน
  3. ขณะนี้ฉันไม่มีสิทธิ์ใช้ HSM (Hardware Security Modules) หรือวงล้อมที่ปลอดภัย การจัดเก็บมาสเตอร์คีย์เหล่านี้ในไฟล์ข้างๆ API ของแอปปลอดภัยเพียงพอหรือไม่ ฉันควรคำนึงถึงอะไรบ้าง ?
  4. ฉันสบายดีกับ PBKDF2 หรือฉันควรใช้ HKDF ดีกว่า หากใช่ ฉันควรทำคำแนะนำอะไรอีกบ้างเมื่อใช้ HKDF
  5. คำแนะนำความยาวเท่าใดสำหรับมาสเตอร์คีย์ในกรณีการใช้งานดังกล่าว
  6. มีกระแสปัญหาหรือการปรับปรุงในสิ่งทั้งหมดหรือไม่?
Swashbuckler avatar
mc flag
คุณกำลังพยายามป้องกันอะไรจากตำแหน่งที่คุณต้องหมุนคีย์ในลักษณะนี้ โดยทั่วไป การหมุนเวียนคีย์เกี่ยวข้องกับการใช้คีย์ที่อัปเดตสำหรับข้อมูลใหม่ แต่ไม่ได้พยายามปกป้องข้อมูลที่มีอยู่ซ้ำ ดูเหมือนว่าคุณต้องการอัปเดตการป้องกันที่มีอยู่ แต่ไม่มีการเข้ารหัสใหม่ ขึ้นอยู่กับสิ่งที่คุณพยายามป้องกันนั่นอาจเป็นไปไม่ได้ (อย่างน้อยก็ตามความรู้ของฉัน)
Mohamed Waleed avatar
in flag
@Swashbuckler การหมุนปุ่มเป็นประจำไม่ใช่วิธีปฏิบัติที่ดีใช่หรือไม่ ฉันรู้ด้วยว่ากุญแจเหล่านี้มีวงจรชีวิตที่จำกัด ประเภทของการเข้ารหัสที่ฉันกำลังทำคือการเข้ารหัสข้อมูลส่วนตัวของผู้ใช้ในบริการปกติ และประเภทของการแฮชคือการสร้างลายเซ็นสำหรับโทเค็นสำหรับผู้ใช้และแฮชรหัสผ่านและข้อมูลอื่น ๆ ที่จำเป็นเป็นส่วนตัวและฉันไม่ควรรู้
Mohamed Waleed avatar
in flag
@Swashbuckler ฉันรู้ว่าวงจรชีวิตของคีย์โดยทั่วไปเกี่ยวข้องกับการใช้งาน ฉันมีคีย์ที่ใช้เข้ารหัสข้อมูลบางอย่างในฐานข้อมูลเท่านั้น ฉันควรหมุนเวียนคีย์เหล่านี้เมื่อใด เมื่อมีการรั่วไหลของข้อมูล ? ฉันยังมีคีย์ที่ใช้บ่อยมากในการแฮชและสร้างลายเซ็นสำหรับโทเค็น ฉันควรหมุนคีย์เหล่านี้เมื่อใด
Mohamed Waleed avatar
in flag
@Swashbuckler ฉันกำลังคิดถึงการหมุนเวียนคีย์ เพราะฉันคิดว่ามันมีประโยชน์ที่จะทำให้ผู้โจมตีได้รับข้อมูลใด ๆ ได้ยากขึ้น และฉันจะโฮสต์แอปพลิเคชันดังกล่าวบน vps
Mohamed Waleed avatar
in flag
@Swashbuckler ฉันสบายดีกับข้อมูลที่เข้ารหัสด้วยคีย์เก่า ฉันถามเกี่ยวกับวิธีหมุนคีย์เพื่ออัปเดตข้อมูลใหม่ด้วยคีย์ใหม่ และยังสามารถถอดรหัสข้อมูลเก่าโดยไม่ต้องเก็บคีย์เก่าทั้งหมดโดยทำสิ่งเช่น ตัวอย่างเช่น XOR
SAI Peregrinus avatar
si flag
คีย์การเข้ารหัสต้องมีเอนโทรปีสูง (เกือบ 1 บิตของเอนโทรปีต่อบิตของข้อมูล) ซึ่งหมายความว่าไม่สามารถบีบอัดได้ ดังนั้นคุณต้องเก็บคีย์ทั้งหมดไว้เพื่อถอดรหัสข้อมูลเก่า หากคุณไม่เข้ารหัสซ้ำภายใต้คีย์ใหม่ นี่คือ [ทฤษฎีบทการเข้ารหัสแหล่งที่มาของแชนนอน](https://en.wikipedia.org/wiki/Shannon's_source_coding_theorem)

โพสต์คำตอบ

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