Score:1

X3DH และการแลกเปลี่ยนคีย์ระหว่างรหัสประจำตัวของ Alice และรหัสที่ลงนามล่วงหน้าของ Bob (DH1)

ธง in

ฉันเริ่มคุ้นเคยกับการแลกเปลี่ยนคีย์ Signal และเท่าที่ฉันเข้าใจการแลกเปลี่ยนทั้ง 3 รายการระหว่างคีย์ชั่วคราวของ Alice และคีย์ Bob ทั้งหมดจากบันเดิล ฉันมีความคิดบางอย่างเกี่ยวกับการแลกเปลี่ยนคีย์ระหว่าง รหัสประจำตัวของอลิซ และ คีย์ที่ลงนามล่วงหน้าของ Bob.

ฉันทราบดีว่านี่คือการตรวจสอบสิทธิ์ของอลิซและยืนยันว่าเธอมีคีย์ส่วนตัวประจำตัว แต่การแลกเปลี่ยนนี้อาจถูกแทนที่ด้วยหนึ่งใน:

  1. รหัสประจำตัวของอลิซ <-> รหัสประจำตัวของ Bob
  2. รหัสประจำตัวของอลิซ <-> รหัส Bob เพียงครั้งเดียว
fgrieu avatar
ng flag
โปรโตคอลที่กล่าวถึงไม่เป็นที่รู้จักอย่างกว้างขวาง ดังนั้น ลิงก์ไปยังคำอธิบายที่ใช้เป็นข้อมูลอ้างอิงจะช่วยได้
Score:2
ธง us

หากบางสิ่งในโปรโตคอล Signal ดูน่าประหลาดใจ สาเหตุที่เป็นเช่นนั้นอาจเกี่ยวข้องกับการประนีประนอมคีย์ สิ่งสำคัญที่ต้องจำไว้คือข้อเท็จจริงที่ว่า "รหัสประจำตัว" เป็นความลับระยะยาว

สมมติว่าอลิซมีกุญแจระยะยาว $a^*$ และบ๊อบมีกุญแจระยะยาว $ข^*$ด้วยคีย์สาธารณะที่เกี่ยวข้อง $g^{a^*}$ และ $g^{b^*}$. พวกเขาสามารถทำข้อตกลงคีย์ DH ตามปกติกับคีย์ระยะยาวเหล่านี้ได้ และยอมรับความลับ $g^{a^*b^*}$ และดำเนินการแลกเปลี่ยนข้อความที่เข้ารหัส แต่เราใส่ใจ การประนีประนอมของคีย์ระยะยาว หากกุญแจระยะยาวของอลิซ $a^*$ ถูกบุกรุกในเวลาต่อมา จากนั้น ผู้โจมตีสามารถประมวลผลได้ $g^{a^*b^*}$ และละเมิดความเป็นส่วนตัวของข้อความที่เข้ารหัส (ใน ทั้งหมด ของความสัมพันธ์ของอลิซ!)

หากคุณคุ้นเคยกับ Signal คุณอาจรู้ว่า Signal ฟื้นตัวจากการประนีประนอมคีย์ในสถานการณ์ปกติได้อย่างไร เราใช้ "วงล้ออสมมาตรต่อเนื่อง" อลิสส่งใหม่/สด $g^{a_i}$ กับทุกข้อความ และ Bob ก็ส่งข้อความใหม่ $g^{b_j}$ กับทุกข้อความ พวกเขาสามารถใช้ล่าสุดได้ตลอดเวลา $g^{a_i}$ และ $g^{b_j}$ เพื่อรับคีย์ที่ใช้ร่วมกันในปัจจุบัน $g^{a_i b_j}$.

จุดสำคัญที่นี่คือว่า $a_i$ และ $b_j$ กุญแจคือ ชั่วคราว. อลิซสลัดทิ้งได้ $a_i$ หลังจากที่บ๊อบรับทราบว่าเขาเปลี่ยนไปใช้ $g^{ a_{i+1}}$. หากผู้โจมตีประนีประนอมอลิซในเวลา $t$ผู้โจมตีนี้เรียนรู้เท่านั้น $a_t$. หลังจากนั้นไม่นาน Alice และ Bob จะหยุดใช้ $a_t$ และเริ่มใช้งาน $a_{t+1}$และผู้โจมตีจะหยุดไม่สามารถอ่านข้อความของพวกเขาได้

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

นี่คือวิธีที่ฉันชอบคิด X3DH คิดว่ารหัสประจำตัวระยะยาวเป็น $a_0$ และ $b_0$. คู่สัญญาสามารถตกลงเรื่องคีย์ได้ $g^{a_0 b_0}$. พวกเขายังส่งข้อความถัดไปทันทีในวงล้ออสมมาตร: อลิซส่ง $g^{a_1}$ และบ๊อบส่ง $g^{b_1}$. จากนั้นจะมีข้อตกลงสำคัญที่ให้วงล้อ $g^{a_1 b_0}$ และ $g^{a_0 b_1}$. X3DH รวมข้อตกลงหลักทั้ง 3 นี้เข้าด้วยกัน ที่สำคัญ $a_1$ และ $b_1$ เป็น ในระยะสั้น ความลับ -- เฉพาะสำหรับเซสชั่นนี้ และถูกทิ้งหลังจากวงล้อเคลื่อนผ่านพวกเขา หากเป็นคีย์ระยะยาวเช่น $a_0$ รั่วไหล แม้แต่ข้อความแรกในการเชื่อมต่อก็ได้รับการปกป้อง เนื่องจากฝ่ายต่างๆ $a_1, b_1$.

นี่คือสาระสำคัญของ X3DH ข้อมูลจำเพาะของสัญญาณดูแตกต่างจากที่ฉันอธิบายไว้เล็กน้อย เนื่องจากหนึ่งในเป้าหมายคือการอนุญาตให้ฝ่ายต่าง ๆ สร้างการเชื่อมต่อแบบอะซิงโครนัส ดังนั้นเราจะให้อลิซ (ตัวอย่าง) คำนวณล่วงหน้าและโพสต์ $g^{a_1}$ ล่วงหน้าเป็น "คีย์ล่วงหน้าที่ลงนาม" เมื่อบ็อบต้องการสร้างความสัมพันธ์กับอลิซเป็นครั้งแรก เขาก็ดึงข้อมูล $g^{a_1}$ แล้วส่งของเขา $g^{b_1}$ ถึงเธอ. ในมุมมองของฉันเกี่ยวกับ X3DH $g^{a_1}$ และ $g^{b_1}$ มีบทบาทที่สมมาตร แต่ใน Signal บทบาทของพวกเขาจะไม่เหมือนกันเสียทีเดียว - หนึ่งในนั้นได้รับการคำนวณล่วงหน้า ("พรีคีย์ที่ลงนามแล้ว" ของอลิซ) และอีกอันถูกคำนวณในขณะที่เชื่อมต่อ ("คีย์ชั่วคราว" ของ Bob) ในข้อมูลจำเพาะของสัญญาณ คุณจะเห็นคำศัพท์ต่างๆ ทำลายสิ่งที่ไม่สมมาตรในโปรโตคอล

โพสต์คำตอบ

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