HTTP и HTTPS: в чём разница, и что использовать?

25 сентября 2020
10 мин. 29513
image
Павел Лурье редактор
HTTP и HTTPS: в чём разница, и что использовать?
Протоколы HTTP и HTTPS используются для передачи данных в интернете. Хотя это может показаться небольшим техническим аспектом, в реальности тема касается каждого: от домохозяйки до владельца интернет-магазина. От использования безопасного протокола зависит сохранность данных, в том числе собственных сбережений. А для владельцев сайтов от внедрения надежного протокола зависит жизнеспособность сайта.
HTTP и HTTPS — это протоколы, которые используются веб-браузерами и серверами для передачи пакетов данных. Образно говоря, это почтовые службы, по которым передают письма из байтов. Разница между протоколами заключается в том, что HTTPS — защищенный инструмент, который обеспечивает сохранность данных при передаче. HTTP, напротив, обладает встроенной уязвимостью, которая в прошлом приводила к сбоям в работе сайтов и к крупным похищениям пользовательских данных.
Для обозначения защищенного соединения (протокол HTTPS) используется пиктограмма в виде закрытого зеленого замка. Источник
Что такое "HTTPS"?
А теперь разберемся, почему знания о HTTP и HTTPS важны для каждого, а не только для веб-разработчиков.

Чем опасно использование HTTP?

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

Начнем с определения. HTTP — это аббревиатура, образованная от «Hypertext Transfer Protocol» («Протокол передачи гипертекста»). Веб-браузеры и серверы, используя протокол HTTP, указывают, что они являются частью Всемирной паутины (WWW). Проблема с HTTP заключается в том, что его изобрели в 1989 году. В то время разработчиков, как и пользователей, не очень беспокоил вопрос интернет-безопасности. Гораздо важнее было разработать унифицированный стандарт, который позволит пользователям со всего мира выходить онлайн и пользоваться нужными сайтами.

Проблемы с HTTP начались уже в 1990-х, одновременно с глобальным распространением интернета. Появилось много популярных сайтов, на некоторых ввели систему онлайн-платежей. Тогда и начали активно действовать злоумышленники. Они похищали пользовательские данные либо рушили серверы с сайтами. Киберпреступность процветала, в частности, из-за уязвимости в протоколе HTTP. Чтобы понять её суть, нам необходимо подробнее рассмотреть матчасть, и узнать, в чём отличие HTTP от HTTPS.

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

Когда интернет-сообщество ввело в употребление протокол HTTP, два основных вопроса были — как осуществить передачу данных без потерь, и как доставить пакеты данных с максимальной скоростью? При таких критериях программисты договорились, что в интернете все данные будут отправлены и получены «открытым текстом». Представьте, что все почтовые отделения мира отправляют и принимают письма без конвертов. По умолчанию предполагается, что почтальоны достаточно надежные, чтобы пересылать корреспонденцию, не читая её.
Аналогичным образом устроен принцип действия HTTP. Если интернет-магазин использует этот протокол, то при отправке данных платежной карты по проводам в точности будет отправлен номер банковской карты. Злоумышленнику несложно перехватывать данные на промежутке между сайтом, которым пользуется покупатель, и сервером, на котором находится интернет-магазин. Так данные пользователей попадали к мошенникам.

Еще хуже, что хакеры могут перехватить трафик на сайт и добавить небольшие фрагменты кода (сниппеты) к каждому пакету данных. В марте 2015 года по такой схеме хакеры реализовали DDoS-атаку на сайты GreatFire.org и GitHub. Через серверы, которые предположительно имеют связь с «Великим китайским файерволом», хакеры смогли обрушить серверы GitHub. Сайт не работал на протяжении 5 минут, пока системные администраторы подключали резервный сервер. Это крупнейшая, но не единственная атака на сайт, которая стала возможной из-за использования протокола HTTP.

Сейчас, во время повсеместного распространения высокоскоростного интернета, использовать HTTP не нужно даже домохозяйкам, которые ведут небольшой блог о кулинарии. Впрочем, возможная атака на сайт — это не единственная угроза для владельца. Об этом мы скажем ниже.

Принцип действия HTTPS и его отличие от HTTP

Буква «s» в названии протокола HTTPS означает «secure», т.е. защищенный. Веб-браузеры и сайты, которые используют протокол HTTPS, отправляют данные, защищенные криптошифрованием. То есть на пути от компьютера пользователя до сервера веб-приложения информация курсирует в нечитабельном виде. Это рандомный набор знаков. Основное достоинство протокола заключается в том, что дешифровка данных происходит в рамках одной веб-сессии. То есть невозможно подобрать универсальный дешифровщик, который позволит приводить любые данные в удобочитаемый вид.

Рассмотрим подробнее, как функционирует протокол HTTPS. Для передачи данных используется подслой — криптографический протокол, который обеспечивает шифровку/дешифровку данных.
В вебе используют криптографические протоколы SSL (secure sockets layer) и TLS (transport layer security). Эти протоколы построены на алгоритме асиметричного ключа, который состоит из двух ключей — публичного и частного. Публичные ключи доступны и сайтам и браузерам, частные — хранятся на собственных серверах веб-приложений.

Сайты, которые используют HTTPS, имеют уникальный цифровой сертификат (например, SSL-сертификат), который выдан центром сертификации (Certification authority, CA). Когда интернет-пользователь заходит на такой сайт, сервер передает браузеру данные о сертификате и публичный ключ. Веб-браузер использует публичный ключ, чтобы установить цифровую подпись в сертификате. Затем веб-браузер сравнивает подпись с данными, которые получены от CA. Если сертификат действительный, будет установлено соединение с сайтом, а в адресной строке браузера появится пиктограмма в виде зеленого замка. В случае, если на сайте сертификат отсутствует или он не подтвержден браузером, появится соответствующее уведомление, а в адресной строке появится красный замок.

Осталось разобраться, почему в названии алгоритма присутствует слово «асиметричный». Самым примечательным в методе является тот факт, что для шифровки и дешифровки данных используются разные ключи. Например, пользователь передает данные на сайт. В этом случае веб-браузер шифрует данные при помощи публичного ключа. Но дешифровка на сервере осуществляется при помощи частного ключа, который, как мы уже говорили, всегда остается на сайте. Аналогичным образом информация передается с сервера на веб-браузер.

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

Почему использование протокола HTTP отрицательно влияет на посещаемость сайта?

Использование протокола HTTP негативно влияет на эффективность веб-сайта. Если интернет-пользователь заходит на страницу, у которой нет протокола безопасности SSL/TLS, десктопные веб-браузеры обязательно покажут уведомление об отсутствии сертификата. Мобильные браузеры, особенно Chrome и Opera, вообще не загрузят сайт.
Рядовые пользователи привыкают к определенной системе. Если у сайта нет сертификата безопасности, — это сигнал. Либо владельцы сайта экономят на безопасности, либо веб-ресурс давно не обновлялся и выданный сертификат устарел.

Для владельцев сайтов отказ от использования протокола HTTPS — это верный путь к утрате трафика. Во-первых, часть пользователей не станет посещать сайт, у которого нет SSL-сертификата. Во-вторых, еще с 2014 года Google использует наличие сертификата как сигнал для повышения сайтов в результатах поиска. Соответственно, веб-ресурс без сертификата рискует откатиться на последние страницы в поисковой выдаче.

Как подключить SSL-сертификат

Подключить SSL-сертификат к сайту очень просто. По умолчанию, эту услугу предлагают компании, предоставляющие хостинг. Такие сервисы, как SSLs.com предлагают пользователям различные подписки: от дешевой версии (для личного блога) до пакетного решения (для группы сайтов). В 2020 году можно найти и сервисы, которые предоставляют бесплатный SSL-сертификат. Например, Let's Encrypt обеспечивает бесплатно сертификатами 225 млн сайтов.

С технической точки зрения подключить сертификат безопасности для домена несложно. Например, хостинговые компании автоматизировали эту услугу. В данном случае владельцу сайта достаточно оплатить установленную сумму, чтобы получить работающий результат. Аналогичным образом предоставляют услугу HTTPS некоторые платформы для создания сайтов, например, Tilda. В разделе Настройки сайта → SEO → Настройка HTTPS пользователь активирует получение сертификата.
Если вы решили устанавливать сертификат безопасности самостоятельно, это можно сделать через панель администратора. Необходимо добавить в соответствующие разделы полученный сертификат (в виде кода) и приватный ключ. В зависимости от выбранной системы, администратор либо загружает файл с сертификатом (.crt), либо вставляет код вручную. Приватный ключ копируется и вставляется вручную. Рассмотрим несколько примеров.

В панели управления хостингом cPanel следует перейти в пункт меню Security (Безопасность) > SSL/TLS Manager (Диспетчер SSL/TLS). Для загрузки сертификата используется раздел Generate, view, upload, or delete SSL certificates.
Для загрузки приватного ключа предназначен раздел Setup a SSL certificate to work with your site. В появившемся поле — добавить соответствующие данные.
В панели управления Plesk подключение SSL-сертификата для веб-домена производится в пункте меню Domains > Certificates. Здесь администратор загружает файл с сертификатом и копирует код приватного ключа. После установки сертификата безопасности необходимо перейти в раздел Service Management, где следует остановить и перезапустить веб-сервер Apache кликом по меню Stop and Start WEB Server.

В ISPmanager установка сертификата безопасности — процесс интуитивно понятный. В меню панели существует отдельный пункт:
Затем кликнуть по кнопке «Создать» и в открывшемся окне вставить данные сертификата безопасности и приватного ключа:

Виды сертификатов безопасности

В действительности, существует только один вид сертификата — SSL. TSL является новой версией с более совершенным уровнем криптошифрования. Термин «SSL-сертификат» более распространенный, поэтому именно он используется в панелях администрирования и в обозначении услуги. В настоящее время различные центры сертификации предоставляют TSL- и SSL-сертификаты.

Итог

К 2020 году использование протокола HTTPS является своего рода негласным правилом. И для небольших блогов, и для крупных корпоративных ресурсов важно поддерживать отличную репутацию. Чтобы не отпугнуть посетителей сайта и не допустить хакерской атаки на сайт, владельцы веб-ресурсов устанавливают SSL-сертификаты. Эта процедура достаточно простая. Ее можно заказать непосредственно у хостинговой компании.

Расскажите
о вашем проекте