Каковы точные различия на уровне протоколов между SSL и TLS?

Каковы точные различия на уровне протоколов между SSL и TLS?

Это техническое глубокое погружение послеэтот обзорбыл задан вопрос.

Каковы различия протоколов 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 не взаимодействовали.

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

Проект протокола SSLv3 от Netscape TLSv1.0 RFC 2246

решение4

Различия:

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

Связанный контент