Помощь в написании студенческих работ
Антистрессовый сервис

Практическая работа № 6. Протокол SSL

РефератПомощь в написанииУзнать стоимостьмоей работы

Протокол SSL предполагает последовательный переход клиента и сервера из одного состояние в другое. Каждая процедура реализуема в строго определенном состоянии объекта. Диалоговая часть протокола SSL позволяет координировать работу машин состояний клиента и сервера. Логически любое состояние представляется дважды, в качестве рабочего (operating) состояния и рассматриваемого состояния (pending… Читать ещё >

Практическая работа № 6. Протокол SSL (реферат, курсовая, диплом, контрольная)

Для обеспечения безопасного доступа к WEB-серверам разработан протокол SSL. Этот протокол является доминирующим для шифрования обмена между клиентом и сервером. Протокол SSL имеет два уровня: протокол записей (SSL Record Protocol) и протокол диалога (SSL Handshake Protocol). Последний позволяет клиенту и серверу идентифицировать друг друга и согласовать использование определенного алгоритма шифрования и обменяться ключами.

Потокол SSL реализует следующие функции:

  • · Конфиденциальность соединения. После предварительного диалога определяется секретный ключ, который используется для симметричной криптографии (например, DES или rc4)
  • · Партнеры идентифицируют друг друга с помощью асимметричных криптографических методов (например, RSA или DSS)
  • · Обеспечение надежности соединения. Пересылка включает в себя контроль целостности сообщений с применением кода аутентификации MAC (Message Autentification Code) и хэш функций (SHA или MD5).

Рассмотрим базовые принципы, на которых основан протокол ssl. Первая проблема, которую решает данный протокол, — идентификация клиента. Это делается с использованием алгоритма RSA, использующего схему двух ключей. Если необходимо идентифицировать клиента А, он посылает серверу свой открытый ключ. Сервер пересылает клиенту некоторое сообщение, которое клиент шифрует с помощью своего секретного ключа и посылает серверу. Сервер дешифрует это сообщение с помощью открытого ключа клиента и сравнивает с исходным текстом. При совпадении клиент однозначно идентифицирован. Действительно ведь только он владеет секретным ключем. Перехват и любая попытка фальсификации сообщения здесь не пройдут. Но еще большую надежность достигается, когда клиент шифрует не само сообщение, а дайджест этого сообщения. Так как по дайджесту практически невозможно восстановить исходное сообщение. Такая система называется электронной подписью. Но для решения проблемы идентификации серверу необязательно присылать сообщение, текст сообщения может послать вместе с зашифрованной копией и сам клиент. Но в этом случае злоумышленнику нетрудно имитировать обмен и выдать себя за соответствующего клиента. Чтобы исключить такую возможность, разработана система сертификации. Сертификат включает в себя идентификатор эмитента сертификата, объект, для которого сформирован сертификат, общедоступный ключ объекта и временные метки. Сертификат представляет собой стандартное средство установления связи между открытым ключем и именем его владельца. Сертификат подписывается секретным ключем субъекта, сформировавшего сертификат (эмитентом). Открытый ключ эмитента сертификата общеизвестен. Злоумышленник может узнать сертификат клиента, но не его секретный ключ. В рамках данного протокола можно пересылать и специальный секретный ключ, который может использоваться в симметричных алгоритмах DES, RC4 или IDEA.

Злоумышленник, расположившийся между отправителем и получателем не может прочесть зашифрованные сообщения, но может их исказить. Чтобы противодействовать этому вводится код аутентификации сообщения (MAC). В качестве MAC используется фрагмент сообщения, зашифрованный с помощью специального секретного ключа. При этом может использоваться также технология MD5, что дает 128-битовый дайджест. Применение такого дайджеста делает вероятность случайного подбора равной ~1/[20*1018].

В рамках протокола SSL определены четыре вида шифрования:

  • · digitally-signed (шифрование электронной подписи)
  • · stream-ciphered (поточное шифрование)
  • · block-ciphered (блочное шифрование)
  • · publick-key-encrypted (шифрование с помощью открытого ключа)

Электронная подпись предполагает использование хэширования до шифрования. В RSA-подписи 36-байтовая структура двух хэш-функций SHA и MD5 шифруется с помощью закрытого ключа. В DSS 20-байтовый блок хэш-функции SHA непосредственно передается на обработку алгоритму цифровой подписи без дополнительного хэширования.

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

В блочном шифровании каждый блок исходного текста преобразуется в равный ему по размеру шифрованный текст. Обычно размер блока равен 64 байтам. Если необходимо исходный текст дополняется до требуемого размера блока нулями.

Шифрование с использованием открытого ключа предполагает дешифровку с применением секретного ключа или наоборот (ключи, образующие пару, симметричны с точки зрения своего использования).

Протокол SSL предполагает последовательный переход клиента и сервера из одного состояние в другое. Каждая процедура реализуема в строго определенном состоянии объекта. Диалоговая часть протокола SSL позволяет координировать работу машин состояний клиента и сервера. Логически любое состояние представляется дважды, в качестве рабочего (operating) состояния и рассматриваемого состояния (pending). Предусмотрены, кроме того, состояния чтения и записи. Когда клиент или сервер получает сообщение change cipher spec, он копирует рассматриваемое состояние в текущее состояние чтения. При посылке сообщения change cipher spec клиент или сервер копирует рассматриваемое состояние в текущее состояние записи. Когда диалог согласования завершен, клиент и сервер обмениваются сообщениями change cipher spec, после чего взаимодействуют друг с другом, используя согласованную спецификацию шифрования. Протокол SSL допускает любое число соединений между клиентом и сервером в рамках одной сессии. Разрешена также реализация произвольного числа сессий параллельно.

Состояние сессии характеризуется рядом параметров.

Параметр

Описание параметра.

session identifier

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

peer sertificate

Сертификат партнера — X509. v3. Этот элемент может быть равен нулю.

compression method

Алгоритм, используемый для сжатия информации перед шифрованием.

cipher spec

Спецификация алгоритма шифрования данных (например, нуль или DES) и алгоритм MAC (например MD5 или SHA). Она определяет криптографические атрибуты, такие как hash_size.

master secret

48-байтовый секретный код, общий для клиента и сервера.

is resumable

Флаг, указывающий, что сессия может использоваться для формирования новых соединений.

Состояние соединения характеризуется следующими параметрами.

Параметр

Описание параметра.

server and client random

Последовательность байтов, выбираемая сервером и клиентом для каждого соединения.

server write mac secret

Секретный код, используемый в MAC-операциях с данными, записанными сервером.

client write MAC secret

Секретный код, используемый в MAC-операциях с данными, записанными клиентом.

server write key

Ключ шифрования данных шифруемых сервером и дешифруемых клиентом.

client write key

Ключ шифрования данных шифруемых клиентом и дешифруемых сервером.

initialization vectors

Когда используется блочный шифр в режиме CBC, для каждого ключа поддерживается инициализационный вектор (IV). Это поле устанавливается первым в процессе стартового диалога.

sequence numbers

Каждая из сторон поддерживает свои номера по порядку для переданных и полученных сообщений для каждого из соединений. Когда партнер посылает или получает сообщение change cipher spec, соотвествующее число, характеризующее номер обнуляется. Значение номера не может превышать 264-1.

Уровень записей протокола ssl осуществляет фрагментацию сообщений, разбивая их на блоки 212 байт или короче. Все записи сжимаются с использованием согласованного для данной сессии алгоритма архивации. Сжатие всегда должно производиться без потерь и не может увеличивать длину содержимого более чем на 1024 байта. Все записи защищаются с помощью шифрования и алгоритма МАС, заданного в текущей спецификации cipherspec.

В процессе диалога (handshake protocol) фиксируются следующие атрибуты: версия протокола, идентификатор сессии, шифровой набор и метод сжатия информации. Когда диалог согласования завершен, партнеры имеют общий секретный код, который используется для шифрования записей и для вычисления аутентификационных кодов МАС. Методики шифрования и вычисления МАС заданы в спецификации cipherspec. mac вычисляется до шифрования основных данных. Протокол диалога является одним из клиентов высокого уровня протокола записей SSL.

Для блочных шифров (RC2 или DES) шифрование и МАС-функции преобразуют структуры sslcompressed. fragment в структуры sslciphertext.fragment.

SSL использует симметричную модель для шифрования (DESв режиме CBC, тройной DES, RC2 или RC4). Для формирования дайджеста сообщения применяется стандарт MD5 или алгоритм хэширования SHA. Для аутентификации здесь используется система с общедоступным ключом RSA или алгоритм транспортировки закрытых ключей Диффи-Хелмана.

Конфигурации этих средств безопасности стандартизованы (см. табл. 1).

Таблица 1.

Набор

Уровень безопасности.

Описание.

DES-CBC3-MD5.

Очень высокий.

Тройной DES в режиме CBC, хэш MD5, 168-битный ключ сессии.

DES-CBC3-SHA.

Очень высокий.

Тройной DES в режиме CBC, хэш SHA, 168-битный ключ сессии.

RC4-MD5.

Высокий.

RC4, хэш MD5, 128-битный ключ.

rc4-sha.

Высокий.

RC4, хэш SHA, 128-битный ключ.

RC2-CBC-MD5.

Высокий.

RC2 в режиме CBC, хэш MD5, 128-битный ключ.

DES-CBC-MD5.

Средний.

DES в режиме CBC, хэш MD5, 56-битный ключ.

DES-CBC-SHA.

Средний.

DES в режиме CBC, хэш SHA, 56-битный ключ.

EXp-DES-CBC-SHA.

Низкий.

DES в режиме CBC, хэш SHA, 40-битный ключ.

EXP-RC4-MD5.

Низкий.

Экспортное качество RC4, хэш MD5, 40-битный ключ.

EXP-RC2-CBC-MD5.

Низкий.

Экспортное качество RC2, хэш MD5, 40-битный ключ.

null-MD5.

;

Без шифрования, хэш MD5, только аутентификация.

null-SHA.

;

Без шифрования, хэш SHA, только аутентификация.

Когда клиент пытается установить связь с сервером, возникает диалог, во время которого определяется конфигурация набора средств безопасности. Обычно это наиболее эффективный набор, поддерживаемый каждым из партнеров. Некоторые WEB-сервера позволяют администратору произвести дополнительную настройку этого переговорного процесса. Например, разрешить доступ к некоторым секциям каталога только клиентам, поддерживающим высокий уровень безопасности. SSL имеет встроенный модуль сжатия исходной информации. При обмене шифруются URL запрошенного документа и сам документ, заполняемые формы и бланки, HTTP-заголовок и некоторая другая информация. Схема работы ssl пояснена на рис. 1.

Алгоритм работы SSL.

Рис. 1. Алгоритм работы SSL

Сообщение ClientHello содержит в себе информацию о клиенте, включая номер поддерживаемой версии SSL. Сообщение ServerHello несет в себе идентификатор сессии и информацию о том, какой набор средств безопасности и метод сжатия данных выбрал сервер. Сертификат сервера решает проблему аутентификации. Запрос сертификата клиента является опционным (и пока используется достаточно редко). В ответ на такой запрос клиент должен прислать сертификат или уведомление о его отсутствии. Сообщение ClientKeyExchange служит для выбора симметричного ключа. Для разных наборов средств безопасности процедура, разумеется, варьируется. Ключ шифруется перед отправкой с помощью общедоступного RSA-ключа, извлеченного из сертификата сервера. Сообщение CertificateVerify является опционным и посылается лишь в случае аутентификации клиента (если клиент посылал свой сертификат). Обмен сообщениями ChangeCipherSpec между клиентом и сервером свидетельствует о том, что они оба готовы к обмену информацией с использованием оговоренных шифров и ключа сессии. Обмен сообщениями Finished, содержащими хэш-функции MD5 и SHA, позволяет убедиться партнерам, что вся информация дошла до них неповрежденной. Сообщение Finished посылается сразу после отправки сообщения change cipher specs, подтверждая, что обмен ключами и аутентификация завершились успешно. Подтверждение получения самого сообщения Finished не нужно. После этого обмена система клиент-сервер готова к шифрованному обмену и может его начать немедленно. Рассмотренный сценарий может несколько варьироваться. Так сервер вместо посылки своего сертификата (X.509v3) может послать сообщение ServerKeyExchange. Такая модификация может произойти, если, например, планируется применение обмена ключами по методу Диффи-Хелмана. Заметим, что в этом случае взаимная идентификация не производится и, вообще говоря, сессия может подвергнуться атаке со стороны посредника, находящегося между клиентом и сервером.

Показать весь текст
Заполнить форму текущей работой