ฉันมีปัญหาในการทำความเข้าใจว่าทำไมเราต้องซื้อใบรับรอง SSL เมื่อเราสามารถสร้างพวกเขาในพื้นที่โดยใช้ openSSL อะไรคือความแตกต่างระหว่างใบรับรองที่ฉันซื้อและใบรับรองทดสอบที่ฉันสร้างขึ้นภายในเครื่อง มันเป็นเพียงการหลอกลวงครั้งใหญ่หรือไม่?
ฉันมีปัญหาในการทำความเข้าใจว่าทำไมเราต้องซื้อใบรับรอง SSL เมื่อเราสามารถสร้างพวกเขาในพื้นที่โดยใช้ openSSL อะไรคือความแตกต่างระหว่างใบรับรองที่ฉันซื้อและใบรับรองทดสอบที่ฉันสร้างขึ้นภายในเครื่อง มันเป็นเพียงการหลอกลวงครั้งใหญ่หรือไม่?
คำตอบ:
หนึ่งคำ - ไว้วางใจ ใบรับรอง SSL จากผู้ให้บริการที่เบราว์เซอร์ของคุณเชื่อถือหมายความว่าอย่างน้อยพวกเขาได้ทำการตรวจสอบขั้นพื้นฐานเพื่อบอกว่าคุณเป็นคนที่คุณพูด
มิฉะนั้นฉันสามารถสร้างใบรับรองของตัวเองสำหรับ google.com หรือ yourbank.com และแกล้งทำเป็นว่าเป็นพวกเขา
ใบรับรองที่ชำระเงินไม่มีการเข้ารหัสในระดับพิเศษใด ๆ กับการเซ็นชื่อด้วยตนเอง (โดยปกติ) แต่ใบรับรองที่ลงนามเองจะทำให้เบราว์เซอร์ผิดพลาด
มีบางส่วนของ SSLเป็นกลอุบาย (ใบรับรอง verisign กับ geotrust ที่ verisign มีราคาแพงกว่า 100x) แต่ไม่ใช่ทั้งหมด
หากนี่คือข้อมูลภายในทั้งหมดคุณไม่จำเป็นต้องมีใบรับรองที่ต้องชำระเงินเพราะคุณสามารถใช้วิธีการเชื่อถือของคุณเอง (เช่นไม่ทำอะไรเลยหรืออาจเป็นเพียงการตรวจสอบลายนิ้วมือ)
จุดทั้งหมดของใบรับรอง SSL คือเพื่อให้เบราว์เซอร์มีระดับความน่าเชื่อถือที่สมเหตุสมผลในคีย์สาธารณะของเซิร์ฟเวอร์สำหรับธุรกรรม HTTPS
ก่อนอื่นมาสำรวจว่าจะเกิดอะไรขึ้นถ้าเราไม่ได้ใช้ใบรับรอง แต่เซิร์ฟเวอร์จะส่งรหัสสาธารณะในแบบธรรมดาและเบราว์เซอร์จะเริ่มต้นการสื่อสารที่เข้ารหัสโดยใช้ (สิ่งแรกที่มันจะทำคือการเข้ารหัสรหัสสาธารณะของตัวเองและส่งมันอย่างปลอดภัย) จะเป็นอย่างไรถ้าฉันและผู้โจมตีเข้ามาทำให้ตัวเองอยู่ตรงกลาง ฉันสามารถแทนที่กุญแจสาธารณะของคุณได้อย่างรวดเร็วด้วยการเชื่อมต่อที่เข้ารหัสด้วยเบราว์เซอร์ถอดรหัสทุกสิ่งที่ฉันได้รับเข้ารหัสด้วยกุญแจสาธารณะของคุณและส่งผ่าน (และในทางกลับกันสำหรับปริมาณการตอบสนองประเภท) ไม่มีฝ่ายใดจะสังเกตเห็นความแตกต่างเนื่องจากไม่มีใครรู้กุญแจสาธารณะมาก่อน
ตกลงดังนั้นเราได้สร้างว่าเราต้องการวิธีบางอย่างสำหรับเบราว์เซอร์ที่เชื่อถือรหัสสาธารณะของฉัน วิธีหนึ่งในการทำเช่นนี้คือการจัดเก็บคีย์สาธารณะที่ลงทะเบียนทั้งหมดในเบราว์เซอร์ แน่นอนว่าจะต้องมีการอัปเดตทุกครั้งที่มีคนลงทะเบียนกุญแจสาธารณะและสิ่งนี้จะนำไปสู่การขยายตัว หนึ่งสามารถเก็บกุญแจสาธารณะในมือของเซิร์ฟเวอร์ DNS 1แต่เซิร์ฟเวอร์ DNS สามารถปลอมแปลงได้เช่นกันและ DNS ไม่ใช่โปรโตคอลที่ปลอดภัย
ดังนั้นตัวเลือกเดียวที่เหลือคือการ "ไว้วางใจ" ผ่านกลไกการลงนาม เบราว์เซอร์จะจัดเก็บรายละเอียดของ CA สองสามแห่งและใบรับรองของคุณจะถูกส่งไปพร้อมกับใบรับรองอื่น ๆ แต่ละใบจะเซ็นชื่อถัดไป เป็นหน้าที่ของ CA เพื่อให้แน่ใจว่าโดเมนนั้นเป็นของคุณก่อนที่จะลงนามใบรับรองให้คุณ
เนื่องจากการเป็น CA นั้นเป็นธุรกิจพวกเขาคิดเรื่องนี้ บางกว่าคนอื่น
หากคุณทำใบรับรองของคุณเองคุณจะได้รับข้อผิดพลาดคล้ายกับ:
ไม่มีค่าสำหรับใบรับรองที่ไม่ได้ลงชื่อ มันเหมือนกับการหยิบดินสอและหนังสือเล่มเล็กรูปวาดหนังสือเดินทางที่อ้างว่าคุณเป็นบารัคโอบามา ไม่มีใครจะเชื่อถือได้
1. หลังจากทั้งหมดรายการ DNS ของคุณจะถูกสร้างขึ้นเมื่อคุณลงทะเบียนโดเมน การใช้โปรโตคอลที่แข็งแกร่งยิ่งขึ้นซึ่งช่วยให้คุณลงทะเบียนคีย์สาธารณะพร้อมกันจะเป็นแนวคิดที่น่าสนใจ
คำตอบสำหรับคำถามของคุณขึ้นอยู่กับกลุ่มเป้าหมายของคุณ: เนื่องจากระบบใบรับรองทั้งหมดใช้ "ความเชื่อถือ" ผู้ใช้ของคุณต้องมีความพร้อมในการพิสูจน์ใบรับรองของคุณเองหรือเชื่อถือบุคคลที่ 3 ที่ทำการตรวจสอบและแสดงความสำเร็จโดยการลงชื่อ ใบรับรองของคุณ คำว่า "เพื่อพิสูจน์ใบรับรองของคุณ" ฉันใช้ไม่ถูกต้อง: รุ่นยาวควรเป็น: "เพื่อพิสูจน์ว่าคุณเป็นเจ้าของใบรับรองและได้รับอนุญาตให้ใช้"
หากผู้ใช้ของคุณทุกคนรู้จักคุณเป็นส่วนตัวและมีความสามารถด้านเทคนิคในการพิสูจน์ว่าใบรับรองของคุณได้ออกโดยตัวคุณเองแล้วก็ไม่จำเป็นต้องมีใบรับรองทางเทคนิคจากผู้ให้บริการที่ "รับรอง" ในกรณีนี้ใบรับรองที่ลงชื่อด้วยตนเองอาจดีกว่าหนึ่งจากผู้ให้บริการรายใดรายหนึ่ง
แต่ในกรณีส่วนใหญ่ผู้ใช้ไม่สามารถทำกระบวนการนี้ด้วยตนเองได้ ที่นี่ผู้ให้บริการ SSL เหล่านั้นเข้ามาในตลาด พวกเขาเสนอบริการเพื่อทำการตรวจสอบเหล่านี้และแสดงผลลัพธ์ของการตรวจสอบโดยการลงนามใบรับรอง แต่ข้อเท็จจริงที่สำคัญอย่างหนึ่งที่ควรคำนึงถึงคือเมื่อลงชื่อใบรับรองผู้ให้บริการ SSL จะแสดงว่าได้ตรวจสอบข้อมูลประจำตัวของผู้ออกใบรับรองตามนโยบายการลงนามของตนเอง ดังนั้นผู้ใช้จะต้องตัดสินใจว่านโยบายนี้แม่นยำเพียงพอหรือไม่และเขา / เธอสามารถไว้วางใจผู้ให้บริการได้หรือไม่
ประเด็นหลักคือถ้าใบรับรองสร้างขึ้นเองผู้ใช้ทั่วไปจะไม่มีทางพิสูจน์ความจริงได้ สำหรับใบรับรองที่ซื้อมาพวกเขาควรจะตรวจสอบอย่างน้อยสิ่งที่พิมพ์ภายในใบรับรองนั้นถูกต้อง แนวคิด: หากคุณใส่โทรศัพท์และที่อยู่ในใบรับรอง CA ควรตรวจสอบ แต่พวกเขาไม่ค่อยทำ
นอกจากนี้ใบรับรองการซื้อนั้นสามารถตรวจสอบย้อนกลับได้ซึ่งหมายความว่าผู้ใช้สามารถติดตามได้ว่าใบรับรองนั้นมาจากที่ใดในขณะที่ใบรับรองที่ลงชื่อด้วยตนเองนั้นเป็นเพียงข้อมูลประจำตัวแบบสุ่ม
สำหรับหลาย ๆ ระบบจำเป็นต้องมี "การลงนามรหัส" จาก CA ที่ได้รับอนุญาตในอดีตซึ่งเป็นนโยบายขับเคลื่อน แต่เนื่องจากใบรับรองที่ลงนามด้วยตนเองมีจำนวนมากดังนั้นจึงไม่ได้บังคับใช้อีกต่อไป 100%
ไม่มีความแตกต่างทางเทคนิค (สิ่งที่คุณทำเองไม่ปลอดภัยน้อยกว่า) เพียงแค่รูปแบบองค์กร: ใบรับรอง CA ของคุณไม่ได้เป็นส่วนหนึ่งของการติดตั้งมาตรฐานของเบราว์เซอร์ ทำให้คนส่วนใหญ่ไม่สบายใจที่จะเชื่อมต่อกับใบรับรองของคุณ แต่คงไม่สมเหตุสมผลที่จะซื้อใบรับรองสำหรับเครือข่ายภายใน
มันน่าเชื่อถือ ผู้ให้บริการ SSL "ที่ได้รับการรับรอง" มีชื่อเสียงว่ามีชื่อเสียง (แม้ว่าจะสามารถจัดการได้) กับใบรับรองที่ลงนามด้วยตนเองจากเซิร์ฟเวอร์เอง
หากองค์กรของคุณมีการลงนามในใบรับรองของตัวเองนี่เป็นสิ่งที่ยอมรับได้อย่างสมบูรณ์และไม่ควรทำให้เกิดการเตือนใด ๆ สำหรับผู้ใช้ (โดยระบุว่าพวกเขากำลังใช้กุญแจใบรับรองของคุณเป็นแหล่งที่เชื่อถือได้) แต่จะสร้างคำเตือนถ้าคุณพยายามใช้จากภายนอก
Bottom-line: สำหรับการใช้งานภายในมันเป็นเรื่องปกติถ้าคุณให้ลูกค้าภายนอกที่จ่ายเงินโดยไม่มีคำเตือนเป็นความสงบของจิตใจ คุณจะรู้สึกปลอดภัยมากขึ้นเมื่อทำธุรกรรมทางการเงินผ่านแหล่งที่ได้รับการรับรองหรือมีคนที่ยืนอยู่บนถนนที่คุณไม่รู้จักจริงๆ
เมื่อเร็ว ๆ นี้LetsEncryptได้ประกาศความพร้อมของเครื่องมือบรรทัดคำสั่งเพื่อสร้างใบรับรองที่ถูกต้อง
ไม่มีอีเมลตรวจสอบความถูกต้องไม่มีการแก้ไขการกำหนดค่าที่ซับซ้อนไม่มีใบรับรองหมดอายุที่ทำลายเว็บไซต์ของคุณ และแน่นอนเพราะ Let's Encrypt มอบใบรับรองฟรีไม่จำเป็นต้องชำระเงิน
สำหรับผู้ที่สงสัยว่าใบรับรองเหล่านั้นใช้ได้ในเบราว์เซอร์หลักหรือไม่คำตอบคือใช่:
เมื่อวันที่ 19 ตุลาคม 2558 ใบรับรองระดับกลางกลายเป็นเครื่องหมายไขว้กันโดย IdenTrust ทำให้ใบรับรองทั้งหมดที่ออกโดย Let's Encrypt เชื่อถือได้จากเบราว์เซอร์หลักทั้งหมด [20]
..... ในวันที่ 8 มีนาคม 2559 Let's Encrypt ออกใบรับรองที่ล้านหลังจากผ่านไปเจ็ดเดือน [39]
ในวันที่ 12 เมษายน 2559 Let's Encrypt ออกจากเบต้า
ลิงก์สำหรับผู้ดูแลระบบและนักพัฒนา: https://letsencrypt.org/getting-started/
ในยุคของเทคโนโลยีบล็อกเชนและการขจัดระบบความน่าเชื่อถือของบุคคลที่สามมันเป็นเวลาที่จะมีการออกใบรับรองราคาแพงโดยหน่วยงานที่ได้รับการแต่งตั้งเพียงไม่กี่คนเท่านั้นที่เริ่มถูกสอบสวน
แม้ว่า Letsencrypt ไม่เกี่ยวข้องกับเทคโนโลยี blockchain แต่เป็นการเริ่มต้นในทิศทางที่ถูกต้อง จำเป็นที่จะต้องจ่ายค่าธรรมเนียมสูงทุกปีให้กับผู้ออกใบรับรองที่มีราคาแพงหวังว่าจะจบลงด้วยเหตุผล
เพียงแค่ใส่ใบรับรอง SSL ที่ลงชื่อด้วยตนเองก็ไม่ได้มีความหมายอะไรเลย มันไม่มีคุณค่าต่อโลกภายนอก มันเหมือนกับว่า "ฉันเป็นเจ้าของสเปน" คุณอาจคิดว่าคุณทำโดยสุจริต แต่ไม่มีใครรับรู้การเรียกร้องของคุณ
การเปรียบเทียบที่คล้ายคลึงกันนั้นจะเป็นการประดิษฐ์อะไรบางอย่างแล้วก็อ้างว่าคุณเป็นเจ้าของสิทธิ์ในการประดิษฐ์ แต่ถ้าคุณไม่ได้จดสิทธิบัตรที่สำนักงานมันคงยากที่จะเอาคำพูดของคุณมาใช้ตอนนี้หรือไม่
จุดทั้งหมดของใบรับรองคือมันถูกลงนามโดยผู้มีอำนาจที่เชื่อถือได้ หากเว็บไซต์บางแห่งมีใบรับรอง SSL ที่ถูกต้องก็หมายความว่าเจ้าของประสบปัญหาในการลงทะเบียนเว็บไซต์ของเขาชำระเงินสำหรับใบรับรอง SSL และได้รับการรับรองอย่างเป็นทางการจากหน่วยงานออกใบรับรองจริงบางแห่งดังนั้นจึงไม่ใช่เว็บไซต์ฟิชชิ่งราคาถูก ในทางกลับกันหากคุณเชื่อถือใบรับรองที่ลงนามด้วยตนเองเว็บไซต์ฟิชชิ่งสามารถสร้างใบรับรองปลอมแปลงของเขาเอง (ซึ่งคุณจะยอมรับอย่างมีความสุข) และ voila
แน่นอนถ้านี่คือเครือข่ายภายในบนอินทราเน็ตส่วนตัวคุณอาจเชื่อถือซึ่งกันและกันอยู่แล้วดังนั้นในกรณีนี้ใบรับรองที่เชื่อถือได้ไม่ได้เพิ่มอะไรเลยดังนั้นคุณสามารถเพิกเฉยต่อแสงสีแดงที่เบราว์เซอร์ของคุณจะโยนใส่คุณได้อย่างปลอดภัย . เช่นเดียวกับเว็บไซต์ขนาดเล็กที่คุณยังต้องการเข้ารหัสการรับส่งข้อมูลของไคลเอนต์ - เซิร์ฟเวอร์ แต่รูปแบบการคุกคามของคุณไม่รับประกันการรับรองความถูกต้องที่เข้มงวดซึ่งในกรณีนี้คุณจะได้รับใบรับรองที่ลงนามด้วยตนเองและยอมรับ ความเสี่ยงของ MITM
ซึ่งอาจเป็นที่น่าพอใจเมื่อพิจารณาว่าใบรับรอง SSL ที่เชื่อถือได้มีราคาแพงเพียงใด
กล่าวอีกนัยหนึ่งใบรับรองที่ลงนามด้วยตนเองจะบอกว่า "ฉันรับรองว่าฉันเป็นใคร - เชื่อใจฉัน !"
เพื่อให้สั้นและเรียบง่าย ... และทำให้เสียความเชื่อเล็กน้อย ...
ไม่ใช่ปัญหาการเข้ารหัสด้วยเครื่องมือที่เหมาะสมคุณสามารถสร้างใบรับรองในเครื่องด้วยประเภทการเข้ารหัสที่คุณต้องการ ... และรับใบรับรองที่ถูกต้อง
ข้อได้เปรียบหลักที่คุณมีเมื่อซื้อใบรับรองจากหน่วยงานออกใบรับรองคือในช่วงเวลานั้นใบรับรองมีผลบังคับใช้พวกเขามีกลไกในการตรวจสอบสิ่งที่คุณเซ็นชื่อกับใบรับรองออนไลน์ของคุณในช่วงเวลานั้น ...
พีซีของคุณไม่จำเป็นต้องเชื่อมต่อเพื่อให้ผลิตภัณฑ์ดิจิทัลของคุณได้รับการตรวจสอบและรับรองความถูกต้องกับใบรับรองของคุณ ... คุณควรเปลี่ยนเส้นทางการตรวจสอบไปยังหน่วยงานรับรอง
ขออภัยที่ต้องเข้าร่วมการสนทนาในช่วงนี้ - ฉันคิดว่ามันคุ้มค่าที่จะชี้ให้เห็นว่าการใช้ openssl คุณสามารถตั้งค่า CA ส่วนตัวด้วยใบรับรองหลักของตนเองและสร้างใบรับรองเซิร์ฟเวอร์ที่ลงนามโดย CA นี้ โดยมีเงื่อนไขว่าใบรับรอง CA root ถูกนำเข้าไปยังเบราว์เซอร์และเบราว์เซอร์แจ้งว่าจะยอมรับใบรับรองเซิร์ฟเวอร์จะได้รับการยอมรับโดยไม่มีความคิดเห็น (เห็นได้ชัดว่านี่เป็นเพียงตัวเลือกที่ทำงานได้หากชุมชนผู้ใช้มีขนาดเล็กและผู้ใช้ทุกคนรู้จักกันเป็นการส่วนตัว)
คุณจะเชื่อใจใครบางคนที่บอกว่า "เชื่อฉัน"? ความมั่นใจในความถูกต้องสามารถให้ได้โดย "ผู้มีอำนาจที่เชื่อถือได้" ซึ่งทุกคนไว้วางใจ นี่คือเหตุผลที่เราต้องเก็บเหรียญขนาดใหญ่ไว้ในคอก