Let's Encrypt ประกาศแผนการปิดเซิร์ฟเวอร์ Online Certificate Status Protocol (OCSP) ที่ใช้สำหรับการตรวจสอบว่าใบรับรองถูกยกเลิกหรือไม่ และเตรียมหันไปเผยแพร่รายการใบรับรองที่ถูกยกเลิกผ่านทาง Certificate Revocation Lists (CRLs) ในเร็วๆ นี้
Let's Encrypt ประกาศออกใบรับรอง intermediate certificate ใหม่ทั้งหมดสิบใบ สำหรับสายกุญแจแบบ RSA-2048 จำนวน 5 ใบและ ECDSA อีก 5 โดยมีเป้าหมายจะใช้ใบรับรองเหล่านี้ในช่วงเวลาที่สั้นลง แถมยังมีระบบสุ่มใบรับรอง intermediate เพื่อบีบให้แอปต่างๆ เลิกทำ key pinning
Let’s Encrypt ผู้ออกใบรับรองเข้ารหัสเว็บรายใหญ่อาศัยการรับรองซ้อน (cross-sign) กับ IdentTrust มาตั้งแต่เริ่มต้น ทำให้ใบรับรองจาก Let’s Encrypt สามารถใช้งานได้ทั่วไป แต่เดือนกันยายน 2024 ตัวใบรับรอง IdenTrust’s DST Root CA X3 จะหมดอายุ และทาง Let’s Encrpyt ระบุว่าจะไม่พยายามหาทางทำ cross-sign รอบใหม่อีกแล้ว
ผลกระทบสำคัญคืออุปกรณ์ที่ใช้ระบบปฎิบัติการเก่าๆ จะไม่สามารถตรวจสอบใบรับรองได้อีกต่อไป กลุ่มใหญ่ที่ยังมีการใช้งานอยู่คือ Android 7.0 หรือเก่ากว่า ซึ่งตอนนี้ยังมีการใช้งานอยู่ถึง 6.1% ของแอนดรอยด์ทั้งหมด
Let's Encrypt บริการ Certification Authority (CA) ฟรีเปิดบริการ Certificate Revocation Lists (CRLs) สำหรับการประกาศใบรับรองที่ถูกยกเลิกเมื่อมีปัญหาความปลอดภัยของใบรับรอง แม้ว่าที่ผ่านมาหลายปี Let's Encrypt จะไม่รองรับ CRL เลยก็ตาม
Let's Encrypt แจ้งว่าพบความผิดพลาดในกระบวนการยืนยันตัวตนเว็บไซต์ด้วย TLS-ALPN-01 ทำให้ต้องถือว่าใบรับรองที่ออกด้วยกระบวนการนี้ทั้งหมดเป็นการออกอย่างไม่ถูกต้อง ต้องยกเลิกและออกใหม่ทั้งหมด
แม้ปัญหาจะดูหนัก แต่กระบวนการ TLS-ALPN-01 ก็ไม่ใช่กระบวนการหลักที่เว็บไซต์ส่วนใหญ่ใช้งาน โดยส่วนมากเรามักใช้กระบวนการ HTTP-01 ที่ตรวจสอบไฟล์์กันมากกว่า ทำให้ใบรับรองที่จะถูกยกเลิกมีน้อยกว่า 1% ของใบรับรองที่ยังใช้งานอยู่ (ใบรับรองของ Let's Encrypt มีอายุเพียง 90 วันอยู่แล้ว)
เมื่อคืนที่ผ่านมาใบรับรอง DST Root CA X3 ของ IdenTrust หมดอายุไป ทำให้เว็บบางส่วนมีปัญหาขึ้นคำเตือนว่าใบรับรองไม่ถูกต้อง โดยสาเหตุมีได้ทั้งจากไคลเอนต์และเซิร์ฟเวอร์เอง เท่าที่ผมรวบรวมมามีสาเหตุได้ดังนี้
Let's Encrypt ประกาศตั้งแต่เดือนมกราคมที่ผ่านมาว่ากำลังจะปิดเซิร์ฟเวอร์ ACMEv1 วันที่ 1 มิถุนายนนี้ ทำให้เซิร์ฟเวอร์ที่ขอใบรับรองอยู่จะไม่สามารถออกใบรับรองใหม่ได้หลังจากนั้นหากไม่แก้คอนฟิกหรืออัพเกรดไคลเอนต์เสียใหม่
แนวทางของ Let's Encrypt คือการปิดเซิร์ฟเวอร์เพื่อแจ้งเตือน (brown out) เป็นช่วงๆ โดยที่ผ่านมาปิดเซิร์ฟเวอร์ไปแล้ว 9 รอบ รอบล่าสุดคือวันที่ 6-10 พฤษภาคมที่ผ่านมา และจะปิดเตือนรอบสุดท้ายในวันที่ 18-25 พฤษภาคมนี้ ก่อนจะเปิดกลับขึ้นมาให้ใช้งานรอบสุดท้าย สำหรับผู้ใช้ในองค์กรควรตรวจสอบว่ายังมีการเชื่อมต่อไปยังโดเมน acme-v01.api.letsencrypt.org
อยู่หรือไม่
ทุกวันนี้การเชื่อมต่อเว็บต่างๆ แทบทั้งหมดกลายเป็นการเชื่อมต่อแบบเข้ารหัส หลังจาก Let's Encrypt เปิดให้บริการเมื่อปี 2015 ตั้งแต่ปี 2018 เป็นต้นมาอัตราการเชื่อมต่อเว็บด้วย HTTPS ขึ้นไปถึง 94-95% และคงที่อยู่ที่เดิมเสมอมา เว็บสาธารณะที่เราใช้งานแทบทั้งหมดแม้อาจจะมีหลายเว็บยังให้บริการแบบ HTTP อยู่แต่ก็มักจะรองรับ HTTPS ไปพร้อมกัน อย่างไรก็ดียังมีเว็บกลุ่มหนึ่งที่เราใช้ HTTP เสมอ นั่นคือเว็บของอุปกรณ์ในบ้านหรือภายในองค์กร ไม่ว่าจะเป็นเราท์เตอร์หรือสตอเรจ ตลอดจนอุปกรณ์อื่นๆ
เราเห็นปัญหาความปลอดภัยของระบบใบรับรองดิจิทัลบ่อยขึ้นเรื่อยๆ (อ่านในแท็ก Digital Certificate) แม้แต่ผู้ให้บริการรายใหญ่อย่าง Let's Encrypt ก็เคยเจอปัญหาบั๊กในระบบ จนต้องออกใบรับรองใหม่ 3 ล้านฉบับเมื่อต้นปี 2020
Let's Encrypt บอกว่าปกติแล้วออกใบรับรองใหม่วันละ 2 ล้านฉบับ ออกใบรับรองไปเกิน 1 พันล้านฉบับแล้ว (ตัวเลขเมื่อต้นปี 2020) ถ้านับเฉพาะใบรับรองที่ยังไม่หมดอายุและใช้งานอยู่จริง มีอยู่ราว 150 ล้านฉบับ
หลังจาก Let's Encrypt ประกาศเลิกทำ cross-sign จาก IdenTrust แล้วใช้ ISRG Root X1 ของตัวเองเป็น root CA ที่ระบบปฎิบัติการของไคลเอนต์ต้องเชื่อถือ แต่ระบบปฎิบัติการเก่าโดยเฉพาะแอนดรอยด์ที่เก่ากว่าเวอร์ชั่น 7.1.1 จะไม่เชื่อถือใบรับรอง ตอนนี้ทาง Let's Encrypt ก็ออกแนวทางใหม่ออกมา ทำให้ใบรับรองหลังจากนี้สามารถใช้กับอุปกรณ์รุ่นเก่าได้ต่อไป
Let's Encrypt ผู้ให้บริการออกใบรับรองเว็บฟรี ระบุข้อมูลการอัพเกรดฮาร์ดแวร์เซิฟเวอร์ใหม่ในรายงานประจำปี 2020 ของ Internet Securities Research Group (ISRG) มีรายละเอียดดังนี้
จากเดิมเครื่องเซิฟเวอร์บริษัท ใช้ซีพียู Intel Xeon E5-2650 จำนวน 2 ตัว รวม 24 คอร์ 48 เธรด แรม 1TB 2400 MT/s และฮาร์ดดิสก์ Samsung PM833 ความจุ 3.8TB จำนวน 24 ลูก ความเร็วอ่าน/เขียน 560/540 MB/s นั้น ได้เปลี่ยนมาเป็นเครื่อง Dell PowerEdge R7525 ที่ใช้ซีพียู AMD EPYC 2 ชิปและแรม 2TB 3200MT/s แทน เพราะ Let’s Encrypt ต้องการพัฒนาประสิทธิภาพของเซิฟเวอร์โดยคงฟอร์มแฟกเตอร์แบบ 2U ไว้
Let's Encrypt ผู้ให้บริการออกใบรับรองเว็บฟรีประกาศว่าตั้งแต่ 1 กันยายน 2021 เป็นต้นไปใบรับรองของ Let's Encrypt จะไม่ได้รับการ cross-sign โดย IdenTrust อีกแล้ว ทำให้เบราว์เซอร์เก่าที่ไม่ได้ใส่ใบรับรอง ISRG Root X1 เอาไว้ในระบบจะมองว่าใบรับรองจาก Let's Encrypt ไม่น่าเชื่อถืออีกต่อไป
การเปลี่ยนเส้นทางใบรับรองเช่นนี้มีผลกระทบต่อระบบปฎิบัติการเก่าๆ มาเสมอ แต่รอบนี้จุดน่ากังวลที่สุดคือแอนดรอยด์ที่ยังมีการใช้งานเวอร์ชั่นเก่าอยู่ในระดับสูงมาก โดยแอนดรอยด์ใส่ใบรับรอง ISRG Root X1 ตั้งแต่เวอร์ชั่น 7.1.1 เป็นต้นมา แต่สถิติล่าสุดของกูเกิลก็แสดงว่ามีผู้ใช้ที่รันแอนดรอยด์เวอร์ชั่นเก่ากว่านั้นถึง 33.8% ซึ่งคาดว่าจะกระทบกับเว็บทั่วไปคิดเป็นทราฟิก 1-5%
Let's Encrypt ประกาศเพิ่ม Root CA และ Intermediate CA ชุดใหม่สำหรับใช้ลายเซ็นดิจิทัลแบบ ECDSA P-384 ที่มีขนาดกุญแจสาธารณะเพียง 48 ไบต์ และขนาดลายเซ็น 96 ไบต์ เทียบกับ RSA-2048 ที่มีขนาดกุญแจสาธารณะถึง 256 ไบต์ และขนาดลายเซ็น 400 ไบต์ ทำให้ใบรับรองแต่ละใบที่มีทั้งกุญแจสาธารณะและลายเซ็น จะมีขนาดลดลงประมาณ 350 ไบต์
Root CA ตัวใหม่จะใช้ชื่อ "ISRG Root X2" ได้รับรองจาก "ISRG Root X1" ที่ได้อยู่ในฐานข้อมูลส่วนมากอยู่แล้ว โดย Root CA ใหม่จะมีอายุถึงปี 2040 แต่การออกใบรับรองจริงจะใช้ Intermediate CA สองตัว ได้แก่ Let's Encrypt E1 และ Let's Encrypt E2 ที่มีอายุ 5 ปี
Let's Encrypt ประกาศยกเลิกใบรับรองที่ออกให้ในช่วงสิ้นเดือนกุมภาพันธ์กว่า 3 ล้านใบไปเมื่อเที่ยงคืนของวันที่ 4 มีนาคม (หรือ 7 โมงเช้าตามเวลาในประเทศไทย) เนื่องจากปัญหาของซอฟแวร์ออกใบรับรองที่พบข้อผิดปกติในกระบวนการรับรอง
Let's Encrypt ประกาศพบบั๊กในระบบออกใบรับรอง ทำให้มีการออกใบรับรองโดยตรงสอบไม่ครบถ้วน และจำเป็นต้องยกเลิก (revoke) ใบรับรองที่ตรวจสอบไม่ครบนี้ออกจากระบบ รวมใบรับรองที่กระทบ 3,048,289 ใบ จากใบรับรองที่ยังใช้งานได้ตอนนี้ 116 ล้านใบ หรือคิดเป็น 2.6%
บั๊กนี้เกิดจากข้อกำหนดที่หน่วยงานออกใบรับรองต้องเช็ค DNS ในส่วน CAA ที่อาจจะจำกัดหน่วยงานที่ออกใบรับรองก่อนออกใบรับรองเสมอ แต่ซอฟต์แวร์ของ Let's Encrypt กลับจำค่าเดิมไว้นานถึง 30 วัน ทำให้กรณีที่เจ้าของโดเมนแก้ไขค่า CAA จน Let's Encrypt ไม่ควรจะออกใบรับรองได้แล้ว และมีเจ้าของโดเมนขอให้ Let's Encrypt ออกใบรับรองอีกครั้งก็จะกลายเป็นออกใบรับรองได้
Let's Encrypt โครงการแจกใบรับรองเข้ารหัสฟรีประกาศออกใบรับรองครบ 1 พันล้านใบ รวมประมาณ 192 ล้านเว็บไซต์
Let's Encrypt เปิดแจกใบรับรองจริงครั้งแรกเมื่อเดือนธันวาคมปี 2015 ผ่านมาสี่ปี ตอนนี้โครงการมีพนักงานประจำ 11 คน และใช้งบประมาณปีละ 2.61 ล้านดอลลาร์สหรัฐฯ หรือประมาณ 82 ล้านบาท โดยเพิ่มพนักงานเพียงสองคนในช่วงเวลาสองปีที่ผ่านมา
ผลของการมี Let's Encrypt ทำให้การเข้าชมเว็บไซต์ 81% เป็นการเชื่อมต่อแบบเข้ารหัส เพิ่มขึ้นอย่างรวดเร็วจากสองปีก่อนที่อยู่ที่ 58% เท่านั้น
ที่มา - Let's Encrypt
ใบรับรอง Let's Encrypt ใช้งานได้ในไคลเอนต์หลักๆ แทบทั้งหมดมาหลายปี แต่ที่จริงแล้วใบรับรองที่ได้รับการเชื่อถือจากฐานข้อมูลทั้งหลายเริ่มต้นจากใบรับรอง root CA ของ IdenTrust เป็นหลัก (ออราเคิลรองรับ IdenTrust DST Root CA X3 เมื่อปี 2016) ตอนนี้ใบรับรองของ Let's Encrypt เองคือ ISRG Root X1 นั้นถูกรวมเข้าฐานข้อมูลหลักทั้งหมดแล้ว
ตอนนี้ฐานข้อมูลใบรับรองหลัก ที่รับรอง Let's Encrypt ได้แก่ ไมโครซอฟท์, กูเกิล, มอซิลล่า, ออราเคิล, และแบล็คเบอรี่
กูเกิลเตรียมบังคับใบรับรองเข้ารหัสเว็บทุกใบต้องผ่านการบันทึกบนเซิร์ฟเวอร์ Certification Transparency (CT) ภายในเดือนเมษายนนี้ ตอนนี้ผู้ออกใบรับรองรายใหญ่อย่าง Let's Encrypt ก็ออกมาประกาศเพิ่มข้อมูลยืนยันการบันทึกลงล็อก (Signed Certificate Timestamps - SCT) ลงในใบรับรองโดยตรง เพื่อให้ใบรับรองใช้งานได้ต่อไปโดยผู้ดูแลระบบไม่ต้องทำอะไรเพิ่มอีก
ข้อมูล SCT เป็นข้อมูลที่หน่วยงานออกใบรับรอง (CA) ได้รับจากเซิร์ฟเวอร์ CT เพื่อยืนยันว่าใบรับรองนี้ถูกบันทึกต่อสาธารณะแล้วจริง โดยนโยบายการบันทึกลง CT ของ Let's Encrypt จะตรงกับของ Chrome คือต้องบันทึกอย่างน้อยสองเซิร์ฟเวอร์ เป็นของกูเกิลหนึ่งแห่งและของบริษัทอื่นอีกหนึ่งแห่ง
Let's Encrypt ประกาศออกใบรับรองแบบ Wildcard มาตั้งแต่กลางปีที่แล้ว และถูกเลื่อนมาหลายครั้ง วันนี้ก็ประกาศออกใบรับรองเป็นทางการแล้ว
การขอใบรับรอง Wildcard ต้องใช้โปรโตคอล ACMEv2 ผ่านทาง https://acme-v02.api.letsencrypt.org/directory
และยืนยันความเป็นเจ้าของโดเมนด้วยกระบวนการ DNS-01 เท่านั้น โดยผู้ขอใบรับรองสามารถขอโดยระบุ newOrder เป็นแบบ Wildcard ได้ เช่น *.blognone.com
สำหรับผู้ใช้ certbot ต้องใช้เวอร์ชั่น 0.22.0 ขึ้นไป
Let's Encrypt โครงการออกใบรับรองฟรีได้ประกาศเลื่อนโครงการออกใบรับรองแบบ wildcard อีกครั้ง เป็นไม่มีกำหนดหลังจากตัวโครงการได้ประกาศเลื่อนมาเป็นสิ้นเดือนกุมภาพันธ์ไปแล้วรอบหนึ่ง
โครงการ Let's Encrypt ได้รับรายงานว่าบริการเว็บโฮสติ้งรายใหญ่บางรายมีช่องโหว่ทำให้แฮกเกอร์สามารถขอใบรับรองรับปลอมจากเว็บอื่นๆ ที่อยู่บนไอพีเดียวกันได้ ทำให้โครงการตัดสินใจปิดการยืนยันตัวตนเว็บแบบ TLS-SNI-01 ออกไป
TLS-SNI-01 ยืนยันความเป็นเจ้าของโดเมนด้วยการแจ้งชื่อโดเมนที่ไม่มีจริง เช่น 773c7d.13445a.acme.invalid
จากนั้นเซิร์ฟเวอร์ของ Let's Encrypt จะเชื่อมต่อเข้าไปยังไอพีโดยแจ้งโดเมนเป็นโดเมนที่ได้รับแจ้งมา หากใบรับรองที่ได้รับระบุโดเมนถูกต้องก็จะถือว่าผู้ขอใบรับรองเป็นเจ้าของโดเมนจริง
แต่บริการเว็บโฮสติ้งส่วนหนึ่งปล่อยให้ผู้ใช้อัพโหลดใบรับรองของเว็บใดๆ ก็ได้เข้าไป ทำให้เมื่อคนร้ายอยู่บนไอพีใดก็สามารถออกใบรับรองของทุกโดเมนที่อยู่บนไอพีนั้นได้
Let's Encrypt โครงการออกใบรับรองฟรีประกาศตั้งแต่ปีที่แล้วว่าจะออกใบรับรอง Wildcard ในเดือนมกราคมนี้ แต่ข่าวร้ายตอนนี้คือกำหนดการต้องเลื่อนออกไปเป็นวันที่ 27 กุมภาพันธ์
ตอนนี้ทางโครงการเปิดตัวเซิร์ฟเวอร์ทดสอบแบบสาธารณะที่รองรับ ACMEv2 และสามารถออกใบรับรอง Wildcard เรียบร้อยแล้ว หากบริการเว็บใดต้องการใช้ใบรับรองแบบ Wildcard ก็จะมีเวลาทดสอบประมาณเดือนครึ่งก่อนที่เซิร์ฟเวอร์จริงจะเปิดตัว
ที่มา - Let's Encrypt
Let's Encrypt ประกาศว่าโมดูล mod_md สำหรับ Apache HTTP Server (httpd) ใกล้เสร็จสมบูรณ์ ทำให้เวอร์ชั่นต่อไปเราน่าจะได้ใช้งาน Let's Encrypt โดยคอนฟิกสั้นลงกว่าการใช้ใบรับรองจากที่อื่นเสียอีก
mod_md ต้องการคอนฟิก ManagedDomain
เพื่อบอกว่าจะให้ขอใบรับรองสำหรับโดเมนใดบ้าง และเมื่อคอนฟิกแล้วจะไม่ต้องคอนฟิกตำแหน่งใบรับรอง SSLCertificateFile
และ SSLCertificateKeyFile
เช่นเดิมอีก โดยตัวโมดูลจะขอใบรับรองใหม่เมื่อใบรับรองเดิมใกล้หมดอายุโดยอัตโนมัติ
ตอนนี้โค้ด mod_md อยู่ในเวอร์ชั่นพัฒนาของ httpd แล้ว และมีแผนว่าจะพอร์ต mod_md กลับมาให้เวอร์ชั่น 2.4.x ในอนาคต
Let's Encrypt ประกาศตั้งแต่กลางปีที่ผ่านมาว่าจะรองรับใบรับรองแบบ wildcard (สามารถใช้กับทุก subdomain ได้ด้วยใบรับรองเดียว) แต่ไม่ได้ประกาศช่วงเวลาชัดเจน ตอนนี้ทางโครงการก็ออกมาประกาศแล้วว่าจะเริ่่มออกใบรับรอง wildcard ตั้งแต่เดือนมกราคม 2018
การขอใบรับรองแบบ wildcard ในช่วงแรกจะต้องทำ validation ด้วย DNS เท่านั้น และต้องเชื่อมต่อขอใบรับรองด้วย ACMEv2 เท่านั้น แต่กระบวนการขอใบรับรองอาจจะเพิ่มเติมได้ในอนาคต
ตอนนี้ Let's Encrypt ออกใบรับรองไปแล้วถึง 47 ล้านโดเมน
ที่มา - Let's Encrypt
ตั้งแต่ Let's Encrypt ออกใบรับรองฟรีให้กับเว็บทั่วโลก ความลำบากก็ตกอยู่กับผู้ให้บริการใบรับรองแบบเสียเงินที่เคยคิดค่าบริการรายปีสำหรับการออกใบรับรอง แต่ผู้ให้บริการเหล่านั้นก็ยังมีสินค้าสำคัญ คือการออกใบรับรองแบบใช้กับ subdomain ได้ทั้งหมด หรือเรียกว่าใบรับรอง wildcard (เช่น *.blognone.com
)
บริการที่ใช้ใบรับรอง wildcard เช่นนี้ เช่น บริการโฮสต์หรือบริการเว็บบล็อก เช่น WordPress ที่ลูกค้ามักได้โดเมนเป็นของตัวเองทุกราย
การออกใบรับรอง wildcard เป็นส่วนหนึ่งของการรองรับโปรโตคอล ACMEv2 โดยจะรองรับผ่านการยืนยันตัวตนแบบ DNS เท่านั้น ไม่สามารถใช้ certbot เพื่อยืนยันตัวตนแบบทุกวันนี้ได้