Защита электронной почты в Internet
Рефераты >> Коммуникации и связь >> Защита электронной почты в Internet

Стек протоколов SSL.

Между любой парой обменивающихся информацией сторон (например, приложе­ний типа HTTP клиента и сервера) можно установить много защищенных соедине­ний. Теоретически между сторонами можно установить и несколько одновременно существующих сеансов, но на практике такая возможность не используется.

Соединение (connection) — транспорт, обеспечивающий сервис некоторого подходящего типа (SMTP, HTTP и т.д.) Каждое соединение ассоции­руется только с одним сеансом.

Сеанс (session). Сеанс SSL — это связь между клиентом и сервером. Сеан­сы создаются протоколом квитирования SSL (SSL Handshake Protocol). Се­анс определяет набор параметров криптографической защиты, которые мо­гут использоваться несколькими соединениями. Сеансы позволяют избе­жать необходимости ведения переговоров об установлении параметров защиты для каждого нового соединения.

3.2. Протокол записи SSL

Протокол записи SSL (SSL Record Protocol) обеспечивает поддержку двух сле­дующих сервисов для соединений SSL.

• Конфиденциальность. Протокол квитирования SSL (SSL Handshake Protocol) определяет общий для клиента и сервера секретный ключ, ис­пользуемый алгоритмом традиционной схемы для шифрования данных, передаваемых по протоколу SSL.

• Целостность сообщений. Помимо обеспечения конфиденциальности, протокол квитирования SSL определяет общий секретный ключ для вычисления значе­ний MAC (Message Authentication Code — код аутентичности сообщения).

Порядок отправки данных:

1. Этот про­токол, получив сообщение для пересылки другой стороне, сначала фрагментирует данные, разбивая их на блоки подходящего размера;

2. При необходимости вы­полняет сжатие данных;

3. Применяет алгоритм вычисления MAC;

4. Шифрует дан­ные (MAC +сжатое сообщение);

5. Добавляет заголовок

6. Передает полученные пакеты сегменту TCP.

При принятии данных: данные дешифруются, проверяются, восстанавливаются, собираются вновь и передаются приложениям более высокого уровня.

При вычислении кода аутентичности сообщения используется специальная схема вычисления MAC, в которой используется алгоритм хэширования MD5 или SHA-1.

Сжатое сообщение вместе с добавленным к нему значением MAC шифруется.

Используемые алгоритмы шифрования:

Блочное шифрование

Поточное шифрование

Алгоритм

Размер ключа

Алгоритм

Размер ключа

IDEA

128

RC4-40

40

RC2-40

40

RC4-128

128

DES-40

40

 

DES

56

3DES

168

Fortezza

80

В случае применения алгоритмов поточного шифрования шифруются только сжатое сообщение и добавленное к нему значение MAC.

При использовании алгоритмов блочного шифрования после значения MAC можно добавлять заполнитель. Заполнитель состоит из некоторого числа байтов заполнителя, за которыми следует 1-байтовое значение, указывающее длину за­полнителя. Для общей длины заполнителя выбирается наименьшее из значений, при котором общая длина последовательности данных, подлежащих шифрова­нию (открытый текст + MAC + заполнитель), будет кратна длине блока шифра.

Завершающим шагом в работе протокола записи SSL является создание заго­ловка, состоящего из следующих полей.

Тип содержимого (8 битов). Определяет протокол лежащего выше уровня, с помощью которого должен обрабатываться данный фрагмент.

• Главный номер версии (8 битов). Указывает главный номер версии ис­пользуемого протокола SSL. Для SSLv3 это поле содержит значение 3.

• Дополнительный номер версии (8 битов). Указывает дополнительный номер версии применяемого протокола SSL. Для SSLv3 это поле содержит значение 0.

• Длина сжатого фрагмента (16 битов). Длина в байтах данного фрагмента открытого текста (или сжатого фрагмента при сжатии). Максимально до­пустимое значение равно 2^14 + 2048.

Для типа содержимого определены значения change_cipher_spec, alert, handshake и application_data. Первые три значения обозначают протоколы стека SSL.

3. 3. Протокол изменения параметров шифрования

Протокол изменения параметров шифрования (Change Cipher Spec Protocol) генерирует однобайтовое со­общение, содержащее значение 1. Единственной задачей этого со­общения является указание начать копирование параметров состояния ожидания в текущее состояние, что приводит к обновлению комплекта шифров, исполь­зуемых для данного соединения.

3. 4. Протоколизвещения

Протокол извещения (Alert Protocol) предназначен для передачи другой уча­ствующей в обмене данными стороне извещений, касающихся работы SSL. Как и данные любого другого приложения, использующего SSL, сообщения протокола извещения точно так же сжимаются и шифруются в соответствии с параметрами текущего состояния.

Сообщение, генерируемое данным протоколом состоит из 2-х байтов: первый байт - значение, обозначающее уровень предупреждения или уровень неустранимой ошибки, второй байт – код, обозначающий конкретный смысл извещения. Если в первом байте указан уровень неустранимой ошибки, то протокол SSL разрывает соединение, другие соединения могут продолжать существовать, но нового соединения для данного сеанса создать уже будет невозможно.

В протоколе извещения существует 5 извещений, указывающих на неустранимую ошибку и 7 извещений не указывающих на неустранимую ошибку.

3. 5. Протокол квитирования.

Этот протокол позволяет серверу и клиенту выполнить взаимную аутентификацию, а также согласовать алгоритмы шифрования, вы­числения MAC и криптографические ключи, которые будут служить для защиты данных, пересылаемых в записи SSL. Протокол квитирования должен использо­ваться до начала пересылки данных прикладных программ.

В случае с протоколом квитирования генерируется несколько сообщений, ко­торыми обмениваются клиент и сервер. Любое такое сообщение содержит три следующих поля.

• Тип (1 байт). Указывает один из 10 допустимых типов сообщения.


Страница: