Tags:
Node Thumbnail

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

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

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

No Description

พอกำหนดสถานการณ์ที่อาจเกิดขึ้น 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

No Description

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

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

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

Get latest news from Blognone

Comments

By: Ford AntiTrust
ContributorAndroidBlackberryUbuntu
on 16 February 2021 - 19:03 #1199281
Ford AntiTrust's picture

HSM Thales ตัวนี้ ราคาไม่ธรรมดา 😑

By: princeth
Contributor
on 17 February 2021 - 09:58 #1199326

สงสัยอยู่นานละ Let's Encrypt ที่ฟรี กับ เจ้าอื่นราคาที่แพง มันมีความต่างยังไง

By: Ford AntiTrust
ContributorAndroidBlackberryUbuntu
on 17 February 2021 - 10:20 #1199332 Reply to:1199326
Ford AntiTrust's picture

ในมุมเทคนิคไม่ต่าง

แต่พวกจ่ายเงินแพง จะได้ในมุมความน่าเชื่อถือ เวลา audit และ certificate บางประเภทต้องใช้เอกสารในการยืนยันตัวตน และมักมีการรับประกันต่าง ๆ (ซึ่งส่วนใหญ่ไม่เกี่ยวในเชิงเทคนิค)

แต่เอกสารในการยืนยันก็มีการปลอมแปลงให้เห็นอยู่บ้าง (ในข่าวเก่าๆ ก็มีเคสตัวอย่าง)

ก็อยู่ที่เลือกใช้ให้เหมาะสมกับงานก็แล้วกันครับ

By: lancaster
Contributor
on 17 February 2021 - 19:13 #1199445 Reply to:1199326

ในเชิงเทคนิค letsencrypt ให้อายุสั้นครับ (แค่ 3 เดือน) ส่วนที่ซื้อจะได้ 1 ปีเป็นปกติครับ

ถ้าระบบคุณไม่สามารถ automate การออกและเปลี่ยน cert ได้ ไปใช้แล้วเหนื่อยตายแน่ครับ