นักวิจัยดึงข้อมูล RSA keys ได้จาก SSH server signing errors

ทีมนักวิจัยจากมหาวิทยาลัยในรัฐแคลิฟอร์เนีย และแมสซาชูเซตส์ ได้แสดงให้เห็นว่าภายใต้เงื่อนไขบางอย่าง ผู้ไม่หวังดีสามารถดึง secret RSA keys จาก errors ที่เกิดขึ้น ซึ่งมาจากความพยายามในการเชื่อมต่อ SSH (secure shell) ที่ไม่สำเร็จ

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

RSA เป็นระบบเข้ารหัสแบบ public key ที่ใช้ใน SSH เพื่อยืนยันตัวตนของผู้ใช้ ระบบนี้ใช้ private key เพื่อถอดรหัสการสื่อสารที่ถูกเข้ารหัสด้วย public key

Exposing hardware errors

บทความที่ตีพิมพ์โดยนักวิจัยจากมหาวิทยาลัย Keegan Ryan, Kaiwen He, Nadia Heninger และ George Arnold Sullivan แสดงให้เห็นว่ามีความเป็นไปได้ที่ผู้โจมตีบนเครือข่ายแบบ จะได้รับ private RSA key จากเซิร์ฟเวอร์ SSH ที่พบข้อผิดพลาดระหว่าง signature computation

นักวิจัยระบุในบทความทางเทคนิคว่า "หากการใช้ CRT-RSA เกิดข้อผิดพลาดระหว่าง signature computation ผู้โจมตีที่เข้าถึง signature นี้ได้ อาจสามารถคาดเดา private key ของผู้เข้าใช้งานได้"

โดย Chinese Remainder Theorem (CRT) จะถูกใช้ร่วมกับอัลกอริทึม RSA เพื่อลดขนาดบิตของ public key และเพิ่มความเร็วในการถอดรหัส

นักวิจัยอธิบายเพิ่มเติมว่า "การโจมตีเหล่านี้ใช้ประโยชน์จากความเป็นจริงที่ว่า หากเกิดข้อผิดพลาดระหว่างการคำนวณ modulo one prime เช่น q ดังนั้นผลลัพธ์ของ signature ไม่ถูกต้อง “s” จะเทียบเท่ากับ signature ที่ถูกต้อง modulo one prime factor p ต่อหนึ่งจำนวนเฉพาะ สำหรับตัวแปร p, แต่ไม่ใช่ q"

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

โดยปัญหานี้เป็นที่ทราบกันดีว่าส่งผลกระทบกับ TLS เวอร์ชันเก่า ซึ่งได้รับการแก้ไขไปแล้วใน TLS 1.3 โดยการเข้ารหัส handshake ที่สร้างการเชื่อมต่อ ซึ่งจะป้องกันผู้ดักข้อมูลแบบ passive จากการอ่าน signatures

ก่อนหน้านี้ SSH ถูกสันนิษฐานว่าปลอดภัยจากการโจมตีลักษณะนี้ แต่ผู้วิจัยได้พิสูจน์แล้วว่าเป็นไปได้ที่จะดึงข้อมูลที่มีความสำคัญของ RSA โดยใช้การโจมตีแบบ lattice-based เพื่อกู้คืน private key จากค่า nonce ที่รู้จักบางส่วน

นักวิจัยระบุว่าการทดสอบของพวกเขาไม่ได้ผลกับ RSA-1024, SHA512 เนื่องจากจำนวนบิตที่ไม่รู้จักใน hash นั้นมากเกินกว่าที่จะสามารถ brute force หรือแก้ด้วย lattice ได้

อย่างไรก็ตามการโจมตีด้วยวิธีการ lattice attack ถือว่ามีประสิทธิภาพมาก เนื่องจากการทดสอบของนักวิจัยมีอัตราความสำเร็จ 100%

โดยใช้การโจมตีแบบ lattice attack นักวิจัยสามารถค้นหา signature ที่ไม่ถูกต้องได้ 4,962 รายการ ซึ่งเปิดเผยการแยกตัวประกอบของ RSA public key ที่สอดคล้องกัน ทำให้สามารถดึง private keys ที่สอดคล้องกับ RSA public keys ที่ไม่ซ้ำกันได้ 189 รายการ

ข้อมูลที่มีความสำคัญที่ถูกดึงมาจากอุปกรณ์ที่มีการนำไปใช้งานที่มีช่องโหว่ โดยจำนวน signature ที่มากที่สุดมาจากอุปกรณ์ของ Zyxel

นักวิจัยได้แจ้งปัญหาที่เกิดขึ้นไปยัง Cisco และ Zyxel ในช่วงต้นปีนี้ และทั้ง 2 บริษัทกำลังทำการตรวจสอบหาสาเหตุของปัญหานี้

Cisco ระบุว่ามีการนำมาตรการป้องกันที่เหมาะสมมาใช้ใน Cisco ASA และ FTD Software เมื่อปีที่แล้ว โดยบริษัทได้แจ้งกับนักวิจัยว่ากำลังหาแนวทางแก้ไขใน Cisco IOS และ IOS XE Software

Zyxel พบว่าเวอร์ชัน firmware ของ ZLD ที่นักวิจัยใช้ในการทดลองได้เปลี่ยนมาใช้ OpenSSL ซึ่งจะลดลงความเสี่ยงได้

ที่มา : bleepingcomputer