Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec8.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
260.1 Кб
Скачать

Субпротоколы ssl

Протокол SSL состоит из четырех субпротоколов (далее - просто протоколы):

  • Handshake,

  • Record,

  • ChangeCipherSpec (CCS),

  • Alert.

Ha рис. 3 отражено их взаимодействие. Протокол Record находится непосредственно поверх транспортного слоя TCP, в то время как остальные три протокола - между слоем Record и приложением.

Рис. 3. Стек субпротоколов SSL

Протокол Handshake (рукопожатие) отвечает за аутентификацию сторон, за установление параметров алгоритмов шифрования и хеширования, а также за обмен секретным ключом PreMasterSecret. Функция протокола CCS - сигнализировать слою Record о любых изменениях в параметрах безопасности. Наконец, протокол Alert отражает ошибки, обнаруженные при проверке сообщения, так же как и любые проблемы совместимости, которые могут возникнуть при инициализации с помощью Handshake. Протокол Record применяет все установленные при инициализации параметры безопасности для защиты данных приложения, а также сообщений протоколов Handshake, CCS и Alert.

  1. Обмін даними в ssl

Обмен осуществляется в два этапа.

    1. На предварительном этапе происходит идентификация сторон, согласование используемых криптографических атрибутов, генерация и разделение ключей.

    2. При обмене данными безопасность зависит от алгоритмов и параметров, установленных на предварительном этапе.

В любой момент сохраняется возможность появления сигнала о вторжении в обмен данными или об ошибке.

SSL реализует идею приведения пользовательского сеанса TCP/IP к новому уровню безопасности. Всякий раз, когда клиент подсоединяется к серверу, начинается сеанс SSL. Если клиент подсоединится к другому серверу, новый сеанс начинается без разрыва прежнего сеанса. Если клиент позже вернется к первому серверу и захочет, чтобы соединение возобновилось с использованием ранее установленных параметров, будет передан запрос о возобновлении ранее установленного сеанса вместо инициализации нового. Таким образом, сеанс SSL - это связь между двумя сущностями, имеющими определенный набор параметров и криптографических атрибутов. Для ограничения риска атаки перехвата сообщений и повтора спецификация SSL предполагает ограничение времени действия идентификатора сеанса в течение 24 часов; однако реальная длительность сеанса определяется сервером. Прерванный сеанс может быть возобновлен, только если были использованы специальные процедуры приостановки сеанса.

В первоначальной концепции соединения SSL была заложена возможность изменять некоторые атрибуты сеанса (например, ключ) без влияния на другие атрибуты, установленные в начале сеанса. Сеанс может содержать несколько соединений под управлением приложений. Концепция сеансов SSL может быть проиллюстрирована с помощью переменных состояния и связанных с ними параметров безопасности.

Переменные состояния сеанса SSL. Сеанс SSL однозначно идентифицируется с помощью шести переменных состояния.

  • Session ID - идентификатор сеанса, являющийся случайной последовательностью 32 октетов, для идентификации нового или возобновляемого сеанса.

  • Сертификат узла (peer certificate) - сертификат X.509.v3 корреспондента, участвующего в сеансе. Значение сертификата может быть null, если корреспондент не сертифицирован или используется алгоритм Fortezza.

  • Метод сжатия. Протокол SSL позволяет устанавливать алгоритм сжатия передаваемых данных перед их шифрованием.

  • Спецификация шифра (cipher spec), которая определяет алгоритмы шифрования и хеширования, используемые помимо списка заранее обговоренных алгоритмов.

  • Главный ключ (MasterSecret) длиной 48 байтов, общий для клиента и сервера (разделяемый клиентом и сервером). Используется для генерации всех остальных ключей; остается действительным на все время сеанса.

  • Флаг возобновления (is resumable), определяющий возможность использования сеанса для открытия новых соединений.

Пять элементов определяют набор и параметры криптоалгоритмов (Cipher Suite).

  • Тип шифрования - поточный или блочный алгоритм.

  • Алгоритм шифрования ‑ RC2, RC4, DES, 3DES с различными длинами ключа или Fortezza (используется в США). Отметим, что также сохраняется возможность не шифровать обмен.

  • Алгоритм хеширования — MD5, SHA-1 или без хеширования.

  • Размер хеш-образа (16 байт - для MD5, 20 байт - для SHA-1).

  • Двоичное значение (IsExportable), определяющее возможность экспорта алгоритма за пределы США (в соответствии с законодательством США).

Эти элементы определяются при установлении сеанса. В таблице 3 перечислены алгоритмы, поддерживаемые протоколом SSL, таблица 4 содержит используемые комбинации Cipher Suite.

Таблица 3. Алгоритмы, определяемые протоколом Handshake

Функция

Алгоритм

Обмен ключами

RSA, Fortezza, Диффи-Хеллмана

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

RC4 с ключом 40 или 128 бит

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

DES, DES40, 3DES, RC2, IDEA, Fortezza

Хеширование

MD5, SHA

Таблица 4. Cipher Suite SSL

Обмен ключами

Симметричное шифрование

Хеширование

Электронная подпись

RSA

Без шифрования

MD5 или SHA

RC4-40

MD5

RC4-128

MD5 или SHA

RC2 CBC 40

MD5

IDEA CBC

SHA

DES40 CBC

SHA

DES CBC

SHA

3DES EDE CBC

SHA

Диффи-Хеллмана

DES40 CBC

SHA

DSS или RSA

DES CBC

SHA

DSS или RSA

3DES EDE CBC

SHA

DSS или RSA

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]