หากฉันดูไซต์ที่มีใบรับรอง SSL ที่ไม่ได้ลงชื่อหรือลงนามเองเบราว์เซอร์ของฉันจะเตือนฉัน เบราว์เซอร์ตัวเดียวกันไม่มีปัญหาในการอนุญาตให้ส่งข้อมูลประจำตัวในหน้าที่ไม่ปลอดภัย
เหตุใดใบรับรองที่ลงนามเองจึงถือว่าเลวร้ายยิ่งกว่าไม่มีใบรับรอง
หากฉันดูไซต์ที่มีใบรับรอง SSL ที่ไม่ได้ลงชื่อหรือลงนามเองเบราว์เซอร์ของฉันจะเตือนฉัน เบราว์เซอร์ตัวเดียวกันไม่มีปัญหาในการอนุญาตให้ส่งข้อมูลประจำตัวในหน้าที่ไม่ปลอดภัย
เหตุใดใบรับรองที่ลงนามเองจึงถือว่าเลวร้ายยิ่งกว่าไม่มีใบรับรอง
คำตอบ:
มีคนมากมายที่รู้สึกว่าระบบนี้พัง
นี่คือตรรกะที่อยู่เบื้องหลังว่าทำไมเบราว์เซอร์ของคุณจะให้คำเตือนที่น่าตกใจเมื่อใบรับรอง SSL ไม่ถูกต้อง:
หนึ่งในวัตถุประสงค์การออกแบบดั้งเดิมของโครงสร้างพื้นฐาน SSL คือการให้การรับรองความถูกต้องของเว็บเซิร์ฟเวอร์ โดยทั่วไปถ้าคุณไปที่ www.bank.com SSL จะช่วยให้เว็บเซิร์ฟเวอร์ที่ตอบสนองเพื่อพิสูจน์ว่าจริงแล้วมันเป็นของธนาคารของคุณ วิธีนี้จะหยุดการแอบอ้างไม่ให้จัดการ DNS หรือใช้วิธีอื่นเพื่อให้เซิร์ฟเวอร์ที่เป็นอันตรายตอบสนอง
"ความน่าเชื่อถือ" ใน SSL นั้นให้บริการโดยการมีบุคคลที่สามที่เชื่อถือได้ (บริษัท เช่น VeriSign และ Thawte Consulting) ลงนามในใบรับรองซึ่งบ่งชี้ว่าพวกเขาได้ตรวจสอบแล้วว่าเป็นของใครเป็นเจ้าของ (ในทางทฤษฎีโดยไปที่ผู้ดูแลระบบไอที บุคคลหรือวิธีการอื่นที่สร้างความเชื่อมั่นโดยตรงแม้ว่าหลักฐานแสดงให้เห็นว่าพวกเขาค่อนข้างหละหลวมเกี่ยวกับเรื่องนี้ - สิ่งที่ต้องทำเพื่อให้ได้รับใบรับรอง SSL ที่เซ็นชื่อมักจะมีจำนวน 800 และทักษะการแสดงเล็กน้อย)
ดังนั้นหากคุณเชื่อมต่อกับเว็บเซิร์ฟเวอร์ที่ให้ใบรับรอง SSL แต่ไม่ได้ลงนามโดยบุคคลที่สามที่เชื่อถือได้ในทางทฤษฎีนี่อาจหมายความว่าคุณกำลังสื่อสารกับผู้แอบอ้างที่อ้างว่าเป็นเซิร์ฟเวอร์ที่อยู่ในองค์กรอื่น .
ในทางปฏิบัติใบรับรองที่ลงนามเองโดยทั่วไปหมายถึงว่าองค์กรที่รันเซิร์ฟเวอร์เลือกที่จะไม่จ่ายค่าใบรับรองที่เซ็นชื่อ (อาจมีราคาแพงขึ้นอยู่กับคุณสมบัติที่คุณต้องการ) หรือขาดความเชี่ยวชาญด้านเทคนิคในการกำหนดค่าหนึ่ง ( โซลูชันธุรกิจขนาดเล็กบางแห่งเสนอกลไกการคลิกเพียงครั้งเดียวสำหรับใบรับรองที่ลงนามเอง แต่การได้รับใบรับรองที่เชื่อถือได้นั้นต้องใช้ขั้นตอนทางเทคนิคเพิ่มเติม)
ฉันเองเชื่อว่าระบบนี้ใช้งานไม่ได้และการสื่อสารกับเซิร์ฟเวอร์ที่ไม่มีการเข้ารหัสนั้นอันตรายกว่าการสื่อสารกับเซิร์ฟเวอร์ที่เสนอ SSL ด้วยใบรับรองที่ลงชื่อด้วยตนเอง มีเหตุผลสามประการที่เบราว์เซอร์ไม่ทำงานเช่นนี้:
การส่งข้อมูลประจำตัวจากหน้าหนึ่งไปยังอีกหน้าหนึ่งกำลังทำ HTTP POST ไม่มีอะไรพิเศษเกี่ยวกับการส่งข้อมูลประจำตัวเมื่อเปรียบเทียบกับการส่งเช่นคำค้นหาผ่าน POST หากโพสต์ใด ๆ ไปยังหน้าเว็บที่ไม่ปลอดภัยจะเรียกคำเตือนผู้ใช้จะถูกโจมตีด้วยคำเตือนที่ไม่มีจุดหมาย
ใช้ช่องทางที่ปลอดภัยหมายถึงความตั้งใจของโปรแกรมเมอร์ในการรักษาความปลอดภัยการโอน ในกรณีนี้การใช้การเตือนใบรับรองที่ลงชื่อด้วยตนเองเป็นสิ่งที่ถูกต้องมาก
ฉันไม่สามารถแสดงความคิดเห็นดังนั้นฉันจะโพสต์ข้อมูลนี้ซึ่งเติมเต็มข้อมูลที่ถูกต้องของ user40350
เบราว์เซอร์ตัวเดียวกันไม่มีปัญหาในการอนุญาตให้ส่งข้อมูลประจำตัวในหน้าที่ไม่ปลอดภัย
ที่จริงไม่ได้เป็นจริง เบราว์เซอร์ส่วนใหญ่จะแสดงคำเตือนเหมือนคุณกำลังส่งข้อมูลผ่านการเชื่อมต่อที่ไม่ปลอดภัยเมื่อคุณลองใช้ครั้งแรก แต่คุณสามารถปิดการใช้งานเพื่อไม่ให้ปรากฏอีกครั้งและฉันพนันได้เลยว่าสิ่งที่คุณทำ ...
Miro A wrote:
การส่งข้อมูลประจำตัวจากหน้าหนึ่งไปยังอีกหน้าหนึ่งกำลังทำ HTTP POST ไม่มีอะไรพิเศษเกี่ยวกับการส่งข้อมูลประจำตัวเมื่อเปรียบเทียบกับการส่งเช่นคำค้นหาผ่าน POST
นอกจากนี้ยังไม่ถูกต้องเนื่องจากฟิลด์รหัสผ่านเป็นแท็ก html พิเศษ ยิ่งไปกว่านั้นฉลากเช่น "ชื่อผู้ใช้" และ "รหัสผ่าน" ก็หักหลังความรู้สึกของพวกเขามากมาย มันจะเป็นไปได้อย่างสมบูรณ์แบบสำหรับเบราว์เซอร์ที่จะนำข้อมูลประเภทนี้มาพิจารณา
การเชื่อมต่อที่ปลอดภัยโดยโปรโตคอล https: // จะถูกระบุโดยเบราว์เซอร์ที่จะ "ปลอดภัย" ตัวอย่างเช่นจะแสดง Padlock เล็ก ๆ น้อย ๆ หรือบางส่วนของ URL ถูกทำเครื่องหมายเป็นสีเขียว
ผู้ใช้ควรเชื่อใจว่าหน้าที่เขาเยี่ยมชมนั้นมาจาก URL ที่เขาป้อนและไม่ได้มาจากบุคคลอื่น
หากเขาไม่ใช้ https: // ผู้ใช้ควรรู้ว่าข้อมูลที่ป้อนนั้นไม่ได้รับการป้องกันและไซต์ที่เขาท่องอาจถูกปลอมแปลง
ใบรับรองที่ลงนามด้วยตนเองไม่แน่ใจ - คาดหวังอีกครั้งว่าหน้าเว็บที่เปิดไปยังไม่ได้ทำการปลอมแปลงดังนั้นจึงไม่มีความปลอดภัยเพิ่มขึ้น
ความแตกต่างจะต้องทำระหว่างเชื่อถือได้ (ลงนามโดยหน่วยงานที่คุณเชื่อถือ) และใบรับรองที่ไม่น่าเชื่อถือ มิฉะนั้นอาจมีบางคนปลอมตัวเป็นธนาคารของคุณ (ตัวอย่าง) โดยใช้ใบรับรองที่ลงชื่อด้วยตนเองพร้อมกับการยกเว้นโทษ
คำเตือนแบบตัวต่อตัวจะดีกว่าคำเตือนที่ละเอียดในกรณีนี้เนื่องจากความเสี่ยงที่อาจเกิดขึ้นค่อนข้างสูง ผู้คนอาจคลิกที่ลิงค์ https และไม่คิดว่าจะมีใครบางคนกำลังนั่งอยู่ตรงกลางตรวจสอบการเชื่อมต่อ หากการบ่งชี้ว่าใบรับรองไม่น่าเชื่อถือนั้นบอบบาง (เช่นสีแดงแทนไอคอนสีเขียวเป็นต้น) ผู้คนอาจถูกหลอกได้อย่างง่ายดายลบประโยชน์ของ SSL ออก
เหตุผลที่ดีมากมายได้รับการจดทะเบียน นี่คืออีกหนึ่ง:
คิดเกี่ยวกับกรณีที่หน้าเว็บที่ปลอดภัยหนึ่งฝังองค์ประกอบจากที่อื่น ผู้โจมตีสามารถตรวจสอบว่าคำขอใดมีไว้สำหรับหน้าเว็บด้านนอก (พูดโดยดูที่ช่วงเวลานั้นต้องมาก่อน) และสำหรับองค์ประกอบด้านใน เขาสามารถฉีดตัวเองเป็น MITM ในองค์ประกอบด้านในใช้ใบรับรองแบบลงนามด้วยตนเองและควบคุมส่วนต่างๆของหน้า เว้นแต่จะมีคำเตือนสำหรับองค์ประกอบภายในโดยใช้ SSL แต่ไม่ได้ใช้ใบรับรองที่เชื่อถือได้ความปลอดภัยของหน้านอกจะถูกทำลาย
นี่คือตัวอย่างที่เหมือนจริง สมมติว่าฉันเป็นผู้ขายและฉันมีลิงก์ 'ชำระเงินด้วย PayPal' คุณคลิกที่และฉันรู้ ฉันนำคุณไปสู่ PayPal และให้คุณได้รับหน้า PayPal ที่ปลอดภัยและถูกกฎหมาย หากฉันกำลังดูเครือข่ายของคุณฉันรู้ว่าจะเป็นคำขอแรกของคุณจาก PayPal และไม่นานหลังจากนั้นคุณจะส่งรหัสผ่านของคุณ ดังนั้นฉันจึง MITM ที่submit
มีที่อยู่อีเมลและรหัสผ่านของคุณแทนใบรับรองการลงนามด้วยตนเองสำหรับ PayPal
คุณเห็นว่าการรักษาความปลอดภัยของหน้าเว็บด้านนอกถูกประนีประนอมโดยไม่เตือนถ้าใบรับรองของหน้าด้านในมีการเซ็นชื่อด้วยตนเอง? ดังนั้นจึงต้องเตือนเกี่ยวกับใบรับรองที่ลงชื่อด้วยตนเองที่มาจากลิงก์
และแน่นอนถ้าคุณป้อนhttps
ด้วยตนเองมันจะต้องเตือนคุณ เพราะคุณคาดหวังว่ามันจะปลอดภัย
เมื่อมนุษย์ในการโจมตีกลางถูกดำเนินการใน https: // เว็บไซต์คำเตือนจะบ่งบอกถึงสิ่งที่ผิดปกติกับผู้ใช้โดยเฉลี่ยเท่านั้น ดังนั้นจึงเป็นส่วนสำคัญของความปลอดภัย HTTPS
คำถามที่ดีคือสาเหตุที่การเข้ารหัสที่ไม่ปลอดภัยบางส่วนนั้นไม่สามารถทำได้ผ่าน HTTP