Назад | Перейти на главную страницу

Каковы точные различия на уровне протокола между SSL и 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.1.
  • В ClientKeyExchange отличается.
  • MAC / HMAC отличается (TLS использует HMAC, тогда как SSL использует более раннюю версию HMAC).
  • Ключевой вывод отличается.
  • Данные клиентского приложения могут быть отправлены сразу после отправки SSL / TLS. Finished сообщение в SSLv3. В TLSv1 он должен ждать, пока сервер Finished сообщение.
  • Список шифров различается (и некоторые из них переименованы из SSL_* к TLS_*, сохраняя тот же идентификационный номер).
  • Есть также отличия относительно нового продление повторных переговоров.

Я настоятельно рекомендую Книга Эрика Рескорла - SSL и TLS: проектирование и создание безопасных систем, Аддисон-Уэсли, 2001 ISBN 0-201-61598-3, если вам действительно нужны подробности. Я узнал о некоторых из упомянутых выше моментов из этой книги. Автор иногда упоминает различия между SSLv3 и TLS (v1.0 только на момент написания книги) при объяснении некоторых сообщений SSL / TLS, но вам действительно нужны общие объяснения об этих сообщениях, чтобы иметь возможность понять ( и здесь неуместно копировать / вставлять из этой книги).

Я просто повторю другие ответы, но, возможно, с немного другим акцентом.

Существовал протокол защищенных сокетов, который «принадлежал» Netscape и назывался SSL версии 2. Была выпущена новая версия с другой структурой записи и улучшениями безопасности, также «принадлежащая» Netscape и названная SSL версии 3. Внутри протокола в нескольких версиях. Places - это двоичное поле номера версии. Для 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, это было просто изменение имени вместе с обычной тонкой настройкой протокола, которая происходит по мере того, как люди становятся более умными в вопросах безопасности и производительности.

По сути, это не что иное, как изменение названия для новой версии протокола. Я считаю, что основная причина этого заключалась в том, чтобы отличить его от более старого, неформального стандарта, в основном разработанного Netscape после того, как он стал официальным протоколом отслеживания стандартов IETF.

Как было сказано в ответах на ваш предыдущий вопрос, это не означает, что SSLv3 и TLSv1.0 совместимы. Цитата из RFC 2246:

различия между этим протоколом и SSL 3.0 несущественны, но они достаточно значительны, чтобы TLS 1.0 и SSL 3.0 не взаимодействовали.

Я думаю, если вы действительно хотите узнать точные различия в протоколах, вы должны прочитать стандарты и сравнить себя.

Черновик протокола SSLv3 от Netscape TLSv1.0 RFC 2246

Протокол шифрования SSL теперь называется TLS, что дает два имени для одного и того же протокола. Текущее программное обеспечение будет согласовывать TLS версии 1 или SSL версии 3 автоматически. С другой стороны, людям приходится выбирать между использованием более узнаваемого термина SSL и официальным обозначением TLS.

SSL - это предшественник TLS.

TLS и SSL шифруют сегменты сетевых подключений на уровне приложений, чтобы обеспечить безопасный сквозной транзит на транспортном уровне.

Отличия:

  • TLS работает поверх стандартного протокола. Соединение TLS начинается как незашифрованный сеанс стандартной службы, но в какой-то момент они начинают согласовывать шифрование. Это требует расширения стандартного протокола для этого согласования.
  • Стандартные протоколы работают поверх SSL. SSL-соединение сначала согласовывает шифрование, а затем запускает через него базовый протокол.