Изменения
SSL/TLS
,→Устройство протокола SSL
== Устройство протокола SSL ==
[[Файл:SSL on top of TCP.png|right|Фаза рукопожатия]]
Протокол SSL размещается между двумя протоколами: протоколом, который использует программа-клиент (HTTP, FTP, LDAP, TELNET etc) и транспортным протоколом TCP/IP. SSL защищает данные, выступая в роли фильтра для обеих сторон и передает их далее на транспортный уровень. Работу протокола можно разделить на два уровня:* Слой протокола подтверждения подключения (Handshake Protocol Layer)* Слой протокола записи
Первый слой, в свою очередь, состоит из трех подпротоколов:
* Протокол подтверждения подключения (Handshake Protocol)* Протокол изменения параметров шифра (Cipher Spec Protocol)* Предупредительный протокол (Alert Protocol)
Протокол подтверждения подключения производит цепочку обмена данными, что в свою очередь начинает аутентификацию сторон и согласовывает шифрование, хэширование и сжатие. Следующий этап — аутентификация участников, которая осуществляется также протоколом подтверждения подключения.
Протокол изменения параметров шифра используется для изменения данных ключа (keyingmaterial) — информации, которая используется для создания ключей шифрования. Протокол состоит всего из одного сообщения, в котором сервер говорит, что отправитель хочет изменить набор ключей.
Предупредительный протокол содержит сообщение, которое показывает сторонам изменение статуса или сообщает о возможной ошибке. Обычно предупреждение отсылается тогда, когда подключение закрыто и получено неправильное сообщение, сообщение невозможно расшифровать или пользователь отменяет операцию.
Протокол записи (Record Layer) — это уровневый протокол. На каждом уровне сообщения включают поля для длины, описания и проверки. Протокол записи принимает сообщения, которые нужно передать, фрагментирует данные в управляемые блоки, разумно сжимает данные, применяя MAC (message authentication code), шифрует и передаёт результат. Полученные данные он расшифровывает, проверяет, распаковывает, собирает и доставляет к более верхним уровням клиента.
Существует четыре протокола записи:
* Протокол рукопожатия (handshake protocol);* Протокол тревоги (alert protocol);* Протокол изменения шифра (the change cipher spec protocol);* Протокол приложения (application data protocol);
== Принцип работы SSL ==