ช่องโหว่ DROWN เปิดทางให้แฮกเกอร์ถอดรหัสการเชื่อมต่อ TLS ในเซิร์ฟเวอร์ที่รับ SSLv2

TLS

ทีมวิจัยรายงานการโจมตี DROWN ที่สามารถถอดรหัสการเชื่อมต่อ TLS รุ่นใหม่ๆ (ทดสอบใน TLS 1.2) ได้สำเร็จ โดยกระบวนการนี้มีแม้จะอันตรายมากแต่ก็มีเงื่อนไขหลายอย่าง ได้แก่

  • แฮกเกอร์ต้องดักฟังการเชื่อมต่อ TLS ที่จะโจมตีไว้ล่วงหน้า ประมาณ 1,000 การเชื่อมต่อ (ไม่นับการใช้การเชื่อมต่อ TLS ซ้ำ)
  • เซิร์ฟเวอร์ต้องรองรับ SSLv2 โดยใช้ใบรับรองใบเดียวกับที่ใช้ TLS
  • แฮกเกอร์ต้องสามารถเชื่อมต่อ SSLv2 ได้จำนวนมากๆ ประมาณ 40,000 ครั้ง
    เซิร์ฟเวอร์ SSLv2 จะต้องรองรับการเชื่อมต่อที่อ่อนแอ (export grade)

แฮกเกอร์มีพลังประมวลผลเหลือเฟือ สามารถคำนวณหากุญแจความซับซ้อนระดับ 2^50 ได้ ค่าใช้จ่ายใน EC2 ประมาณ 440 ดอลลาร์

ทีมวิจัยอาศัยช่องโหว่ padding oracle ของ SSLv2 เพื่อคำนวณหาค่าที่จำเป็นจากการเชื่อมต่อ SSLv2 จำนวนมาก แล้วใช้ค่าเหล่านั้นมาถอดรหัสการเชื่อมต่อ TLS อันใดอันหนึ่งจากที่ดักฟังมา 1,000 การเชื่อมต่อได้ หากเป็นการเชื่อมต่อเว็บ แฮกเกอร์ต้องการถอดรหัสเพียงการเชื่อมต่อเดียวเพื่อจะโมย cookie ไปสวมรอยบัญชี

SSLv2 ไม่ได้รับความนิยมนัก โดยเฉพาะเว็บเซิร์ฟเวอร์ แต่เซิร์ฟเวอร์จำนวนมากก็ใช้ใบรับรองเดียวกันระหว่างเว็บเซิร์ฟเวอร์กับบริการอื่นๆ ที่อาจจะคอนฟิกไว้หละหลวมกว่าเช่นเมลเซิร์ฟเวอร์ ทีมงานพบว่ามีเว็บเซิร์ฟเวอร์ที่ยังรองรับ SSLv2 อยู่ 16% แต่มีการใช้ใบรับรองซ้ำในบริการอื่นที่รองรับ SSLv2 อยู่อีก 17% ทำให้เซิร์ฟเวอร์ที่มีความเสี่ยงรวมเป็น 33%

ทางแก้ที่ตรงไปตรงมาคือการปิดการรองรับ SSLv2 ทุกบริการเสีย ทางด้าน OpenSSL ออกแพตช์มาแล้วในรุ่น 1.0.2g และ 1.0.1s โดยปิดการทำงานการเข้ารหัสในกลุ่ม EXPORT และ LOW ออกทั้งหมดเป็นค่าเริ่มต้น

ช่องโหว่นี้มีคะแนน CVSS ระดับ 5.8 จัดอยู่ในช่องโหว่ระดับสำคัญ ทาง Red Hat นั้นกระทบตั้งแต่ RHEL 5/6/7 ส่วน IIS ของไมโครซอฟท์ระบุว่าเวอร์ชั่นที่ซัพพอร์ตอยู่ตอนนี้ปิด SSLv2 ไปทั้งหมดแล้ว

ที่มา : blognone