Sự khác biệt giữa SSL và TLS


89

Theo wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security

Có vẻ như TLS là một sự thay thế cho SSL, nhưng hầu hết các trang web vẫn đang sử dụng SSL?


4
"hầu hết các trang web vẫn đang sử dụng SSL". Đây là một cuộc khảo sát tốt về hỗ trợ giao thức đáng tin
Colonel Panic

Câu hỏi tương tự phổ biến hơn: security.stackexchange.com/questions/5126/…
Vadzim

Câu trả lời:


59

Tóm lại, TLSv1.0 ít nhiều là SSLv3.1. Bạn có thể tìm thêm chi tiết trong câu hỏi này trên ServerFault .

Hầu hết các trang web thực sự hỗ trợ ít nhất cả SSLv3 và TLSv1.0, như nghiên cứu này chỉ ra (bài báo của Lee, Malkin và Nahum: Sức mạnh mật mã của máy chủ SSL / TLS: Thực tiễn hiện tại và gần đây , IMC 2007) (liên kết thu được từ danh sách IETF TLS ). Hơn 98% hỗ trợ TLSv1 +.

Tôi nghĩ lý do tại sao SSLv3 vẫn được sử dụng là để hỗ trợ kế thừa (mặc dù hầu hết các trình duyệt hỗ trợ TLSv1 và một số TLSv1.1 hoặc thậm chí TLSv1.2 ngày nay). Cho đến cách đây không lâu, một số bản phân phối vẫn có SSLv2 (được coi là không an toàn) được bật theo mặc định cùng với những bản khác.

(Bạn cũng có thể thấy câu hỏi này thú vị, mặc dù đó là về kiểu sử dụng của TLS chứ không phải SSL so với TLS (trên thực tế, bạn có thể có cùng kiểu với SSL). Dù sao thì điều này cũng không áp dụng cho HTTPS vì HTTPS sử dụng SSL / TLS từ đầu của kết nối.)


23

Từ http://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/

Vào đầu những năm 90, vào buổi bình minh của World Wide Web, một số kỹ sư tại Netscape đã phát triển một giao thức để thực hiện các yêu cầu HTTP an toàn và thứ mà họ nghĩ ra được gọi là SSL. Với lượng kiến ​​thức tương đối khan hiếm về các giao thức an toàn vào thời điểm đó, cũng như áp lực dữ dội mà mọi người tại Netscape đang làm việc, những nỗ lực của họ chỉ có thể được coi là vô cùng anh hùng. Thật ngạc nhiên là SSL đã tồn tại lâu như vậy, trái ngược với một số giao thức khác từ cùng loại cổ điển. Mặc dù vậy, chúng tôi chắc chắn đã học được rất nhiều điều kể từ đó, nhưng vấn đề về giao thức và API là có rất ít trường hợp quay trở lại.

Có hai bản cập nhật lớn cho giao thức SSL, SSL 2 (1995) và SSL 3 (1996). Chúng được thực hiện cẩn thận để tương thích ngược, nhằm dễ dàng áp dụng. Tuy nhiên, khả năng tương thích ngược là một hạn chế đối với một giao thức bảo mật mà nó có thể có nghĩa là dễ bị ngược.

Vì vậy, nó đã được quyết định phá vỡ tính tương thích ngược và giao thức mới có tên là TLS 1.0 (1999). (Nhìn lại, có thể rõ ràng hơn nếu đặt tên nó là TLS 4)

Sự khác biệt giữa giao thức này và SSL 3.0 không đáng kể, nhưng chúng đủ đáng kể để TLS 1.0 và SSL 3.0 không tương tác với nhau.

TLS đã được sửa đổi hai lần, TLS 1.1 (2006) và TLS 1.2 (2008).

Kể từ năm 2015, tất cả các phiên bản SSL đều bị hỏng và không an toàn (cuộc tấn công POODLE) và các trình duyệt đang xóa hỗ trợ. TLS 1.0 rất phổ biến, nhưng chỉ có 60% trang web hỗ trợ TLS 1.1 và 1.2 , một tình trạng rất tiếc.


