В Интернете сейчас для передачи данных применяется два вида протоколов – незащищённый HTTP и защищённый HTTPS. Разумеется, они разные, и главное отличие между ними – уровень защищённости передаваемых данных, соответственно – их безопасности и сохранности.
Далеко не все владельцы сайтов понимают важность этого технического аспекта, однако защищённость передачи данных крайне важна для подавляющего большинства сайтов. Это и корректная работа сайта, и защита конфиденциальных данных пользователей.
Здесь мы рассмотрим различия между протоколами и некоторые особенности в плане выбора протокола для использования.
Протоколы HTTP(S) – что это, и в чём разница между ними
Оба протокола используются серверами и браузерами для передачи данных. Они, в некотором смысле, аналогичны почтовой службе, через которую передаются пакеты данных («письма»). Но если для более простого HTTP характерно наличие уязвимостей, чреватых похищением личных данных пользователей и серьезным сбоям в работе сайта, то HTTPS – это защищенный вариант, обеспечивающий безопасность и сохранность передачи данных.
Буква S обозначает слово «Secure» — безопасность. Соединение через защищённый HTTPS отображается в браузере, левее адресной строки, в виде пиктограммы закрытого зеленого замка. Эта пиктограмма сообщает пользователю, какой протокол используется сайтом.
В чём опасности использования HTTP
HTTP расшифровывается как Hyper Text Transfer Protocol. Это специальный протокол, который передаёт гипертекстовую разметку, применяющуюся для отправки данных в сети. Разбираемся, в чём проблема его уязвимости.
При входе посетителя на страницу сайта, сервер принимает и обрабатывает поступающий запрос. На сервере хранится вся информация сайта: это различные HTML-файлы, изображения, CSS и JavaScript. Когда поступает запрос, сервер выбирает нужные файлы для ответа и отправляет их в браузер, интерпретирующий информацию и показывающий ее пользователю.
Соответственно, любое действие, например переход на внутреннюю страницу, заполнение формы или просмотр отзывов – это новый запрос, поступающий на сервер. И для каждого такого действия будет новый ответ. Помимо информации, нужной пользователю, каждый запрос содержит информацию об используемом веб-браузере, поддерживаемой версии протокола и конкретной странице, которую пытается загрузить сервер. За получение нужных сведений отвечает метод: используются GET, PUT, HEAD, и др. Часть этих методов позволяют не только загрузить страницу, но и скачать что-то, добавить или удалить.
Собственно говоря, ответ сервера представляет собой страницу с HTML-кодом, то есть гипертекстовой разметкой. HTTP имеет уже более, чем 30-летнюю историю, и существуют проблемы, связанные с её безопасностью. Вначале перед разработчиками не стояла задача защиты информации, важнее было создать унифицированный способ передачи данных в сети.
Вскоре после введения на многих сайтах системы онлайн-платежей, стало понятно, что протокол не обеспечивает защиту данных пользователей. Его уязвимость объясняется тем, что передача данных осуществляется «открытым текстом». То есть не используется шифрование, препятствующее злоумышленникам перехватывать данные при отправке запроса на сервер.
Есть и риск добавления злоумышленниками собственных фрагментов кода (то есть сниппетов) к отдельному пакету данных. Это может стать вариантом реализации DDoS-атак на веб-ресурс. Поэтому большинство сайтов отказываются от применения протокола HTTP и переходят на HTTPS.
Присутствует также ещё один существенный мотив отказа от устаревшего протокола – это снижение посещаемости сайта. HTTP плохо влияет на трафик сайта. Во многих браузерах появляется уведомление о том, что на сайте нет сертификата безопасности. В результате пользователь вообще не может зайти на сайт, или закрывает его, увидев такое уведомление. Для многих это свидетельство того, что сайт давно не обновлялся, или его владельцы пожадничали. Так, или иначе, у пользователя такая ситуация вызывает недоверие.
Многие поисковые системы в выдаче выше ставят сайты с действующим сертификатом безопасности. Поэтому, если используется HTTP, ресурс гарантированно откатится в выдаче и утратит много потенциальных посетителей.
Как работает HTTPS
HTTP и HTTPS имеют серьезные различия, которые мотивируют предпочтение второму протоколу. В целом, HTTPS это «два в одном» – HTTP и SSL (TLS). TLS/SSL обозначают криптографические протоколы, которые шифруют данные при их передаче от браузера к серверу и наоборот. При перехвате данных злоумышленники получат только набор не читаемых символов. SSL является ранней версией протокола безопасности, и в последнее время предпочтение отдается именно TLS.
С использованием HTTPS сайт получает сертификат безопасности, который выдается специальной организацией. В адресной строке это отображается криптограммой (зеленый закрытый замок) – это значит, что соединение с ресурсом защищено. При клике по криптограмме можно увидеть детальную информацию о сертификате.
При начале HTTP-соединения браузер обращается к серверу, чтобы использовать защищенное соединение. В ответ сервер направляет копию сертификата безопасности, которая проверяется по спискам проверенных центров. Если проверка пройдена, ресурс считается безопасным. Далее выбирается тип шифрования HTTPS, происходит обмен ключом и пакетами данных.
Проще говоря, информация от вашего устройства до сервера сайта передается в зашифрованном, нечитаемом виде. Это набор случайных знаков, которые нельзя расшифровать без ключа. Дешифровка происходит в рамках одной сессии, и это исключает риск подбора универсального дешифровщика.
Протоколы безопасности основаны на алгоритме асимметричного ключа, состоящего из двух частей – публичной и частной:
- публичные ключи находятся в открытом доступе и показываются всем сайтам и браузерам;
- частные – находятся на сервере сайта и скрыты от браузеров.
Когда данные загружаются на сайт, происходит их шифрование с применением публичного ключа, а дешифровка выполняется с использованием частного. Таким же способом информация передается в обратном направлении. Соединение и шифрование данных происходит на нескольких уровнях, и это позволяет обеспечить безопасность передачи пакетов данных.
Подключение SSL или TLS-протокола не является сложным. Часто установка сертификата входит в тарифные планы хостинга, в частности, практически все топовые украинские хостинги предлагают такую услугу, но владелец сайта может и самостоятельно выполнить подключение. Есть и платные, и бесплатные сервисы, предоставляющие протоколы безопасности.
Купленный HTTPS сертификат активируется в настройках ресурса (обычно это возможно сделать через панель администратора). Для этого потребуется добавить сертификат (предоставляемый в виде специального кода) и приватный ключ. Это выполняется вручную или загрузкой файла с расширением .crt.
Полезно знать, что SSL/TLS-сертификаты бывают разными: бывают групповые и даже многодоменные решения. Подробнее рассмотрим самые распространённые:
Самоподписанные. Их можно сгенерировать самостоятельно на сервере. Но такое решение подходит разве что для тестирования процесса последующей установки сертификата.
Групповые. К ним относят бесплатные, которые выдаются на группу ресурсов. Их необходимо регулярно продлевать (порой каждый месяц), иначе сертификат станет недействительным.
Wildcard. Эти сертификаты применяются для основного домена и всех поддоменов. Многие владельцы ресурсов используют Wildcard-сертификаты, чтобы закрыть большое количество используемых доменов.
С подписью центра сертификации. Это самые надежные сертификаты, которые выдаются доверенными удостоверяющими центрами. Они могут подтвердить подлинность используемых ключей шифрования за счет электронной подписи.
Недостатки и ограничения протоколов
Разница между HTTP и HTTPS не только в наличии сертификата безопасности, есть и другие отличия. Начнем с того, что у HTTP имеются преимущества, среди которых возможность использования в локальной сети, быстрое открытие и сохранение в кеш устройства, небольшой вес страниц и возможность открытия в любом браузере.
HTTPS является «потомком» HTTP, но сохраняет не все качества своего «прародителя». Часто обнаруживаются сложности с настройками браузера или антивируса. HTTPS-ссылки открываются медленнее, так как требуется больше ресурсов для шифровки/дешифровки данных. Тем не менее не скажешь, что эти недостатки критичны. Многие центры сертификации обеспечивают быструю загрузку ресурсов, во избежание длительного открытия ссылок. Проблемы с настройкой браузера решаются обновлением системы.
В целом, HTTP не имеет преимуществ перед HTTPS ввиду отсутствия сертификата безопасности и шифровки сведений. HTTP — универсальное средство передачи, он одинаково подходит для файлов любого типа. Но его основной минус заключается в открытой передаче данных без какой-либо дополнительной защиты. Но использование HTTPS не может стать 100% гарантией сохранности данных. В любом случае риск перехвата информации сохраняется, но за счет шифрования удается предотвратить чтение данных.
Какой выбрать протокол
Для многих остается открытым вопрос: когда стоит использовать HTTPS-протокол шифрования, а когда можно обойтись и без него.
Использование HTTP приемлемо для статичных веб-сайтов (например, информационных ресурсов со статьями или справочными материалами). На них пользователь лишь просматривает страницы, не оставляя конфиденциальной информации. Такой протокол подходит и для локальных сетей, но только при наличии фаервола.
Часто HTTP используют для демонстрационных ресурсов. Например, разработчики тех же шаблонов для CMS, очень часто выкладывают свои демонстрационные сборки под HTTP, экономя тем самым как технические, так и финансовые ресурсы, в то время как сайт разработчика защищён HTTPS.
HTTPS необходим всем сайтам, на которых пользователь оставляет личные данные. Не только о банковских картах, но и ФИО, адресе проживания, номере телефона и прочие. Если пользователь заполняет какие-либо формы обратного звонка или доставки, то потребуется защита информации и ее шифрование. Обязательным HTTPS считается для банков, интернет-магазинов и различных агрегаторов.
Сейчас примерно 85% страниц в браузерах загружаются при помощи HTTPS. И тенденция такова, что со временем этот процент будет только расти. Владельцы сайтов отказываются от старого протокола, заботясь о безопасности посетителей, и не желая терять трафик. Поисковики и браузеры вводят ограничения на сайты с HTTP, понижая их в выдаче или вообще препятствуя открытию ресурса.
Можно сказать, что использование протокола с сертификатом безопасности стало нормой для компаний любого масштаба. Те, для кого важна хорошая репутация, не отпугивают клиентов от посещения своего сайта, и устанавливают HTTPS даже для статичных ресурсов.