• Название:

    ИБ 10


  • Размер: 0.03 Мб
  • Формат: ODT
  • или
  • Сообщить о нарушении / Abuse

    Осталось ждать: 10 сек.

Установите безопасный браузер



  • Защита сетевых соединений. Протоколы TLS-SSL.

TLS-протокол основан на протоколе Netscape SSL версии 3.0 и состоит из двух частей — TLS Record Protocol и TLS Handshake Protocol. Различие между SSL 3.0 и TLS 1.0 незначительные, поэтому далее в тексте термин «SSL» будет относиться к ним обоим.

Описание

TLS предоставляет возможности аутентификации и безопасной передачи данных через Интернет с использованием криптографических средств. Часто происходит лишь аутентификация сервера, в то время как клиент остается неаутентифицированным. Для взаимной аутентификации каждая из сторон должна поддерживать инфраструктуру открытого ключа (PKI), которая позволяет защитить клиент-серверные приложения от перехвата сообщений, редактирования существующих сообщений и создания поддельных.

SSL включает в себя три основных фазы:

•Диалог между сторонами, целью которого является выбор алгоритма шифрования

•Обмен ключами на основе криптосистем с открытым ключом или аутентификация на основе сертификатов.

•Передача данных, шифруемых при помощи симметричных алгоритмов шифрования

Алгоритмы, использующиеся в TLS

В данной текущей версии протокола доступны следующие алгоритмы:

•Для обмена ключами и проверки их подлинности применяются комбинации алгоритмов: RSA (асимметричный шифр), Diffie-Hellman (безопасный обмен ключами), DSA (алгоритм цифровой подписи) и алгоритмы технологии Fortezza.

•Для симметричного шифрования: RC2, RC4, IDEA, DES, Triple DES или AES;

•Для хеш-функций: MD5 или SHA.

Алгоритм процедуры установления соединения по протоколу TLS handshake

Клиент и сервер, работающие по TLS, устанавливают соединение, используя процедуру handshake («рукопожатие»). В течение этого handshake клиент и сервер принимают соглашение относительно параметров, используемых для установления защищенного соединения.

* Последовательность действий при установлении TLS-соединения:

o клиент подключается к серверу, поддерживающему TLS, и запрашивает защищенное соединение;

o клиент предоставляет список поддерживаемых алгоритмов шифрования и хеш-функций;

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

o сервер отправляет клиенту цифровой сертификат для собственной идентификации. Обычно цифровой сертификат содержит имя сервера, имя доверенного центра сертификации и открытый ключ сервера;

o клиент может связаться с сервером доверенного центра сертификации и подтвердить аутентичность переданного сертификата до начала передачи данных;

o для того чтобы сгенерировать сеансовый ключ для защищенного соединения, клиент шифрует случайно сгенерированную цифровую последовательность открытым ключом сервера и посылает результат на сервер. Учитывая специфику алгоритма асимметричного шифрования, используемого для установления соединения, только сервер может расшифровать полученную последовательность, используя свой закрытый ключ;

Handshake в деталях

Согласно протоколу TLS приложения обмениваются записями, инкапсулирующими (хранящими внутри себя) информацию, которая должна быть передана. Каждая из записей может быть сжата, дополнена, зашифрована или идентифицирована MAC (код аутентификации сообщения) в зависимости от текущего состояния соединения (состояния протокола). Каждая запись в TLS содержит следующие поля: content type (определяет тип содержимого записи), поле, указывающее длину пакета, и поле, указывающее версию протокола TLS.

Когда соединение только устанавливается, взаимодействие идет по протоколу TLS handshake, content type которого 22.

Ниже описан простой пример установления соединения:

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

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

3. Сервер посылает сообщение Certificate, которое содержит цифровой сертификат сервера (в зависимости от алгоритма шифрования этот этап может быть пропущен)

4. Сервер может запросить сертификат у клиента, в таком случае соединение будет взаимно аутентифицировано.

5. Сервер отсылает сообщение ServerHelloDone, идентифицирующее окончание handshake.

6. Клиент отвечает сообщением ClientKeyExchange, которое содержит открытый ключ PreMasterSecret или ничего (опять же зависит от алгоритма шифрования).

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

8. Клиент посылает сообщение ChangeCipherSpec, которое указывает на то, что вся последующая информация будет зашифрована установленным в процессе handshake алгоритмом, используя общий секретный ключ. Это сообщения уровня записей и поэтому имеет тип 20, а не 22.

9. Клиент посылает сообщение Finished, которое содержит хеш и MAC, сгенерированные на основе предыдущих сообщений handshake.

10. Сервер пытается расшифровать Finished-сообщение клиента и проверить хеш и МАС. Если процесс расшифровки или проверки не удается, handshake считается неудавшимся, и соединение должно быть оборвано.

11. Сервер посылает ChangeCipherSpec и зашифрованное сообщение Finished, и в свою очередь клиент тоже выполняет расшифровку и проверку.

С этого момента handshake считается завершенным, протокол установленным. Все последующее содержимое пакетов идет с типом 23, а все данные будут зашифрованы.

  • Защита предприятия. Защита интернет соединения конечного пользователя. Проблемы и решения.