นี่คือการดำน้ำลึกทางเทคนิคหลังจากถามคำถามภาพรวมนี้
ความแตกต่างของโปรโตคอลระหว่าง SSL และ TLS คืออะไร?
มีความแตกต่างมากพอที่จะรับประกันการเปลี่ยนชื่อหรือไม่? (แทนที่จะเรียกว่า "SSLv4" หรือ SSLv5 สำหรับ TLS เวอร์ชันใหม่กว่า)
นี่คือการดำน้ำลึกทางเทคนิคหลังจากถามคำถามภาพรวมนี้
ความแตกต่างของโปรโตคอลระหว่าง SSL และ TLS คืออะไร?
มีความแตกต่างมากพอที่จะรับประกันการเปลี่ยนชื่อหรือไม่? (แทนที่จะเรียกว่า "SSLv4" หรือ SSLv5 สำหรับ TLS เวอร์ชันใหม่กว่า)
คำตอบ:
SSLv2 และ SSLv3 นั้นแตกต่างกันอย่างสมบูรณ์ (และทั้งคู่ก็ถือว่าไม่ปลอดภัย) SSLv3 และ TLSv1.0 คล้ายกันมาก แต่มีความแตกต่างเล็กน้อย
คุณสามารถพิจารณา TLSv1.0 เป็น SSLv3.1 (อันที่จริงแล้วเป็นสิ่งที่เกิดขึ้นภายในบันทึกการแลกเปลี่ยน) มันง่ายกว่าที่จะเปรียบเทียบTLSv1.0กับTLSv1.1และTLSv1.2เพราะพวกเขาทั้งหมดได้รับการแก้ไขภายใน IETF และติดตามโครงสร้างเดียวกันมากขึ้นหรือน้อยลง SSLv3 ถูกแก้ไขโดยสถาบันอื่น (Netscape) ทำให้ยากต่อการตรวจสอบความแตกต่าง
นี่คือความแตกต่างเล็กน้อย แต่ฉันสงสัยว่าฉันสามารถเขียนรายการทั้งหมดได้:
ClientHello
ข้อความ (ข้อความแรกที่ส่งโดยไคลเอนต์เพื่อเริ่มการจับมือกัน) เวอร์ชัน{3,0}
สำหรับ SSLv3 {3,1}
สำหรับ TLSv1.0 และ{3,2}
สำหรับ TLSv1.1ClientKeyExchange
แตกต่างFinished
ใน SSLv3 ใน TLSv1 นั้นจะต้องรอFinished
ข้อความของเซิร์ฟเวอร์SSL_*
เป็นTLS_*
รักษาหมายเลข ID เดียวกัน)ฉันขอแนะนำหนังสือของ Eric Rescorla - SSL และ TLS: การออกแบบและการสร้างระบบรักษาความปลอดภัย , แอดดิสัน - เวสลีย์, 2001 ไอ 0-201-61598-3 , ถ้าคุณต้องการรายละเอียดเพิ่มเติม ฉันได้เรียนรู้เกี่ยวกับบางประเด็นที่กล่าวถึงข้างต้นจากหนังสือเล่มนี้ ผู้เขียนบางครั้งกล่าวถึงความแตกต่างระหว่าง SSLv3 และ TLS (v1.0 เท่านั้น ณ เวลาที่เขียนหนังสือ) เมื่ออธิบายข้อความ SSL / TLS บางส่วน แต่คุณต้องการคำอธิบายเบื้องหลังเกี่ยวกับข้อความเหล่านี้เพื่อให้มีโอกาสเข้าใจ ( และไม่เหมาะสมที่จะคัดลอก / วางจากหนังสือเล่มนี้ที่นี่)
ClientHello
เร็กคอร์ดที่ขยายเพิ่ม ' ' ในขณะที่ไคลเอนต์ SSL3 เท่านั้นจะส่งต้นฉบับ ' ClientHello
' เท่านั้น
draft302.txt
และ " ในความสนใจของความเข้ากันได้ไปข้างหน้า ... " เปรียบเทียบกับส่วน 7.4.1.2 ในรายละเอียดของ TLS) เพื่อรับมือกับสแต็คที่ไม่สนับสนุนสิ่งนี้นอกจากนี้ยังมีวิธีแก้ไขปัญหาเช่นชุดรหัสหลอก SCSV ในส่วนขยายการเจรจาต่อรองอีกครั้ง
ฉันเพียงแค่จะก้องคำตอบอื่น ๆ แต่บางทีอาจมีความแตกต่างเล็กน้อย
มีโปรโตคอลซ็อกเก็ตที่ปลอดภัยซึ่ง "เป็นเจ้าของ" โดย Netscape ซึ่งเรียกว่า SSL เวอร์ชัน 2 รุ่นใหม่ที่มีโครงสร้างระเบียนที่แตกต่างกันและการปรับปรุงความปลอดภัยยังเป็นเจ้าของ "" โดย Netscape แล้วออกและเรียกว่ารุ่น SSL 3 ภายในโปรโตคอลในหลาย ๆ places คือฟิลด์หมายเลขเวอร์ชันไบนารี สำหรับ SSL เวอร์ชัน 3 ฟิลด์นี้ถูกตั้งค่าเป็น 0x03 0x00 เช่นเวอร์ชัน 3.0 จากนั้น IETF ตัดสินใจที่จะสร้างมาตรฐานของตัวเอง อาจเป็นเพราะมีความไม่แน่นอนเกี่ยวกับทรัพย์สินทางปัญญาเกี่ยวกับ SSL รวมถึง "SSL" เป็นเครื่องหมายการค้าของ Netscape เมื่อ IETF เปิดตัวรุ่นถัดไปของโปรโตคอลนี้พวกเขาตั้งชื่อเป็นของตนเองว่า: โปรโตคอล Transport Layer Security หรือ TLS เวอร์ชัน 1.0 รูปแบบการบันทึกและโครงสร้างโดยรวมเหมือนกันและสอดคล้องกับ SSL v3 หมายเลขเวอร์ชันไบนารีถูกแก้ไขเป็น 0x03 0x01 และเนื่องจากคนอื่น ๆ สังเกตว่ามีการเปลี่ยนแปลงเล็กน้อยของการเข้ารหัสลับ มีตั้งแต่ TLS เวอร์ชัน 1.1 และ 1.2 ซึ่งหมายเลขโปรโตคอลภายในคือ 0x03 0x02 และ 0x03 0x03
การละเว้น SSLv2 นั้นเป็นเพียงการเปลี่ยนชื่อพร้อมกับการปรับโปรโตคอลปกติที่เกิดขึ้นเนื่องจากผู้คนฉลาดในเรื่องความปลอดภัยและประสิทธิภาพ
โดยพื้นฐานแล้วมันไม่มีอะไรเลยนอกจากการเปลี่ยนชื่อสำหรับโปรโตคอลเวอร์ชันใหม่กว่า ฉันเชื่อว่าเหตุผลหลักที่ทำให้มันแตกต่างจากมาตรฐานเก่าที่ไม่เป็นทางการซึ่งออกแบบโดย Netscape หลังจากที่มันกลายเป็นโปรโตคอลติดตามมาตรฐาน IETF อย่างเป็นทางการ
ดังที่ได้กล่าวไว้ในคำตอบสำหรับคำถามก่อนหน้าของคุณสิ่งนี้ไม่ได้หมายความว่า SSLv3 และ TLSv1.0 เข้ากันได้ อ้างจาก RFC 2246:
ความแตกต่างระหว่างโปรโตคอลนี้และ SSL 3.0 นั้นไม่น่าทึ่ง แต่มีความสำคัญพอที่ TLS 1.0 และ SSL 3.0 จะไม่ทำงานร่วมกัน
ฉันเดาว่าถ้าคุณต้องการทราบความแตกต่างที่แน่นอนในโปรโตคอลคุณต้องอ่านมาตรฐานและเปรียบเทียบตัวเอง
โปรโตคอลการเข้ารหัส SSL ตอนนี้ชื่อ TLS ทำให้สองชื่อสำหรับโปรโตคอลเดียวกัน ซอฟต์แวร์ปัจจุบันจะเจรจา TLS เวอร์ชัน 1 หรือ SSL เวอร์ชัน 3 โดยอัตโนมัติ ในทางกลับกันมนุษย์ต้องตัดสินใจว่าจะใช้คำศัพท์ SSL ที่เป็นที่รู้จักมากขึ้นเมื่อเทียบกับการกำหนด TLS อย่างเป็นทางการ
SSL เป็นบรรพบุรุษของ TLS
TLS และ SSL เข้ารหัสเซ็กเมนต์ของการเชื่อมต่อเครือข่ายที่ Application Layer เพื่อให้แน่ใจว่าการขนส่งจากต้นทางถึงปลายทางที่ปลอดภัยที่ Transport Layer
แตกต่าง: