бесплатно рефераты
 

Защита электронной почты в Internet

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

пересылаемых в записи SSL. Протокол квитирования должен использоваться до

начала пересылки данных прикладных программ.

В случае с протоколом квитирования генерируется несколько сообщений,

которыми обмениваются клиент и сервер. Любое такое сообщение содержит три

следующих поля.

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

• Длина (3 байта). Длина сообщения в байтах.

• Содержимое (> 1 байта). Параметры, связываемые с сообщением

данного типа.

В содержимом может находится несколько полей, в каждом из которых находятся

элементы.

Этапы установления сеанса (session) между клиентом и сервером.

|№ | | |

|этап| | |

|а |Типы сообщений |Характеристика этапа |

|1 | |Определяется характеристика защиты, включая номер версии |

| | |протокола, идентификатор сеанса, комплект шифров, метод |

| | |сжатия и исходные случайные числа. |

|2 | | |

| | | |

| | |Сервер может передать сертификат, сообщение обмена |

| | |ключами и запрос сертификата. Сервер сигнализирует об |

| | |окончании фазы приветственного сообщения. |

|3 | | |

| | |Клиент передаёт сертификат, если он был запрошен. Клиент |

| | |передает сообщение обмена ключами. Клиент может передать |

| | |сообщение верификации сертификата. |

|4 | | |

| | | |

| | |Смена комплекта шифров и завершение работы протокола |

| | |квитирования |

1-ый этап – определение характеристик защиты.

Процесс инициируется клиентом, который передаёт сообщение серверу

client_hello, сервер отвечает сообщением server_hello с выбранными

параметрами, которые доступны клиенту.

Тип сообщения: client-hello.

|Название поля|Характеристика поля |

|Версия |Наивысший номер версии SSL, поддерживаемый клиентом. |

|Случайное |Генерируемая клиентом случайная структура, содержащая 32-битовую |

|значение |метку даты/времени и 28 байтов, полученных с помощью защищенного |

| |генератора случайных чисел. Эти значения используются в качестве |

| |оказий во время обмена ключами с целью защиты от атак |

| |воспроизведения. |

|Комплект |Список, содержащий наборы криптографических алгоритмов, |

|шифров |поддерживаемых клиентом, перечисленные в порядке убывания их |

| |приоритета. Каждый элемент списка (каждый комплект шифров) |

| |определяет алгоритм обмена ключами для схем традиционного |

| |шифрования, вычислений значений MAC и другие параметры |

| |шифрования. Сервер в server_hello должен определить какой-либо |

| |комплект шифров. |

|Метод сжатия |Список методов сжатия, поддерживаемых клиентом. Сервер в |

| |server_hello должен определить метод сжатии из доступных по |

| |списку. |

|Идентификатор|Идентификатор переменной длины для данного сеанса. Ненулевое |

|сеанса |значение говорит о намерении клиента обновить параметры |

| |имеющегося соединения или создать новое соединение в рамках того |

| |же сеанса. Нулевое значение вводится тогда, когда клиент намерен |

| |создать новое соединение в новом сеансе. |

2-й этап – Аутентификация сервера и обмен ключами сервера.

Данный этап начинается с отправки сервером его сертификата, если

требуется аутентификация сервера. Сообщение certificate (сертификат)

требуется для любого из предлагаемых методов обмена ключами, кроме

анонимного метода Диффи-Хеллмана. При использовании метода Диффи-Хеллмана с

фиксированными параметрами это сообщение сертификации (certificate)

выполняет функции сообщения обмена ключами (server_key_exchange), поскольку

в нем содержатся предлагаемые сервером открытые параметры алгоритма Диффи-

Хеллмана.

Затем при необходимости может быть отправлено сообщение

server_key_exchange (обмен ключами сервера). Отправка такого сообщения не

требуется в двух случаях: (1) когда сервер отправил сертификат для метода

Диффи-Хеллмана с фиксированными параметрами или (2) когда предлагается

использовать схему обмена ключами RSA. Сообщение server_key_exchange

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

• Анонимный метод Диффи-Хеллмана.

• Метод Диффи-Хеллмана с одноразовыми параметрами. Сообщение содержит

такие же три параметра, как и в случае анонимного метода Диффи-Хеллмана, и

еще подпись для этих параметров.

