Score:1

สามารถรับเกลือตามองค์ประกอบอื่น ๆ ของข้อมูลที่เข้ารหัสได้หรือไม่

ธง at

ฉันกำลังใช้ Fernet ของ python.cryptography พร้อมแฮชข้อความรหัสผ่าน PBKDF2 เพื่อเข้ารหัสชิ้นส่วนของข้อมูล (ค่า) ที่จัดเก็บ เข้ารหัส ในฐานข้อมูล วลีรหัสผ่านที่แฮชคือ ไม่ เก็บไว้ในฐานข้อมูล และด้วยเหตุนี้จึงไม่ใช่เกลือ แต่เกลือมาจากห้องเก็บรหัสผ่านในสภาพแวดล้อมรันไทม์ของแอปพลิเคชัน จากนั้นแก้ไขเพื่อให้ไม่ซ้ำกันสำหรับแต่ละค่า

คำถามหนึ่งที่ฉันมีเกี่ยวกับเรื่องนี้คือ: หากผู้โจมตีมีข้อความรหัสผ่านและข้อมูลที่เข้ารหัสเป็นค่าเดียว เป็นไปได้หรือไม่ที่ผู้โจมตีจะทำวิศวกรรมย้อนกลับกับเกลือ (ซึ่งจะช่วยให้พวกเขาบังคับข้อมูลที่เหลืออย่างโหดเหี้ยม) จะเกิดอะไรขึ้นหากพวกเขามีสำเนาของข้อมูลเวอร์ชันที่ไม่ได้เข้ารหัสสำหรับค่านั้นด้วย

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

ตามคำขอ นี่คือวิธีจัดการเกลือ:

  1. เกลือถูกสร้างขึ้นโดยผู้ดูแลระบบ (เราแนะนำให้ใช้ค่าสุ่ม 32 ไบต์)
  2. เกลือจะถูกเก็บไว้ในห้องเก็บรหัสผ่าน (บริการเครือข่าย)
  3. เมื่อปรับใช้แอปพลิเคชัน เกลือจะถูกฉีดที่รันไทม์
  4. เมื่อมีการบันทึกค่าใหม่ เกลือลับจะถูกรวมเข้ากับ ID ค่าเฉพาะเพื่อสร้างเกลือต่อค่า
  5. จากนั้นเกลือนี้จะใช้กับวลีรหัสผ่านที่ผู้ใช้ระบุเพื่อสร้างคีย์โดยใช้ PBKDF2 (ด้วยการวนซ้ำ 500K)
  6. ค่าของผู้ใช้แต่ละค่าจะถูกเข้ารหัสด้วยคีย์ของแต่ละคน

ฉันเชื่อว่าด้านบนเรียกว่ารูปแบบ "เกลือและพริกไทย"

kelalaka avatar
in flag
หากผู้โจมตีมีข้อความรหัสผ่าน พวกเขาจะใช้รหัสผ่านเพื่อเข้าถึงเกลือไม่ได้หรือ ดูเหมือนว่าจะเป็นคำถามด้านความปลอดภัยของข้อมูล...
FuzzyChef avatar
at flag
@kelalaka นั่นคือคำถามของฉัน ถ้าผู้โจมตีมีข้อความรหัสผ่าน พวกเขาสามารถใช้มันเพื่อค้นหาเกลือได้หรือไม่
kelalaka avatar
in flag
ไม่ ฉันกำลังถามว่าอินเทอร์เฟซไม่อนุญาตให้พวกเขาใช้ระบบตามปกติเมื่อผู้โจมตีได้รับข้อความรหัสผ่านหรือไม่ ผู้ใช้ต้องการอะไรอีกบ้างในการเข้าถึงข้อมูลของตนนอกเหนือจากข้อมูลชื่อเข้าสู่ระบบ
FuzzyChef avatar
at flag
เราสันนิษฐานว่าสิ่งที่ผู้โจมตีพยายามได้รับคือข้อความรหัสผ่านของผู้อื่น (และข้อมูลของพวกเขาด้วย) พวกเขาไม่มีมันอยู่แล้ว
FuzzyChef avatar
at flag
เกลือไม่ได้เป็นส่วนหนึ่งของข้อมูล
kr flag
@FuzzyChef: คุณใช้คำผิด Salt เป็นส่วนเสริม **ที่ทราบโดยสาธารณะ** ของรหัสผ่านเพื่อป้องกันการคำนวณล่วงหน้า หากคุณถือว่าข้อมูลบางอย่างเป็นความลับ มันคือ **รหัสผ่าน** หมายถึง สิ่งที่คุณเรียกว่า *เกลือ* ไม่ใช่เกลือ แต่เป็นรหัสผ่านที่สอง ดังนั้นคุณจึงมีโครงร่างด้วยสองรหัสผ่าน โปรดเขียนคำถามของคุณใหม่โดยใช้คำว่า *"รหัสผ่านที่ 1"* และ *"รหัสผ่านที่ 2"*
kelalaka avatar
in flag
กฎข้อแรก เกลือไม่ถือเป็นความลับ! เราไม่ได้ตั้งค่าความปลอดภัยบนความลับของเกลือ แต่เราบังคับ/สอนให้ผู้ใช้เลือกรหัสผ่านที่ดีเพื่อใช้ คุณช่วยอธิบายรายละเอียดเกี่ยวกับวิธีการสร้าง แก้ไข และสร้างใหม่/เข้าถึงเกลือได้ไหม จะเกิดอะไรขึ้นถ้าห้องนิรภัยของคุณพังทลายและเกลือทั้งหมดของคุณหายไปตลอดกาล? คุณมีแผนที่จะลดความเสี่ยงจากภัยพิบัติดังกล่าวหรือไม่?
Swashbuckler avatar
mc flag
เกลือถูกสร้างขึ้นมาอย่างไรก่อนที่จะใส่เข้าไปในห้องนิรภัย?
FuzzyChef avatar
at flag
@kelalaka ถ้าเกลือหายไปก็ยอมรับได้ว่าการเข้าถึงข้อมูลนั้นหายไป ข้อมูลมีความเกี่ยวข้องเพียงช่วงสั้นๆ โดยไม่คำนึงว่า (ประมาณ 1 เดือน) ดังนั้นจึงถือว่ายอมรับได้มากกว่าที่จะสูญเสียข้อมูลนั้นไปโดยเสี่ยงที่จะถูกประนีประนอม
FuzzyChef avatar
at flag
แต่ ... คุณกำลังบอกว่าไม่มีข้อได้เปรียบด้านความปลอดภัยในการเก็บความลับของเกลือ? เพราะถ้าเป็นเช่นนั้น ฉันไม่ต้องการคำตอบสำหรับคำถามข้างต้น

โพสต์คำตอบ

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