easy

SSL-сертификаты и безопасный интернет

Ваше соединение надёжно защищено. Или нет.

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

Вот так браузер сообщает нам, что у этого сайта нет сертификата безопасности.
А вот так — что сертификат есть. Но не всё так просто.

Минутка технического объяснения про SSL и HTTPS

Стандартный протокол передачи данных в вебе, который используется с 1992 года, — HTTP. Этот протокол задаёт правила, по которым пользователи запрашивают сайты, а серверы — отдают эти сайты. Протокола — это просто договорённости: «Заголовок страницы передавай так-то, текст — так, пароль проси так». Протокол может быть любым внутри, главное — чтобы все договорились использовать именно его.

Минус протокола HTTP в том, что он передаёт данные в открытом виде. Если на сайте с HTTP ввести данные карточки, то они полетят по каналам связи незашифрованными. Злоумышленник может их перехватить и прочитать — достаточно, например, просто «прослушивать» весь трафик в беспроводной сети.

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

Чтобы решить проблему незашифрованных данных, в 2000 году придумали HTTPS — HyperText Transfer Protocol Secure, безопасный протокол передачи гипертекста. Внутри себя он работает как обычный HTTP, но снаружи шифрует весь свой трафик. Даже если кто-то вклинится посередине, он увидит только шифр, который не получится разобрать.

За шифрование страниц в HTTPS отвечает протокол SSL — Secure Sockets Layer, уровень защищённых сокетов. Сокеты — это такие виртуальные соединения между компьютерами. Защищённый сокет означает, что данные, которые идут внутри от одного компьютера к другому, — в безопасности. Если браузер открывает страницу по такому протоколу, то он перед отправкой на сервер шифрует всё, что вы делаете или вводите на сайте. Самое то, если нужно отправить данные платёжной карты или логин с паролем от сервиса.

На самом деле примерно с 2014 года вместо протокола SSL используют TLS, который задумывался как обновление SSL 3.0. Дело в том, что в 2014 году обнаружили уязвимость в SSL-протоколе, которая позволяет расшифровывать все данные. В TLS конкретно этой уязвимости нет (но наверняка есть другие), поэтому все плавно перешли на него, но по старой памяти и привычке называют всё SSL-соединением и SSL-сертификатами.

Как работает SSL-протокол

  1. После ввода адреса браузер отправляется к нужному серверу и запрашивает у него страницу по протоколу HTTPS. Если страницы работают с HTTPS, то всё отлично, переходим к шагу 2. Если на сервере используется ещё старый протокол HTTP, то он отдаст браузеру страницу по этому незащищённому протоколу и никакого шифрования дальше не будет.
  2. Сервер отправляет браузеру копию своего SSL-сертификата, чтобы браузер убедился, что всё в порядке. В таком сертификате написано, что это за домен, кто выдал сертификат и информация о владельце.
  3. Браузер проверяет подлинность сертификата и, если всё хорошо, — извлекает из сертификата ключ шифрования и с его помощью безопасно договаривается с сервером о том, каким образом они будут кодировать всё дальнейшее общение.
  4. Сервер шифрует страницу и отправляет её браузеру.
  5. Браузер расшифровывает страницу, показывает её пользователю, а серверу сообщает, что всё в порядке, работаем дальше. Все данные шифруются и можно отправлять на сервер что угодно.

А как быть с обычными сайтами без сертификатов?

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

Есть много сайтов, которые не используют сертификаты и ничего не просят от пользователей — сайты-визитки, корпоративные страницы и информационные порталы.

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

Получить SSL-сертификат — это сложно?

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

Что не так с безопасным соединением

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

Никто не может помешать преступнику получить сертификат, установить на свой сайт и сделать вид, что это безопасная страница. SSL-сертификат гарантирует безопасную передачу данных, но не отвечает за то, куда они отправляются. Поэтому перед тем как вводить на сайте секретную информацию, убедитесь в том, что сайт принадлежит нужной компании. Иногда бывает так: злоумышленники меняют в адресе сайта одну букву, получают сертификат и делают точно такой же дизайн, как в оригинале. Кто-то заходит на такой сайт за покупками, вводит реквизиты карты и... вы понимаете. Будьте внимательны.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
JavaScript для новичков: чем опасны нестрогие типы данных
JavaScript для новичков: чем опасны нестрогие типы данных

В JavaScript есть удобная штука, которая может сильно вам навредить.

medium
Задача на импортозамещение
Задача на импортозамещение

Немного логики, капля математики и много любви к российским фермерам.

medium
Как сделать собственную программу-тудушку за 10 минут
Как сделать собственную программу-тудушку за 10 минут

Пошаговое руководство.

medium
Что такое Пик Балмера
Что такое Пик Балмера

И почему это не про продуктивность.

easy
ООП: зачем нужны абстракции и классы
Зачем нужны абстракции и интерфейсы

И что это вообще такое?

hard
Visual Studio Code: кому и зачем он нужен
Visual Studio Code: кому и зачем он нужен

Любимый редактор кода.

easy
Как устроен российский корпоративный мессенджер «Пачка»
Как устроен российский корпоративный мессенджер «Пачка»

Технологии, разработка и перспективы российского ИТ

easy
Что такое «Докер» и зачем он нужен
Что такое «Докер» и зачем он нужен

Это как полуфабрикаты из супермаркета, только с программами.

easy
«Поле чудес» в мультивселенной безумия
«Поле чудес» в мультивселенной безумия

Задача, немного сгибающая мозг (но решаемая)

easy
easy