• Обмен ключами по схеме RSA, когда использующий RSA сервер имеет ключ

RSA только для подписи.

• Fortezza.

После этого неанонимный сервер (т.е. сервер, не использующий

анонимный метод Диффи-Хеллмана) может запросить сертификат клиента.

Сообщение certificate_request (запрос сертификата) включает два параметра:

certificate_type (тип сертификата, указывающий на применяемый алгоритм

шифрования с открытым ключом) и certificate_authorities (центры

сертификации). Центры сертификации - список имен допустимых центров

сертификации.

Последним (и единственным обязательным) сообщением второго

этапа является сообщение server_done, которым сервер извещает о завершении

фазы приветствия сервера ввиду отправки им всех соответствующих сообщений.

Это сообщение не имеет параметров. После отправки этого сообщения сервер

переходит в режим ожидания ответа клиента.

3-й этап - Аутентификация клиента и обмен ключами клиента.

Получив сообщение server_done, клиент должен убедиться в том, что

сервер предоставил действительный сертификат (если это требуется) и что

параметры сообщения server_hello являются приемлемыми. Если проверка

завершается успешно, клиент оправляет серверу следующие сообщения.

1. Если сервер запросил сертификат, клиент начинает данный этап с отправки

серверу сообщения certificate. Если у клиента подходящего сертификата нет,

клиент отправляет вместо него уведомление no_certificate (нет сертификата).

2. Следующим идет сообщение client_key_exchange (обмен ключами клиента),

Содержимое этого сообщения зависит от выбранного метода обмена ключами и

может быть следующим.

• RSA. Клиент генерирует 48-байтовый предварительный главный ключ и

шифрует его с помощью открытого ключа из сертификата сервера или с помощью

временного ключа RSA из сообщения server_key_exchange. Этот предварительный

ключ позволяет вычислить главный ключ.

• Метод Диффи-Хеллмана с одноразовыми параметрами, или анонимный метод

Диффи-Хеллмана. Отправляются открытые параметры клиента для метода Диффи-

Хеллмана.

• Метод Диффи-Хеллмана с фиксированными параметрами. В данном случае

открытые параметры клиента для метода Диффи-Хеллмана уже были отправлены в

сообщении certificate, поэтому содержимое данного сообщения оказывается

пустым.

• Fortezza. Отправляются параметры клиента для алгоритма Fortezza.

В завершение данного этапа клиент может отправить сообщение

certificate_verify (проверка сертификата), чтобы обеспечить средства прямой

верификации сертификата клиента. Это сообщение отправляется вслед за

сертификатом клиента, поддерживающим подпись (т.е. вслед за любым

сертификатом клиента, кроме тех, которые содержат параметры Диффи-Хеллмана

с фиксированными параметрами). Сообщение включает подпись хэш-кода

предыдущего сообщения.

4-ый этап – завершение создания защищённого соединения.

Клиент отправляет сообщение change_cipher_spec (изменение параметров

шифрования) и копирует параметры шифрования из поля "комплект шифров"

состояния ожидания в поле текущего состояния. Обратите внимание на то, что

это сообщение не считается частью протокола квитирования, а отсылается в

рамках протокола изменения параметров шифрования (Change Cipher Spec

Protocol). В ответ клиент немедленно отправляет сообщение finished,

шифрованное новым алгоритмом с новыми ключами и секретными значениями.

Сообщение finished подтверждает, что процессы обмена ключами и

аутентификации завершились успешно. Содержимое сообщения finished

представляет собой результат конкатенации следующих двух значений хэш-кода.

MD5 (master_secret || pad_2 || MD5 (handshake_messages || Sender ||

master_secret || pad_l)),

SHA (master_secret || pad_2 || SHA (handshake_messages || Sender ||

master_secret || pad_l)),

где Sender - код, указывающий на то, что отправителем является клиент,

handshake_messages - все данные сообщений квитирования, за исключением

данного сообщения.

master_secret – совместно применяемый главный секретный ключ, представляет

собой однократно используемое 48-байтовое занчение (384 бита), генерируемое

для данного сеанса в ходе защищённого обмена данными.

В ответ на эти два сообщения сервер посылает свое сообщение

change_cipher_spec, переводит параметры шифрования состояния ожидания в

