ครบรอบ 10 ปี Let’s Encrypt จุดเริ่มต้นที่มุ่งผลักดันการใช้งาน SSL/TLS
(letsencrypt.org)- ในสถานการณ์ที่ข้อมูลส่วนบุคคลและข้อมูลธุรกิจถูกส่งผ่านอินเทอร์เน็ตบ่อยขึ้น Let’s Encrypt ปรากฏตัวในฐานะหน่วยงานออกใบรับรองที่ต้องการลดอุปสรรคในการนำ TLS มาใช้ ด้วย ใบรับรองเซิร์ฟเวอร์ฟรี
- แม้เบราว์เซอร์และเซิร์ฟเวอร์จะรองรับ TLS อยู่แล้ว แต่สำหรับผู้ดูแลระบบแล้ว การออก ติดตั้ง และต่ออายุใบรับรอง ยังเป็นเรื่องซับซ้อนและมีค่าใช้จ่าย
- Mozilla, Cisco, Akamai, EFF, IdenTrust และนักวิจัยจาก University of Michigan ร่วมมือกันผ่าน ISRG เพื่อผลักดันการให้บริการโครงสร้างพื้นฐานในไตรมาส 2 ของปี 2015
- หลักการดำเนินงานคือ ฟรี อัตโนมัติ ปลอดภัย โปร่งใส เปิดกว้าง และร่วมมือกัน โดยรวมถึง การเปิดเผยบันทึกการออกและเพิกถอนใบรับรอง และโปรโตคอลมาตรฐานเปิด
- จุดเน้นไม่ใช่ความปลอดภัยที่ถูกควบคุมโดยองค์กรใดองค์กรหนึ่ง แต่เป็นการสร้าง ความปลอดภัยบนอินเทอร์เน็ตที่เป็นสากลและเปิดกว้าง ซึ่งทั้งชุมชนสามารถใช้ได้
อุปสรรคจากใบรับรองเซิร์ฟเวอร์ที่ขัดขวางการใช้งาน TLS
- ข้อมูลส่วนบุคคลและข้อมูลธุรกิจถูกส่งผ่านอินเทอร์เน็ตบ่อยขึ้น แต่ผู้ใช้มักไม่สามารถรู้ได้เสมอว่าการส่งข้อมูลนั้นเกิดขึ้นเมื่อใด
- TLS เป็นเทคโนโลยีที่สืบต่อจาก SSL และเบราว์เซอร์บนอุปกรณ์ทุกชนิดกับเซิร์ฟเวอร์ในศูนย์ข้อมูลก็รองรับอยู่แล้ว
- หัวใจของการสื่อสารที่ได้รับการปกป้องด้วย TLS คือ ใบรับรองกุญแจสาธารณะ ที่พิสูจน์ว่าผู้ใช้กำลังสื่อสารกับเซิร์ฟเวอร์ที่ตั้งใจไว้จริง
- สำหรับผู้ดูแลเซิร์ฟเวอร์จำนวนมาก แม้แต่ใบรับรองเซิร์ฟเวอร์พื้นฐานก็ยังคงเป็นภาระ
- ขั้นตอนการสมัครอาจทำให้สับสนได้
- โดยทั่วไปมีค่าใช้จ่าย
- การติดตั้งให้ถูกต้องทำได้ยาก
- การต่ออายุยุ่งยาก
หน่วยงานออกใบรับรองฟรีและอัตโนมัติที่ Let’s Encrypt เสนอ
- Let’s Encrypt คือ หน่วยงานออกใบรับรองฟรี ใหม่ที่ตั้งอยู่บนพื้นฐานของความร่วมมือและความเปิดกว้าง
- เจ้าของโดเมนสามารถรับใบรับรองเซิร์ฟเวอร์พื้นฐานที่ผ่านการตรวจสอบแล้วสำหรับโดเมนของตนได้ด้วย ขั้นตอนคลิกเดียว
- Mozilla Corporation, Cisco Systems, Akamai Technologies, Electronic Frontier Foundation, IdenTrust และนักวิจัยจาก University of Michigan ร่วมมือกันผ่าน Internet Security Research Group(ISRG)
- ISRG เป็นนิติบุคคลเพื่อสาธารณประโยชน์ในแคลิฟอร์เนีย และยินดีต้อนรับการเข้าร่วมจากองค์กรอื่นที่มีเป้าหมายเดียวกัน
- หลักการดำเนินงานมีดังนี้
- ฟรี: เจ้าของโดเมนสามารถรับใบรับรองที่ผ่านการตรวจสอบแล้วสำหรับโดเมนนั้นได้ฟรี
- อัตโนมัติ: การลงทะเบียนใบรับรองจะเกิดขึ้นในกระบวนการติดตั้งหรือกำหนดค่าพื้นฐานของเซิร์ฟเวอร์ และการต่ออายุจะทำโดยอัตโนมัติในเบื้องหลัง
- ปลอดภัย: ทำหน้าที่เป็นแพลตฟอร์มสำหรับการนำเทคนิคความปลอดภัยสมัยใหม่และแนวปฏิบัติที่ดีที่สุดไปใช้
- โปร่งใส: เปิดเผยบันทึกการออกและการเพิกถอนใบรับรองให้ทุกคนตรวจสอบได้
- เปิดกว้าง: โปรโตคอลสำหรับการออกและต่ออายุแบบอัตโนมัติจะถูกสร้างเป็นมาตรฐานเปิด และจะเผยแพร่ซอฟต์แวร์ให้เป็นโอเพนซอร์สมากที่สุดเท่าที่เป็นไปได้
- ร่วมมือกัน: ดำเนินงานในฐานะความพยายามร่วมกันที่เป็นประโยชน์ต่อทั้งชุมชน เช่นเดียวกับโปรโตคอลอินเทอร์เน็ต
- ข้อมูลเกี่ยวกับ ISRG และพาร์ทเนอร์สามารถดูได้ที่หน้า About
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เป็นหนึ่งในบริการที่ดีที่สุดอย่างไม่ต้องสงสัย ทำให้ธุรกิจขายใบรับรองหยุดลง และช่วยให้อินเทอร์เน็ตปลอดภัยขึ้น
ครั้งหนึ่ง การเชื่อมต่อ HTTPS เป็นสิ่งที่ใช้กันเฉพาะกับโปรเจกต์ที่ “จริงจัง” เพราะค่าใบรับรองแพงกว่าโดเมนมาก มักเริ่มทำโดยไม่มีใบรับรองก่อน แล้วถ้าไปได้ดีก็ค่อยจ่ายราว 100 ดอลลาร์เพื่อซื้อใบรับรอง
ตอนพบเรื่องนี้ สิ่งแรกที่คิดไม่ใช่ “ถ้าโดน Let’s Encrypt บล็อกจะทำยังไง” แต่เป็น “ขอโทษ Let’s Encrypt ที่การตั้งค่าแบบขี้เกียจของฉันทำให้คุณต้องรับโหลดที่ไม่จำเป็น” Let’s Encrypt คือสิ่งที่ดีที่สุดอย่างน้อยในรอบ 10 ปีที่ผ่านมา สำหรับเว็บ
ก่อนหน้านั้นบริการของฉันไม่ใช้ SSL เลย เพราะมองว่าไม่คุ้มค่าเมื่อเทียบกับต้นทุน หลังจากนั้นก็ไม่เคยไม่ใช้มันอีกเลย
ถ้าต้องการ ใบรับรอง wildcard เพื่อครอบคลุมซับโดเมนหลายตัวของโปรเจกต์ส่วนตัว ราคาก็พุ่งขึ้นมากทันที ดีใจที่ปัญหานี้ถูกแก้ไปหมดแล้ว
ตามเกณฑ์ของเรา เราถือว่าครบรอบ 10 ปีคือปี 2025 แต่ก็ขอบคุณสำหรับถ้อยคำอบอุ่นที่นี่
วันนี้เป็นเวลาประมาณ 10 ปีนับจากวันที่ประกาศต่อสาธารณะว่าจะเปิดตัว Let’s Encrypt และปีหน้าจะเป็น 10 ปีนับจากวันที่ Let’s Encrypt ออกใบรับรองฉบับแรกจริง ๆ: https://letsencrypt.org/2015/09/14/our-first-cert/
ในเดือนธันวาคม 2015 หรือราว 9 ปีก่อนนับจากวันนี้ บริการก็เปิดให้ทุกคนใช้ได้โดยไม่ต้องมีคำเชิญ: https://letsencrypt.org/2015/12/03/entering-public-beta/
ตอนนั้นฉันมีเงินแค่ซื้อโดเมน แต่ไม่มีเงินจ่ายค่า SSL ทั้งที่ไซต์จำเป็นต้องใช้ SSL ฟรี SSL ของ Let’s Encrypt ทำให้โปรเจกต์นั้นประสบความสำเร็จ
รู้สึกเหมือนเพิ่งเมื่อวานที่ยังต้องจ่ายเงินซื้อใบรับรอง และแย่กว่านั้นคือมีช่วงที่ถึงกับรันโดยไม่มีใบรับรองเลย
ไม่น่าเชื่อว่าเวลาผ่านมา 10 ปี แล้ว
ผมมีความรู้สึกค่อนข้างปน ๆ ต่อ Let’s Encrypt
เป็นเรื่องดีที่สามารถรับใบรับรอง TLS ฟรีได้โดยไม่ต้องพึ่งผู้ให้บริการน่าสงสัยอย่าง StartSSL ต้องขอบคุณสิ่งนี้ที่ทำให้เว็บไซต์ใด ๆ ย้ายไป HTTPS ได้ง่าย และแทบไม่มีกรณีที่ข้อมูลอ่อนไหวอย่างการล็อกอินถูกส่งผ่านการเชื่อมต่อที่ไม่เข้ารหัสอีกแล้ว
แต่อีกด้านหนึ่ง ผมมองว่ามันทำให้โครงสร้างที่พังโดยพื้นฐานของ โมเดลความเชื่อถือของใบรับรอง TLS แข็งแรงขึ้น ซึ่งหน่วยงานออกใบรับรองใด ๆ ก็สามารถออกใบรับรองสำหรับโดเมนของผมได้โดยไม่ต้องให้ผมเกี่ยวข้อง มีมาตรการบรรเทาหลายอย่าง เช่น CAA record หรือ Certificate Transparency แต่ไม่ใช่วิธีแก้ 100% ถ้าไม่มี Let’s Encrypt บางทีอาจมีแรงจูงใจมากขึ้นในการนำกลไกความเชื่อถือที่ดีกว่า เช่น DNSSEC+DANE มาใช้ ซึ่งจำกัดการออกใบรับรองไว้กับผู้ที่มีอำนาจตัดสินความเป็นเจ้าของโดเมนได้จริง
อีกเรื่องที่น่ากังวลคือความเข้ากันได้ย้อนหลังที่ตั้งใจให้ขาดหายไปในกระบวนการย้ายไซต์ไป TLS นี่ไม่ใช่แค่ปัญหาครั้งเดียวว่าจะเปิดหรือปิด TLS แต่เป็นปัญหาที่โปรโตคอลและชุดรหัสลับถูกเลิกใช้ไปเรื่อย ๆ สำหรับสิ่งที่ต้องปลอดภัย เช่น ธนาคารหรืออีเมล เรื่องนี้สมเหตุสมผล แต่ผมไม่คิดว่าจำเป็นไปถึงการดูข้อมูลสแตติกที่ไม่สำคัญอย่างสูตรอาหาร ส่วนปัญหาผู้ให้บริการโทรคมนาคมแทรกโฆษณาหรือสิ่งแปลก ๆ ผมคิดว่าแก้ด้วยกฎระเบียบจะดีกว่า
ถ้าใบรับรองยังคงเป็นเรื่องเจ็บปวดต่อไป ก็อาจมีบางอย่างที่ดีกว่า TLS เกิดขึ้นได้เหมือนกัน แต่ดูแล้วไม่น่าเป็นเช่นนั้น เพราะปัญหาพื้นฐานยังคงยากอยู่
สิ่งที่น่าขอบคุณที่สุดคือ โปรโตคอล ACME
จำได้ไหมว่าก่อนมี Let’s Encrypt เราต่ออายุใบรับรองกันอย่างไร? คีย์ส่วนตัวเคยถูกส่งไปมาทางอีเมลในไฟล์แนบ ZIP มันแทบจะเป็นละครความปลอดภัย และเท่าที่ผมรู้ นั่นเป็นแนวปฏิบัติที่พบได้ทั่วไปในผู้ออกใบรับรองหลายแห่ง ขอบคุณ Let’s Encrypt
ในขั้นตอนสร้าง CSR จะสร้างคีย์ใหม่บนเซิร์ฟเวอร์ แล้วรันบนตัวเซิร์ฟเวอร์เองเพื่อไม่ให้คีย์ออกจากที่เก็บภายในเซิร์ฟเวอร์ CSR จะถูกส่งไปยัง GlobalSign จากนั้นผ่านบุคคลที่สามเพราะกระบวนการขององค์กรขนาดใหญ่ แล้วอีกไม่กี่วันจึงได้รับใบรับรองมาเพื่อนำไปติดตั้งบนเซิร์ฟเวอร์
อยากใช้ ACME แล้วเก็บคีย์ไว้ในแรมดิสก์ในหน่วยความจำหรืออะไรทำนองนั้น แต่ข้อเสียของการทำงานในบริษัทที่คล่องตัวน้อยกว่าเรือบรรทุกน้ำมันก็เป็นแบบนี้
ก่อนหน้านั้นผมเกี่ยวข้องกับใบรับรอง TLS แค่ไม่กี่ใบ แต่เท่าที่ผมเจอ อย่างน้อยทุกที่ก็บังคับใช้วิธี CSR อย่างไรก็ตาม ในความเป็นจริง แนวปฏิบัติแย่ ๆ แบบนี้อาจพบได้บ่อยกว่าที่ผมเคยรู้ก็ได้
โหลดบาลานเซอร์ในสภาพแวดล้อมคลาวด์มักผสานกับผู้ให้บริการ ACME ภายนอกอย่าง letsencrypt ได้ไม่ง่าย และผู้ให้บริการภายในก็มักบังคับให้ย้ายโดเมนไปอยู่ฝั่งนั้น ซึ่งไม่ได้ทำได้เสมอไป แถมไม่ใช่ผู้ให้บริการคลาวด์ทุกรายที่มีฟีเจอร์นี้ และส่วนใหญ่ดูเหมือนจะมอง ACME เป็นฟีเจอร์ที่ค่อยเอามาแปะทีหลัง
จะใช้ terraform, งาน cron อะไรทำนองนั้นมาเขียนสคริปต์เชื่อมกันก็พอแฮ็กได้บ้าง แต่จะเละเทะ โหมดความล้มเหลวคือถ้าต่ออายุใบรับรองไม่สำเร็จ เว็บไซต์ก็หยุดทำงาน และด้วยอายุใบรับรองที่สั้นลงมาก เรื่องแบบนั้นจึงเกิดบ่อย เคยเจอมากับตัวแล้ว
ดังนั้นเมื่อไม่กี่วันก่อนผมเลยจ่าย ภาษีใบรับรองไวลด์การ์ด ไป จ่ายไปหลายร้อยดอลลาร์เพื่อไม่ต้องปวดหัวหาทางเลี่ยงเรื่องนี้ รู้สึกไม่ค่อยดีนัก แต่การเสียเวลาหลายวันเพื่อประหยัดเงินที่เทียบกับเวลาของผมแล้วไม่ถึง 2 ชั่วโมง แทบไม่คุ้มเลย งานออก CSR รับใบรับรอง แล้วคัดลอกไปยังโหลดบาลานเซอร์ที่เกี่ยวข้อง ใช้เวลาแค่ 20 นาที
ถ้ามีสิ่งแบบนี้ในโลกใบรับรองเดสก์ท็อปก็คงดี
Microsoft เข้าสู่โหมดบ้าคลั่งเต็มที่ในข้อกำหนดปัจจุบัน และผู้ขายใบรับรองของพวกเขาก็ทำเงินได้มากกว่าเดิมโดยไม่ต้องขยับนิ้วสักนิด
ที่ตลกคือความปลอดภัยทั้งหมดนั้น การตรวจสอบ และการยืนยันตัวตนไม่รู้จบ ยังคงตั้งอยู่บน รูปถ่ายหนังสือเดินทางหนึ่งใบ ที่ส่งทางอีเมล
Peter Eckersley (1978–2022) ได้รับการบรรจุเข้าสู่ Internet Hall of Fame หลังเสียชีวิต จากงานก่อตั้ง Let’s Encrypt
เพราะ Peter และผู้ร่วมงาน·เพื่อนร่วมงานจำนวนมากของเขา อินเทอร์เน็ตจึงกลายเป็นที่ที่ดีกว่าเดิม
ในบรรดาคนในหน้านี้ ไม่มีชื่อไหนที่เคยได้ยินเลย ไม่ว่านั่นจะสื่อถึงอะไรก็ตาม
ในรายชื่อทั้งหมด https://www.internethalloffame.org/inductees/all/ น่าจะจำได้ราวเจ็ดคน ถึงอย่างนั้นก็ยังเป็นสัดส่วนหลักหน่วยอยู่ดี
พอดีได้รับอีเมลจาก หน่วยงานรัฐบาลเนเธอร์แลนด์ ซึ่งเป็นลูกค้าที่เป็นไปได้ เขาขอว่าอย่าใช้ Letsencrypt
เขาบอกว่าชอบแบบที่พวกเขาเป็นฝ่ายจ่ายค่าใบรับรองมากกว่า แต่ไม่รู้ว่าทำไม ดูเหมือนจะไม่ไว้ใจ
หลายคนไม่ค่อยรู้ว่า ใบรับรอง HTTPS ไม่ได้จำเป็นต้องป้องกันการโจมตีบางประเภทอย่าง DNS injection ได้เสมอไป
ตัวอย่างแคมเปญโจมตี DNSPionage ที่ได้ใบรับรองที่ถูกต้องมาใช้ในการโจมตี ดูได้ที่ <https://www.youtube.com/watch?v=exy5JwAU8qk>
พูดสั้น ๆ คือการออกใบรับรอง HTTPS ถูกทำให้เป็นอัตโนมัติและพึ่งพาความปลอดภัยของ DNS ซึ่งทำได้ด้วย DNSSEC แต่คนส่วนใหญ่ไม่ได้ใช้งาน
ปัญหาคือรายการ CAA ก็ช่วยอะไรไม่ได้ในกรณีนี้ เพราะถ้าปลอมแปลง A record ได้ ก็ปลอมแปลง CAA record ได้เช่นกัน ส่วน DNSSEC จะช่วยตรงนี้ได้หรือไม่ ผมไม่มั่นใจเพราะไม่ได้รู้เรื่อง DNS ลึกพอ
การโจมตีอีกแบบคือ IP hijacking ในกรณีนี้ วิธี ACME ทั่วไปอย่างการยืนยันผ่าน HTTP อาจผ่านได้ แต่จะข้าม CAA record ไม่ได้ ต่อให้เป็นเจ้าของ IP address ที่ A หรือ AAAA record ของผมชี้ไป หากใน CAA ของผมไม่มี letsencrypt เป็นผู้ออกใบรับรองที่ได้รับอนุมัติ ก็ไม่สามารถออกใบรับรองผ่าน letsencrypt ได้
Let’s Encrypt เป็นความสำเร็จครั้งใหญ่ และตอนนี้กลายเป็นโครงสร้างพื้นฐานที่จำเป็นแล้ว
การตั้งอยู่บนโปรโตคอลเปิดเพื่อไม่ให้กลายเป็นจุดล้มเหลวเดียว เป็นการตัดสินใจที่ชาญฉลาด และทำให้แนวคิดนี้อยู่รอดได้แม้มีองค์กรใดองค์กรหนึ่งหายไป
หวังว่าจะมีวาระครบรอบแบบนี้ต่อไปอีกมากมาย