Minerva: ชุดของช่องโหว่ในการใช้งาน ECDSA / EdDSA

Minerva

นักวิจัยจากมหาวิทยาลัย Masaryk เปิดเผยข้อมูล สำคัญ เกี่ยวกับช่องโหว่ใน ต่างๆ iการใช้อัลกอริธึมการสร้างลายเซ็นดิจิทัล ECDSA / EdDSA ที่อนุญาตให้กู้คืนค่าของคีย์ส่วนตัวจากการวิเคราะห์การรั่วไหลของข้อมูลในแต่ละบิตที่ปรากฏขึ้นเมื่อใช้วิธีการวิเคราะห์ผ่านช่องทางของบุคคลที่สาม ช่องโหว่นี้มีชื่อรหัสว่า Minerva

โครงการที่มีชื่อเสียงที่สุด ที่มีผลต่อ วิธีการโจมตีที่เสนอคือ OpenJDK, ออราเคิล JDK (CVE-2019-2894) และห้องสมุด libgcrypt (CVE-2019-13627) ที่ใช้ใน GnuPG ปัญหาคือ ยังอ่อนแอสำหรับห้องสมุด MatrixSSL, Crypto ++, wolfCrypt, รูปไข่, jsrsasign, Python-ECDSA, ruby_ecdsa, fastecdsa และสมาร์ทการ์ดบางตัว Athena IDProtect, TecSec Armored Card, SafeNet eToken 4300, S / A IDflex V. ที่ถูกต้อง

นอกเหนือจากช่องโหว่ที่กล่าวถึงในขณะนี้ยังไม่ได้รับผลกระทบ OpenSSL, Botan, mbedTLS และ BoringSSL Mozilla NSS, LibreSSL, Nettle, BearSSL, cryptlib, OpenSSL ในโหมด FIPS Microsoft .NET crypto, Linux kernel libkcapi, Sodium และ GnuTLS ยังไม่ได้รับการทดสอบ

เราพบการใช้งานที่สูญเสียความยาวบิตของสเกลาร์ระหว่างการคูณสเกลาร์ใน ECC การรั่วไหลนี้อาจดูเหมือนเล็กน้อยเนื่องจากความยาวบิตมีข้อมูลจำนวนน้อยมากที่มีอยู่ในสเกลาร์ อย่างไรก็ตามในกรณีของการสร้างลายเซ็น ECDSA / EdDSA การกรองความยาวบิตของ nonce แบบสุ่มนั้นเพียงพอสำหรับการกู้คืนคีย์ส่วนตัวที่ใช้หลังจากสังเกตลายเซ็นสองสามร้อยถึงสองสามพันลายเซ็นในข้อความที่รู้จักเนื่องจากการประยุกต์ใช้ เทคนิคบางอย่าง

เราเชื่อว่าการ์ดก่อนหน้าทั้งหมดได้รับผลกระทบเนื่องจากใช้ส่วนประกอบ ECDSA ร่วมกัน (โมดูล FIPS 214) ซึ่งอธิบายไว้ว่า Athena OS2 ECDSA755 Component ใน Inside Secure AT90SC A1.0 (เฟิร์มแวร์) เราได้ทดสอบช่องโหว่บนการ์ด Athena IDProtect ด้วยข้อมูล CPLC และ ATR เท่านั้น

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

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

แม้จะมีขนาดเล็กของการรั่วไหลสำหรับ ECDSA การกำหนดข้อมูลเกี่ยวกับเวกเตอร์การเริ่มต้น (nonce) เพียงไม่กี่บิตก็เพียงพอที่จะดำเนินการโจมตีเพื่อเรียกคืนคีย์ส่วนตัวที่สมบูรณ์ตามลำดับ

ตามที่ผู้เขียนวิธีการ สำหรับการกู้คืนคีย์ที่ประสบความสำเร็จการวิเคราะห์ลายเซ็นดิจิทัลที่สร้างขึ้นหลายร้อยถึงหลายพันก็เพียงพอแล้ว สำหรับข้อความที่ผู้โจมตีรู้จัก ตัวอย่างเช่นในการกำหนดคีย์ส่วนตัวที่ใช้ในสมาร์ทการ์ด Athena IDProtect โดยใช้ชิป Inside Secure AT90SC โดยใช้เส้นโค้งวงรี secp256r1 จะมีการวิเคราะห์ลายเซ็นดิจิทัล 11 ลายเซ็น เวลาโจมตีทั้งหมดคือ 30 นาที

รหัสการโจมตีและการพิสูจน์แนวคิดของเราได้รับแรงบันดาลใจจากวิธี Brumley & Tuveri

ปัญหาได้รับการแก้ไขแล้วใน libgcrypt 1.8.5 และ wolfCrypt 4.1.0โครงการอื่น ๆ ยังไม่ได้สร้างการอัปเดต นอกจากนี้ยังสามารถติดตามการแก้ไขช่องโหว่ในแพ็คเกจ libgcrypt ในการแจกแจงบนเพจเหล่านี้: debian, อูบุนตู, RHEL, Fedora, openSUSE / SUSE, FreeBSD, โค้ง.

นักวิจัยยังทดสอบการ์ดและไลบรารีอื่น ๆ ซึ่งสิ่งต่อไปนี้ไม่มีช่องโหว่:

  • โอเพ่น SSL 1.1.1d
  • ปราสาทเด้ง 1.58
  • BoringSSL 974f4dddf
  • libtomcrypt 1.18.2
  • โบตั๋น 2.11.0
  • ไมโครซอฟต์ ซีเอ็นจี
  • mbedTLS 2.16.0
  • Intel IPP-Crypto

การ์ด

  • DHW ACOSJ 40K
  • เฟยเทียน A22CR
  • G&D SmartCafe 6.0
  • G&D SmartCafe 7.0
  • อินฟิเนียน CJTOP 80K INF SLJ 52GLA080AL M8.4
  • Infineon SLE78 สากล JCard
  • NXP JCOP31 เวอร์ชัน 2.4.1
  • NXP เจคอป CJ2A081
  • NXP JCOP เวอร์ชัน 2.4.2 R2
  • NXP JCOP เวอร์ชัน 2.4.2 R3
  • SIMOME TaiSYS ห้องนิรภัย

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา