ใบรับรอง SSL ที่ลงชื่อด้วยตนเองมีความปลอดภัยหรือไม่


33

ฉันต้องการที่จะมีการเชื่อมต่อที่ปลอดภัยเมื่อฉันเข้าสู่เว็บเมลphpMyAdminฯลฯ

ดังนั้นฉันจึงลงนามใบรับรอง SSL ของตัวเองกับ OpenSSL และบอกให้ Apache ฟังบนพอร์ต 443

อันนี้จริงแล้วปลอดภัยหรือไม่? รหัสผ่านทั้งหมดของฉันถูกส่งผ่านเลเยอร์ที่ปลอดภัยหรือไม่? หากฉันซื้อใบรับรอง SSL จากVerisignหรือลงนามเอง ในตอนท้ายของวันข้อมูลทั้งหมดจะอยู่ในเซิร์ฟเวอร์ของฉันต่อไป ดังนั้นความแตกต่างใหญ่คืออะไร?

คำตอบ:


40

นี่คือทั้งหมดที่เกี่ยวกับความไว้วางใจ หากคุณได้รับใบรับรองที่ลงนามจาก verisign คุณจะพิสูจน์ให้ลูกค้าสุ่มว่าใบรับรองของคุณเชื่อถือได้ หากคุณลงชื่อเข้าใช้ด้วยตนเองคนใบรับรองไม่ได้มีใบรับรองของคุณติดตั้งบนคอมพิวเตอร์ของพวกเขาไม่สามารถมั่นใจได้ว่าพวกเขาจะไม่ถูกโจมตีโดยมนุษย์ในกลางโจมตี

หากคุณใช้เว็บเซิร์ฟเวอร์ของคุณคุณไม่จำเป็นต้องใช้ CA จริง (เช่น verisign) เพื่อลงนามใบรับรองของคุณ เพียงติดตั้งใบรับรองบนเครื่องที่คุณต้องการใช้และคุณก็พร้อมแล้ว

แก้ไข: เพื่อตอบคำถามของคุณ: ใช่ทุกอย่างถูกเข้ารหัสและคุณสามารถมั่นใจได้ว่าไม่มีใครสามารถอ่านข้อมูลที่ละเอียดอ่อนของคุณได้หากคุณรู้ว่าใบรับรองที่แสดงบนเว็บเบราว์เซอร์นั้นแท้จริงแล้วเป็นสิ่งที่คุณได้ติดตั้งเว็บเซิร์ฟเวอร์ด้วย


12
วัตถุประสงค์ของ CA คือเพื่อพิสูจน์ให้ผู้อื่นเห็นว่าใบรับรองเป็นของผู้ที่คุณพูดว่าเป็นของ เนื่องจากคุณรู้อยู่แล้วว่าใครเป็นเจ้าของใบรับรองในแง่ของการเข้าถึงเซิร์ฟเวอร์ของคุณเองและการนำเสนอใบรับรองของคุณเอง CA ไม่มีจุดประสงค์ อย่างไรก็ตามผู้อื่นไม่สามารถเข้าถึงเซิร์ฟเวอร์ของคุณได้อย่างปลอดภัยเพราะพวกเขาไม่มีทางรู้ว่าใบรับรองใดที่น่าเชื่อถือ (คุณรู้ - เชื่อใจคนที่คุณออกให้)
David Schwartz

นี่จะเป็นวิธีการที่สมเหตุสมผลหากผู้ใช้จำนวน จำกัด สามารถเข้าถึงเซิร์ฟเวอร์ที่สามารถติดต่อคุณโดยตรงเพื่อตรวจสอบใบรับรอง - สมาชิกในครอบครัวของคุณหรือพนักงานของ บริษัท ขนาดเล็กเป็นตัวอย่าง
bgvaughan

ชายคนกลางสามารถประสานงานกับ CA แทนคนที่เซ็นชื่อด้วยตนเองได้หรือไม่? ตัวอย่างเช่น Bob เชื่อมต่อกับเว็บไซต์ที่ลงนามด้วยตนเองของอลิซ Scar ส่ง Bob ให้ใบรับรองอื่นที่ลงนามโดย CA Scar ประสานงานกับเบราว์เซอร์ของ Bob ไม่แสดงคำเตือน SSL เป็นไปได้ไหม
สวัสดีชาวโลก

14

นี่คือทั้งหมดที่เกี่ยวกับความไว้วางใจ

สมมติว่าคุณเยี่ยมชมเว็บไซต์ยอดนิยมที่มีใบรับรอง นี่คือเว็บไซต์ที่พูดว่า "นี่คือสิ่งที่ฉันเป็นคุณสามารถเชื่อใจฉันได้เพราะฉันมีจดหมายแนะนำฉบับนี้ซึ่งลงนามโดยคนที่คุณไว้วางใจ"

ในกรณีนี้ 'คนที่คุณไว้วางใจ' เป็นหนึ่งในผู้จัดทำใบรับรองที่มี (หวังว่า) ทำหน้าที่ในการสร้างตัวตนของผู้นำเสนอใบรับรองในนามของคุณ

สิ่งที่คุณไว้วางใจจริงๆคือความไว้วางใจของผู้เขียนเบราว์เซอร์ในความเชื่อถือของผู้ออกใบรับรองในตัวตนของผู้ที่แสดงใบรับรอง นอกจากนี้ยังมีสิทธิ์มากกว่าหนึ่งอย่างระหว่างคุณและผู้นำเสนอดังนั้นคำนี้: 'Trust Chain' [1]

เมื่อคุณลงนามใบรับรองของคุณเองจะไม่มีห่วงโซ่ความน่าเชื่อถือ ไซต์ของคุณกำลังแสดงใบรับรองของคุณเองกลับมาให้คุณ หากคุณติดตั้งใบรับรองของคุณเองในเบราว์เซอร์ของคุณเป็นหนึ่งที่คุณไว้วางใจแล้วที่จะถือว่าเป็นผู้มีอำนาจเช่นเดียวกับคนที่มาติดตั้ง จากนั้นคุณมีห่วงโซ่ความไว้วางใจที่มีเพียงลิงค์เดียว

หากคุณไปที่ไซต์ของคุณเองและเบราว์เซอร์ของคุณเตือนคุณว่ามีการนำเสนอใบรับรองที่ไม่น่าเชื่อถือคุณควรมีสาเหตุที่น่าเป็นห่วงเนื่องจากเช่นเดียวกับไซต์อื่น ๆ ที่แสดงใบรับรองที่ไม่น่าเชื่อถือคุณไม่แน่ใจ ว่าคุณกำลังสื่อสารกับเว็บไซต์จริง

โปรดทราบว่าฉันไม่ได้กล่าวถึงการเข้ารหัสเลย ใบรับรองเกี่ยวกับการตรวจสอบตัวตนของบุคคลที่คุณติดต่อด้วย ผ่านใบรับรองที่เชื่อถือได้มีวิธีให้คุณมั่นใจได้อย่างสมเหตุสมผลว่าร้านค้าหรือธนาคารของคุณเป็นของจริง เมื่อคุณยืนยันตัวตนได้แล้วการรักษาความปลอดภัยการสื่อสารระหว่างคุณเป็นขั้นตอนต่อไป มันจึงเกิดขึ้นว่าใบรับรองยังมีกุญแจที่จำเป็นต่อการรักษาความปลอดภัยนี้ด้วย สมมติว่าคุณตั้งค่า SSL ไว้ถูกต้องแล้วการติดต่อสื่อสารนี้จะปลอดภัยเท่ากับที่คุณมีกับร้านค้าหรือธนาคารของคุณและรหัสผ่านของคุณจะได้รับการป้องกันเท่ากัน [2]

[1] นี่คือระบบที่ไร้ที่ติ ตลาดเสรีและธุรกิจที่มีอัตรากำไรต่ำและมีปริมาณมากย่อมนำไปสู่การลดต้นทุนอย่างหลีกเลี่ยงไม่ได้: http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/

[2] อย่างน้อยก็ป้องกันให้พอที่จะถูกกว่าสำหรับใครบางคนที่จะบุกเข้าไปในบ้านของคุณเอาชนะความลับของคุณออกมาจากคุณมากกว่าที่จะทำลายพวกเขา: http://xkcd.com/538/


11

ที่จริงแล้วใบรับรองที่ลงนามเองนั้นปลอดภัย แต่ไม่ได้อยู่ภายใต้รูปแบบที่เราใช้อยู่ตอนนี้


ภายใต้โมเดล CA แบบกว้าง (ผู้ออกใบรับรอง) ที่ทุกคนใช้อยู่ในปัจจุบันจุดประสงค์ของใบรับรองที่ลงนามโดย CA ที่เชื่อถือได้คือการให้การรับรองความถูกต้อง

เมื่อเราได้รับใบรับรองทั้งหมดที่เราเห็นคือ 1 และ 0 มาจากแจ็คในกำแพง เราไม่มีความคิดว่า 1 และ 0 นั้นมาจากไหน อย่างไรก็ตามเนื่องจากใบรับรองได้รับการลงนามโดย CA - สิ่งที่ไม่มีใครในโลกนอกเหนือจาก CA สามารถทำได้ - และเนื่องจากเราเชื่อถือ CA เพื่อตรวจสอบตัวตนของเจ้าของใบรับรองเราจึงเชื่อมั่นว่าใบรับรองมาจากผู้ที่อ้างสิทธิ์ ไปยัง

แน่นอนว่าถ้าCA นั้นถูกบุกรุกหรือตรวจสอบไม่ถูกต้องว่าเป็นเจ้าของการเดิมพันทั้งหมดจะถูกปิด


อย่างไรก็ตามมีรูปแบบอื่นภายใต้ใบรับรองที่ลงนามด้วยตนเองจะให้ความถูกต้อง มันเรียกว่ารุ่นทนายความ

เป็นหลักมากกว่าที่ไว้วางใจ CA เดียวเราแจกจ่ายความไว้วางใจกับจำนวนใดรักาน พรักานเหล่านี้กัดเซาะอินเทอร์เน็ตในการค้นหาใบรับรองเก็บแคชของใบรับรองทั้งหมดที่พวกเขาได้เห็น เมื่อคุณเยี่ยมชมเว็บไซต์เป็นครั้งแรกและได้รับใบรับรองคุณจะขอเอกสารพรักานจำนวนหนึ่งที่กระจายทั่วโลกว่าใบรับรองล่าสุดที่พวกเขาเห็นคืออะไร หากพวกเขาไม่เห็นด้วยกับสิ่งที่คุณเห็นคุณอาจเป็นส่วนหนึ่งของการโจมตีแบบคนกลาง

ภายใต้รูปแบบนี้ใบรับรองที่ลงนามด้วยตนเองมีความปลอดภัยอย่างสมบูรณ์แบบตราบใดที่เราถือว่าเซิร์ฟเวอร์ไม่ได้ถูกบุกรุกทันทีก่อนที่ทนายความจะสามารถดูใบรับรองของตนได้


ทนายความรุ่นที่ยังอยู่ในวัยเด็กของตนและหนี้สงสัยจะสูญที่เคยจะใช้เวลามากกว่ารุ่นแคลิฟอร์เนีย(อันที่จริงก็ไม่จำเป็นต้องมี - พวกเขาสามารถนำมาใช้ควบคู่) โครงการที่มีแนวโน้มมากที่สุดคือConvergence.ioซึ่งมีปลั๊กอินสำหรับ Firefox


2

มันไม่ได้เกี่ยวกับความไว้วางใจ ....

SSL certs มีจุดประสงค์สองประการคือ 1) เว็บเซิร์ฟเวอร์ที่คุณกำลังเชื่อมต่อกับสิ่งที่คุณต้องการเชื่อมต่อ และ 2) เพื่อเข้ารหัสการสื่อสาร

คุณสามารถมี # 2 โดยไม่ต้อง # 1 ซึ่งเป็นสิ่งที่คุณทำสำเร็จ สิ่งที่เหลืออยู่คือการยืนยันว่ากล่องที่คุณเชื่อมต่อนั้นเป็นกล่องที่คุณต้องการ

หากเป็นเซิร์ฟเวอร์ของฉันฉันจะไม่มีปัญหากับการใช้ใบรับรองที่ลงชื่อด้วยตนเองจากตัวเอง - แม้ว่าจะมีความเสี่ยงที่บางคนสามารถหลอกสิ่งต่าง ๆ เพื่อให้ฉันเชื่อมต่อกับเซิร์ฟเวอร์ของพวกเขาแทนที่จะเป็นของฉัน เนื่องจากไม่มีใครใส่ใจฉันและเซิร์ฟเวอร์ของฉันและฉันมีค่าเล็กน้อยที่นี่ฉันจึงไม่เห็นความเสี่ยงในเรื่องนี้มากเกินไป

ในทางตรงกันข้ามถ้าแทนที่จะเป็นเซิร์ฟเวอร์ของฉันมันเป็นเซิร์ฟเวอร์ของคุณฉันก็คงจะเป็นห่วง


คุณจะพูดว่า: "ถ้าเป็นเซิร์ฟเวอร์ของคุณฉันก็จะไม่เป็นห่วง"
cherrun

ไม่เขาพูดว่า "ถ้าเป็นเซิร์ฟเวอร์ของฉันฉันไม่มีปัญหา ... ถ้าเป็นเซิร์ฟเวอร์ของคุณแล้วฉันก็มีปัญหา"
Francesco

คุณไม่ถูกต้อง ไม่มีใครหลอกสิ่งต่าง ๆ เพื่อให้คุณเชื่อมต่อกับเซิร์ฟเวอร์แทนที่จะเป็นของคุณ พวกเขาไม่มีรหัสที่สอดคล้องกับใบรับรองที่ลงชื่อด้วยตนเองที่คุณออกและไม่สามารถแสดงใบรับรองอื่นให้คุณได้เนื่องจากคุณจะไม่ยอมรับ
David Schwartz

@cherun ประเด็นของฉันคือฉันเชื่อใจฉัน - ไม่ใช่คุณ (หรือคนอื่น) คุณสามารถ / ควรเชื่อใจตัวเอง
uSlackr

1
-1 การเข้ารหัสเสร็จสิ้นโดยใช้กุญแจแบบสมมาตรซึ่งต่อรองระหว่างการจับมือกัน แน่นอนว่าคุณใช้ใบรับรองเพื่อตรวจสอบตัวตนของบุคคลที่อยู่ห่างไกลมิฉะนั้นจะมีการเข้ารหัสการสื่อสารเล็กน้อย (อาจเป็นแบบ MITM) หากเป็นเซิร์ฟเวอร์ของคุณและใบรับรองที่ลงชื่อด้วยตนเองให้นำเข้าใบรับรองของคุณไปยังลูกค้าของคุณอย่างชัดเจน
บรูโน่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.