HTTP и HTTPS: в чем разница и зачем нужен SSL-сертификат
- История и развитие криптографической защиты данных
- Как это работает
- Преимущества HTTPS протокола
- Когда можно использовать HTTP
- Виды сертификатов для HTTPS
- Проблемы безопасности HTTPS
- Тенденции развития протокола HTTPS
- Как перейти с HTTP на HTTPS
- Интеграция Certificate Manager с другими сервисами Yandex Cloud
HTTP (HyperText Transfer Protocol) — это протокол передачи гипертекста, который используется для обмена данными между клиентом (браузером) и сервером в интернете. HTTP работает по модели «запрос-ответ»: браузер отправляет запрос на сервер, а сервер возвращает ответ с запрошенными данными — HTML-страницей, изображением, видео или другим контентом.
HTTPS (HyperText Transfer Protocol Secure) — это защищенная версия HTTP, которая использует шифрование для защиты передаваемых данных. Главное отличие HTTPS — работа поверх протоколов SSL (Secure Socket Layer) или TLS (Transport Layer Security), которые обеспечивают аутентификацию сервера, а также шифрование и целостность данных.
Определить используемый сайтом протокол можно по его URL: он начинается с http:// или https://. Также возле названия сайта обычно отображается «замочек» или «щит». Если SSL- или TLS-сертификат отсутствует, то браузер может предупредить пользователя о небезопасном соединении и попросить подтвердить переход на сайт. Сайты без защиты сегодня редко встречаются в интернете.
История и развитие криптографической защиты данных
Первое публичное появление протокола HTTP версии 0.9 состоялось в 1991 году, а версия 1.0 вышла только спустя 5 лет. Это был довольно примитивный протокол с тремя методами (GET, POST и HEAD), а также отсутствием какой-либо защиты.
Когда HTTP начал использоваться для электронной коммерции, онлайн-банкинга и обмена личными данными, проблему безопасности стало невозможно игнорировать. Протокол передавал все в открытом виде, что позволяло любому посреднику перехватывать и модифицировать информацию.
Первые попытки шифровать сетевые сокеты предпринимались еще в 1993 году. Компания Netscape Communications тогда создала первую версию SSL-протокола, но так и не опубликовала свою разработку в силу многих ее недостатков. В 1995 году появилась усовершенствованная версия SSL, которой быстро заинтересовались передовые на тот момент компании.
Вскоре была выпущена версия SSL 3.0, которая послужила основной для создания TLS-протокола в 1999 году. Сегодня в интернете можно встретить оба названия, хотя на деле обычно имеется в виду одно и то же. TLS — это усовершенствованная версия SSL-сертификата, которая выполняет те же функции, но имеет ряд преимуществ, включая более надежные алгоритмы шифрования и их ускоренную передачу.
Как это работает
Принцип работы HTTP
При использовании HTTP данные передаются в виде обычного открытого текста. Это означает, что любой, кто перехватит трафик между клиентом и сервером, сможет прочитать передаваемую информацию: логины, пароли, данные банковских карт, личные сообщения.
HTTP использует порт 80 по умолчанию и не требует дополнительной настройки для работы.
Принцип работы HTTPS
При подключении к сайту по HTTPS происходит процедура TLS Handshake:
- Клиент отправляет запрос на установку защищенного соединения.
- Сервер предоставляет свой SSL/TLS-сертификат для проверки подлинности.
- Клиент проверяет сертификат и устанавливает зашифрованное соединение.
- Все дальнейшие данные передаются в зашифрованном виде.
HTTPS использует порт 443 по умолчанию. Для работы HTTPS необходим действующий SSL/TLS-сертификат, выданный доверенным центром сертификации.
Принцип работы SSL-сертификата
Хотя SSL-сертификаты и не мешают взламывать веб-ресурсы, они не дают сторонним лицам получить доступ к данным во время сеанса. Выдача сертификата происходит следующим образом:
-
Генерация ключей
Перед запросом сертификата владелец сайта должен сгенерировать пару ключей: открытый и закрытый. Закрытый ключ хранится в безопасности и не передается никому, тогда как открытый ключ будет включен в SSL-сертификат и доступен всем.
-
Создание запроса на выдачу сертификата
Для получения сертификата владелец сайта создает запрос на подпись в центр сертификации (CA, Certificate Authority). В запросе он указывает открытый ключ и информацию о сайте, например:
- Домены и поддомены, на которых он действует.
- Человек, организация или устройство, владеющее сертификатом.
- Информация о центре сертификации и его цифровая подпись.
- Дата получения и окончание срока действия сертификата.
-
Аутентификация
CA проверяет предоставленную информацию. От вида сертификата зависят особенности проверки. Например, для DV-сертификатов необходимо подтвердить контроль над доменом через электронную почту или DNS-записи. Для сертификатов более высокого уровня, таких как OV или EV, центр сертификации изучает документы компании.
-
Выдача сертификата
После успешной проверки центр сертификации создает SSL-сертификат и подписывает его своим закрытым ключом, подтверждая его подлинность.
После получения SSL-сертификата владелец сайта устанавливает его на свой сервер. Это позволяет серверу устанавливать защищенные соединения с клиентами, используя стандартный протокол шифрования HTTPS.
Когда клиент устанавливает соединение с сайтом по HTTPS, сервер предоставляет SSL-сертификат в качестве доказательства своей подлинности. Как правило, в хранилище операционной системы клиента уже установлены корневые сертификаты от разных доверенных центров сертификации, позволяющие проверить легитимность сертификата:
- Сертификат подписан доверенным CA.
- Сертификат не истек и не отозван.
- Имя домена в сертификате соответствует имени домена сайта.
Если проверка прошла успешно, браузер устанавливает защищенное соединение. В противном случае браузер предупредит пользователя о потенциальных рисках использования сайта.
Преимущества HTTPS протокола
Без защищенного протокола невозможно заниматься большинством видов деятельности в интернете. Отсутствие сертификата так же ограничивает свободу действий, как отсутствие паспорта в реальной жизни. Например:
- Теряется доверие веб-клиентов и пользователей.
- Все платежные системы и сервисы отказываются сотрудничать с незащищенными ресурсами.
- Ресурсы без сертификации имеют пониженный рейтинг для поисковых систем.
- Большинство API не будут работать по незащищенному соединению.
- Во многих странах действуют законы о защите персональных данных, за несоблюдение которых грозят большие штрафы.
Помимо свободы действий, пользователи также зачастую получают гарантии от CA, что если защиту все же взломают, то они получат возмещение.
Среди недостатков можно отметить стоимость, трудности получения и обновления. По принятым в 2020 году стандартам, сертификаты не могут выдаваться на срок более года, но тенденции в развитии технологий говорят, что в будущем срок может сократиться. Крупным организациям со множеством ресурсов это причиняет больше всего неудобств, потому что им сложнее контролировать актуальность сертификатов. Последствия просрочки ощутили на себе следующие компании:
- Стриминговый сервис Spotify в 2020 году из-за просроченного сертификата отключился всего на час, но вызвал бурю негодования в соцсетях.
- Производитель телекоммуникационного оборудования Ericsson на некоторое время оставил без сотовой связи 32 миллиона человек.
- Социальная сеть для деловых контактов LinkedIn допустила просрочку сертификата, из-за чего все сокращенные ссылки на ее страницы стали недоступны. Это нанесло вред также всем клиентам и партнерам LinkedIn, которые когда-либо делились контентом с нее.
- Time Warner в 2017 году просрочила сертификат своего почтового сервера, но дала пользователям необдуманный совет: отключить SSL для своей почты. Это могло повлечь утечку данных пользователей.
Когда можно использовать HTTP
Протокол HTTP может быть приемлем только в ограниченных сценариях:
- Локальная разработка и тестирование — при работе на
localhostбез передачи реальных данных. - Внутренние корпоративные сети — закрытые системы без доступа извне и без обработки конфиденциальной информации.
- Статические информационные страницы — сайты без форм ввода данных и авторизации иногда могут обойтись без сертификата, но даже для них он желателен.
Виды сертификатов для HTTPS
TLS-сертификаты различаются по уровню валидации, стоимости, скорости получения и зоне охвата. Оптимальный выбор зависит от специфики сайта:
-
EV (Extended Validation) — с расширенной проверкой.
Наличие такой лицензии подтверждает, что владелец имеет исключительные права на ресурс, соблюдает все законы и платит налоги. Такие сертификаты обычно получают банки и платежные системы. Это самый дорогой тип сертификата, а все проверки для его получения занимают более недели. Однако, если раньше наличие EV-сертификата подтверждалось зеленой адресной строкой, то сегодня большинство браузеров отказались от такой визуализации, поэтому многие ставят под сомнение его полезность.
-
OV (Organization Validation) — подтверждает существование организации.
Для получения сертификата организация предоставляет все документы, доказывающие ее юридическое и физическое существование. OV-сертификаты приобретает большинство коммерческих организаций, а доверие к ним почти такое же, как к EV.
-
DV (Domain Validation) — подтверждает владельца домена.
Это самый дешевый, а иногда и бесплатный тип валидации с минимальной защитой, для которого владельцу сайта достаточно по телефону или с помощью электронного письма подтвердить, что он принадлежит ему. Для защиты коммерческих данных такой способ не подходит, но обычным информационным сайтам и блогам большего не надо. Тем более физическому лицу варианты EV и OV все равно недоступны.
Для тех, кому требуется установить SSL-сертификат на поддомены или на несколько серверов, есть еще два вида:
-
Wildcard Certificate — действует также на поддомены ресурса.
Этот особый вид лицензии используется в том случае, если владельцу нужно защитить не только основной сайт, но и его поддомены. Например, site.com, support.site.com, contact.site.com. Защитить сайт со множеством поддоменов одним Wildcard-сертификатом намного дешевле и быстрее, чем покупать отдельный для каждого.
-
SAN (Subject Alternative Name) — защищают несколько независимых доменных имен.
Обычно мультидоменная защита выгодна крупным компаниям, которые имеют несколько продуктов на отдельных сайтах. Например, old-site.net, site.com, new-site.org. По умолчанию такие сертификаты защищают только домены верхнего уровня, а поддомены приходится указывать отдельно. К ним относятся также сертификаты унифицированных коммуникаций (UCC), которые разработала компания Microsoft® для своих серверов, но сегодня они доступны всем желающим.
Самоподписанные сертификаты
Самоподписанные сертификаты — это особый вид сертификатов, которые создает и подписывает владелец сайта без участия центра сертификации. Такие сертификаты имеют серьезный недостаток — браузер сразу сообщает пользователям о ненадежности сертификата, а может даже заблокировать доступ к сайту. Это вряд ли привлечет новых посетителей. Однако самоподписанные сертификаты могут быть полезны, когда требуется лишь внутренняя или ограниченная коммуникация, например:
- Для внутренних тестов и процесса разработки, где не требуется заверение сертификата публичным центром сертификации.
- Для внутренних сетей и внутрикорпоративных приложений, которые недоступны извне и используются только сотрудниками компании.
- Для учебных проектов, в которых нужно освоить работу с SSL/TLS, но нет необходимости в сторонней валидации.
Проблемы безопасности HTTPS
Наличие HTTPS-сертификата вовсе не означает, что сайту можно доверять свои данные. Мошенники тоже легко получают сертификаты (в том числе бесплатные). Пока сайт не попадет в черные списки браузеров и антивирусов, они успевают обмануть часть пользователей. Чтобы защититься от них, стоит обращать внимание не только на «замочек» возле адреса:
- Если сайт позиционирует себя как крупный интернет-магазин, банк или платежная система, то он не может иметь валидацию уровня DV. Чтобы посмотреть сертификат, нажмите на «замочек» в адресной строке.
- Если сайт вызывает подозрения, то можно ознакомиться с его политикой конфиденциальности. Добросовестные организации не будут использовать в ней расплывчатые формулировки. Отсутствие страницы «О компании» или юридических реквизитов — также тревожный сигнал.
- Проверяйте правильность названия ресурса и поддоменов. Фишинговые сайты могут полностью скопировать интерфейс знакомого вам ресурса, но им придется изменить название. Например, yandax (вместо yandex) или login-yandex.ru.
- Используйте надежный менеджер паролей. Они автоматически проверяют названия доменов и не раскроют ваши данные сомнительным ресурсам.
- Если вы не уверены в безопасности ресурса, то не стоит регистрироваться на нем и тем более оплачивать какие-то покупки.
Тенденции развития протокола HTTPS
Рынок сертификации сайтов непрерывно растет и к 2030 году ожидается, что он достигнет $6,8 млрд. Это связано с тем, что все больше организаций и правительственных компаний выходят в интернет, а центры сертификации придумывают новые предложения. Тенденции развития сферы включают:
- Автоматизация. В больших компаниях количество сертификатов иногда достигает
десятков тысяч, поэтому ожидается появление новых автоматизированных решений. - Сертификаты подтвержденной марки (VMC). Набирают популярность недавно появившиеся сертификаты, которые подтверждают подлинность электронных писем. Злоумышленники часто пытаются замаскироваться под представителей известных компаний, поэтому технология имеет большой потенциал.
- Сертификаты подписания документов. Бумажная волокита уходит в прошлое и все больше документов подписываются в цифровом виде, поэтому сертификация будет развиваться и в этом направлении.
- Бесплатные сертификаты. По состоянию на 2022 год, 42,6% всех сайтов пользуются бесплатным сертификатами от Let's Encrypt. Это решение часто используют даже крупные компании, которые экономят на защите своих доменов, но на главном сайте используют более надежный сертификат.
Как перейти с HTTP на HTTPS
Защитить данные с помощью криптографического протокола можно инструментом Yandex Certificate Manager. Он предоставляет TLS-сертификаты вида Domain Validation от Let's Encrypt и полностью автоматизирует работу с ними. Если вам нужен сертификат вида Organization Validation или Extended Validation, то можно воспользоваться сторонним сервисом, а потом привязать его к Certificate Manager. Для получения пользовательского сертификата от Let's Encrypt нужно:
- Указать список доменов, которые необходимо защитить.
- Выбрать тип проверки прав на домен:
HTTPилиDNS. - Подтвердить свое владение доменами.
Обновлять сертификат вручную не требуется. Каждые 90 дней Certificate Manager будет проводить процедуру самостоятельно.
Пользоваться Certificate Manager и TLS-сертификатом Let's Encrypt можно бесплатно. Подробнее в документации.
Интеграция Certificate Manager с другими сервисами Yandex Cloud
- Yandex Object Storage. Certificate Manager позволяет использовать протокол TLS для бакетов статического сайта. Обновление сертификата в них также происходит автоматически.
- Yandex API Gateway. Если вы используете собственный домен для работы с API, то Certificate Manager обеспечит TLS-соединение для всех микросервисов, входящих в ваш продукт.