Score:0

คีย์ส่วนตัว RSA รั่วไหลได้หรือไม่หากฉันทั้งลงชื่อและถอดรหัส

ธง id

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

ทุกคนรู้ $N$ และ $E$ เพราะเป็นของสาธารณะ

เซิร์ฟเวอร์ของฉันออกแบบมาเพื่อถอดรหัสคำขอที่เข้ามาซึ่งเข้ารหัสด้วยรหัสสาธารณะ

ทำเครื่องหมายและสำหรับข้อมูลที่ถอดรหัสซึ่งมี SHA-2 ส่งคืนเครื่องหมาย RSA สำหรับข้อมูลนั้น

เป็นไปได้ไหมที่ผู้โจมตีสามารถเรียนรู้รหัสส่วนตัวของฉันได้

ฉันกำลังทดสอบสิ่งนี้ในเวิร์กช็อปในพื้นที่ของฉันเพื่อวัตถุประสงค์ด้านการศึกษา

ฉันใช้ข้อความเข้ารหัสคีย์สาธารณะ PKCS#1 สำหรับคำขอที่เข้ามา ข้อมูลถูกถอดรหัสโดยคีย์ส่วนตัวของฉันและมี SHA-2 ดังนั้นฉันเพียงแค่เซ็นชื่อและส่งคืนข้อมูลที่เซ็นชื่อกลับไปยังลูกค้า

ตัวอย่างใน Python:

การสร้างคู่ข้อความและคีย์:

ข้อความ = struct.pack('>IIII', 0, 0, 0, 1)
(pub, priv) = rsa.newkeys(512) // ตัวอย่างเช่น ฉันรู้ว่าไม่มีใครใช้ 512 บิต

คำขอที่เข้ามา:

เข้ารหัส = pkcs1.encrypt (ข้อความ ผับ) 

การทำงานของเซิร์ฟเวอร์:

ถอดรหัส = pkcs1.decrypt (เข้ารหัส, ความเป็นส่วนตัว)
ลายเซ็น = pkcs1.sign (ถอดรหัส, priv, 'SHA-256')

และตอบกลับกลับมา

