Marvin Attack การโจมตีแบบแคร็ก RSA ตามเวลา

มาวินโจมตี

Marvin คือการกลับมาของช่องโหว่อายุ 25 ปีที่อนุญาตให้ดำเนินการลงนามและถอดรหัส RSA

ในระหว่างการประชุม ESORICS 2023 (European Symposium on Computer Security Research) ซึ่งจัดขึ้นระหว่างวันที่ 25-29 กันยายนในประเทศเนเธอร์แลนด์นักวิจัยด้านความปลอดภัยจาก Red Hat ได้นำเสนอ "Marvin Attack" ซึ่ง เป็นเทคนิคการโจมตี ที่ช่วยให้สามารถระบุข้อมูลต้นฉบับได้โดยการวัดความล่าช้าในระหว่าง การถอดรหัส โดยใช้ขั้นตอนวิธี RSA

การโจมตีแบบ Marvin Attack เป็นรูปแบบหนึ่งของวิธีการ Bleichenbacher ซึ่งเสนอขึ้นในปี 1998และเป็นการต่อยอดจากการโจมตีแบบ ROBOT และ New CAT ที่เผยแพร่ในปี 2017 และ 2019

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

ในปี 1998 Daniel Bleichenbacher ค้นพบว่าข้อความแสดงข้อผิดพลาดที่เซิร์ฟเวอร์ SSL มอบให้สำหรับข้อผิดพลาดใน PKCS #1 v1.5 padding ทำให้สามารถโจมตีข้อความไซเฟอร์เท็กซ์ที่เลือกได้ การโจมตีนี้จะทำลายการรักษาความลับของ TLS โดยสิ้นเชิงเมื่อใช้กับการเข้ารหัส RSA ในปี 2018 Hanno Böck, Juraj Somorovsky และ Craig Young แสดงให้เห็น 19 ปีต่อมาว่าเซิร์ฟเวอร์อินเทอร์เน็ตจำนวนมากยังคงเสี่ยงต่อการโจมตีแบบเดิมเล็กน้อย

โดยพื้นฐานแล้ว วิธีการนี้เกี่ยวข้องกับผู้โจมตีที่สามารถแยกแยะบล็อก Oracle ที่ถูกต้องและไม่ถูกต้อง ซึ่งเพิ่มเข้ามาโดยใช้มาตรฐาน PKCS #1 v1.5 เพื่อจัดเรียงข้อมูลที่เข้ารหัสตามขอบเขตของบล็อก โดยอาศัยการ ตอบสนองและเวลาในการประมวลผลของเซิร์ฟเวอร์ที่แตกต่างกัน ด้วยการจัดการข้อมูลเกี่ยวกับความถูกต้องของบล็อกที่เติม ผู้โจมตีสามารถใช้การโจมตีแบบเดาสุ่ม (brute force) เพื่อสร้างข้อความที่เข้ารหัสที่ถูกต้องขึ้นมาใหม่ได้

ในกรณีนี้ การโจมตีไม่ได้กู้คืนกุญแจส่วนตัวโดยตรง แต่เป็นการถอดรหัสข้อความที่เข้ารหัสหรือสร้างข้อความลงนามปลอมขึ้นมาเท่านั้น ในการโจมตีให้สำเร็จ จำเป็นต้องส่งข้อความทดสอบจำนวนมากเพื่อทำการถอดรหัส

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

นอกจากนี้วิธีการนี้ยังอนุญาตให้สร้างลายเซ็นดิจิทัลปลอมที่ใช้ตรวจสอบเนื้อหาของข้อความ ServerKeyExchange ใน TLS 1.2 หรือข้อความ CertificateVerify ใน TLS 1.3 ที่ส่งระหว่างขั้นตอนการแลกเปลี่ยนคีย์ ซึ่งสามารถนำไปใช้ในการโจมตีแบบ MITM เพื่อดักจับการเชื่อมต่อ TLS ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ได้

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

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

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

ผู้เขียนการศึกษายังเชื่อว่าระดับของช่องโหว่ที่พิจารณาไม่ได้จำกัดอยู่เพียง RSA และอาจส่งผลกระทบต่ออัลกอริธึมการเข้ารหัสอื่น ๆ อีกมากมายที่ขึ้นอยู่กับไลบรารีมาตรฐานสำหรับการคำนวณจำนวนเต็ม

เพื่อยืนยันความเป็นไปได้ในการดำเนินการโจมตี Marvin ในทางปฏิบัติ นักวิจัยได้สาธิตการบังคับใช้วิธีการกับแอปพลิเคชันโดยอิงจากไลบรารี M2Crypto และ pyca/cryptography ซึ่งใช้เวลาไม่กี่ชั่วโมงก็เพียงพอที่จะทำลายการเข้ารหัสโดยทำการทดลองกับ แล็ปท็อปโดยเฉลี่ย

สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google