Состояния соединения
Вводится понятие состояния соединения, которое определяет параметры выполнения протокола Записи. Такими параметрами являются алгоритм сжатия, алгоритм шифрования и МАС-алгоритм, а также параметры этих алгоритмов, т.е. секреты МАС, ключи алгоритма шифрования и инициализационные вектора. Для каждого направления (соответственно чтение или запись) параметры соединения могут различаться. Существует четыре состояния соединения: текущие состояния чтения и записи и ожидаемые состояния чтения и записи. Параметры безопасности для ожидаемых состояний устанавливаются протоколом Рукопожатия, а протокол Изменения шифрования может делать ожидаемое состояние текущим, при этом соответствующее текущее состояние сбрасывается и заменяется ожидаемым. Ожидаемое состояние в этом случае инициализируется в пустое состояние. Разработчики не должны допускать возможности сделать текущим состояние, которое не было инициализировано параметрами безопасности. Начальное текущее состояние всегда определяется без использования шифрования, сжатия и МАС.
Параметры безопасности для состояний чтения и записи устанавливаются с помощью следующих значений (см. таб. 21.1).
Уровень записи использует параметры безопасности для создания следующих шести элементов:
client write MAC secret
server write MAC secret
client write key
server write key
client write IV – только для блочных алгоритмов
server write IV – только для блочных алгоритмов
Параметры client write используются сервером, когда он получает сообщения и клиентом, когда тот посылает их. Параметры server write применяются сервером, когда он посылает сообщения и клиентом, когда он получает их. После того как параметры безопасности установлены и ключи созданы, ожидаемые состояния соединения могут быть сделаны текущими.
Конец соединения | Каждый участник является либо "клиентом", либо "сервером" |
Алгоритм симметричного шифрования | Алгоритм, используемый для симметричного шифрования. Данное описание включает размер ключа алгоритма, тип алгоритма (блочный или поточный), размер блока алгоритма и информацию о том, является ли он "экспортируемым" |
МАС алгоритм | Алгоритм, используемый для проверки целостности сообщения. Это описание включает размер хэша, который возвращается МАС-алгоритмом |
Алгоритм сжатия | Алгоритм, используемый для сжатия данных. Данное описание включает всю информацию, необходимую алгоритму сжатия |
Мастер-секрет | 48-байтный секрет, разделяемый обоими участниками соединения |
Случайное число клиента | 32-байтное значение, создаваемое клиентом |
Случайное число сервера | 32-байтное значение, создаваемое сервером |
Алгоритм МАС | МАС-секрет |
Последовательный номер | Каждое состояние соединения содержит последовательный номер, который вычисляется независимо для состояний чтения и записи. Последовательный номер должен устанавливаться в ноль всякий раз, когда состояние соединения становится активным, т.е. текущим или ожидаемым. Последовательные номера не могут быть больше 264 - 1. Последовательный номер возрастает после каждой записи |