SSL
Что это
SSL (Secure Sockets Layer) — предшественник TLS. Разработан Netscape Communications в 1994-1996 годах для защиты HTTP в браузерах. Все версии SSL сегодня устарели и уязвимы, но термин «SSL» до сих пор используется как синоним TLS в разговорной речи и в названиях («SSL-сертификат», «SSL/TLS»).
История версий
| Версия | Год | Статус |
|---|---|---|
| SSL 1.0 | — | никогда не выпускался, был уязвим ещё до релиза |
| SSL 2.0 | 1995 | MITM возможен, deprecated в 2011 (RFC 6176) |
| SSL 3.0 | 1996 | POODLE attack (2014), deprecated в 2015 (RFC 7568) |
| TLS 1.0 | 1999 | переименование SSL 3.1, deprecated 2021 |
| TLS 1.1 | 2006 | deprecated 2021 |
| TLS 1.2 | 2008 | уходит |
| TLS 1.3 | 2018 | актуально |
Почему SSL заменили на TLS
В 1999 IETF стандартизировал SSL 3.1 под названием TLS 1.0. Netscape к тому времени согласилась передать протокол в IETF. Переименование было политическим — чтобы «не был у Netscape в собственности». Технически SSL 3.0 → TLS 1.0 — почти идентичны.
SSL vs TLS в языке
В индустрии эти слова смешались:
- «SSL-сертификат» — на самом деле X.509-сертификат для TLS
- «SSL/TLS» — плеоназм, всё что не 1.3 обычно называют так
- «HTTPS работает по SSL» — реально работает по TLS 1.2/1.3
- OpenSSL — библиотека называется «SSL», но реализует TLS
Терминологически корректно говорить TLS. Но «SSL» настолько укоренилось, что искоренять бесполезно.
Известные атаки на SSL
- POODLE (2014) — SSL 3.0, padding oracle
- BEAST (2011) — TLS 1.0 CBC, mostly фиксили клиенты
- Heartbleed (2014) — не про SSL, а про уязвимость OpenSSL, но часто путают
- DROWN (2016) — SSL 2.0 → атака на серверы TLS, если также поддерживают SSLv2
Сегодня
Все SSL-версии отключены в браузерах и серверах. Если где-то ещё используется SSL 3.0 — это критическая проблема безопасности. Проверить свой сервер: testssl.sh, ssllabs.com/ssltest.