SSL (Secure Sockets Layer)
Последнее изменение этой страницы: 16:03, 27 июня 2016.
SSL (Secure Sockets Layer - уровень защищенных сокетов) - криптографический протокол для более безопасной передачи информации. Был разработан в 1996 году компанией Netscape и вскоре стал наиболее популярным методом обеспечения защищенного обмена данными через Интернет. Этот протокол интегрирован в большинство браузеров и веб серверов и использует ассиметричную криптосистему с открытым ключом, разработанную компанией RSA. Сейчас является небезопасным и должен быть исключен в пользу TLS.
Общее
Протокол SSL используется в тех случаях, если нужно обеспечить должный уровень защиты информации, которую пользователь передает серверу. На некоторые сайты, которые работают с электронными деньгами (банки, Интернет-магазины, биржи контента), передаются секретные данные. Кроме пароля, это может быть номер и серия паспорта, номер кредитной карты, пин-код и др. Такая информация предоставляет большой интерес для злоумышленников, поэтому если вы используете для передачи незащищенный протокол http, то ваши данные вполне можно перехватить и использовать в корыстных целях.
Протокол SSL обеспечивает защищенный обмен данными за счет сочетания двух следующих элементов:
- Аутентификация - цифровой сертификат привязан к конкретному домену сети Интернет, а центр сертификации проводит проверки, подтверждающие подлинность организации, а уже затем создает и подписывает цифровой сертификат для этой организации. Такой сертификат может быть установлен только на тот домен web-сервера, для которого он прошел аутентификацию, что и дает пользователям сети Интернет необходимые гарантии.
- Шифрование - процесс преобразования информации в нечитаемый для всех, кроме конкретного получателя, вид. Оно основывается на необходимых для электронной коммерции гарантиях конфиденциальности передачи информации и невозможности ее фальсификации.
История создания
- SSL 1.0 - не был обнародован
- SSL 2.0 - выпущен в 1995м году, имел множество уязвимостей
- SSL 3.0 - выпущен в 1996м году
- TLS 1.0 - выпущен в 1999м году на основе SSL 3.0
- TLS 1.1 - выпущен в 2006м году
- TLS 1.2 - выпущен в 2008м году
Принцип работы
Протокол SSL размещается между двумя протоколами: протоколом, который использует программа-клиент (HTTP, FTP, LDAP, TELNET etc) и транспортным протоколом TCP/IP. SSL защищает данные, выступая в роли фильтра для обеих сторон, и передает их далее на транспортный уровень. Работу протокола можно разделить на два уровня:
- Слой протокола подтверждения подключения (Handshake Protocol Layer)
- Слой протокола записи
Первый слой, в свою очередь, состоит из трех подпротоколов:
- Протокол подтверждения подключения (Handshake Protocol)
- Протокол изменения параметров шифра (Cipher Spec Protocol)
- Предупредительный протокол (Alert Protocol)
Цифровой сертификат состоит из общего ключа и идентификационной информации с цифровой подписью уполномоченной сертификатной компании (CA). С каждым общим ключом связан частный ключ. Частный ключ не входит в состав сертификата и хранится отдельно от него. При идентификации клиента или сервера конечная система должна предоставить доказательство наличия частного ключа, соответствующего общему ключу цифрового сертификата.
Применение общих и частных ключей в операциях шифрования обуславливает высокие требования согласований SSL к производительности системы. После установления первого соединения SSL между двумя конечными системами информация об этом соединении и приложениях может быть занесена в кэш в защищенной памяти для ускорения последующих согласований SSL. При возобновлении соединения SSL конечные системы проверяют наличие доступа к уникальной информации путем выполнения сокращенной процедуры согласования без применения общего и частного ключей. Если обе системы предоставят доказательства наличия доступа к этой информации, будут созданы новые симметричные ключи и соединение SSL возобновится. Кэшированная информация соединений TLS версии 1.2, 1.1, 1.0 и SSL версии 3.0 хранится в защищенной памяти не более 24 часов.
Сертификаты расположены на безопасном сервере и используются для шифрования данных и идентификации Web-сайта. Как правило, сертификаты выдаются специальным центром. В сертификате хранятся следующие данные:
- Полное (уникальное) имя владельца сертификата
- Открытый ключ владельца
- Дата выдачи ssl сертификата
- Дата окончания сертификата
- Полное (уникальное) имя центра сертификации
- Цифровая подпись издателя
Типы сертификатов по типу валидации:
- Сертификаты, которые подтверждают только доменное имя (Domain Validation — DV).
- Сертификаты, которые подтверждают домен и организацию (Organization Validation — OV).
- Сертификаты с расширенной проверкой (Extendet Validation — EV).
Протокол записи (англ. Record Laye) — это уровневый протокол. На каждом уровне сообщения включают поля для длины, описания и проверки. Протокол записи принимает сообщения, которые нужно передать, фрагментирует данные в управляемые блоки, разумно сжимает данные, применяя MAC (Message Authentication Code), шифрует и передаёт результат. Полученные данные он расшифровывает, проверяет, распаковывает, собирает и доставляет к более верхним уровням клиента.
Существует четыре протокола записи:
- Протокол рукопожатия (handshake protocol);
- Протокол тревоги (alert protocol);
- Протокол изменения шифра (the change cipher spec protocol);
- Протокол приложения (application data protocol);
Применение
В настоящее время протокол SSL не является безопасным. SSL реализуется поверх любого другого протокола прикладного уровня.
Уязвимость
Существует целый ряд атак, к которым уязвим протокол SSL
- Атака по словарю
- Атака отражением
- Атака протокола рукопожатия
- Взлом SSL-соединений внутри ЦОД
- BEAST атака
- RC4 атака
- Раскрытие шифров
- MITM
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.