Криптографический протокол SSL, HTTPS

Лекция



Привет, Вы узнаете о том , что такое протокол ssl, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое протокол ssl, https , настоятельно рекомендую прочитать все из категории Шифры в криптографии.

Криптографический протокол ssl (Secure Sockets Layer protocol, протокол защищенных сокетов) был разработан в 1996 году компанией Netscape.Он может быть помещен в многоуровневой модели протоколов между протоколом обеспечивающим надежное соединение (например, TCP) и прикладным уровнем (например, HTTP). Он предоставляет безопасный канал между клиентам и сервером, предоставляя возможность взаимной аутентификации, использования цифровых подписей для обеспечения целостности и шифрования для конфиденциальности.Этот протокол интегрирован в большинство браузеров и веб серверов и использует ассиметричную криптосистему с открытым ключом, разработанную компанией RSA.

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

Существует несколько версий протокола SSL.

Криптографический протокол SSL, HTTPS

Проблемная группа проектирования Internet (Internet Engineering Task Force, IETF) работает над стандартом TLS (Transaction Layer Security - протокол защиты транспортного уровня).
Протокол SSL обеспечивает защищенный обмен данными за счет сочетания двух следующих элементов:


Аутентификация
Цифровой сертификат привязан к конкретному домену сети Интернет, а центр сертификации проводит проверки, подтверждающие подлинность организации, а уже затем создает и подписывает цифровой сертификат для этой организации. Такой сертификат быть установлен только на тот домен web-сервера, доля которого он прошел аутентификацию, что и дает пользователям сети Интернет необходимые гарантии.


Шифрование
Шифрование - это процесс преобразования информации в нечитаемый для всех вид, кроме конкретного получателя. Оно основывается на необходимых для электронной коммерции гарантиях конфиденциальности передачи информации и невозможности ее фальсификации.
Детальное описание сертификата

Чтобы увидеть детали SSL сертификата web-сайта, сделайте двойной щелчок мыши по закрытому замочку, который появляется внизу страницы в строке состояния.

Так выглядит цифровой сертификат для браузера IE :

Криптографический протокол SSL, HTTPS

SSL сертификат web-сервера позволяет посетителям Вашего сайта видеть следующую информацию (детальная информация о сертификате представлена на закладке «Состав»):

  • Домен сети Интернет, для которого выпущен этот сертификат. Эта информация позволяет убедиться, что данный SSL сертификат web-сервера был выпущен именно для вашего хоста и домена (http://www.mydomain.com/).
  • Владелец сертификата. Эта информация является дополнительной гарантией, поскольку посетитель может увидеть имя того, с кем ведет бизнес.
  • Город, где зарегистрирована компания-владелец сертификата. Эта информация еще раз убеждает посетителя, что он имеет дело с реальной организацией.
  • Срок действия сертификата. Эта информация особенно важна, поскольку показывает пользователю, что ваш цифровой сертификат действующий.

Предупреждения системы безопасности web-браузера.


Ваш web-браузер имеет встроенную систему безопасности. Если вы пытаетесь зайти на web-сайт, который имеет проблемы с сертификатом, эта система безопасности может выдать, например, такое предупреждение системы безопасности.

Криптографический протокол SSL, HTTPS

В данном примере предупреждение гласит о том, что сайт, на который Вы зашли, действительно использует защищенный протокол, однако никакая третья сторона не гарантирует Вам того, что Вы работаете на web-сервере именно той компании, с которой хотите иметь дело и что Ваша информация не будет получена кем-то другим.

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


Установка сеанса

Установка сеанса начинается с работы протокола квитирования (handshake sequence) между клиентом и сервером. Эта последовательность может зависеть от того, настроен ли сервер предоставлять сертификат, и требует ли он наличие сертификата у клиента. Возможно так же, для согласования параметров алгоритма шифрования потребуются дополнительные шаги. В этом документе описывается типичный сценарий, а остальные возможности SSL не рассматриваются.

Протокол квитирования используется клиентом и сервером для:
1. Согласования параметров шифрования (Cipher Suite), которые будут использован при передаче данных
2. Выработки и передачи сеансового ключа между клиентом и сервером
3. Об этом говорит сайт https://intellect.icu . Необязательной аутентификации сервера клиентом.
4. Необязательной аутентификации клиента сервером

Криптографический протокол SSL, HTTPS

Рис. 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) как данные прикладного уровня. Инкапсулированный протокол передается как данные нижележащим протоколом, которые не анализирует эти данные. Инкапсулированный протокол ничего не знает о нижних протоколах.

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

Криптографический протокол SSL, HTTPS

Рис. 2. Стек протоколов SSL
Передача данных

Протокол записи SSL используется для передачи данных прикладного уровня и управляющих данных протокола SSL, возможно разбивая эти данные на более мелкие фрагменты или объединяя несколько сообщений от вышележащего уровня в один блок. Возможно сжатие данных, затем вычисляются коды аутентичности сообщения (MAC) и данные шифруются, перед передачей их с использованием нижележащего надежного транспортного протокола.

Криптографический протокол SSL, HTTPS

Рис. 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 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

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 и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Шифры в криптографии

создано: 2016-09-19
обновлено: 2024-11-12
193



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Информационная безопасность, Шифры в криптографии

Термины: Информационная безопасность, Шифры в криптографии