Согласно wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security
Кажется, что TLS является заменой SSL, но большинство сайтов по-прежнему используют SSL?
Согласно wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security
Кажется, что TLS является заменой SSL, но большинство сайтов по-прежнему используют SSL?
Короче говоря, TLSv1.0 более или менее SSLv3.1. Вы можете найти более подробную информацию в этом вопросе на ServerFault.
Большинство сайтов фактически поддерживают как SSLv3, так и TLSv1.0 по крайней мере, поскольку это исследование показывает (Ли, Малкин и Наум: Криптографическая сила SSL/Серверы TLS: текущая и новейшая практика, IMC 2007) (ссылка получена из списка IETF TLS). Более 98% поддерживают TLSv1 +.
Я думаю, причина, по которой SSLv3 все еще используется, - это поддержка устаревших (хотя большинство браузеров поддерживают TLSv1 и некоторые TLSv1.1 или даже TLSv1.2 в настоящее время). До недавнего времени в некоторых дистрибутивах по умолчанию по умолчанию оставался SSLv2 (считается небезопасным).
(Вы также можете найти этот вопрос, хотя это касается шаблона использования TLS, а не SSL и TLS (на самом деле вы можете иметь один и тот же шаблон с SSL). В любом случае это не относится к HTTPS, поскольку HTTPS использует SSL/TLS с самого начала соединения.)
Из http://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/
В начале 90-х годов, на заре World Wide Web, некоторые инженеры из Netscape разработали протокол для создания защищенных HTTP-запросов, и то, что они придумали, называлось SSL. Учитывая относительно ограниченный объем знаний о безопасных протоколах в то время, а также интенсивное давление все в Netscape работали, их усилия можно рассматривать только как невероятно героические. Удивительно, что SSL выдержал столько, сколько он есть, в отличие от ряда других протоколов того же урожая. Weve определенно многому научился с тех пор, но дело в протоколах и API-интерфейсах заключается в том, что они очень мало возвращаются.
Были два основных обновления протокола SSL: SSL 2 (1995) и SSL 3 (1996). Они были тщательно выполнены, чтобы быть совместимыми в обратном направлении, чтобы облегчить принятие. Однако обратная совместимость - это ограничение для протокола безопасности, для которого это может означать обратную уязвимость.
Таким образом, было решено отказаться от совместимости в обратном направлении, а новый протокол - TLS 1.0 (1999). (Оглядываясь назад, возможно, было бы проще назвать его TLS 4)
Различия между этим протоколом и SSL 3.0 не являются существенными, но они достаточно значительны, что TLS 1.0 и SSL 3.0 не взаимодействуют.
TLS был дважды пересмотрен, TLS 1.1 (2006) и TLS 1.2 (2008).
По состоянию на 2015 год все версии SSL сломаны и небезопасны (атака POODLE) и браузеры удаляют поддержку. TLS 1.0 вездесущ, но только 60% сайтов поддерживают TLS 1.1 и 1.2, извиняющееся состояние дел.
Если вы заинтересованы в этом, я рекомендую Moxie Marlinspike умный и забавный разговор в https://www.youtube.com/watch?v=Z7Wl2FW2TcA
tls1.0 означает sslv3.1
tls1.1 означает sslv3.2
tls1.2 означает sslv3.3
rfc только что изменил имя, вы можете найти шестнадцатеричный код tls1.0: 0x0301, что означает sslv3.1
"Если он не сломан, не трогайте его". SSL3 отлично работает в большинстве сценариев (в октябре был обнаружен фундаментальный недостаток протокола SSL/TLS, но это недостаток приложений больше, чем сам прокол), поэтому разработчики не спешат обновлять свои модули SSL. TLS предлагает ряд полезных расширений и алгоритмов безопасности, но они являются удобным дополнением, а не обязательным. Таким образом, TLS на большинстве серверов остается вариантом. Если оба сервера и клиент поддерживают его, он будет использоваться.
Обновление: в 2016 году SSL 3 и даже TLS до 1,2 оказались уязвимыми для различных атак, и рекомендуется переключение на TLS 1.2. Существуют также атаки на реализацию TLS 1.2, хотя они зависят от сервера. TLS 1.3 в настоящее время находится в разработке. И теперь TLS 1.2 является обязательным.
TLS поддерживает обратную совместимость с SSL, и поэтому протокол связи почти идентичен в любой из упомянутых здесь версий. Двумя важными отличиями между SSL v.3, TLS 1.0 и TLS 1.2 являются псевдослучайная функция (PRF) и функция хэширования HMAC (SHA, MD5, рукопожатие), которая используется для построения блока симметричных ключей для Шифрование данных приложения (ключи сервера + клиентские ключи + IV). Основное различие между TLS 1.1 и TLS 1.2 заключается в том, что 1.2 требует использования "явного" IV для защиты от атак CBC, хотя для этого нет изменений в PRF или протоколе. TLS 1.2 PRF является специфичным для шифрования, что означает, что PRF может обсуждаться во время рукопожатия. SSL был первоначально разработан Netscape Communications (исторический), а затем поддерживался целевой группой Internet Engineering Task Force (IETF, current). TLS поддерживается Сетевой рабочей группой. Вот разница между функциями PRF HMAC в TLS:
TLS 1.0 и 1.1
PRF (секрет, метка, семя) = P_MD5 (S1, метка + семя) XOR P_SHA-1 (S2, метка + семя);
TLS 1.2
PRF (секрет, метка, семя) = P_hash (секрет, метка + семя)
https://hpbn.co/transport-layer-security-tls/ - хорошее введение
Протокол SSL был первоначально разработан в Netscape для обеспечения безопасности транзакций электронной торговли в Интернете, что требовало шифрования для защиты личных данных клиентов, а также проверки подлинности и целостности для обеспечения безопасной транзакции. Для этого протокол SSL был реализован на уровне приложения, непосредственно поверх TCP (см. Рис. 4-1), включив в него протоколы (HTTP, электронная почта, обмен мгновенными сообщениями и многие другие), чтобы работать без изменений, обеспечивая при этом безопасность связи, когда обмениваясь по сети.
Когда SSL используется правильно, сторонний наблюдатель может только выводить конечные точки соединения, тип шифрования, а также частоту и приблизительный объем отправленных данных, но не может читать или изменять какие-либо фактические данные.
SSL 2.0 был первой публично выпущенной версией протокола, но он был быстро заменен SSL 3.0 из-за ряда обнаруженных недостатков безопасности. Поскольку протокол SSL был проприетарным для Netscape, IETF предпринял попытку стандартизировать протокол, в результате чего RFC 2246 был опубликован в январе 1999 года и стал известен как TLS 1.0. С тех пор IETF продолжает итерацию по протоколу для устранения недостатков безопасности, а также для расширения своих возможностей: TLS 1.1 (RFC 2246) был опубликован в апреле 2006 года, TLS 1.2 (RFC 5246) в августе 2008 года, и теперь работа для определения TLS 1.3.