3 คะแนน โดย GN⁺ 2024-11-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ในสถานการณ์ที่ข้อมูลส่วนบุคคลและข้อมูลธุรกิจถูกส่งผ่านอินเทอร์เน็ตบ่อยขึ้น 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 ความคิดเห็น

 
GN⁺ 2024-11-21
ความคิดเห็นจาก Hacker News
  • เป็นหนึ่งในบริการที่ดีที่สุดอย่างไม่ต้องสงสัย ทำให้ธุรกิจขายใบรับรองหยุดลง และช่วยให้อินเทอร์เน็ตปลอดภัยขึ้น
    ครั้งหนึ่ง การเชื่อมต่อ HTTPS เป็นสิ่งที่ใช้กันเฉพาะกับโปรเจกต์ที่ “จริงจัง” เพราะค่าใบรับรองแพงกว่าโดเมนมาก มักเริ่มทำโดยไม่มีใบรับรองก่อน แล้วถ้าไปได้ดีก็ค่อยจ่ายราว 100 ดอลลาร์เพื่อซื้อใบรับรอง

    • ยังมีคนจำนวนไม่น้อยที่ไม่ค่อยรู้เรื่องนี้ และยังซื้อใบรับรองเองจากผู้ให้บริการโฮสติ้งทุกปี หรือจ่ายแบบ ต่ออายุอัตโนมัติ ราวกับอยู่ในปี 2013
    • เคยตั้งค่าพร็อกซีแบบลวก ๆ จนมันขอใบรับรองให้ไม่ว่าจะใส่โดเมนอะไร ผู้โจมตีรู้เรื่องนี้เข้า แล้วส่ง HTTP request ที่ใส่ซับโดเมนสุ่ม ๆ มาเรื่อย ๆ
      ตอนพบเรื่องนี้ สิ่งแรกที่คิดไม่ใช่ “ถ้าโดน Let’s Encrypt บล็อกจะทำยังไง” แต่เป็น “ขอโทษ Let’s Encrypt ที่การตั้งค่าแบบขี้เกียจของฉันทำให้คุณต้องรับโหลดที่ไม่จำเป็น” Let’s Encrypt คือสิ่งที่ดีที่สุดอย่างน้อยในรอบ 10 ปีที่ผ่านมา สำหรับเว็บ
    • Mozilla ถูกวิจารณ์มากก็จริง แต่แค่ letsencrypt อย่างเดียวก็ทำให้โลกดีขึ้นแล้ว
      ก่อนหน้านั้นบริการของฉันไม่ใช้ SSL เลย เพราะมองว่าไม่คุ้มค่าเมื่อเทียบกับต้นทุน หลังจากนั้นก็ไม่เคยไม่ใช้มันอีกเลย
    • เมื่อก่อนก็มีบริการที่ให้ใบรับรอง “ของจริง” สำหรับโดเมนเดี่ยวได้ฟรี แต่ขั้นตอนซับซ้อนและน่ารำคาญ
      ถ้าต้องการ ใบรับรอง wildcard เพื่อครอบคลุมซับโดเมนหลายตัวของโปรเจกต์ส่วนตัว ราคาก็พุ่งขึ้นมากทันที ดีใจที่ปัญหานี้ถูกแก้ไปหมดแล้ว
    • Google/Chrome และ Firefox ก็มีส่วนทำให้หน่วยงานออกใบรับรองที่ฟรีและเปิดกว้างเกิดขึ้นได้
  • ตามเกณฑ์ของเรา เราถือว่าครบรอบ 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/

    • การที่มันเกิดขึ้นพอดีใน เดือนธันวาคม 2015 บังเอิญลงตัวมากสำหรับฉัน
      ตอนนั้นฉันมีเงินแค่ซื้อโดเมน แต่ไม่มีเงินจ่ายค่า SSL ทั้งที่ไซต์จำเป็นต้องใช้ SSL ฟรี SSL ของ Let’s Encrypt ทำให้โปรเจกต์นั้นประสบความสำเร็จ
  • รู้สึกเหมือนเพิ่งเมื่อวานที่ยังต้องจ่ายเงินซื้อใบรับรอง และแย่กว่านั้นคือมีช่วงที่ถึงกับรันโดยไม่มีใบรับรองเลย
    ไม่น่าเชื่อว่าเวลาผ่านมา 10 ปี แล้ว

    • ไม่น่าเชื่อว่ายังมี พวกประหลาดที่ต่อต้าน TLS อยู่
  • ผมมีความรู้สึกค่อนข้างปน ๆ ต่อ Let’s Encrypt
    เป็นเรื่องดีที่สามารถรับใบรับรอง TLS ฟรีได้โดยไม่ต้องพึ่งผู้ให้บริการน่าสงสัยอย่าง StartSSL ต้องขอบคุณสิ่งนี้ที่ทำให้เว็บไซต์ใด ๆ ย้ายไป HTTPS ได้ง่าย และแทบไม่มีกรณีที่ข้อมูลอ่อนไหวอย่างการล็อกอินถูกส่งผ่านการเชื่อมต่อที่ไม่เข้ารหัสอีกแล้ว
    แต่อีกด้านหนึ่ง ผมมองว่ามันทำให้โครงสร้างที่พังโดยพื้นฐานของ โมเดลความเชื่อถือของใบรับรอง TLS แข็งแรงขึ้น ซึ่งหน่วยงานออกใบรับรองใด ๆ ก็สามารถออกใบรับรองสำหรับโดเมนของผมได้โดยไม่ต้องให้ผมเกี่ยวข้อง มีมาตรการบรรเทาหลายอย่าง เช่น CAA record หรือ Certificate Transparency แต่ไม่ใช่วิธีแก้ 100% ถ้าไม่มี Let’s Encrypt บางทีอาจมีแรงจูงใจมากขึ้นในการนำกลไกความเชื่อถือที่ดีกว่า เช่น DNSSEC+DANE มาใช้ ซึ่งจำกัดการออกใบรับรองไว้กับผู้ที่มีอำนาจตัดสินความเป็นเจ้าของโดเมนได้จริง
    อีกเรื่องที่น่ากังวลคือความเข้ากันได้ย้อนหลังที่ตั้งใจให้ขาดหายไปในกระบวนการย้ายไซต์ไป TLS นี่ไม่ใช่แค่ปัญหาครั้งเดียวว่าจะเปิดหรือปิด TLS แต่เป็นปัญหาที่โปรโตคอลและชุดรหัสลับถูกเลิกใช้ไปเรื่อย ๆ สำหรับสิ่งที่ต้องปลอดภัย เช่น ธนาคารหรืออีเมล เรื่องนี้สมเหตุสมผล แต่ผมไม่คิดว่าจำเป็นไปถึงการดูข้อมูลสแตติกที่ไม่สำคัญอย่างสูตรอาหาร ส่วนปัญหาผู้ให้บริการโทรคมนาคมแทรกโฆษณาหรือสิ่งแปลก ๆ ผมคิดว่าแก้ด้วยกฎระเบียบจะดีกว่า

    • ในส่วนที่ว่า ถ้าไม่มี Let’s Encrypt ก็คงเกิดแรงจูงใจให้ใช้กลไกความเชื่อถือที่ดีกว่านั้น ผมกลับคิดว่า Let’s Encrypt ทำให้ปัญหาเหล่านี้เด่นชัดขึ้น และทำให้ผู้มีอำนาจเริ่มกังวลจริง ๆ แล้ว
      ถ้าใบรับรองยังคงเป็นเรื่องเจ็บปวดต่อไป ก็อาจมีบางอย่างที่ดีกว่า TLS เกิดขึ้นได้เหมือนกัน แต่ดูแล้วไม่น่าเป็นเช่นนั้น เพราะปัญหาพื้นฐานยังคงยากอยู่
  • สิ่งที่น่าขอบคุณที่สุดคือ โปรโตคอล ACME
    จำได้ไหมว่าก่อนมี Let’s Encrypt เราต่ออายุใบรับรองกันอย่างไร? คีย์ส่วนตัวเคยถูกส่งไปมาทางอีเมลในไฟล์แนบ ZIP มันแทบจะเป็นละครความปลอดภัย และเท่าที่ผมรู้ นั่นเป็นแนวปฏิบัติที่พบได้ทั่วไปในผู้ออกใบรับรองหลายแห่ง ขอบคุณ Let’s Encrypt

    • ตอนนี้ยังต้องจัดการต่ออายุ GlobalSign ด้วยมืออยู่เลย
      ในขั้นตอนสร้าง CSR จะสร้างคีย์ใหม่บนเซิร์ฟเวอร์ แล้วรันบนตัวเซิร์ฟเวอร์เองเพื่อไม่ให้คีย์ออกจากที่เก็บภายในเซิร์ฟเวอร์ CSR จะถูกส่งไปยัง GlobalSign จากนั้นผ่านบุคคลที่สามเพราะกระบวนการขององค์กรขนาดใหญ่ แล้วอีกไม่กี่วันจึงได้รับใบรับรองมาเพื่อนำไปติดตั้งบนเซิร์ฟเวอร์
      อยากใช้ ACME แล้วเก็บคีย์ไว้ในแรมดิสก์ในหน่วยความจำหรืออะไรทำนองนั้น แต่ข้อเสียของการทำงานในบริษัทที่คล่องตัวน้อยกว่าเรือบรรทุกน้ำมันก็เป็นแบบนี้
    • Certificate Signing Request หายไปไหนแล้ว? จุดประสงค์เดิมของมันคือเพื่อไม่ต้องส่งคีย์ส่วนตัวไปมา
      ก่อนหน้านั้นผมเกี่ยวข้องกับใบรับรอง TLS แค่ไม่กี่ใบ แต่เท่าที่ผมเจอ อย่างน้อยทุกที่ก็บังคับใช้วิธี CSR อย่างไรก็ตาม ในความเป็นจริง แนวปฏิบัติแย่ ๆ แบบนี้อาจพบได้บ่อยกว่าที่ผมเคยรู้ก็ได้
    • ไม่ว่าจะใช้ Let’s Encrypt หรือไม่ สิ่งที่ส่งเป็นไฟล์ ZIP ควรเป็น คีย์สาธารณะ ไม่ใช่คีย์ส่วนตัว
    • ในบางคอนฟิกของผม ยังต้องทำเรื่องไร้สาระแบบนั้นอยู่
      โหลดบาลานเซอร์ในสภาพแวดล้อมคลาวด์มักผสานกับผู้ให้บริการ ACME ภายนอกอย่าง letsencrypt ได้ไม่ง่าย และผู้ให้บริการภายในก็มักบังคับให้ย้ายโดเมนไปอยู่ฝั่งนั้น ซึ่งไม่ได้ทำได้เสมอไป แถมไม่ใช่ผู้ให้บริการคลาวด์ทุกรายที่มีฟีเจอร์นี้ และส่วนใหญ่ดูเหมือนจะมอง ACME เป็นฟีเจอร์ที่ค่อยเอามาแปะทีหลัง
      จะใช้ terraform, งาน cron อะไรทำนองนั้นมาเขียนสคริปต์เชื่อมกันก็พอแฮ็กได้บ้าง แต่จะเละเทะ โหมดความล้มเหลวคือถ้าต่ออายุใบรับรองไม่สำเร็จ เว็บไซต์ก็หยุดทำงาน และด้วยอายุใบรับรองที่สั้นลงมาก เรื่องแบบนั้นจึงเกิดบ่อย เคยเจอมากับตัวแล้ว
      ดังนั้นเมื่อไม่กี่วันก่อนผมเลยจ่าย ภาษีใบรับรองไวลด์การ์ด ไป จ่ายไปหลายร้อยดอลลาร์เพื่อไม่ต้องปวดหัวหาทางเลี่ยงเรื่องนี้ รู้สึกไม่ค่อยดีนัก แต่การเสียเวลาหลายวันเพื่อประหยัดเงินที่เทียบกับเวลาของผมแล้วไม่ถึง 2 ชั่วโมง แทบไม่คุ้มเลย งานออก CSR รับใบรับรอง แล้วคัดลอกไปยังโหลดบาลานเซอร์ที่เกี่ยวข้อง ใช้เวลาแค่ 20 นาที
    • ในบรรดาผู้ออกใบรับรองเหล่านั้น ตอนนี้ยังมีสักกี่รายที่ยังอยู่ใน trust store ของทุกคน?
  • ถ้ามีสิ่งแบบนี้ในโลกใบรับรองเดสก์ท็อปก็คงดี
    Microsoft เข้าสู่โหมดบ้าคลั่งเต็มที่ในข้อกำหนดปัจจุบัน และผู้ขายใบรับรองของพวกเขาก็ทำเงินได้มากกว่าเดิมโดยไม่ต้องขยับนิ้วสักนิด
    ที่ตลกคือความปลอดภัยทั้งหมดนั้น การตรวจสอบ และการยืนยันตัวตนไม่รู้จบ ยังคงตั้งอยู่บน รูปถ่ายหนังสือเดินทางหนึ่งใบ ที่ส่งทางอีเมล

  • Peter Eckersley (1978–2022) ได้รับการบรรจุเข้าสู่ Internet Hall of Fame หลังเสียชีวิต จากงานก่อตั้ง Let’s Encrypt
    เพราะ Peter และผู้ร่วมงาน·เพื่อนร่วมงานจำนวนมากของเขา อินเทอร์เน็ตจึงกลายเป็นที่ที่ดีกว่าเดิม

    • https://www.internethalloffame.org/inductees/
      ในบรรดาคนในหน้านี้ ไม่มีชื่อไหนที่เคยได้ยินเลย ไม่ว่านั่นจะสื่อถึงอะไรก็ตาม
      ในรายชื่อทั้งหมด 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 เป็นความสำเร็จครั้งใหญ่ และตอนนี้กลายเป็นโครงสร้างพื้นฐานที่จำเป็นแล้ว
    การตั้งอยู่บนโปรโตคอลเปิดเพื่อไม่ให้กลายเป็นจุดล้มเหลวเดียว เป็นการตัดสินใจที่ชาญฉลาด และทำให้แนวคิดนี้อยู่รอดได้แม้มีองค์กรใดองค์กรหนึ่งหายไป
    หวังว่าจะมีวาระครบรอบแบบนี้ต่อไปอีกมากมาย