Лекция
Привет, Вы узнаете о том , что такое протокол ssl, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое протокол ssl, https , настоятельно рекомендую прочитать все из категории Шифры в криптографии.
Криптографический
протокол ssl (Secure Sockets Layer protocol, протокол защищенных сокетов) был разработан в 1996 году компанией Netscape.Он может быть помещен в многоуровневой модели протоколов между протоколом обеспечивающим надежное соединение (например, TCP) и прикладным уровнем (например, HTTP). Он предоставляет безопасный канал между клиентам и сервером, предоставляя возможность взаимной аутентификации, использования цифровых подписей для обеспечения целостности и шифрования для конфиденциальности.Этот протокол интегрирован в большинство браузеров и веб серверов и использует ассиметричную криптосистему с открытым ключом, разработанную компанией RSA.
Протокол позволяет использовать по выбору различные алгоритмы для шифрования, хеширования, цифровой подписи. Это позволяет выбрать алгоритм исходя из юридических, экспортных или других ограничений, а так же позволяет протоколу использовать преимущества новых алгоритмов. Выбор согласуется между клиентом и сервером на стадии установки сеанса.
Существует несколько версий протокола SSL.
Проблемная группа проектирования Internet (Internet Engineering Task Force, IETF) работает над стандартом TLS (Transaction Layer Security - протокол защиты транспортного уровня).
Протокол SSL обеспечивает защищенный обмен данными за счет сочетания двух следующих элементов:
Аутентификация
Цифровой сертификат привязан к конкретному домену сети Интернет, а центр сертификации проводит проверки, подтверждающие подлинность организации, а уже затем создает и подписывает цифровой сертификат для этой организации. Такой сертификат быть установлен только на тот домен web-сервера, доля которого он прошел аутентификацию, что и дает пользователям сети Интернет необходимые гарантии.
Шифрование
Шифрование - это процесс преобразования информации в нечитаемый для всех вид, кроме конкретного получателя. Оно основывается на необходимых для электронной коммерции гарантиях конфиденциальности передачи информации и невозможности ее фальсификации.
Детальное описание сертификата
Чтобы увидеть детали SSL сертификата web-сайта, сделайте двойной щелчок мыши по закрытому замочку, который появляется внизу страницы в строке состояния.
Так выглядит цифровой сертификат для браузера IE :
SSL сертификат web-сервера позволяет посетителям Вашего сайта видеть следующую информацию (детальная информация о сертификате представлена на закладке «Состав»):
Предупреждения системы безопасности web-браузера.
Ваш web-браузер имеет встроенную систему безопасности. Если вы пытаетесь зайти на web-сайт, который имеет проблемы с сертификатом, эта система безопасности может выдать, например, такое предупреждение системы безопасности.
В данном примере предупреждение гласит о том, что сайт, на который Вы зашли, действительно использует защищенный протокол, однако никакая третья сторона не гарантирует Вам того, что Вы работаете на web-сервере именно той компании, с которой хотите иметь дело и что Ваша информация не будет получена кем-то другим.
При посещении же web-сайта с действующим сертификатом пользователь будет проинформирован о том что данный сайт имеет цифровой сертификат от центра сертификации, такого как компания thawte, и все данные, которые пользователь предоставляет данному сайту, будут зашифрованы. Проверяя сертификат, клиент может убедиться в том, что web-сайт принадлежит реальной зарегистрированной компании, а также что он обращается к доменному имени, которым владеет именно эта компания.
Обзор протокола из-за многошаговой процедуры установки соединения.
Установка сеанса
Установка сеанса начинается с работы протокола квитирования (handshake sequence) между клиентом и сервером. Эта последовательность может зависеть от того, настроен ли сервер предоставлять сертификат, и требует ли он наличие сертификата у клиента. Возможно так же, для согласования параметров алгоритма шифрования потребуются дополнительные шаги. В этом документе описывается типичный сценарий, а остальные возможности SSL не рассматриваются.
Протокол квитирования используется клиентом и сервером для:
1. Согласования параметров шифрования (Cipher Suite), которые будут использован при передаче данных
2. Выработки и передачи сеансового ключа между клиентом и сервером
3. Об этом говорит сайт https://intellect.icu . Необязательной аутентификации сервера клиентом.
4. Необязательной аутентификации клиента сервером
Рис. 1. Упрощенный порядок квитирования (Handshake)
Согласование набора параметров шифрования позволяет выбрать клиенту и серверу такие параметры, которы е они оба поддерживают. Спецификация SSL 3.0 определяет 31 набора параметров. Набор параметров шифрования состоит из:
1.Метода обмена ключами
2.Симметричного алгоритма шифрования для передачи данных
3.Функции хеширования для создания MAC (Message Authentication Code - код аутентичности сообщения)
Метод обмена ключами определяет, как клиент и сервер согласуют общий ключ для симметричного алгоритма шифрования. The key exchange method defines how the shared secret symmetric cryptography В SSL 2.0 для обмена ключей используется RSA. В SSL 3.0 возможен выбор между RSA, при использовании сертификатов, и методом обмена ключами по Диффи-Хеллману (Diffie-Hellman) для обмена ключами без сертификатов и без предыдущей связи между клиентом и сервером [Kaufman].
Выбор метода обмена ключами включает решение использовать или не использовать цифровые подписи при обмене ключами, и какой способ цифровой подписи использовать. Подпись закрытым ключом защищает от атак человек по середине (man-in-the-middle-attack) во время обмена информацией, используемой для выработки общего ключа.
В SSL используются симметричные алгоритмы шифрования для шифрования данных в течение сеанса. Возможны 9 вариантов, включая отказ от шифрования:
1.Нет шифрования
2.Поточное шифрование
RC4 с ключом 40 бит
RC4 с ключом 128 бит
Алгоритмы используемые в режиме CBC
RC2 с ключом 40 бит
DES40, DES, 3DES_EDE.
Idea
Fortezza
Режим CBC (Cipher Block Chaining - сцепление блоков шифра), предыдущий зашифрованный блок используется при шифровании текущего блока. DES - Data Encryption Standard, имеет множество вариантов (включая DES40 and 3DES_EDE). Idea (один из наиболее стойких алгоритмов) и RC2 являются собственностью компании RSA
Выбор функции хеширования определяет, как будет создаваться хеш блока данных. SSL поддерживает:
Без хеширования
MD5, хеш 128 длиной бит
Secure Hash Algorithm (SHA), хеш 160 бит
SHA был разработан для использования совместно с DSS (Digital Signature Standard - стандарт цифровой подписи).
Протокол квитирования предоставляет множество возможностей, но наиболее распространенная последовательность включает обмен сертификатами и обмен ключами по методу Деффи-Хеллмана. В других случаях порядок квитирования отличается, как описано в спецификации SSL. Последовательность квитирования использует три протокола, протокол квитирования SSL (SSL Handshake Protocol) для открытия сеанса между клиентом и сервером, протокол согласования параметров шифрования (SSL Change Cipher Spec protocol) для согласования набора криптоалгоритмов и их параметров и протокол извещения (SSL Alert Protocol) для обмена сообщениями об ошибках между клиентом и сервером. Эти протоколы инкапсулированы в протокол записи SSL (SSL Record Protocol) как данные прикладного уровня. Инкапсулированный протокол передается как данные нижележащим протоколом, которые не анализирует эти данные. Инкапсулированный протокол ничего не знает о нижних протоколах.
Инкапсуляция управляющего протокола в протокол записи означает, что повторное согласование параметров сеанса будет выполняться по защищенному каналу. Если нет активного сеанса, то используется нулевой набор параметров шифрования, т. е. до установки сеанса не сообщения будут шифроваться, и их целостность не будет проверяться.
Рис. 2. Стек протоколов SSL
Передача данных
Протокол записи SSL используется для передачи данных прикладного уровня и управляющих данных протокола SSL, возможно разбивая эти данные на более мелкие фрагменты или объединяя несколько сообщений от вышележащего уровня в один блок. Возможно сжатие данных, затем вычисляются коды аутентичности сообщения (MAC) и данные шифруются, перед передачей их с использованием нижележащего надежного транспортного протокола.
Рис. 3. Протокол записи SSL
SSL использует хэш-функции сообщения и порядковые номера для вычисления кодов аутентичности сообщения (MAC, Message Authentication Code), которые шифруются, что предотвращает атаки повтора. Блоки протокола записи, сжатые блоки и зашифрованные блоки содержат идентификатор исходного протокола, длину сообщения и данные.
Использование SSL
Одно из распространенных применений SSL - защита данных передаваемых по HTTP между клиентом и веб-сервером. Безопасный вариант URL начинается с “https“, вместо “http“, и используется другой порт (по умолчанию 443)/ Браузер хранит клиентские сертификаты и закрытые ключи, и показывает индикатор защищенного соединения, когда оно используется.
Значимость аутентификации в протоколе SSL
«Спуфинг» (имитация соединения):
Относительно дешевые услуги web-дизайнеров и легкость, с которой могут быть скопированы уже существующие страницы, позволяют создавать нелегальные web-сайты, которые выглядят «официально» и с виду представляют организацию. Реально же это ловушка, чтобы незаконно получить,конфеденциальные данные
Несанкционированные действия:
Конкурент или обиженный пользователь могут изменить ваш web-сайт так, чтобы он давал ложную информацию или отказывался обслуживать потенциальных клиентов.
Неправомочное разглашение информации:
Когда транзакции осуществляются «открытым текстом», хакер может их перехватывать, чтобы получить информацию, важную для ваших клиентов.
Фальсификация данных:
Содержание транзакции может быть перехвачено и злонамеренно либо случайно в процессе передачи изменено. Имена пользователей, номера кредитных карт и финансовая информация, передаваемая «открытым текстом» слишком уязвима для вмешательства со стороны.
Реализация SSL
Хотя возможно написать реализацию SSL “с нуля” по спецификации, значительно проще взять один из готовых пакетов. Дополнительно, из-за патентов необходимо лицензировать некоторые криптографические библиотеки, по крайней мере, в США. Библиотеки SSL содержат функции для шифрования, вычисления хэш-функций, и средства для работы с сертификатами. Каждый пакет так же должен содержать лицензированный модуль для работы с открытыми ключами в США, поскольку существует патент на использование криптографии с открытым ключом.
RSARef Образец реализации RSA, неподдерживаемый исходный код библиотеки, может быть использован в бесплатных и некоммерческих приложениях. Компания Consensus Development Corp. продавала лицензии на коммерческое использование, но сейчас это уже не так.
BSAFE 3.0 Коммерческая реализация RSARef.
Эти пакеты для работы с открытыми ключами включают полный набор несимметричных алгоритмов (включая RSA и метод обмена ключами Деффи-Хеллмана), симметричные алгоритмы, хэш-функции. Они могут быть использованы в реализациях SSL. Наиболее известные библиотеки для работы с SSL:
SSLPlus Коммерческий пакет с исходным пакетом от Consensus Development Corp., улученный SSLRef 3.0. Для использования нужен BSAFE 3.0 (from RSA).
SSLava Реализация SSL 3.0 на языке Java от Phaos Technology.
OpenSSL OpenSSL-0.9.4 (OpenSSL-0.9.4.tar.gz) свободная, не коммерческая реализация SSL 2.0 и SSL 3.0 и TLS 2.0. Включает реализацию несимметричных алгоритмов, которая может быть использована за приделами США. В Штатах из-за патентных ограничений необходимо использовать RSARef или BSAFE3.0. SSLeay предоставляет недорогую возможность для использования SSL.
OpenSSL — полноценная криптографическая библиотека с открытым исходным кодом, широко известна из-за расширения SSL/TLS, используемого в веб-протоколе HTTPS.
Поддерживает почти все низкоуровневые алгоритмы хеширования, шифрования и электронной подписи, а также реализует большинство популярных криптографических стандартов, в том числе позволяет создавать ключи RSA, DH, DSA, сертификаты X.509, подписывать их, формировать CSR и CRT, шифровать данные и тестировать SSL/TLS соединения.
Доступна в виде пакетов для большинства UNIX-подобных операционных систем (включая Solaris/OpenSolaris, Linux, macOS, QNX4 , QNX6 и четырех операционных систем BSD с открытым исходным кодом), а также для OpenVMS и Microsoft Windows.
OpenSSL основана на SSLeay, написанной Эриком Янгом (Eric A. Young) и Тимом Хадсоном (Tim Hudson), которые неофициально закончили работать над ней в декабре 1998 года, когда они начали работать в проекте RSA Security.
HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности. Данные в протоколе HTTPS передаются поверх криптографических протоколов TLS или устаревшего в 2015 году SSL . В отличие от HTTP с TCP-портом 80, для HTTPS по умолчанию используется TCP-порт 443 .
Протокол был разработан компанией Netscape Communications для браузера Netscape Navigator в 1994 году .
HTTPS не является отдельным протоколом. Это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS . Он обеспечивает защиту от атак, основанных на прослушивании сетевого соединения — от снифферских атак и атак типа man-in-the-middle, при условии, что будут использоваться шифрующие средства и сертификат сервера проверен и ему доверяют .
По умолчанию HTTPS URL использует 443 TCP-порт (для незащищенного HTTP — 80) . Чтобы подготовить веб-сервер для обработки https-соединений, администратор должен получить и установить в систему сертификат открытого и закрытого ключа для этого веб-сервера. В TLS используется как асимметричная схема шифрования (для выработки общего секретного ключа), так и симметричная (для обмена данными, зашифрованными общим ключом). Сертификат открытого ключа подтверждает принадлежность данного открытого ключа владельцу сайта. Сертификат открытого ключа и сам открытый ключ посылаются клиенту при установлении соединения; закрытый ключ используется для расшифровки сообщений от клиента .
Существует возможность создать такой сертификат, не обращаясь в центр сертификации. Подписываются такие сертификаты этим же сертификатом и называются самоподписанными (self-signed). Без проверки сертификата каким-то другим способом (например, звонок владельцу и проверка контрольной суммы сертификата) такое использование HTTPS подвержено атаке посредника .
Эта система также может использоваться для аутентификации клиента, чтобы обеспечить доступ к серверу только авторизованным пользователям. Для этого администратор обычно создает сертификаты для каждого пользователя и загружает их в браузер каждого пользователя. Также будут приниматься все сертификаты, подписанные организациями, которым доверяет сервер. Такой сертификат обычно содержит имя и адрес электронной почты авторизованного пользователя, которые проверяются при каждом соединении, чтобы проверить личность пользователя без ввода пароля .
В HTTPS для шифрования используется длина ключа 40, 56, 128 или 256 бит. Некоторые старые версии браузеров используют длину ключа 40 бит (пример тому — IE версий до 4.0), что связано с экспортными ограничениями в США. Длина ключа 40 бит не является надежной. Многие современные сайты требуют использования новых версий браузеров, поддерживающих шифрование с длиной ключа 128 бит, с целью обеспечить достаточный уровень безопасности. Шифрование с длиной ключа 128 бит значительно затрудняет подбор паролей и доступ к личной информации.
Традиционно на одном IP-адресе может работать только один HTTPS-сайт. Для работы нескольких HTTPS-сайтов с различными сертификатами применяется расширение TLS под названием Server Name Indication (SNI) .
Выводы из данной статьи про протокол ssl указывают на необходимость использования современных методов для оптимизации любых систем. Надеюсь, что теперь ты понял что такое протокол ssl, https и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Шифры в криптографии
Комментарии
Оставить комментарий
Информационная безопасность, Шифры в криптографии
Термины: Информационная безопасность, Шифры в криптографии