SSL? TLS? HTTPS?

31 март, 2012 - 21:33Арсен Бандурян

Музыкой навеяло. Разберем одно из популярных заблуждений.

Многие считают, что SSL (Secure Sockets Layer) и TLS (Transport Layer Security) - одно и то же. Или что SSL - протокол, применяющийся в TLS. На самом деле, это примерно так же, как считать что Windows 95 и Windows XP - одно и то же (ведь Windows же).

TLS - результат эволюции и закрытия немалого количества дыр в протоколе SSL. Таким образом SSL - старый и небезопасный. TLS - новый и пока (тьфу-тьфу в версиях 1.1 и 1.2, но не 1.0) безопасный.

К сожалению, многие, не зная этой разницы, конфигурят именно SSL или только SSL  (т.к. он доступен по умолчанию в большом количестве серверного ПО, а для TLS нужно скачать какой-нибудь дополнительный модуль), ну и потом попадают.

HTTPS (тот самый который отвечает за защищенные соединения в браузерах) может работать как поверх SSL, так и поверх TLS, смотря как сконфигурирован веб-сервер. Так что к нему относятся все перечисленные выше соображения. К сожалению, даже если сервер сконфигурирован для TLS 1.1 и 1.2 - не факт, что ваш браузер его поддержит. Я писал об этом еще в 2011, но воз пока и ныне там. Вроде, NSS с поддержкой TLS 1.1 таки выйдет в этом году, и мы наконец увидим его в FF/Chrome/Safari и куче другого опенсорсного ПО.

Так что:
а) не все "безопасные" соединения одинаково безопасны:
б) тем не менее, масштаб проблемы несколько преувеличен, все лечится правильной конфигурацией.

В общем, будьте бдительны!

SSL vs TLS