SSL (Secure Sockets Layer)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:03, 27 июня 2016.

SSL (Secure Sockets Layer - уровень защищенных сокетов) - криптографический протокол для более безопасной передачи информации. Был разработан в 1996 году компанией Netscape и вскоре стал наиболее популярным методом обеспечения защищенного обмена данными через Интернет. Этот протокол интегрирован в большинство браузеров и веб серверов и использует ассиметричную криптосистему с открытым ключом, разработанную компанией RSA. Сейчас является небезопасным и должен быть исключен в пользу TLS.

Общее

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

Протокол SSL обеспечивает защищенный обмен данными за счет сочетания двух следующих элементов:

  • Аутентификация - цифровой сертификат привязан к конкретному домену сети Интернет, а центр сертификации проводит проверки, подтверждающие подлинность организации, а уже затем создает и подписывает цифровой сертификат для этой организации. Такой сертификат может быть установлен только на тот домен web-сервера, для которого он прошел аутентификацию, что и дает пользователям сети Интернет необходимые гарантии.
  • Шифрование - процесс преобразования информации в нечитаемый для всех, кроме конкретного получателя, вид. Оно основывается на необходимых для электронной коммерции гарантиях конфиденциальности передачи информации и невозможности ее фальсификации.

История создания

  1. SSL 1.0 - не был обнародован
  2. SSL 2.0 - выпущен в 1995м году, имел множество уязвимостей
  3. SSL 3.0 - выпущен в 1996м году
  4. TLS 1.0 - выпущен в 1999м году на основе SSL 3.0
  5. TLS 1.1 - выпущен в 2006м году
  6. TLS 1.2 - выпущен в 2008м году

Принцип работы

Протокол SSL размещается между двумя протоколами: протоколом, который использует программа-клиент (HTTP, FTP, LDAP, TELNET etc) и транспортным протоколом TCP/IP. SSL защищает данные, выступая в роли фильтра для обеих сторон, и передает их далее на транспортный уровень. Работу протокола можно разделить на два уровня:

  1. Слой протокола подтверждения подключения (Handshake Protocol Layer)
  2. Слой протокола записи

Первый слой, в свою очередь, состоит из трех подпротоколов:

  1. Протокол подтверждения подключения (Handshake Protocol)
  2. Протокол изменения параметров шифра (Cipher Spec Protocol)
  3. Предупредительный протокол (Alert Protocol)


Цифровой сертификат состоит из общего ключа и идентификационной информации с цифровой подписью уполномоченной сертификатной компании (CA). С каждым общим ключом связан частный ключ. Частный ключ не входит в состав сертификата и хранится отдельно от него. При идентификации клиента или сервера конечная система должна предоставить доказательство наличия частного ключа, соответствующего общему ключу цифрового сертификата. Применение общих и частных ключей в операциях шифрования обуславливает высокие требования согласований SSL к производительности системы. После установления первого соединения SSL между двумя конечными системами информация об этом соединении и приложениях может быть занесена в кэш в защищенной памяти для ускорения последующих согласований SSL. При возобновлении соединения SSL конечные системы проверяют наличие доступа к уникальной информации путем выполнения сокращенной процедуры согласования без применения общего и частного ключей. Если обе системы предоставят доказательства наличия доступа к этой информации, будут созданы новые симметричные ключи и соединение SSL возобновится. Кэшированная информация соединений TLS версии 1.2, 1.1, 1.0 и SSL версии 3.0 хранится в защищенной памяти не более 24 часов.

Сертификаты расположены на безопасном сервере и используются для шифрования данных и идентификации Web-сайта. Как правило, сертификаты выдаются специальным центром. В сертификате хранятся следующие данные:

  1. Полное (уникальное) имя владельца сертификата
  2. Открытый ключ владельца
  3. Дата выдачи ssl сертификата
  4. Дата окончания сертификата
  5. Полное (уникальное) имя центра сертификации
  6. Цифровая подпись издателя

Типы сертификатов по типу валидации:

  1. Сертификаты, которые подтверждают только доменное имя (Domain Validation — DV).
  2. Сертификаты, которые подтверждают домен и организацию (Organization Validation — OV).
  3. Сертификаты с расширенной проверкой (Extendet Validation — EV).

Протокол записи (англ. Record Laye) — это уровневый протокол. На каждом уровне сообщения включают поля для длины, описания и проверки. Протокол записи принимает сообщения, которые нужно передать, фрагментирует данные в управляемые блоки, разумно сжимает данные, применяя MAC (Message Authentication Code), шифрует и передаёт результат. Полученные данные он расшифровывает, проверяет, распаковывает, собирает и доставляет к более верхним уровням клиента.

Существует четыре протокола записи:

  1. Протокол рукопожатия (handshake protocol);
  2. Протокол тревоги (alert protocol);
  3. Протокол изменения шифра (the change cipher spec protocol);
  4. Протокол приложения (application data protocol);

Применение

В настоящее время протокол SSL не является безопасным. SSL реализуется поверх любого другого протокола прикладного уровня.

Уязвимость

Существует целый ряд атак, к которым уязвим протокол SSL

  1. Атака по словарю
  2. Атака отражением
  3. Атака протокола рукопожатия
  4. Взлом SSL-соединений внутри ЦОД
  5. BEAST атака
  6. RC4 атака
  7. Раскрытие шифров
  8. MITM

Ссылки

  1. inssl.com
  2. Wiki