Протоколы HTTP и HTTPS: чем отличаются, основные различия

Протоколы HTTP и HTTPS — основа веб-коммуникаций. Они определяют, как будут передаваться данные между браузером и сервером. В условиях растущих киберугроз чаще используется HTTPS для защищенной передачи. Рассказываем, чем он отличается от традиционного HTTP, как работает и что сделать, чтобы на него перейти. 

Что такое HTTP

HTTP (HyperText Transfer Protocol) — это протокол интернета, который используется для передачи данных и работает по принципу обмена текстовыми сообщениями. Он обеспечивает связь между веб-клиентами и веб-серверами, позволяет просматривать страницы, загружать изображения, видео и другой контент. 

Принцип действия HTTP

В основе работы HTTP — модель «запрос-ответ». Браузер отправляет запрос серверу, а сервер возвращает релевантный ответ. Запросы могут быть разными — например, GET для получения страницы или POST для отправки данных. В ответ сервер передает не только содержимое, но и код состояния. Например, 200 означает, что все прошло успешно, 404 — страница не найдена, 500 — сервер выдает ошибку. Это позволяет понять статус обработки запроса.

Работа HTTP на схеме

Что такое HTTPS

HTTPS — по сути тот же протокол HTTP, только с фокусом на безопасность. Об этом говорит S («Secure») в аббревиатуре. В отличие от HTTP, HTTPS использует криптографические протоколы SSL/TLS (Secure Sockets Layer/Transport Layer Security) для шифрования данных и обеспечения безопасной связи между браузером пользователя и сервером.

При подключении к сайту происходит рукопожатие (handshake) TLS. Это процесс, в ходе которого клиент и сервер «договариваются» о параметрах защиты данных и формируют общий секретный ключ. Для протокола версии TLS 1.2 процесс рукопожатия выглядит так:

  1. ClientHello. Клиент приветствует сервер и отправляет список поддерживаемых шифров (cipher suites), версию TLS и случайное число.
  2. ServerHello. Сервер отвечает своим приветствием, выбирая шифр и TLS-версию из клиентского списка, а также отправляя свое случайное число.
  3. Certificate. Сервер отправляет свой SSL/TLS-сертификат для аутентификации.
  4. ServerKeyExchange. Этот шаг является опциональным и требуется только для определенных алгоритмов ключевого обмена (например, DHE или ECDHE), когда данных сертификата недостаточно.
  5. ServerHelloDone. Сервер сигнализирует клиенту, что его часть приветствия завершена.
  6. ClientKeyExchange. Клиент генерирует pre-master secret, шифрует его открытым ключом сервера (из сертификата) и отправляет.
  7. ChangeCipherSpec и Finished (от Сервера). Сервер отправляет сигнал ChangeCipherSpec, указывая, что все его последующие сообщения будут зашифрованы новыми ключами. Затем он отправляет первое такое зашифрованное сообщение — Finished, содержащее дайджест всех предыдущих сообщений рукопожатия для проверки целостности.
  8. ChangeCipherSpec и Finished (от Клиента). Клиент проверяет Finished от сервера. Затем он также отправляет ChangeCipherSpec и свое зашифрованное сообщение Finished. После этого защищенный канал считается установленным.

Handshake TLS на схемеHandshake TLS

Симметричное и асимметричное шифрование

Для защиты данных используется два вида шифрования: 

  • Симметричное — это способ, когда для шифрования и расшифрования данных используется один и тот же ключ. Это быстрый метод, который применяется для защиты основного трафика в HTTPS после установления соединения.
  • Асимметричное шифрование — использование пары ключей (открытого и закрытого). В HTTPS оно применяется на этапе TLS-рукопожатия для аутентификации сервера (и опционально клиента) и для безопасной выработки общего секретного ключа, а не для шифрования всего трафика.

Схемы симметричного и асимметричного шифрованияСхемы симметричного и асимметричного шифрования

Основные различия между HTTP и HTTPS

Для наглядности сравнение протоколов по разным характеристикам — в таблице. 

