Score:1

เป็นไปได้เพียงใดที่จะเดารหัสส่วนตัวของ libsodium โดยคำนึงถึงเวลาในการสร้าง

ธง us

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

แล้วอัลกอริทึมอื่น ๆ เป็นไปได้อย่างไรโดยทั่วไป?

kelalaka avatar
in flag
คุณกำลังถามเกี่ยวกับการโจมตีเวลาในการคูณสเกลาร์หรือไม่?
Hormoz avatar
us flag
มากหรือน้อยอย่างนั้น
kelalaka avatar
in flag
Curve25519 ใช้บันได Montgomery และนั่นคือการจู่โจมโดยธรรมชาติ
kelalaka avatar
in flag
นอกจากนี้ โปรดทราบว่าหากใช้การสร้างคีย์บนพีซีของคุณ การโจมตีด้วยจังหวะเวลาจะเป็นสิ่งที่คุณกังวลน้อยที่สุด หากอยู่บนคลาวด์ จะเป็นไปได้ก็ต่อเมื่อผู้โจมตีสามารถระบุตำแหน่งเซิร์ฟเวอร์ **ที่ใช้ร่วมกัน* ของคุณเพื่อใช้การโจมตี ฉันสงสัยว่าใครใช้เซิร์ฟเวอร์ที่ใช้ร่วมกันในแอปพลิเคชันที่สำคัญของพวกเขา!
Score:0

สมมติว่าคุณกำลังทำสิ่งนี้ในเครื่อง (เพื่อไม่ให้สัญญาณรบกวนเครือข่าย) และทราบรายละเอียดเฉพาะของโปรเซสเซอร์ของคุณด้วย

ตกลง. นี่เป็นรูปแบบการโจมตีที่น่าเชื่อถือ ตัวอย่างเช่น หากผู้โจมตีเรียกใช้โฆษณา JavaScript ในเบราว์เซอร์ของคุณ หรือมีเครื่องเสมือนที่อยู่บนคลาวด์เดียวกัน

เป็นไปได้หรือไม่ที่จะค้นหาคีย์ส่วนตัว (ในขณะที่เข้าถึงคีย์สาธารณะ) ที่สร้างโดย libsodium ตามเวลาที่ใช้ในการสร้างคู่คีย์

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

อัลกอริธึมการสร้างแบบสุ่มบางประเภทใช้สิ่งดั้งเดิมที่ไวต่อช่องทางด้านเวลา โดยเฉพาะอย่างยิ่ง CTR_DRBG อาศัย AES ซึ่งเสี่ยงต่อการถูกโจมตีด้วยเวลาแคชหากนำไปใช้ในซอฟต์แวร์ด้วยวิธีที่รวดเร็วไร้เดียงสา CTR_DRBG หมุนคีย์ AES บ่อยมาก ซึ่งทำให้ค่อนข้างเสี่ยงน้อยกว่าในสถานการณ์ที่ฝ่ายตรงข้ามสามารถสังเกตการเข้ารหัสด้วยคีย์ AES เดียวกัน อย่างไรก็ตาม, การโจมตีดังกล่าวสามารถนำไปใช้ได้จริง อย่างน้อยก็ในสภาวะที่เหมาะสม.

ด้วยอัลกอริทึม DRBG ที่เป็นที่นิยมอื่นๆ (เช่น Hash_DRBG หรือ HMAC_DRBG) ด้วยการใช้งาน AES ที่ไม่ใช่ตาราง (เช่นใช้การเร่งฮาร์ดแวร์ เช่น AES-NI หรือการใช้การแบ่งบิตในซอฟต์แวร์) หรือถ้า DRBG อ่านเอนโทรปีบ่อยพอ (ซึ่งเป็นไปได้ในฮาร์ดแวร์สมัยใหม่ที่มี TRNG เฉพาะ เช่น RDRAND บนโปรเซสเซอร์ Intel หรือเทียบเท่าบนสมาร์ทโฟนต่างๆ โปรเซสเซอร์) การโจมตีตามเวลาบน RNG ไม่ใช่เรื่องที่ต้องกังวล

สิ่งที่อาจมีความเสี่ยงมากกว่าคือการคำนวณคีย์สาธารณะจากคีย์ส่วนตัว Curve25519 ทำให้การนำเลขคณิตไปใช้ค่อนข้างง่ายโดยไม่ต้องใช้แชนเนลด้านเวลา แต่ก็ไม่ได้กำหนดไว้

แล้วอัลกอริทึมอื่น ๆ เป็นไปได้อย่างไรโดยทั่วไป?

ด้วยเส้นโค้งวงรี Weierstrass และด้วยฟิลด์จำกัด Diffie-Hellman ไพรเวตคีย์คือตัวเลขระหว่าง $2$ และ $P-2$. นอกเหนือจากการโจมตี RNG ตามที่กล่าวไว้ก่อนหน้านี้ การนำกระบวนการสร้างคีย์ไปใช้ตามธรรมชาตินั้นไม่ไวต่อการโจมตีแบบกำหนดเวลา อย่างไรก็ตามการคำนวณคีย์สาธารณะ เป็น เสี่ยงต่อการถูกโจมตีตามเวลาหากดำเนินการโดยไม่มีการป้องกัน

ด้วย RSA การสร้างคีย์เป็นกระบวนการที่ซับซ้อนซึ่งเกี่ยวข้องกับการทดสอบเบื้องต้น (หลอก) และการคำนวณทางคณิตศาสตร์เพิ่มเติมที่อาจเสี่ยงต่อการถูกโจมตีด้วยเวลา โดยเฉพาะในทางปฏิบัติดูเหมือนว่า ขั้นตอนที่เสี่ยงต่อการรั่วไหลมากที่สุดคือการคำนวณ GCD ทำเพื่อตรวจสอบว่า $p-1$ และ $q-1$ อยู่ร่วมกับผู้นำสาธารณะ

โพสต์คำตอบ

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