Открыть сервис

SSL 3.0

SSL 3.0 — это третья версия протокола Secure Sockets Layer (SSL), криптографического протокола, предназначенного для обеспечения безопасной передачи данных между клиентом и сервером в компьютерной сети. Разработанный компанией Netscape Communications в 1996 году, SSL 3.0 стал предшественником протокола Transport Layer Security (TLS) и на протяжении многих лет являлся основой для защиты интернет-соединений, в частности, в протоколе HTTPS. В настоящее время протокол признан устаревшим и небезопасным, его использование настоятельно не рекомендуется из-за критических уязвимостей.

История

Предпосылки создания

В середине 1990-х годов с ростом популярности Всемирной паутины возникла острая необходимость в защите конфиденциальных данных, передаваемых между веб-браузерами и серверами. Первая версия протокола SSL (SSL 1.0) была разработана компанией Netscape в 1994 году, но никогда не публиковалась из-за серьёзных проблем безопасности. В 1995 году была выпущена версия SSL 2.0, которая, однако, также содержала ряд уязвимостей, включая отсутствие защиты от атак типа «человек посередине» (MITM) и слабую аутентификацию.

Разработка и стандартизация

SSL 3.0 был представлен компанией Netscape в 1996 году как значительное улучшение по сравнению с предшественником. Протокол устранил многие недостатки SSL 2.0, добавив поддержку более совершенных криптографических алгоритмов, улучшенную аутентификацию и защиту от известных атак. В 1999 году на основе SSL 3.0 был разработан стандарт TLS 1.0, который был опубликован Инженерным советом Интернета (IETF) в документе RFC 2246. Несмотря на появление TLS, SSL 3.0 продолжал широко использоваться в течение многих лет, особенно в устаревших системах и программном обеспечении.

Устаревание и отказ от использования

В 2014 году исследователи безопасности из Google обнаружили критическую уязвимость в протоколе SSL 3.0, получившую название POODLE (Padding Oracle On Downgraded Legacy Encryption). Эта атака позволяла злоумышленнику расшифровать зашифрованные данные, например, файлы cookie сессии, используя особенности блочного шифрования в режиме CBC. После публикации информации об уязвимости ведущие разработчики браузеров и серверного программного обеспечения (включая Google, Mozilla, Microsoft и Apple) начали поэтапно отключать поддержку SSL 3.0 по умолчанию. В 2015 году IETF официально признала SSL 3.0 устаревшим в документе RFC 7568, рекомендовав прекратить его использование.

Архитектура и принцип работы

SSL 3.0, как и последующие версии TLS, работает на транспортном уровне модели OSI, располагаясь между прикладным протоколом (например, HTTP) и транспортным протоколом (обычно TCP). Протокол обеспечивает три основные функции безопасности: аутентификацию сторон, конфиденциальность данных и целостность данных.

Подпротоколы

SSL 3.0 состоит из двух основных подпротоколов:

  • Протокол записи (Record Protocol): Отвечает за фрагментацию, сжатие, шифрование и добавление кода аутентификации сообщения (MAC) к данным, передаваемым между клиентом и сервером. Он обеспечивает конфиденциальность и целостность данных на уровне сессии.
  • Протокол рукопожатия (Handshake Protocol): Используется для установления безопасного соединения. В ходе рукопожатия стороны согласовывают версию протокола, выбирают криптографические алгоритмы, обмениваются ключами и аутентифицируют друг друга (обычно сервер, а при необходимости и клиент).

Процесс рукопожатия

Процесс установления соединения по SSL 3.0 включает несколько этапов:

  1. ClientHello: Клиент отправляет серверу сообщение, содержащее поддерживаемые версии протокола, список криптографических алгоритмов (шифров) и случайное число.
  2. ServerHello: Сервер выбирает версию протокола и шифр из предложенных клиентом, отправляет своё случайное число и свой сертификат (обычно X.509).
  3. ServerHelloDone: Сервер сообщает, что его часть приветствия завершена.
  4. ClientKeyExchange: Клиент генерирует предварительный секрет (pre-master secret), шифрует его открытым ключом из сертификата сервера и отправляет обратно. Из этого секрета и случайных чисел обе стороны вычисляют общий сессионный ключ.
  5. ChangeCipherSpec: Клиент и сервер отправляют сообщения, указывающие, что с этого момента все данные будут шифроваться с использованием согласованных параметров.
  6. Finished: Стороны обмениваются зашифрованными сообщениями, подтверждающими успешное завершение рукопожатия.