текущее состояние и посылает свое сообщение finished. На этом процесс

квитирования завершается, и теперь клиент и сервер могут начать обмен

данными на уровне приложения.

3. 6. Создание главного секретного ключа.

Создание главного ключа состоит из двух этапов. На первом этапе

согласуется значение предварительного главного ключа (pre_master_secret), а

на втором обе стороны вычисляют значение главного ключа (master_secret).

Для передачи друг другу значения pre_master_secret у сторон имеется два

варианта.

• RSA. Генерируемый клиентом 48-байтовый ключ pre_master_secret

шифруется с помощью открытого ключа RSA сервера и отправляется клиентом

серверу. Сервер дешифрует полученный шифрованный текст с помощью своего

личного ключа и восстанавливает значение pre_master_secret.

• Метод Диффи-Хеллмана. И клиент, и сервер генерируют открытые ключи для

алгоритма Диффи-Хеллмана. После обмена этими ключами каждая сторона

выполняет определенные вычисления по методу Диффи-Хеллмана, в результате

которых получается совместно используемое значение

pre_master_secret.

Теперь обе стороны могут вычислить значение master_secret по схеме:

master_secret = MD5 (pre_master_secret ||

SHA ('A' || pre_master_secret ||

ClientHello.random || ServerHello.random)) ||

MD5 (pre_master_secret ||

SHA ('BB' || pre_master_secret || ClientHello.random || Server

Hello.random)) ||

MD5 (pre_master_secret ||

SHA ('CCC' || pre_master_secret || ClientHello.random ||

ServerHello.random)),

где ClientHello.random и ServerHello.random являются значениями оказий,

входящих в оригинальные сообщения приветствия сторон (поле «случайное

значение»).

3. 7. Генерирование криптографических параметров.

Для элемента “Параметры шифрования” поля “комплект шифров” требуются

секретный ключ MAC клиента для записи, секретный ключ MAC сервера для

записи, ключ клиента для записи, ключ сервера для записи, вектор

инициализации клиента для записи и вектор инициализации сервера для записи.

Все эти параметры генерируются из главного ключа путем применения функции

хэширования к главному ключу с целью получения защищенной

последовательности байтов достаточной длины.

Процедура генерирования ключей из главного ключа аналогична процедуре

генерирования главного ключа из предварительного и показана ниже.

key_block = MD5 (master_secret ||

SHA ('A' || master_secret || ServerHello.random ||

ClientHello.random)) ||

MD5 (master_secret ||

SHA ('BB' || master_secret || Server Hello, random ||

ClientHello.random)) ||

MD5 (master_secret ||SHA('CCC' || master_secret ||

ServerHello.random || ClientHello.random)) || ...

Процедура выполняется до тех пор, пока не будет сгенерирована

последовательность достаточной длины. Эта алгоритмическая структура

представляет собой псевдослучайную функцию. Значение master_secret можно

рассматривать как инициализирующее значение для этой функции.

Сгенерированные клиентом и сервером случайные числа можно рассматривать как

значения модификаторов (salt values), используемых с целью усложнения

криптоанализа.

3. 8. Что такое TLS и его отличие от SSL.

Протокол TLS представляет собой результат инициативы IETF (Internet

Engineering Task Force – проблемная группа проектирования Internet), целью

которой является разработка стандарта SSL для Internet. Текущая версия

проекта стандарта TLS очень похожа на SSLv3. Рассмотрим различия между TLS

и SSLv3.

1. Схемы вычислений значений MAC этих протоколов отличаются по двум

параметрам: применяемому алгоритму и области данных, для которых

вычисляется значение кода аутентичности сообщения.

2. В TLS применяется PRF функция. PRF функция служит для получения

небольшого по длине секретного значения, которое служит для

генерирования более длинных блоков данных (используя специальную схему

расширения данных где использован алгоритм HMAC), защищённых от атак

на функции хэширования и вычисления значений кода аутентичности

сообщения. Секретное значение получается путём использования той же

схемы расширения данных, но с алгоритмом MD5 или SHA.

3. В TLS не извещения no_certificate, но определён ряд дополнительных

кодов извещения (их всего 12, 9 из которых означают неустранимую

ошибку).

4. В TLS включены все алгоритмы симметричной схемы шифрования, за

исключением Fortezza.

5. Сообщение finished в TLS представляет собой хэш-код, вычисленный c

помощью master_secret, предыдущих сообщений и метки, идентифицирующей

клиент и сервер. Схема вычисления сообщения finished отличается от

схемы, используемой в SSLv3. В TLS схемы выглядит так: PRF

(master_secret, finished_label, MD5 (handshake_meassages) || SHA-1

(handshake_messages)), где

finished_label – строка «client finished» для клиента и «server_finished»

для сервера.

6. Схема вычисления master_secret для TLS иная чем в SSLv3.

7. В SSL байты заполнителя добавляются к данным пользователя, подлежащим

шифрованию, минимально необходимом количестве, достаточном для того,

чтобы получить общую длину данных для шифрования, кратную длине блока

шифра. В случае TLS разрешается добавлять любое число заполнителей (до

255 байтов включительно), лишь бы в результате длина блока данных

получилась кратной длине блока шифра.

4. Защита на уровне IP (сетевой уровень).

4. 1. Архитектура защиты на уровне IP

IPSec обеспечивает сервис защиты на уровне IP, позволяя системе выбрать

необходимые протоколы защиты, определить алгоритм (алгоритмы) для

соответствующего сервиса (сервисов) и задать значения любых

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

используется два протокола: протокол аутентификации, указанный заголовком

данного протокола (заголовком аутентификации АН), и комбинированный

протокол шифрования/аутентификации, определенный форматом пакета для этого

протокола (протокола ESP). В данном случае обеспечиваются следующие виды

сервиса:

• контроль доступа;

• целостность без установления соединений;

• аутентификация источника данных;

• отторжение воспроизведенных пакетов (форма целостности

последовательностей);

• конфиденциальность (шифрование);

• ограниченная конфиденциальность транспортного потока.

В случае ESP есть два варианта: с использованием и без использования опции

аутентификации. Как АН, так и ESP имеют возможности контроля доступа,

основанного на распределении криптографических ключей и управлении

транспортными потоками, относящимися к этим протоколам защиты.

|Вид сервиса |AH |ESP (только |ESP (шифрование и |

| | |шифрование) |аутентификация) |

|Контроль доступа |( |( |( |

|Целостность без установления |( | |( |

|соединений | | | |

|Аутентификация источника данных |( | |( |

|Отторжение воспроизведенных пакетов |( |( |( |

|Конфиденциальность | |( |( |

|Ограниченная конфиденциальность | |( |( |

|транспортного потока | | | |

Ключевым объектом в механизмах аутентификации и

конфиденциальности для IP является защищенная связь (Security Association).

Связь представляет собой одностороннее отношение между отправителем и

получателем, применяющим сервис защиты к транспортному потоку. Сервис

защиты предоставляет возможность для защищенной связи использовать либо АН,

либо ESP, но никак не обе эти возможности одновременно.

В любом пакете IP защищенная связь однозначно идентифицируется

адресом пункта назначения в заголовке IPv4 или IPv6 и индексом параметров

защиты (даёт возможност ьвыбрать защищённую связь по которой должен

обрабатываться полученный пакет) во вложенном заголовке расширения (АН или

ESP).

Заголовки АН и ESP поддерживают два режима использования: транспортный

и туннельный. Дадим краткий обзором этих режимов.

Транспортный режим.

Транспортный режим обеспечивает защиту прежде всего для протоколов высшего

уровня. Это значит, что защита транспортного режима распространяется на

полезный груз пакета IP. Примеры включают сегмент TCP или UDP, или пакет

протокола ICMP , которые размещаются непосредственно над IP в стеке

главного протокола. Когда система использует заголовки АН или ESP над IPv4,

полезным грузом являются данные, обычно размещаемые сразу после заголовка

IP. Для IPv6 полезным грузом являются данные, обычно следующие после

заголовка IP и всех имеющихся заголовков расширений IPv6, за возможным

исключением заголовка параметров адресата, который тоже может подлежать

защите.

ESP в транспортном режиме шифрует и, если нужно, идентифицирует полезный

груз IP, но не заголовок IP. АН в транспортном режиме идентифицирует

полезный груз IP и некоторые части заголовка IP.

Страницы: 1, 2, 3, 4


ИНТЕРЕСНОЕ



© 2009 Все права защищены.