ความแตกต่างระหว่าง SSL และ TLS


91

อ้างอิงจากวิกิพีเดีย: http://en.wikipedia.org/wiki/Transport_Layer_Security

ดูเหมือนว่า TLS จะมาแทนที่ SSL แต่เว็บไซต์ส่วนใหญ่ยังคงใช้ SSL อยู่?


4
"เว็บไซต์ส่วนใหญ่ยังคงใช้ SSL" นี่คือการสำรวจที่ดีเกี่ยวกับโปรโตคอลที่สนับสนุนความน่าเชื่อถือinternet.org/ssl-pulse/#chart-protocol-support
Colonel Panic

คำถามยอดนิยมที่คล้ายกัน: security.stackexchange.com/questions/5126/…
Vadzim

คำตอบ:


60

กล่าวโดยสั้น TLSv1.0 คือ SSLv3.1 มากหรือน้อย คุณสามารถค้นหารายละเอียดเพิ่มเติมในคำถามนี้ ServerFault

เว็บไซต์ส่วนใหญ่รองรับทั้ง SSLv3 และ TLSv1.0 เป็นอย่างน้อยเนื่องจากการศึกษานี้ระบุว่า (เอกสารของ Lee, Malkin และ Nahum: Cryptographic Strength of SSL / TLS Servers: Current and Recent Practices , IMC 2007) (ลิงก์ที่ได้รับจากรายการIETF TLS ). มากกว่า 98% รองรับ TLSv1 +

ฉันคิดว่าสาเหตุที่ยังคงใช้ SSLv3 เพื่อการสนับสนุนแบบเดิม (แม้ว่าเบราว์เซอร์ส่วนใหญ่จะรองรับ TLSv1 และ TLSv1.1 หรือแม้แต่ TLSv1.2 ในปัจจุบัน) จนกระทั่งเมื่อไม่นานมานี้การแจกแจงบางส่วนยังคงมี SSLv2 (ถือว่าไม่ปลอดภัย) โดยค่าเริ่มต้นพร้อมกับการแจกแจงอื่น ๆ

(คุณอาจพบว่าคำถามนี้น่าสนใจแม้ว่าจะเกี่ยวกับรูปแบบการใช้ TLS มากกว่า SSL เทียบกับ TLS (อันที่จริงคุณอาจมีรูปแบบเดียวกันกับ SSL) สิ่งนี้ใช้ไม่ได้กับ HTTPS เนื่องจาก HTTPS ใช้ SSL / TLS จากจุดเริ่มต้นของการเชื่อมต่อ)


23

จากhttp://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/

ในช่วงต้นทศวรรษที่ 90 ในช่วงรุ่งสางของเวิลด์ไวด์เว็บวิศวกรบางคนที่ Netscape ได้พัฒนาโปรโตคอลสำหรับการร้องขอ HTTP ที่ปลอดภัยและสิ่งที่พวกเขาคิดขึ้นมานั้นเรียกว่า SSL เนื่องจากองค์ความรู้ที่ค่อนข้างหายากเกี่ยวกับโปรโตคอลที่ปลอดภัยในเวลานั้นรวมถึงแรงกดดันที่รุนแรงที่ทุกคนใน Netscape กำลังดำเนินการอยู่ความพยายามของพวกเขาจึงถูกมองว่าเป็นวีรบุรุษอย่างเหลือเชื่อ เป็นเรื่องน่าอัศจรรย์ที่ SSL สามารถทนได้นานเท่าที่มีในทางตรงกันข้ามกับโปรโตคอลอื่น ๆ จำนวนมากจากวินเทจเดียวกัน เราได้เรียนรู้มากมายตั้งแต่นั้นมา แต่สิ่งที่เกี่ยวกับโปรโตคอลและ API ก็คือมีการย้อนกลับไปน้อยมาก

มีการอัปเดตหลักสองรายการสำหรับโปรโตคอล SSL ได้แก่ SSL 2 (1995) และ SSL 3 (1996) สิ่งเหล่านี้ทำอย่างระมัดระวังเพื่อให้เข้ากันได้แบบย้อนหลังเพื่อให้การนำไปใช้งานง่ายขึ้น อย่างไรก็ตามความเข้ากันได้แบบย้อนกลับเป็นข้อ จำกัด สำหรับโปรโตคอลความปลอดภัยซึ่งอาจหมายถึงความเสี่ยงในการถอยหลัง

ดังนั้นจึงมีการตัดสินใจที่จะทำลายความเข้ากันได้แบบย้อนกลับและโปรโตคอลใหม่ชื่อTLS 1.0 (1999) (ในการมองย้อนกลับไปอาจจะชัดเจนกว่าที่จะตั้งชื่อ TLS 4)

ความแตกต่างระหว่างโปรโตคอลนี้กับ SSL 3.0 นั้นไม่มากนัก แต่ก็มีความสำคัญเพียงพอที่ TLS 1.0 และ SSL 3.0 ไม่ทำงานร่วมกัน

TLS ได้รับการแก้ไขสองครั้งคือ TLS 1.1 (2549) และ TLS 1.2 (2008)