ХарактеристикаHTTPHTTPS
Полное названиеHyperText Transfer ProtocolHyperText Transfer Protocol Secure
Используемый порт80443
БезопасностьНет шифрования, данные передаются в открытом видеДанные шифруются с помощью SSL/TLS
КонфиденциальностьОтсутствуетОбеспечивается — данные защищены от перехвата
Целостность данныхНе гарантируетсяГарантируется, данные не могут быть изменены в пути
Аутентификация сервераНетЕсть
Скорость передачиЧуть быстрее, без накладных расходов на шифрованиеМогут быть небольшие задержки из-за шифрования
Индикатор в браузереНет замка, иногда «Not Secure»Замок в адресной строке, «Secure»

Производительность и порты

HTTPS использует порт 443 для зашифрованных соединений, а HTTP — порт 80 для передачи данных в открытом виде. Браузеры определяют необходимость TLS-соединения по схеме URL (https://). Порт 443 является стандартным портом для HTTPS-соединений, но TLS может использоваться на любом TCP-порту.

Шифрование замедляет скорость соединения и вот почему:

  • Дополнительная нагрузка на CPU. При установке HTTPS-соединения происходит обмен ключами и настройка зашифрованного канала, что требует вычислительных ресурсов как на сервере, так и на клиенте.
  • Задержка при установке соединения. TLS-handshake разных версий может добавлять 1–2 дополнительных сетевых раунда по сравнению с HTTP. Итог — небольшая задержка при первом запросе.
  • Перенос данных после установления соединения. После настройки зашифрованного канала накладные расходы на шифрование данных, благодаря современным процессорам с поддержкой аппаратного ускорения (например, AES-NI), для подавляющего большинства веб-сайтов не оказывают заметного влияния на скорость загрузки для конечного пользователя.

Резюмируем — HTTPS чуть медленнее только при установке соединения, но при постоянных соединениях разница почти незаметна.

Ограничения и недостатки HTTP, преимущества HTTPS

Уже понятно, что преимущества HTTPS связаны с шифрованием данных, а недостатки HTTP — с его отсутствием. Резюмируем сильные и слабые стороны протоколов.

Проблемы безопасности в HTTP

Три главные проблемы, связанные с традиционным протоколом:

  • Риски перехвата. Данные передаются в открытом виде без шифрования, поэтому злоумышленники могут перехватить трафик и использовать в своих целях. Особенно риски высоки, если подключаетесь через общедоступный Wi-Fi. 
  • Подмена контента. Если сайт работает на HTTP, злоумышленники могут поменять содержимое страницы или вставить фальшивую форму регистрации, чтобы украсть пароли. 
  • Потенциальное заражение вредоносным ПО. Поскольку соединение не защищено, хакеры могут внедрить вредоносов в передаваемый трафик, например, трояна или программу-шпион для кражи паролей. 

HTTPS отлично защищает канал связи «клиент-сервер», но сам сервер остается уязвимым для более масштабных атак. DDoS-атаки, направленные на превышение лимитов производительности или пропускной способности, могут сделать ваш сайт недоступным для всех пользователей, даже если их браузер показывает «защищенное» HTTPS-соединение.

Поэтому пока вы обеспечиваете шифрование трафика с помощью HTTPS, используйте специальный сервис Cloud.ru, который защищает инфраструктуру от сетевых и прикладных атак 7-го уровня (L7), которые имитируют поведение реальных пользователей.

Преимущества HTTPS

Сильные стороны защищенного протокола:

  • Шифрование данных. Информация передается в нечитаемом виде. Даже если ее перехватят, то не смогут воспользоваться. К тому же, на сайтах HTTPS пользователи не боятся вводить личные данные. 
  • Проверка подлинности сайта. HTTPS использует сертификаты, которые позволяют пользователям убедиться, что веб-ресурс не фейковый.
  • Защита от подмены. Благодаря зашифрованному соединению пользователь получит в целостности и сохранности те данные, которые отправил сервер. Никто не может незаметно изменить страницу или вставить вредоносный код.
  • Доверие пользователей. Посетители охотнее остаются на сайтах, которые используют HTTPS. Если применяется HTTP, браузер выдает предупреждение, что отпугивает людей. 
  • Улучшение SEO-продвижения. Использование HTTPS — преимущество для поисковых систем при ранжировании веб-ресурсов. HTTPS является одним из факторов ранжирования Google с 2014 года и входит в метрики Page Experience

Переход с HTTP на HTTPS

Чтобы перейти с HTTP на HTTPS, нужно получить SSL/TLS-сертификат. Можно использовать бесплатный, например, Let’s Encrypt либо приобрести у аккредитованного центра сертификации. Сертификат нужно установить на сервер, после чего обновить внутренние ссылки с HTTP на HTTPS и настроить редиректы. 

Зачем нужен SSL/TLS-сертификат

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

У сертификата три задачи:

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

Если коротко, то сертификат делает соединение защищенным, приватным и доверенным.

Типы SSL/TLS-сертификатов

Сертификаты классифицируют по уровню проверки, охвату доменов, используемым криптоалгоритмам. В таблице — основные типы. 

Тип сертификатаОписаниеПримеры применения
DV (Domain Validation)Подтверждают, что владелец домена контролирует его. Проверки компании нетСайты, блоги, небольшие проекты
OV (Organization Validation)Подтверждают легальность организацииКорпоративные сайты, интернет-магазины
EV (Extended Validation)Подтверждают право владения доменом, а также юридическую информацию об организацииБанки, финансовые организации
Сертификаты с ГОСТИспользуют алгоритмы ГОСТ Р 34.10-2012 / ГОСТ Р 34.11-2012Госорганы, банки

Многие компании переходят на российские сертификаты, поскольку зарубежные в любой момент могут отозвать. Сейчас для массового использования доступна российская криптография (алгоритмы ГОСТ). Сертификаты поддерживают как ГОСТ, так и международные алгоритмы, чтобы сайты были совместимы с браузерами. 

Установка SSL/TLS-сертификата для перехода сайта с HTTP на HTTPS

Краткий алгоритм действий:

  1. Выберите аккредитованный удостоверяющий центр (УЦ). Например, в России действует удостоверяющий центр ТЦИ (Технический центр Интернет), выпускающий SSL/TLS-сертификаты с поддержкой криптографических алгоритмов ГОСТ и ECDSA. При этом RU-CENTER, Reg.ru, NIC.ru и другие компании выступают партнерами, предлагающими сертификаты ТЦИ через свои площадки.
  2. Сгенерируйте CSR (Certificate Signing Request). Сделайте это через панель хостинга или с помощью OpenSSL. Выберите нужный алгоритм (RSA, ECDSA, ГОСТ).
  3. Предоставьте запрошенную УЦ информацию и подтвердите права на домен.
  4. Получите сертификат от УЦ. Удостоверяющий центр выдаст его после проверки предоставленных документов. 
  5. Установите сертификат на сервер, настройте редиректы для автоматического перехода с HTTP на HTTPS. 
  6. Проверьте работу сертификата и совместимость с браузерами и ОС.
  7. При необходимости обеспечьте автоматическое продление сертификата, чтобы ваш сайт не остался без защиты.

Заключение

Протокол HTTPS отличается от HTTP шифрованием данных с помощью SSL/TLS. Он обеспечивает конфиденциальность и целостность информации, защиту от перехвата и подделки. Если важны безопасность и доверие пользователей, рекомендуем использовать его. В первую очередь там, где обрабатываются личные данные или платежи. 

.

Источник: https://cloud.ru/blog/protokoly-http-i-https

Перезвоним и ответим на ваши вопросы

Имя *
Код *
Телефон *
Компания *
Сообщение

На связи любым способом

Заявка на аудит

Имя *
Компания *
tel *
email *

Скачать пример аудита

Имя *
Компания *
tel *
email *
Опишите задачу
Имя
Компания
Телефон
Email