
Это техническое глубокое погружение послеэтот обзорбыл задан вопрос.
Каковы различия протоколов SSL и TLS?
Действительно ли разница настолько велика, чтобы оправдать смену названия? (вместо того, чтобы называть его «SSLv4» или SSLv5 для более новых версий TLS)
решение1
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.1. - Различия
ClientKeyExchange
. - MAC/HMAC отличается (TLS использует HMAC, тогда как SSL использует более раннюю версию HMAC).
- Вывод ключа отличается.
- Данные клиентского приложения могут быть отправлены сразу после отправки
Finished
сообщения SSL/TLS в SSLv3. В TLSv1 необходимо дождаться сообщения сервераFinished
. - Список наборов шифров отличается (некоторые из них были переименованы с
SSL_*
наTLS_*
, сохранив тот же идентификационный номер). - Существуют также различия относительно новогопродление срока повторного согласования.
Я бы настоятельно рекомендовалКнига Эрика Рескорлы -SSL и TLS: проектирование и создание безопасных систем, Эддисон-Уэсли, 2001 ISBN 0-201-61598-3, если вы действительно хотите больше подробностей. Я узнал о некоторых из пунктов, упомянутых выше, из этой книги. Автор иногда упоминает различия между SSLv3 и TLS (v1.0 только на момент написания книги), когда объясняет некоторые сообщения SSL/TLS, но вам действительно нужно фоновое объяснение этих сообщений, чтобы иметь возможность понять (и не следует копировать/вставлять из этой книги здесь).
решение2
Я просто повторю другие ответы, но, возможно, с немного другими акцентами.
Существовал протокол защищенных сокетов, который «принадлежал» Netscape и назывался SSL версии 2. Была выпущена новая версия с другой структурой записи и улучшениями безопасности, также «принадлежащая» Netscape, которая называлась SSL версии 3. Внутри протокола в нескольких местах есть двоичное поле номера версии. Для SSL версии 3 это поле установлено в 0x03 0x00, т. е. версия 3.0. Затем IETF решила создать свой собственный стандарт. Возможно, из-за некоторых неопределенностей в отношении интеллектуальной собственности SSL, включая то, является ли «SSL» торговой маркой Netscape, когда IETF выпустила следующую версию этого протокола, они дали ему собственное название: протокол безопасности транспортного уровня, или TLS версии 1.0. Формат записи и общая структура идентичны и соответствуют SSL v3. Двоичный номер версии был изменен на 0x03 0x01, и, как отметили другие, были некоторые незначительные изменения в криптографии. С тех пор появились версии TLS 1.1 и 1.2, для которых внутренние номера протоколов — 0x03 0x02 и 0x03 0x03.
Если не считать SSLv2, то это было по сути просто изменение названия наряду с обычной тонкой настройкой протокола, которая происходит по мере того, как люди становятся более осведомленными в вопросах безопасности и производительности.
решение3
По сути, это не что иное, как смена названия для новой версии протокола. Я считаю, что главной причиной этого было желание отличить его от старого, неформального стандарта, в основном разработанного Netscape после того, как он стал официальным протоколом отслеживания стандартов IETF.
Как было сказано в ответах на ваш предыдущий вопрос, это не означает, что SSLv3 и TLSv1.0 совместимы. Цитата из RFC 2246:
Различия между этим протоколом и SSL 3.0 не столь существенны, но они достаточно существенны, чтобы TLS 1.0 и SSL 3.0 не взаимодействовали.
Полагаю, если вы действительно хотите узнать точные различия в протоколах, вам следует прочитать стандарты и сравнить их самостоятельно.
решение4
Различия:
- TLS работает поверх стандартного протокола. TLS-соединение начинается как незашифрованный сеанс стандартной службы, но в какой-то момент они начинают договариваться о шифровании. Для этого согласования требуется расширение стандартного протокола.
- Стандартные протоколы работают поверх SSL. SSL-соединение сначала согласовывает шифрование, а затем запускает поверх него базовый протокол.