Таблица 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 |
· RSA. Секретный ключ шифруется с помощью открытого ключа получателя. Для этого отправителю должен быть доступен сертификат этого открытого ключа.
· Анонимный метод Диффи-Хеллмана. Используется базовый алгоритм Диффи-Хеллмана, но без аутентификации сторон. Такой режим уязвим для вторжений типа «человек в середине» (man-in-the-middle), что делает его непригодным для коммерческого использования.
|
|
· Метод Диффи-Хеллмана с фиксированными параметрами. Используется базовый алгоритм Диффи-Хеллмана, при этом сертификат сервера содержит открытые параметры алгоритма. Клиент посылает свои открытые параметры будущего ключа либо в сертификате, если требуется аутентификация клиента, либо в сообщении обмена ключами.
· Метод Диффи-Хеллмана с одноразовыми параметрами (Ephemeral Diffie-Hellman) самый безопасный из трех представленных модификаций метода Диффи-Хеллмана. Предполагает использование временных (одноразовых) секретных ключей. Стороны обмениваются открытыми параметрами базового алгоритма Диффи-Хеллмана, подписанными с помощью закрытых ключей (RSA или DSS) отправителя. Получатель для проверки подписи использует соответствующий сертифицированный открытый ключ.
· Fortezza. Метод, используемый в одноименной схеме шифрования.
Переменные состояния соединения SSL. Параметры, определяющие состояние соединения в течение сеанса SSL, могут устанавливаться индивидуально для каждого нового соединения. Эти параметры следующие:
· Два случайных числа (идентификатора), server_random и client_random, длиной 32 байта каждый. Эти числа вычисляются сервером и клиентом соответственно в момент установления сеанса и для каждого нового соединения. Эти числа используются для вычисления закрытого ключа, что означает передачу чисел в незашифрованном виде в момент установления сеанса. Напротив, при установлении дополнительного соединения при активном сеансе используется процесс шифрования и числа передаются зашифрованными. Использование этих чисел защищает от атак с повторным применением сообщений, перехваченных в другом соединении (атака перехвата и повтора).
|
|
· Два закрытых ключа, server MAC write secret и client MAC write secret. Эти ключи используются для вычисления кода аутентификации сообщения.
· Разделяемый двумя сторонами секретный ключ для симметричного шифрования данных, называемый server write key на стороне сервера и client write key на стороне клиента. Длина ключа зависит от выбранного алгоритма шифрования и экспортных ограничений.
· Два вектора инициализации (IV) для процедуры симметричного шифрования в режиме Cipher Block Chaining (CBC). Один вектор для сервера, другой для клиента. Размер вектора зависит от используемого алгоритма.
· Два последовательных числа (порядковых номера), одно для сервера, другое для клиента, каждое длиной 8 байтов. Эти числа формируются отдельно для каждого соединения и инкрементируются каждый раз при отправке сообщения через указанное соединение. Этот механизм предоставляет некоторую защиту от атак перехвата и повтора, так как не допускает использование ранее отправленных сообщений.
Закрытый ключ для каждого направления не зависит от всех остальных ключей, и каждое соединение имеет свой собственный ключ.