fgrieu avatar
ng flag
การโจมตีช่องทางด้านข้าง (จังหวะเวลา การวิเคราะห์พลัง..) ถูกทิ้งไว้หรือไม่? สันนิษฐานได้หรือไม่ว่าคีย์ส่วนตัว $(N,D)$ ใช้เพื่อคำนวณฟังก์ชัน $X\mapsto X^D\bmod N$ เท่านั้น ถ้าใช่ทั้งสองอย่าง: ไม่มีทางที่คีย์ส่วนตัว (หรือที่ใช้งานได้) จะรั่วไหลได้ แต่บางทีคุณอาจสนใจเซิร์ฟเวอร์ที่ถูกละเมิดเพื่อถอดรหัสหรือเซ็นชื่อ อาจมีการโจมตีที่อนุญาตให้ทำเช่นนั้น อิสระ: โปรดชี้แจง ใช้ "ลายเซ็น" เมื่อหมายถึงชิ้นส่วนของข้อมูล และใช้ "ลายเซ็น" สำหรับการดำเนินการสร้างลายเซ็น แฮชอะไรกับ SHA2 ใช้แล้วได้ผลอย่างไร? การเข้ารหัสและการเซ็นชื่อใช้การเติมหรือไม่
rockymaster avatar
id flag
ฉันได้อัปเดตคำถามของฉันและเพิ่มตัวอย่างด้วย
fgrieu avatar
ng flag
ยังมีพื้นที่อีกมากสำหรับการปรับปรุงรูปแบบ: _"ทำเครื่องหมายและสำหรับข้อมูลที่ถอดรหัสซึ่งมี SHA2 ส่งคืนเครื่องหมาย rsa กลับสำหรับข้อมูลนั้น"_ -> _เซ็นข้อมูลที่ถอดรหัสด้วยการเติมโดยใช้ SHA2 และส่งคืนลายเซ็นที่เกี่ยวข้อง _; รหัส [การจัดรูปแบบ] (https://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks) บางที [Mathjax] (https://crypto.meta.stackexchange.com /a/1070/555). และมันขาดสิ่งสำคัญ: การโจมตีด้วยช่องทางด้านข้าง (จังหวะเวลา การวิเคราะห์พลังงาน..) ใน Python crypto libraries ถือเป็นการโจมตีที่ถูกต้องหรือไม่ สิ่งเหล่านี้สามารถ "รั่วไหลของข้อมูลคีย์ส่วนตัว"
Score:1
ธง ng

จากตัวอย่างจะเห็นว่าการเข้ารหัสและลายเซ็นใช้โหมดการเติมบางอย่างใน พีเคซีเอส#1; มีแนวโน้ม RSAES-PKCS1-v1_5 สำหรับการเข้ารหัสและ RSASSA-PKCS1-v1_5 ด้วย SHA-256 สำหรับลายเซ็น

เป็นไปได้ไหมที่จะรั่วไหลของข้อมูลคีย์ส่วนตัว?

เท่าที่เรารู้, ไม่ไม่สามารถถอดรหัสข้อความและเซ็นชื่อด้วยรหัสเดียวกันได้ ข้อมูลคีย์ส่วนตัวรั่วไหล. ซึ่งเป็นอิสระจากโครงร่างการเติมที่ใช้สำหรับการเข้ารหัสและลายเซ็น: เราไม่รู้ว่าการใช้คีย์ส่วนตัว RSA ใดๆ $(น,ง)$ จำกัด เฉพาะการคำนวณ $x\mapsto x^d\bmod n$ ในกล่องดำที่ไม่มีช่องด้านข้างสามารถ ข้อมูลคีย์ส่วนตัวรั่วไหล.

สิ่งที่คล้ายกันที่อาจเกิดขึ้น:

  • การใช้งานอาจทำให้คีย์ส่วนตัวรั่วไหลโดยช่องทางด้านข้าง เช่นโปรแกรมโทรจันที่ทำงานบนแพลตฟอร์ม หรือ การวิเคราะห์พลังงานเชิงอนุพันธ์. มีช่องด้านข้างอื่น ๆ อีกมากมายที่ต้องกลัว
  • การใช้การถอดรหัส RSAES-PKCS1-v1_5 อาจเป็นหนึ่งใน หลายคนที่เสี่ยงต่อการโจมตี Bleichenbacher บางรูปแบบ. นั่นอาจทำให้เปลี่ยนเซิร์ฟเวอร์เป็นออราเคิลที่อนุญาต (พร้อมแบบสอบถามเพียงพอ) คำนวณฟังก์ชัน $x\mapsto x^d\bmod n$ สำหรับพล $x$ให้เทียบเท่า (ช้ามาก) กับการรู้รหัสส่วนตัวแก่ผู้โจมตีที่สามารถสื่อสารกับเซิร์ฟเวอร์

ไม่ถูกต้องทางวิชาการที่จะใช้คู่คีย์สาธารณะ/ส่วนตัวเดียวกันสำหรับการเข้ารหัสและลายเซ็น แต่ด้วยโหมดการเข้ารหัสและลายเซ็นสี่โหมดใน พีเคซีเอส#1 มันไม่ได้เปิดใช้งานการโจมตีใด ๆ ที่รู้จัก การเชื่อมโยงที่อ่อนแอที่สุดในห่วงโซ่ความปลอดภัยคือ

  • ฟังก์ชันการทำงานที่ยอดเยี่ยมของเซิร์ฟเวอร์: ช่วยให้สามารถรับลายเซ็นของสิ่งใดก็ตามที่เหมาะกับข้อจำกัดขนาดสำหรับการเข้ารหัส (117 ไบต์)
  • โมดูลัส 512 บิต ซึ่งสามารถแยกตัวประกอบได้ (เป็นไปได้แล้วในศตวรรษที่ 20)
  • การใช้การถอดรหัส RSAES-PKCS1-v1_5 บนข้อความเข้ารหัสที่ไม่ผ่านการรับรองความถูกต้องจากการเปิด

โพสต์คำตอบ

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