ในปี 2015 SSL ทุกเวอร์ชันเสียและไม่ปลอดภัย (การโจมตี POODLE) และเบราว์เซอร์กำลังลบการสนับสนุน TLS 1.0 เป็นที่แพร่หลาย แต่มีเพียง60% ของไซต์ที่รองรับ TLS 1.1 และ 1.2ซึ่งเป็นสถานการณ์ที่น่าเสียใจ


หากคุณสนใจสิ่งนี้ฉันขอแนะนำการพูดคุยที่ชาญฉลาดและตลกของ Moxie Marlinspike ที่ https://www.youtube.com/watch?v=Z7Wl2FW2TcA


ฉันจำข่าว Usenet: comp.sources.unix โพสต์ชื่อ Secure Sockets Layer ในช่วงปลายทศวรรษ 1980 ฉันสงสัยว่ามันมีความสัมพันธ์ใด ๆ กับสิ่งที่ Netscape ทำนอกเหนือจากชื่อ
user207421

11

tls1.0 หมายถึง sslv3.1

tls1.1 หมายถึง sslv3.2

tls1.2 หมายถึง sslv3.3

rfc เพิ่งเปลี่ยนชื่อคุณจะพบรหัสฐานสิบหกของ tls1.0 คือ 0x0301 ซึ่งหมายถึง sslv3.1


2

TLS รักษาความเข้ากันได้แบบย้อนหลังกับ SSL ดังนั้นโปรโตคอลการสื่อสารจึงเกือบจะเหมือนกันในเวอร์ชันใด ๆ ที่กล่าวถึงในที่นี้ ความแตกต่างที่สำคัญสองประการระหว่าง SSL v.3, TLS 1.0 และ TLS 1.2 คือฟังก์ชันสุ่มหลอก (PRF) และฟังก์ชันแฮช HMAC (SHA, MD5, handshake) ซึ่งใช้เพื่อสร้างบล็อกของคีย์สมมาตรสำหรับ การเข้ารหัสข้อมูลแอปพลิเคชัน (คีย์เซิร์ฟเวอร์ + คีย์ไคลเอ็นต์ + IV) ความแตกต่างที่สำคัญระหว่าง TLS 1.1 และ TLS 1.2 คือ 1.2 ต้องใช้ IV "อย่างชัดเจน" เพื่อป้องกันการโจมตีของ CBC แม้ว่าจะไม่มีการเปลี่ยนแปลง PRF หรือโปรโตคอลที่จำเป็นสำหรับสิ่งนี้ TLS 1.2 PRF เป็นชุดการเข้ารหัสเฉพาะซึ่งหมายความว่าสามารถเจรจา PRF ได้ในระหว่างการจับมือกัน SSL ได้รับการพัฒนาโดย Netscape Communications (ประวัติศาสตร์) และได้รับการดูแลในภายหลังโดย Internet Engineering Task Force (IETF, ปัจจุบัน) TLS ได้รับการดูแลโดยคณะทำงานเครือข่าย ความแตกต่างระหว่างฟังก์ชัน PRF HMAC ใน TLS มีดังนี้

TLS 1.0 และ 1.1

PRF (ความลับฉลากเมล็ดพันธุ์) = P_MD5 (S1 ฉลาก + เมล็ดพันธุ์) XOR P_SHA-1 (S2 ฉลาก + เมล็ดพันธุ์);

TLS 1.2

PRF (ความลับฉลากเมล็ดพันธุ์) = P_hash (ความลับฉลาก + เมล็ดพันธุ์)


0

"ถ้ายังไม่แตกอย่าแตะ". SSL3 ทำงานได้ดีในสถานการณ์ส่วนใหญ่ (มีข้อบกพร่องพื้นฐานที่พบในโปรโตคอล SSL / TLS ในเดือนตุลาคม แต่นี่เป็นข้อบกพร่องของแอปพลิเคชันที่มากกว่าตัว procol เอง) ดังนั้นนักพัฒนาจึงไม่ต้องรีบอัพเกรดโมดูล SSL TLS นำเสนอส่วนขยายและอัลกอริทึมด้านความปลอดภัยที่มีประโยชน์มากมาย แต่เป็นส่วนเสริมที่สะดวกและไม่จำเป็น ดังนั้น TLS บนเซิร์ฟเวอร์ส่วนใหญ่จึงยังคงเป็นตัวเลือก หากทั้งเซิร์ฟเวอร์และไคลเอนต์สนับสนุนเซิร์ฟเวอร์จะถูกใช้

อัปเดต: ใน '2016 SSL 3 และแม้แต่ TLS ถึง 1.2 ก็พบว่าเสี่ยงต่อการโจมตีต่างๆและขอแนะนำให้ย้ายไปยัง TLS 1.2 มีการโจมตีการใช้งาน TLS 1.2 เช่นกันแม้ว่าจะขึ้นอยู่กับเซิร์ฟเวอร์ก็ตาม TLS 1.3 อยู่ระหว่างการพัฒนา และตอนนี้ TLS 1.2 เป็นสิ่งจำเป็น


