답변:
SSLv2와 SSLv3은 완전히 다릅니다 (둘 다 안전하지 않은 것으로 간주 됨). SSLv3 및 TLSv1.0은 매우 유사하지만 몇 가지 차이점이 있습니다.
TLSv1.0을 SSLv3.1로 간주 할 수 있습니다 (사실 교환 된 레코드 내에서 발생 함). 그것은 비교하는 단지 쉽게 TLSv1.0을 함께 TLSv1.1 및 TLSv1.2 그들은 모두 IETF 내에서 편집하고 더 많거나 적은 동일한 구조를 따라했습니다 때문이다. 다른 기관 (Netscape)에서 SSLv3를 편집하면 차이점을 찾기가 좀 더 어려워집니다.
몇 가지 차이점이 있지만 모두 나열 할 수는 없습니다.
ClientHello
메시지 (첫 번째 메시지는 핸드 쉐이크를 시작하기 위해, 클라이언트가 보낸) 버전은 {3,0}
, SSLv3에 대한 {3,1}
TLSv1.0과 {3,2}
TLSv1.1을 위해.ClientKeyExchange
다릅니다.Finished
SSLv3에서 SSL / TLS 메시지를 보낸 후 클라이언트 응용 프로그램 데이터를 바로 보낼 수 있습니다 . TLSv1에서는 서버 Finished
메시지를 기다려야 합니다.SSL_*
에 TLS_*
동일한 식별 번호를 유지).Eric Rescorla의 저서 -SSL 및 TLS : 보안 시스템 설계 및 구축 , Addison-Wesley, 2001 ISBN 0-201-61598-3 을 강력히 추천 합니다. 이 책에서 위에서 언급 한 몇 가지 요점에 대해 배웠습니다. 저자는 일부 SSL / TLS 메시지를 설명 할 때 SSLv3과 TLS (책이 작성된 시점에만 v1.0 만 해당)의 차이점을 언급하지만이 메시지에 대한 배경 설명이 필요합니다. 이 책에서 복사 / 붙여 넣기는 여기에 적합하지 않습니다.)
draft302.txt
및 TLS 사양의 7.4.1.2 단원을 비교하십시오.) 이를 지원하지 않는 스택에 대처하기 위해 재협상 확장의 SCSV 의사 암호 스위트와 같은 해결 방법도 있습니다.
나는 다른 답변을 에코하지만 아마도 약간 다른 강조를 할 것입니다.
Netscape에서 "소유 한"SSL 버전 2라는 보안 소켓 프로토콜이있었습니다. 다른 레코드 구조와 보안 개선 사항을 가진 새로운 버전도 Netscape에서 "소유"되었으며 SSL 버전 3이라고 발표되었습니다. places는 이진 버전 번호 필드입니다. SSL 버전 3의 경우이 필드는 0x03 0x00, 즉 버전 3.0으로 설정됩니다. 그런 다음 IETF는 자체 표준을 만들기로 결정했습니다. 아마도 "SSL"이 Netscape 상표인지 여부를 포함하여 SSL에 대한 지적 재산권 불확실성이 있었기 때문에 IETF가이 프로토콜의 다음 버전을 출시했을 때 고유 한 이름 인 Transport Layer Security 프로토콜 또는 TLS 버전 1.0을 부여했습니다. 레코드 형식과 전체 구조는 동일하며 SSL v3과 일치합니다. 이진 버전 번호는 0x03 0x01로 개정되었으며 다른 사람들이 지적했듯이 약간의 암호화 변경 사항이 있습니다. 이후 내부 프로토콜 번호가 0x03 0x02 및 0x03 0x03 인 TLS 버전 1.1 및 1.2가있었습니다.
SSLv2를 무시하는 것은 기본적으로 사람들이 보안과 성능에 대해 더 똑똑 해짐에 따라 발생하는 일반적인 프로토콜 미세 조정과 함께 이름이 변경되었습니다.
기본적으로 이것은 최신 버전의 프로토콜에 대한 이름 변경 일뿐입니다. 나는 그것이 주요한 이유는 공식적인 IETF 표준 트랙 프로토콜이 된 후 Netscape가 주로 설계 한 오래된 비공식 표준과 구별하기 때문이라고 생각합니다.
이전 질문에 대한 답변에서 말했듯이 SSLv3 및 TLSv1.0이 호환된다는 의미는 아닙니다. RFC 2246에서 인용 :
이 프로토콜과 SSL 3.0의 차이점은 그리 크지 않지만 TLS 1.0과 SSL 3.0이 상호 운용되지 않을 정도로 중요합니다.
프로토콜의 정확한 차이점을 정말로 알고 싶다면 표준을 읽고 자신을 비교해야합니다.
암호화 프로토콜 SSL의 이름은 이제 TLS로 지정되어 동일한 프로토콜의 이름이 두 개가됩니다. 현재 소프트웨어는 TLS 버전 1 또는 SSL 버전 3을 자동으로 협상합니다. 반면에 인간은 공식 TLS 지정에 비해 더 잘 알려진 SSL 용어를 사용하도록 결정해야합니다.
SSL은 TLS의 전신입니다.
TLS 및 SSL은 전송 계층에서 안전한 종단 간 전송을 보장하기 위해 응용 프로그램 계층에서 네트워크 연결 세그먼트를 암호화합니다.