Score:0

ตรวจสอบการประชุมโดยส่งหมายเลขสุ่มที่มีลายเซ็นเดียวกันไปยังหน่วยงานส่วนกลางหรือไม่

ธง br
JMC

ฉันกำลังพยายามพัฒนาโปรโตคอลอย่างง่ายสำหรับผู้ใช้สองคนเพื่อตรวจสอบ (เกี่ยวกับหน่วยงานกลางที่เชื่อถือได้) ว่าพวกเขาได้พบ/สื่อสารกัน (โดยตั้งใจ)

แนวคิดของฉันคือ: ผู้ใช้เป็นเจ้าของคู่คีย์ (สาธารณะ, ลับ) ของระบบอสมมาตรทั่วไปเช่น RSA รหัสสาธารณะของพวกเขายังเป็นเซิร์ฟเวอร์เป็นตัวระบุ เพื่อให้คนสองคนยืนยันว่ามีการติดต่อกัน พวกเขาทั้งคู่จะสร้างหมายเลขสุ่ม 256 บิต แบ่งปันให้กันและกัน (ในกรณีแอปพลิเคชัน/การใช้งานแบบเยื้อง นี้ตั้งใจให้เกิดขึ้นเฉพาะบุคคลเท่านั้น ไม่เกินระยะทาง) และ จากนั้นส่งหมายเลขที่เชื่อมต่อกันอย่างปลอดภัย (เช่น HTTPs) ไปยังหน่วยงานกลางที่เข้ารหัสด้วยคีย์ส่วนตัวที่เกี่ยวข้อง พวกเขายังจะส่งรหัสสาธารณะ/รหัสของตนเพื่อระบุตัวตนของตนไปยังหน่วยงานกลาง ซึ่งจะสามารถตรวจสอบได้ว่าทั้งสองได้ส่งข้อความเดียวกันหลังจากถอดรหัสด้วยรหัสสาธารณะของตน ซึ่งทั้งคู่จะพิสูจน์ตัวตนและการสื่อสารก่อนหน้าของพวกเขา

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

แก้ไข: จุดประสงค์หลักคือให้ผู้ใช้สองคนพิสูจน์ตัวตนของพวกเขา โดยเจตนา การสื่อสาร/การประชุม. ไม่มีแรงจูงใจและไม่มีอันตรายในการสมรู้ร่วมคิดเพื่อยืนยันด้วยวิธีนี้ว่าการประชุมที่เกิดขึ้นจากระยะไกลเท่านั้น ตราบใดที่ทั้งสองฝ่ายตระหนักถึงการกระทำนี้

ด้วยสิ่งนี้กล่าวว่านี่เป็นความคิดที่ไม่ดี ถ้าใช่ เพราะเหตุใด

knaccc avatar
es flag
หากอลิซและบ็อบมีกุญแจสาธารณะ A และ B ตามลำดับ อลิซก็สามารถส่งข้อความ "ฉันคือ A ฉันพบ B" (ลงนามด้วย A) ไปยังหน่วยงานกลาง บ๊อบส่ง "ฉันชื่อบี ฉันเจอเอ" (เซ็นชื่อด้วยบี) หากยังไม่เพียงพอ โปรดอธิบายว่าทำไมวิธีง่ายๆ นี้ถึงไม่ตอบสนองความต้องการของคุณ หากคุณต้องการระบุว่าพวกเขาพบกันในเวลาใดเวลาหนึ่ง เพียงขอให้ทั้งคู่รวมการประทับเวลานั้นในข้อความ หรือคุณสามารถใส่หมายเลขลำดับเพื่อให้แต่ละคนสามารถระบุได้ว่าพบกันเป็นครั้งที่ $n$
JMC avatar
br flag
JMC
@knaccc ฉันคิดว่าเพื่อพิสูจน์ว่าพวกเขาเป็น A/B จริงๆ พวกเขาจำเป็นต้องพิสูจน์ว่าสามารถลงชื่อในข้อความที่ไม่รู้จักก่อนหน้านี้ได้ ไม่เช่นนั้นใครก็ตามที่เคยสอดแนมข้อความดังกล่าวก็สามารถส่งซ้ำในภายหลังเพื่อแสร้งทำเป็น A หรือ B เมื่อพบกันแล้ว เพราะผู้โจมตีรายนี้รู้จักคู่เคลียร์เท็กซ์/ชิฟฟรีนี้
knaccc avatar
es flag
เมื่ออลิซลงนามในข้อความ "ฉันเป็น A ฉันพบ B" หน่วยงานกลางจะตรวจสอบว่าลายเซ็นนั้นสามารถลงนามได้ก็ต่อเมื่อมีความรู้เรื่องคีย์ส่วนตัวที่สอดคล้องกับคีย์สาธารณะ A เท่านั้น หากมัลลอรี่เซ็นข้อความว่า "ฉันคือ A , ฉันได้พบกับ B" เขาทำได้ด้วยรหัสสาธารณะ M เท่านั้น เพราะเขาไม่รู้จักรหัสส่วนตัวของอลิซ ดังนั้นลายเซ็นใด ๆ ที่สร้างโดย Mallory จะไม่ตรวจสอบกับรหัสสาธารณะ Aหากคุณกังวลเกี่ยวกับการโจมตีซ้ำ ซึ่งมัลลอรี่อาจแสร้งทำเป็นว่า A และ B พบกันเป็นครั้งที่สอง ให้ใส่หมายเลขลำดับหรือการประทับเวลาในข้อความเพื่อไม่ให้ใช้ซ้ำได้

โพสต์คำตอบ

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