После завершения рукопожатия начинается защищённая передача данных прикладного уровня.

Криптографические алгоритмы

SSL 3.0 поддерживал широкий спектр криптографических алгоритмов, хотя многие из них в настоящее время считаются небезопасными.

Шифрование

Хеширование и аутентификация

  • Хеш-функции: Для вычисления кодов аутентификации сообщений (MAC) использовались MD5 и SHA-1.
  • MAC: В SSL 3.0 использовался собственный механизм вычисления MAC, который отличался от более поздних версий TLS. Он включал в себя конкатенацию секретного ключа, данных и некоторых констант.

Сертификаты

Для аутентификации сервера (и опционально клиента) использовались цифровые сертификаты стандарта X.509. Сертификаты выдавались удостоверяющими центрами (CA) и содержали открытый ключ и информацию о владельце.

Уязвимости и критика

Основной причиной отказа от SSL 3.0 стало наличие множества критических уязвимостей, которые делали протокол небезопасным для использования.

Атака POODLE

Наиболее известная уязвимость, обнаруженная в 2014 году. Атака POODLE (Padding Oracle On Downgraded Legacy Encryption) эксплуатировала особенности блочного шифрования в режиме CBC. Злоумышленник, имеющий возможность перехватывать и модифицировать трафик (например, в общедоступной Wi-Fi сети), мог заставить клиент и сервер переключиться на SSL 3.0 (атака понижения версии) и затем расшифровать данные, такие как файлы cookie сессии. Уязвимость была оценена как критическая, так как позволяла получить доступ к конфиденциальной информации.

Другие уязвимости

  • Отсутствие защиты от атак понижения версии: Протокол не имел надёжных механизмов для предотвращения принудительного перехода на более старые и небезопасные версии (SSL 2.0).
  • Слабые алгоритмы: Поддержка устаревших и небезопасных алгоритмов, таких как RC4 (подверженного атакам на основе статистического анализа) и 3DES (с низкой производительностью и уязвимостью к атакам Sweet32).
  • Проблемы с реализацией MAC: Механизм вычисления MAC в SSL 3.0 был менее надёжным, чем в TLS 1.0, и делал протокол уязвимым для некоторых атак на целостность данных.
  • Отсутствие поддержки современных расширений: SSL 3.0 не поддерживал расширения, такие как SNI (Server Name Indication) и ALPN (Application-Layer Protocol Negotiation), которые стали стандартом в более поздних версиях TLS.

Влияние и наследие

Несмотря на то, что SSL 3.0 был признан устаревшим и небезопасным, его роль в истории развития интернет-безопасности огромна. Протокол стал первым широко распространённым стандартом для защиты веб-трафика и заложил основы для всех последующих версий TLS. Многие концепции, реализованные в SSL 3.0, такие как протокол рукопожатия и протокол записи, были перенесены в TLS с минимальными изменениями.

SSL 3.0 также способствовал популяризации HTTPS и электронной коммерции, предоставив пользователям и владельцам сайтов инструмент для защиты конфиденциальных данных. Однако, его уязвимости, особенно POODLE, стали важным уроком для сообщества разработчиков, показав необходимость постоянного совершенствования криптографических протоколов и своевременного отказа от устаревших технологий. В настоящее время все современные браузеры и серверы отключают поддержку SSL 3.0 по умолчанию, а его использование считается грубым нарушением правил безопасности.

Источники

  1. RFC 6101: The Secure Sockets Layer (SSL) Protocol Version 3.0 (исторический документ).
  2. RFC 7568: Deprecating Secure Sockets Layer Version 3.0.
  3. B. Moller, T. Duong, K. Kotowicz. "This POODLE Bites: Exploiting The SSL 3.0 Fallback." (2014).
  4. W. Stallings. "Cryptography and Network Security: Principles and Practice." (6th edition).
  5. IETF. "Transport Layer Security (TLS) Protocol Version 1.0." RFC 2246.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →