Score:2

การแลกเปลี่ยนคีย์ RSA ได้รับการป้องกันการปลอมแปลงอย่างไร

ธง ec

รหัสสาธารณะถูกกำหนดโดย (ไม่มี, อี) ที่ไหน เอ็น เป็นผลคูณของจำนวนเฉพาะขนาดใหญ่สองตัวและ อี ถูกเลือกเช่นนั้น ed = 1 (mod phi(N)) ที่ไหน พี(N) เป็นฟังก์ชัน totient ของออยเลอร์ อี เป็นเลขชี้กำลังการเข้ารหัสและ เป็นเลขชี้กำลังการถอดรหัส

สมมติ x เป็นคีย์สมมาตรซึ่งเข้ารหัสเป็น c = x^e ม็อด(N). การดัดแปลงข้อความเข้ารหัสนี้เป็นอย่างไร ป้องกัน?

kelalaka avatar
in flag
นี่คือ RSA แบบเรียนที่เราไม่ได้ใช้ เรามีช่องว่างภายใน เช่น PKCS#5v.1.5 และ OAEP สำหรับการเข้ารหัส และช่องว่างภายใน PSS สำหรับลายเซ็น ให้ฉันหาคุณเป็นคนหลอกลวง **การปลอมแปลงหมายความว่าอย่างไร** [RSA OAEP is Ind-CPA secure](https://crypto.stackexchange.com/q/35171/18298) หากคุณกำลังพูดถึงความซื่อสัตย์ คุณต้องมี MAC และ [อย่างน้อยการโจมตีเหล่านี้ก็เป็นไปได้ในตำรา RSA](https://crypto.stackexchange.com/q/20085/18298) ที่ช่องว่างภายในป้องกัน แต่ช่องว่างภายในไม่ครอบคลุมการโจมตีช่องทางด้านข้าง
Abhisek Dash avatar
ec flag
ฉันหมายถึงความซื่อสัตย์ MAC ถูกนำไปใช้กับ RSA อย่างไร ฉันทราบถึงการใช้งาน MAC ในกรณีของการเข้ารหัสแบบสมมาตร แต่ไม่สามารถจินตนาการได้ว่า MAC จะดำเนินการอย่างไรในบริบทของ RSA และการเข้ารหัสแบบอสมมาตรโดยทั่วไป
kelalaka avatar
in flag
เข้ารหัสแล้ว-MACคำถามของคุณนั้นหลอกลวง [เราควรเข้ารหัส MAC-then-encrypt หรือเข้ารหัส-then-MAC หรือไม่](https://crypto.stackexchange.com/q/202/18298) และเราไม่ได้ใช้ RSA สำหรับการเข้ารหัสด้วยซ้ำ แม้ว่าจะปลอดภัยด้วยการบุนวมที่เหมาะสมก็ตาม เราใช้การเข้ารหัสแบบไฮบริด... **คุณพยายามทำอะไรให้สำเร็จ**
kelalaka avatar
in flag
และหากไม่มีช่องว่างภายในที่เหมาะสม คุณจะไม่สามารถป้องกัน RSA แบบเรียนจากการโจมตีได้
Abhisek Dash avatar
ec flag
ในการเข้ารหัสแบบสมมาตร ความสมบูรณ์ของข้อความได้รับการปกป้องโดยโครงร่างที่คุณอธิบายไว้ในความคิดเห็นก่อนหน้า ดังนั้น สมมติว่าฉันไม่ได้ใช้ RSA แบบเรียนและฉันใช้รูปแบบช่องว่างภายในที่เหมาะสม ซึ่งจะป้องกันไม่ให้ผู้โจมตีเปลี่ยนข้อความเข้ารหัสที่ซ้อนไว้ มีบางอย่างภายในรูปแบบการเติมที่ป้องกันการยุ่งเกี่ยวกับไซเฟอร์เท็กซ์หรือไม่?
kelalaka avatar
in flag
ดู [PKCS 1.5 แก้ปัญหาความไม่ปลอดภัยของ Textbook RSA ได้อย่างไร](https://crypto.stackexchange.com/q/66722/18298)
Abhisek Dash avatar
ec flag
ลิงก์นี้อธิบายวิธีการที่ใช้ในการโจมตี RSA เช่น การโจมตีของ Bleichenbacher สมมติว่าผู้โจมตีไม่ต้องการดึงคีย์สมมาตร สิ่งที่พวกเขาต้องการทำคือรบกวนการสื่อสาร ดังนั้นผู้โจมตีสามารถเปลี่ยนไซเฟอร์เท็กซ์ที่บุนวมได้ หลังจากถอดรหัสและลบช่องว่างภายในแล้ว ปลายทางอื่นจะได้รับข้อความ/คีย์ที่ไม่ถูกต้อง เนื่องจากข้อความเข้ารหัสถูกแก้ไข ผู้รับจะรู้ได้อย่างไรว่าข้อความเข้ารหัสถูกดัดแปลง? ในกรณีของการเข้ารหัสแบบสมมาตร สามารถจัดการได้โดยการเข้ารหัสแฮชของข้อความด้วยคีย์สมมาตร กลไกที่นี่คืออะไร?
kelalaka avatar
in flag
ไม่ชัดเจนว่าโครงสร้างการเติมจะล้มเหลวคล้ายกับความล้มเหลวของ MAC หรือไม่
Score:2
ธง in

ตามที่ระบุไว้ในความคิดเห็นด้านล่างคำถาม โดยทั่วไปแล้ว RSA จะไม่ถูกใช้เป็นการยกกำลังแบบโมดูลาร์ของคีย์สมมาตร แทน คีย์ถูกเข้ารหัสโดยใช้การเติม PKCS#1 v1.5 หรือ - โดยเฉพาะอย่างยิ่ง - OAEP หรือความลับที่ใช้ร่วมกันที่มีค่าสุ่มในช่วง $\big[0, N\big)$ ใช้สำหรับการยกกำลังแบบโมดูลาร์ ในกรณีหลัง คีย์จริงจะได้รับมาโดยใช้ KDF (ฟังก์ชันการสืบทอดคีย์) บางครั้งเรียกง่ายๆ ว่า "PRF" (ดูเช่น TLS 1.2) สิ่งนี้เรียกว่า RSA-KEM

โดยพื้นฐานแล้วมีสองวิธีที่สามารถหลีกเลี่ยงการโจมตีคีย์ผ่านการโจมตีแบบแทรกคนกลาง (MitM) ได้:

  1. สร้างความเชื่อถือในคีย์สาธารณะ RSA;
  2. การตรวจสอบความลับที่ใช้ร่วมกันและ/หรือคีย์ที่ได้รับ

หากคุณแชร์ล่วงหน้าและเชื่อถือคีย์สาธารณะของคู่คีย์แบบคงที่ คุณจะต้องมีการแลกเปลี่ยนคีย์แบบคงที่ นั่นคือคีย์สาธารณะนั้นเชื่อถือได้ แต่คุณจะไม่ให้การรักษาความปลอดภัยแบบส่งต่อ นั่นหมายความว่าสามารถคำนวณคีย์สมมาตรทุกคีย์ที่ตามมาได้หากฝ่ายตรงข้ามรู้จักคีย์ส่วนตัว

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


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

ในการตรวจสอบความลับที่ใช้ร่วมกันอย่างชัดแจ้ง ฝ่ายที่ถอดรหัสคีย์จะใช้รหัสนั้นเพื่อสร้าง MAC บนข้อมูลคงที่ที่ทั้งสองฝ่ายรู้จักและส่ง MAC ขณะนี้ฝ่ายนั้นสามารถมั่นใจได้ว่ามีการสร้างคีย์สมมาตรที่ถูกต้องแล้ว

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


แน่นอน เฉพาะฝ่ายที่คีย์สาธารณะเชื่อถือได้เท่านั้นที่ได้รับการรับรองความถูกต้อง ในทำนองเดียวกัน หาก MAC ใด ๆ ได้รับการตรวจสอบ แสดงว่าฝ่ายที่ถือคีย์ส่วนตัวสามารถถอดรหัสได้เท่านั้น ดังนั้นหากคุณต้องการการรับรองความถูกต้องของฝ่ายที่เหลือ คุณต้องจัดการแยกต่างหาก

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

การรับรองความถูกต้องของไคลเอ็นต์ TLS แทบจะไม่เคยใช้เลย แต่จะถูกแทนที่ด้วยกรอบการรับรองความถูกต้องหรือการพิสูจน์ตัวตนด้วยรหัสผ่าน หรือไม่ระบุตัวตนของลูกค้าเลย - จนกว่าจะทำการซื้อ


โปรดทราบว่าการรับรองความถูกต้องของคีย์ที่สร้างโดยใช้การสร้างคีย์ RSA นั้นไม่แตกต่างจากการสร้างคีย์ด้วย ตัวอย่างเช่น Diffie-Hellman แม้ว่าจะมีคู่คีย์สองคู่ที่ต้องพิจารณาสำหรับคีย์หลัง ในที่สุดก็สามารถใช้เทคนิคแบบเดียวกันได้

Abhisek Dash avatar
ec flag
ลองนึกภาพสถานการณ์ต่อไปนี้ เซิร์ฟเวอร์ส่งรหัสสาธารณะไปยังไคลเอนต์ ลูกค้ายืนยันความถูกต้องโดยใช้ PKI ไคลเอ็นต์เข้ารหัสคีย์สมมาตรโดยใช้คีย์สาธารณะโดยใช้ PKCS v1.5 คนที่อยู่ตรงกลางสกัดแพ็กเก็ตนี้และเข้ารหัสคีย์สมมาตรของตัวเองโดยใช้คีย์สาธารณะของเซิร์ฟเวอร์ สิ่งนี้จะทำให้เกิดปัญหาหรือไม่?
Maarten Bodewes avatar
in flag
ใช่ความคิดเห็นที่ดี จริงๆแล้วสิ่งนี้สามารถเกิดขึ้นได้เช่น เว็บเบราว์เซอร์ด้วย ประเด็นคือไคลเอนต์มักจะไม่ผ่านการรับรองความถูกต้อง (การตรวจสอบไคลเอ็นต์ TLS ไม่ใช่เรื่องปกติ) โดยปกติแล้วจะไม่เป็นปัญหาหากอีกฝ่ายเป็นเช่น เว็บช็อป: ลูกค้าตรวจสอบสิทธิ์โดยใช้ชื่อผู้ใช้/รหัสผ่านหากมีบัญชี (ผ่านการเชื่อมต่อที่ปลอดภัยอย่างอื่น) และ/หรือให้ข้อมูลระหว่างชำระเงิน ฉันจะปรับคำตอบในภายหลังเพื่อระบุว่าต้องมีการสร้างความไว้วางใจให้กับฝ่ายใดฝ่ายหนึ่ง แต่แน่นอนว่าอย่างน้อยสำหรับฝ่ายที่แบ่งปันรหัสสาธารณะ
Abhisek Dash avatar
ec flag
ฉันคิดว่าฉันเข้าใจแล้ว ข้อกังวลของฉันคือจะเกิดอะไรขึ้นถ้าผู้ชายที่อยู่ตรงกลางยุ่งเกี่ยวกับไซเฟอร์เท็กซ์ PKCS v1.5 ซึ่งมีคีย์สมมาตร แต่หลังจากการถอดรหัส ข้อความธรรมดาอาจไม่สอดคล้องกับ PKCS v1.5 สมมติว่าเป็นการยากที่จะยุ่งเกี่ยวกับข้อความเข้ารหัสในลักษณะที่สอดคล้องกับ PKCS v1.5 หลังจากการถอดรหัส PKCS v1.5 จัดเตรียมรหัสการตรวจสอบข้อความประเภทหนึ่งสำหรับคีย์สมมาตรที่เข้ารหัส ฉันถูกต้องในการสันนิษฐานนี้หรือไม่?
Maarten Bodewes avatar
in flag
ไม่ เนื่องจากผู้โจมตีอาจเข้ารหัสอย่างอื่นด้วยรหัสสาธารณะ ดังนั้น แม้ว่าจะมีความต้านทานการงัดแงะอยู่ - และมีอยู่ - ก็ไม่เป็นไร ผู้โจมตีสามารถแทนที่ไซเฟอร์เท็กซ์ทั้งหมดได้ เป็นไปได้เฉพาะที่จะ *เชื่อถืออีกฝ่ายหนึ่ง* หากพวกเขาปฏิบัติตามขั้นตอนการตรวจสอบสิทธิ์บางประเภท นั่นอาจเป็นการดำเนินการคีย์ส่วนตัวหรือระบุข้อความรหัสผ่านที่กำหนดไว้ก่อนหน้านี้

โพสต์คำตอบ

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