SSL
SSL (Secure Sockets Layer — уровень защищённых сокетов) — это криптографический протокол, предназначенный для обеспечения безопасной передачи данных между клиентом (например, веб-браузером) и сервером (веб-сайтом) в компьютерных сетях. Протокол обеспечивает конфиденциальность, целостность и аутентификацию передаваемой информации, предотвращая её перехват, подмену или модификацию третьими лицами. Разработан компанией Netscape Communications в середине 1990-х годов. В настоящее время считается устаревшим и заменён более совершенным протоколом TLS (Transport Layer Security), однако термин «SSL» по-прежнему широко используется для обозначения всей технологии защищённого соединения в интернете.
История
Разработка и ранние версии
Первая версия протокола SSL (SSL 1.0) была разработана в 1994 году внутри компании Netscape для защиты трафика своего браузера Navigator. Однако из-за серьёзных уязвимостей она никогда не была опубликована. В 1995 году вышла версия SSL 2.0, которая стала первой публично доступной реализацией. Она использовала шифрование RC4 и алгоритм обмена ключами RSA. Однако вскоре были обнаружены значительные недостатки: отсутствие защиты от атак типа «человек посередине» (MITM) и возможность подмены сертификатов.
SSL 3.0
В 1996 году была выпущена версия SSL 3.0, которая исправила основные недостатки предшественницы. Она ввела поддержку более широкого набора алгоритмов шифрования (включая AES, 3DES, IDEA), улучшила механизм аутентификации и добавила защиту от атак повторного воспроизведения. Именно SSL 3.0 стал основой для последующего стандарта TLS. Протокол оставался основным средством защиты интернет-трафика до середины 2000-х годов.
Переход к TLS
В 1999 году Internet Engineering Task Force (IETF) выпустил стандарт TLS 1.0, основанный на SSL 3.0, но с рядом улучшений. Формально TLS является преемником SSL, и оба термина часто используются как синонимы, хотя технически это разные протоколы. Последующие версии (TLS 1.1, 1.2, 1.3) полностью вытеснили SSL. В 2015 году IETF официально объявила SSL 3.0 устаревшим и небезопасным для использования из-за уязвимости POODLE, позволяющей злоумышленнику расшифровать защищённые данные.
Принцип работы
Установление соединения (рукопожатие)
Протокол SSL работает поверх транспортного уровня (TCP) и использует асимметричное шифрование для безопасного обмена симметричными ключами. Процесс установления соединения (handshake) включает следующие этапы:
- Приветствие: клиент отправляет серверу список поддерживаемых версий протокола и шифров (cipher suites).
- Выбор: сервер выбирает наиболее безопасную версию и шифр, отправляет свой цифровой сертификат (содержащий открытый ключ) и, при необходимости, запрашивает сертификат клиента.
- Проверка: клиент проверяет сертификат сервера на подлинность (с помощью цепочки доверия — Certificate Authority, CA) и срок действия.
- Генерация ключей: клиент генерирует случайный сессионный ключ (pre-master secret), шифрует его открытым ключом сервера и отправляет обратно.
- Завершение: сервер расшифровывает ключ своим закрытым ключом. Обе стороны вычисляют сессионные симметричные ключи. После этого начинается зашифрованное симметричное соединение.
Шифрование и целостность
Для шифрования данных используются симметричные алгоритмы (например, AES, ChaCha20), которые работают значительно быстрее асимметричных. Для обеспечения целостности и аутентичности сообщений применяются коды аутентичности (MAC). Каждое сообщение перед отправкой шифруется и снабжается MAC-кодом, который проверяется на стороне получателя.
Типы сертификатов SSL
По уровню проверки
- Domain Validation (DV): проверяется только право владения доменом. Выдаётся автоматически, без проверки личности владельца. Подходит для блогов, небольших сайтов.
- Organization Validation (OV): проверяется существование организации и её право на домен. В сертификате указывается название компании. Используется для корпоративных сайтов и интернет-магазинов.
- Extended Validation (EV): наиболее строгая проверка, включающая юридический статус, физический адрес и право на домен. В браузере отображается зелёная строка с названием организации. Применяется для банков, крупных интернет-магазинов и государственных порталов.
По количеству доменов
- Одиночный сертификат: защищает один домен (например, example.com).
- Wildcard-сертификат: защищает домен и все его поддомены (например, *.example.com).
- Multi-Domain (SAN): защищает несколько разных доменов (например, example.com, example.org, shop.example.net). Использует расширение Subject Alternative Name (SAN).
Применение
HTTPS
Наиболее массовое применение SSL/TLS — защита протокола HTTP. HTTPS (HTTP over SSL/TLS) шифрует весь трафик между браузером и веб-сервером, что защищает пароли, номера кредитных карт, личные сообщения и другие конфиденциальные данные. Современные браузеры помечают сайты без HTTPS как «небезопасные» и могут блокировать загрузку ресурсов.
Электронная почта
Протоколы SMTP, IMAP и POP3 могут работать поверх SSL/TLS для защиты переписки. Используются порты 465 (SMTPS), 993 (IMAPS), 995 (POP3S). Шифрование предотвращает перехват писем и паролей при передаче.
VPN и удалённый доступ
Некоторые VPN-решения (например, OpenVPN) используют SSL/TLS для туннелирования трафика. Также протокол применяется для защищённого доступа к корпоративным ресурсам через веб-интерфейсы.
Другие протоколы
SSL/TLS используется для защиты FTP (FTPS), LDAP (LDAPS), SIP (SIPS), WebSockets (WSS) и многих других прикладных протоколов.
Уязвимости и критика
Известные атаки
- POODLE (2014): атака на SSL 3.0, позволяющая расшифровать данные путём манипуляции с дополнением (padding). Привела к полному отказу от SSL 3.0.
- Heartbleed (2014): уязвимость в реализации OpenSSL (версии 1.0.1), позволяющая читать память сервера, включая закрытые ключи. Затронула миллионы сайтов.
- BEAST (2011): атака на TLS 1.0, использующая уязвимость в режиме CBC. Привела к рекомендации использовать RC4 (который позже также был признан небезопасным).
- CRIME (2012): атака на сжатие данных в TLS, позволяющая восстановить содержимое запросов (например, сессионные cookie).
Критика
- Сложность управления: владельцы сайтов должны регулярно обновлять сертификаты, отслеживать их срок действия и правильно настраивать сервер.
- Зависимость от центров сертификации (CA): доверие к SSL/TLS основано на доверии к CA. Компрометация одного CA (например, DigiNotar в 2011 году) может поставить под угрозу безопасность всех сертификатов, выпущенных им.
- Снижение производительности: шифрование требует вычислительных ресурсов, что может замедлять работу сервера при большом количестве одновременных соединений. Однако современные реализации (TLS 1.3, аппаратное ускорение) минимизируют этот эффект.
Современное состояние
TLS 1.3
В 2018 году IETF утвердил версию TLS 1.3, которая значительно упростила рукопожатие (сократила количество этапов с двух до одного), повысила безопасность (удалены устаревшие алгоритмы, такие как RC4, 3DES, CBC) и улучшила производительность. Все современные браузеры и веб-серверы поддерживают TLS 1.3.
Отказ от SSL
По состоянию на 2024 год протоколы SSL 2.0 и SSL 3.0 полностью запрещены к использованию. Большинство браузеров и операционных систем блокируют соединения по этим протоколам. Рекомендуется использовать только TLS 1.2 или TLS 1.3.
Автоматизация
Сервис Let’s Encrypt, запущенный в 2016 году, предоставляет бесплатные DV-сертификаты с автоматическим продлением. Это значительно упростило внедрение HTTPS на миллионах сайтов. Большинство хостинг-провайдеров и CMS (WordPress, Joomla) предлагают встроенные инструменты для автоматической настройки SSL/TLS.
Источники
- RFC 6101: The Secure Sockets Layer (SSL) Protocol Version 3.0 (2011)
- RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 (2008)
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 (2018)
- D. Wagner, B. Schneier: Analysis of the SSL 3.0 Protocol (1996)
- US-CERT: Vulnerability Note VU#864643 — SSL 3.0 protocol vulnerability (POODLE) (2014)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →