Let's Encrypt ปรับระบบให้พร้อม หากต้องออกใบรับรองใหม่ 200 ล้านฉบับภายใน 24 ชม.

by mk
16 February 2021 - 02:53

เราเห็นปัญหาความปลอดภัยของระบบใบรับรองดิจิทัลบ่อยขึ้นเรื่อยๆ (อ่านในแท็ก Digital Certificate) แม้แต่ผู้ให้บริการรายใหญ่อย่าง Let's Encrypt ก็เคยเจอปัญหาบั๊กในระบบ จนต้องออกใบรับรองใหม่ 3 ล้านฉบับเมื่อต้นปี 2020

Let's Encrypt บอกว่าปกติแล้วออกใบรับรองใหม่วันละ 2 ล้านฉบับ ออกใบรับรองไปเกิน 1 พันล้านฉบับแล้ว (ตัวเลขเมื่อต้นปี 2020) ถ้านับเฉพาะใบรับรองที่ยังไม่หมดอายุและใช้งานอยู่จริง มีอยู่ราว 150 ล้านฉบับ

แต่จากกรณีบั๊กข้างต้น ทำให้ต้องออกใบรับรองใหม่ 3 ล้านใบโดยด่วน ทำให้ Let's Encrypt ประเมินว่าอาจเกิดเหตุแบบนี้ได้เสมอ และกรณีเลวร้ายที่สุดคือต้องออกใบรับรองใหม่ทั้งหมด (ตีว่า 200 ล้านฉบับ) ภายในกรอบเวลา 24 ชั่วโมง ทำให้ Let's Encrypt เริ่มเตรียมความพร้อมสำหรับสถานการณ์แบบนี้

พอกำหนดสถานการณ์ที่อาจเกิดขึ้น Let's Encrypt ก็ประเมินความสามารถของระบบ และพบคอขวด 4 จุดคือ

  • ฐานข้อมูล ซึ่งมีพฤติกรรมเขียนข้อมูลหนักมาก (write heavy) ระบบเดิมเป็นฐานข้อมูลเดี่ยว ไม่ใช้คลัสเตอร์ ข้อดีคือไม่ซับซ้อน ดูแลรักษาง่าย แต่ก็เป็นคอขวดเช่นกัน ทางแก้เบื้องต้นคืออัพเกรดเครื่องให้แรงขึ้น ระบบเดิมใช้ Xeon E5-2650 แรม 1TB ระบบใหม่เปลี่ยนมาใช้ EPYC 7542 เพิ่มแรมเป็น 2TB นอกจากแรงขึ้นแล้วยังมีจุดเด่นที่มีเลน PCIe มากกว่า อัดไดรฟ์ NVMe เข้าไปได้ 24 ตัวเพื่อเพิ่มประสิทธิภาพ I/O
  • เครือข่ายภายใน ของเดิมเป็นการผสมผสานระหว่างสวิตช์พอร์ต 10G จำนวนจำกัด กับพอร์ต 2G/1G ของเดิม ซึ่งพอใช้มาตลอดจนถึงปี 2020 เลยตัดสินใจอัพเกรดเป็น 25G fiber เลย โดยได้รับบริจาคอุปกรณ์จาก Cisco ด้วย
  • เครื่องเข้ารหัส cryptographic signing module (HSM) ของเดิมใช้เครื่อง Luna HSM ของบริษัทความปลอดภัย Thales รุ่นเก่า มีสมรรถนะ 1,100 signing operations ต่อวินาที รวมทุกเครื่องแล้วทำได้ 190 ล้านครั้งต่อ 24 ชั่วโมง (ถ้าต้องการออกใบรับรอง 200 ล้านฉบับ ต้องทำได้ 600 ล้านครั้ง) เรื่องนี้ Thales บริจาคเครื่อง Luna รุ่นใหม่ประสิทธิภาพดีขึ้น 10 เท่า ทำได้ 10,000 ครั้งต่อวินาที รวมแล้ว 864 ล้านครั้งต่อ 24 ชั่วโมง เพียงพอต่อความต้องการ
  • แบนด์วิดท์ การออกใบรับรองใช้แบนด์วิดท์ไม่เยอะ แต่จำเป็นต้องดึงข้อมูลการกู้คืนระบบ (system recovery) และไฟล์ log จำนวนมหาศาลเพื่อวิเคราะห์ผลกระทบ ทำให้ Let's Encrypt ต้องเพิ่มแบนด์วิดท์ในศูนย์ข้อมูลของตัวเอง โดย Fortinet บริจาคฮาร์ดแวร์ช่วยป้องกันและจัดการการเชื่อมต่อ

หน้าตาเครื่อง Luna HSM

Let's Encrypt บอกว่าระบบพื้นฐานค่อนข้างพร้อมแล้ว ขั้นต่อไปคือพัฒนาระบบแจ้งเตือนให้เปลี่ยนใบรับรอง ซึ่งปกติแล้ว ไคลเอนต์เป็นฝ่ายสื่อสารขอใบรับรองฉบับใหม่ (เมื่ออายุเหลือ 1/3) ผ่านโปรโตคอล Automated Certificate Management Environment (ACME) แต่กลับไม่มีระบบให้ฝั่งผู้ออกใบรับรองแจ้งเตือนไปยังไคลเอนต์

สิ่งที่ Let's Encrypt ทำคือเสนอสเปกส่วนขยายของการแจ้งเตือนไปยัง ACME เพื่อให้เป็นมาตรฐานของวงการต่อไป

ที่มา - Let's Encrypt via The Register

Blognone Jobs Premium