Основная функция протокола записи — работа с данными, поступающими от уровня приложения. На первом этапе производится фрагментирование данных в блоки для дальнейшей обработки (блок 16 384 байта для версии SSL 3.0). Затем производится упаковка (при отправлении) или распаковка (при получении) данных, если эта опция была задана. Далее производится шифрование данных тем алгоритмом, который был определен для клиента и сервера, а также устанавливается аутентификационный код сообщения (англ. message authentication code — MAC) для обеспечения контроля целостности сообщения.
Кроме того, этот подпротокол берет на себя функции генерирования сообщений об ошибках и закрытии сессии. Рассмотрим возможные варианты служебных сообщений, которые представлены в табл. 22.1.
Таблица 22.1. Системные сообщения подпротокола SSL-записи
|
Сообщение |
Значение сообщения |
|
Close_notify |
Это нормальное, не связанное с ошибкой, сообщение о закрытии сессии |
|
Unexpected, message |
Получено несоответствующее сообщение, которое приводит к закрытию сессии |
|
Bad_record_mac |
Получен неверный аутентификационный код сообщения, приводящий к закрытию сессии |
|
Decompression_failure |
Функция распаковки получила неверное значение, приводит к закрытию сессии |
|
Handshake_failure |
Получатель не способен поддержать требуемый отправителем набор параметров безопасности, приводит к закрытию сессии |
|
No_certificate |
Нет доступа к сертификату |
|
Bad_certificate |
Сертификатповрежден |
|
Unsupported_certificate |
Данный тип сертификата не поддерживается |
|
Certificate_revoked |
Сертификат отозван выпустившим его субъектом |
|
Certificate_expired |
Дата действия сертификата истекла или неверна |
|
Certificate_ unknown |
При обработке данных сертификата возникли прочие неразрешимые проблемы |
|
Illegal_parameter |
Поле данных имеет неверное значение, которое приводит к закрытию сессии |