Nếu bạn quan tâm đến nội dung này, tôi giới thiệu bài nói chuyện thông minh và hài hước của Moxie Marlinspike tại https://www.youtube.com/watch?v=Z7Wl2FW2TcA


Tôi nhớ một tin tức trên Usenet: comp.sources.unix đăng có tên Lớp cổng bảo mật vào cuối những năm 1980. Tôi nghi ngờ nó có nhiều mối quan hệ với những gì Netscape đã làm ngoài cái tên.
Marquis of Lorne,

11

tls1.0 có nghĩa là sslv3.1

tls1.1 nghĩa là sslv3.2

tls1.2 có nghĩa là sslv3.3

rfc vừa đổi tên, bạn có thể tìm thấy mã hex của tls1.0 là 0x0301, có nghĩa là sslv3.1


2

TLS duy trì khả năng tương thích ngược với SSL và do đó giao thức truyền thông gần như giống hệt nhau trong bất kỳ phiên bản nào được đề cập ở đây. Hai điểm khác biệt quan trọng giữa SSL v.3, TLS 1.0 và TLS 1.2, là hàm giả ngẫu nhiên (PRF) và hàm băm HMAC (SHA, MD5, bắt tay), được sử dụng để tạo một khối các khóa đối xứng cho Mã hóa dữ liệu ứng dụng (khóa máy chủ + khóa máy khách + IV). Sự khác biệt chính giữa TLS 1.1 và TLS 1.2 là 1.2 yêu cầu sử dụng IV "rõ ràng" để bảo vệ chống lại các cuộc tấn công CBC, mặc dù không có thay đổi nào đối với PRF hoặc giao thức cần thiết cho việc này. TLS 1.2 PRF dành riêng cho bộ mật mã, có nghĩa là PRF có thể được thương lượng trong quá trình bắt tay. SSL ban đầu được phát triển bởi Netscape Communications (lịch sử) và sau đó được duy trì bởi Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF, hiện tại). TLS được duy trì bởi Nhóm công tác mạng. Dưới đây là sự khác biệt giữa các hàm PRF HMAC trong TLS:

TLS 1.0 và 1.1

PRF (bí, nhãn, giống) = P_MD5 (S1, nhãn + giống) XOR P_SHA-1 (S2, nhãn + giống);

TLS 1.2

PRF (bí mật, nhãn, hạt giống) = P_hash (bí mật, nhãn + hạt giống)


0

"Nếu nó không bị hỏng, đừng chạm vào nó". SSL3 hoạt động tốt trong hầu hết các tình huống (có một lỗ hổng cơ bản được tìm thấy trong giao thức SSL / TLS vào tháng 10, nhưng đây là một lỗ hổng của các ứng dụng hơn là bản thân procol), vì vậy các nhà phát triển đừng vội nâng cấp mô-đun SSL của họ. TLS mang đến một số tiện ích mở rộng và thuật toán bảo mật hữu ích, nhưng chúng là sự bổ sung hữu ích và không phải là bắt buộc. Vì vậy, TLS trên hầu hết các máy chủ vẫn là một tùy chọn. Nếu cả máy chủ và máy khách hỗ trợ nó, nó sẽ được sử dụng.

Cập nhật: trong 'SSL 3 năm 2016, và thậm chí TLS lên đến 1.2 được phát hiện là dễ bị tấn công bởi các cuộc tấn công khác nhau và nên chuyển sang TLS 1.2. Cũng tồn tại các cuộc tấn công vào việc triển khai TLS 1.2, mặc dù chúng phụ thuộc vào máy chủ. TLS 1.3 hiện đang được phát triển. Và bây giờ TLS 1.2 là bắt buộc.


2
Không, đây là một lỗ hổng giao thức và các nhà phát triển nên nâng cấp các ngăn xếp SSL của họ. Điều này đang được nói, có các hướng dẫn sử dụng tiện ích mở rộng thương lượng lại trong RFC 5746 cho SSLv3, ngoài các hướng dẫn cho TLS.
Bruno

Nếu bạn giết ai đó bằng con dao, đây không phải là khuyết điểm của dao, mà là do bộ não của bạn. Ở đây cũng vậy. Nếu giao thức được sử dụng theo cách mà nó không được thiết kế, thì đó không phải là một lỗ hổng của giao thức.
Eugene Mayevski 'Gọi lại

1
Giao thức được thiết kế theo cách mà ứng dụng bên trên nó phải coi nó như một ổ cắm bình thường càng nhiều càng tốt. Vấn đề thương lượng lại, không có phần mở rộng mới, buộc lớp ứng dụng (ví dụ: HTTP) nhận thức được. Có một chủ đề quan tâm về chủ đề này trên danh sách gửi thư IETF TLS: ietf.org/mail-archive/web/tls/current/msg04000.html
Bruno

1
Tôi đồng ý rằng một số trong số đó nên được thực hiện ở cấp ứng dụng, nhưng tôi không biết về bất kỳ triển khai nào và giao thức nào có tính đến điều đó. Các ngăn xếp thường có thể đối phó với thương lượng lại mà chúng bắt đầu một cách hợp pháp, nhưng không quá nhiều nếu MITM bắt đầu nó (đó là vấn đề). Đó là lý do tại sao nhóm IETF TLS đã chọn sửa nó ở cấp TLS và đó cũng là lý do tại sao mọi người thực sự nên bật tiện ích mở rộng đó hoặc tắt hoàn toàn thương lượng lại.
Bruno

1
Có nhiều vấn đề cơ bản trong SSL 3.0 hơn vấn đề bạn đề cập. Ví dụ: lời tiên tri đệm CBC, cũng như việc sử dụng lại IV hoặc bản ghi trước đó. TLS trước đây vẫn tồn tại nhưng có thể khắc phục được, trong khi TLS 1.1 đã được sửa.
Nikos

0

https://hpbn.co/transport-layer-security-tls/ là một phần giới thiệu hay

Giao thức SSL ban đầu được phát triển tại Netscape để cho phép bảo mật giao dịch thương mại điện tử trên Web, yêu cầu mã hóa để bảo vệ dữ liệu cá nhân của khách hàng, cũng như xác thực và đảm bảo tính toàn vẹn để đảm bảo giao dịch an toàn. Để đạt được điều này, giao thức SSL đã được triển khai ở lớp ứng dụng, trực tiếp trên lớp TCP (Hình 4-1), cho phép các giao thức phía trên nó (HTTP, email, nhắn tin nhanh và nhiều giao thức khác) hoạt động không thay đổi trong khi vẫn cung cấp bảo mật truyền thông khi giao tiếp trên mạng.

Khi SSL được sử dụng đúng cách, người quan sát của bên thứ ba chỉ có thể suy ra các điểm cuối kết nối, loại mã hóa, cũng như tần suất và lượng dữ liệu gần đúng được gửi, nhưng không thể đọc hoặc sửa đổi bất kỳ dữ liệu thực tế nào.

SSL 2.0 là phiên bản đầu tiên được phát hành công khai của giao thức, nhưng nó nhanh chóng bị thay thế bởi SSL 3.0 do một số lỗi bảo mật được phát hiện. Bởi vì giao thức SSL là độc quyền của Netscape, IETF đã hình thành nỗ lực chuẩn hóa giao thức, dẫn đến RFC 2246, được xuất bản vào tháng 1 năm 1999 và được gọi là TLS 1.0. Kể từ đó, IETF đã tiếp tục lặp lại giao thức để giải quyết các lỗi bảo mật, cũng như để mở rộng khả năng của nó: TLS 1.1 (RFC 2246) được xuất bản vào tháng 4 năm 2006, TLS 1.2 (RFC 5246) vào tháng 8 năm 2008 và hiện tại đang tiến hành xác định TLS 1.3.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.