Протокол SSL состоит из четырех субпротоколов (далее - просто протоколы):
· Handshake,
· Record,
· ChangeCipherSpec (CCS),
· Alert.
Ha рис. 3 отражено их взаимодействие. Протокол Record находится непосредственно поверх транспортного слоя TCP, в то время как остальные три протокола - между слоем Record и приложением.
Рис. 3.Стек субпротоколов SSL
Протокол Handshake (рукопожатие) отвечает за аутентификацию сторон, за установление параметров алгоритмов шифрования и хеширования, а также за обмен секретным ключом PreMasterSecret. Функция протокола CCS - сигнализировать слою Record о любых изменениях в параметрах безопасности. Наконец, протокол Alert отражает ошибки, обнаруженные при проверке сообщения, так же как и любые проблемы совместимости, которые могут возникнуть при инициализации с помощью Handshake. Протокол Record применяет все установленные при инициализации параметры безопасности для защиты данных приложения, а также сообщений протоколов Handshake, CCS и Alert.
2. Обмін даними в SSL
Обмен осуществляется в два этапа.
- На предварительном этапе происходит идентификация сторон, согласование используемых криптографических атрибутов, генерация и разделение ключей.
- При обмене данными безопасность зависит от алгоритмов и параметров, установленных на предварительном этапе.
В любой момент сохраняется возможность появления сигнала о вторжении в обмен данными или об ошибке.
|
|
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.