2
ไม่นี่เป็นข้อบกพร่องของโปรโตคอลและนักพัฒนาควรอัปเกรดกอง SSL ของตน ดังที่กล่าวมานี้มีแนวทางในการใช้ส่วนขยายการเจรจาต่อรองในRFC 5746สำหรับ SSLv3 นอกเหนือจากส่วนขยายสำหรับ TLS
Bruno

หากคุณฆ่าคนด้วยมีดนี่ไม่ใช่ข้อบกพร่องของมีด แต่เป็นสมองของคุณ เหมือนกันที่นี่ หากมีการใช้โปรโตคอลในลักษณะที่ไม่ได้ออกแบบมาก็ไม่ใช่ข้อบกพร่องของโปรโตคอล
Eugene Mayevski 'Callback

1
โปรโตคอลได้รับการออกแบบในลักษณะที่แอปพลิเคชันที่อยู่ด้านบนควรปฏิบัติกับซ็อกเก็ตปกติให้มากที่สุด ปัญหาการเจรจาต่อรองโดยไม่มีส่วนขยายใหม่บังคับให้ชั้นแอปพลิเคชันรับรู้ (เช่น HTTP) มีหัวข้อที่สนใจในหัวข้อนี้ในรายชื่ออีเมล IETF TLS: ietf.org/mail-archive/web/tls/current/msg04000.html
Bruno

1
ฉันเห็นด้วยว่าควรทำบางอย่างในระดับแอปพลิเคชัน แต่ฉันไม่ทราบถึงการนำไปใช้งานและโปรโตคอลใด ๆ ที่คำนึงถึงสิ่งนั้น สแต็คสามารถรับมือกับการเจรจาต่อรองใหม่ที่พวกเขาเริ่มต้นอย่างถูกต้องตามกฎหมาย แต่ไม่มากนักหาก MITM เริ่มต้น (ซึ่งเป็นปัญหา) นั่นเป็นเหตุผลที่กลุ่ม IETF TLS เลือกที่จะแก้ไขที่ระดับ TLS และนั่นคือเหตุผลที่ผู้คนควรเปิดใช้ส่วนขยายนั้นหรือปิดใช้งานการเจรจาต่อรองใหม่ทั้งหมด
Bruno

1
มีปัญหาพื้นฐานใน SSL 3.0 มากกว่าปัญหาที่คุณกล่าวถึง เช่น CBC padding oracle เช่นเดียวกับการนำ IV หรือระเบียนก่อนหน้ากลับมาใช้ อดีตยังคงเป็นภัยพิบัติ TLS แต่สามารถแก้ไขได้ในขณะที่ปัญหาหลังได้รับการแก้ไขใน TLS 1.1
Nikos

0

https://hpbn.co/transport-layer-security-tls/เป็นการแนะนำที่ดี

เดิมทีโปรโตคอล SSL ได้รับการพัฒนาที่ Netscape เพื่อเปิดใช้งานการรักษาความปลอดภัยธุรกรรมอีคอมเมิร์ซบนเว็บซึ่งต้องใช้การเข้ารหัสเพื่อปกป้องข้อมูลส่วนบุคคลของลูกค้าตลอดจนการรับรองความถูกต้องและการรับประกันความสมบูรณ์เพื่อให้แน่ใจว่าธุรกรรมจะปลอดภัย เพื่อให้บรรลุเป้าหมายนี้โปรโตคอล SSL ถูกนำไปใช้ที่เลเยอร์แอปพลิเคชันโดยตรงที่ด้านบนของ TCP (รูปที่ 4-1) ทำให้โปรโตคอลที่อยู่ด้านบน (HTTP, อีเมล, การส่งข้อความโต้ตอบแบบทันทีและอื่น ๆ อีกมากมาย) ทำงานได้โดยไม่เปลี่ยนแปลงในขณะที่ให้ความปลอดภัยในการสื่อสารเมื่อ การสื่อสารผ่านเครือข่าย

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

SSL 2.0 เป็นโปรโตคอลเวอร์ชันแรกที่เผยแพร่สู่สาธารณะ แต่ถูกแทนที่ด้วย SSL 3.0 อย่างรวดเร็วเนื่องจากพบข้อบกพร่องด้านความปลอดภัยหลายประการ เนื่องจากโปรโตคอล SSL เป็นกรรมสิทธิ์ของ Netscape IETF จึงพยายามสร้างมาตรฐานของโปรโตคอลส่งผลให้ RFC 2246 ซึ่งเผยแพร่ในเดือนมกราคม 2542 และเป็นที่รู้จักในชื่อ TLS 1.0 ตั้งแต่นั้นมา IETF ยังคงทำซ้ำบนโปรโตคอลเพื่อแก้ไขข้อบกพร่องด้านความปลอดภัยตลอดจนขยายขีดความสามารถ: TLS 1.1 (RFC 2246) เผยแพร่ในเดือนเมษายน 2549 TLS 1.2 (RFC 5246) ในเดือนสิงหาคม 2551 และขณะนี้ทำงาน อยู่ระหว่างการกำหนด TLS 1.3

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