Вступление

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

С появлением бесплатных сервисов сертификации HTTPS, таких как Let’sEncrypt, стало очень легко настроить HTTPS-соединение без необходимости понимать основные механизмы. Это замечательно, потому что наличие HTTPS-соединения устраняет целый набор проблем безопасности, с которыми может столкнуться ваше приложение! Однако, как инженер, я считаю, что очень важно понимать этот протокол, поскольку сегодня он является основой безопасной связи. Кроме того, важно понимать, почему этот протокол настолько устойчив, но также понимать, что это не серебряная пуля. Вы по-прежнему можете делать глупости как пользователь и разработчик, которые по-прежнему могут оставлять данные под угрозой.

Обзор

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

HTTPS обслуживает 3 основных варианта использования

Аутентичность. HTTPS позволяет клиенту (браузеру, мобильному телефону и т. д.) проверять, что вы обращаетесь непосредственно к серверу, с которым, по вашему мнению, вы разговариваете.

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

Целостность данных. HTTPS обеспечивает целостность данных, поэтому гарантирует, что наши данные не могут быть изменены третьей стороной. Представьте, что вы заказываете в Интернете 1 пирог с пиццей, и кто-то может изменить это количество до 100 пирогов. Погодите, правда, это не так уж ужасно? 🤔😛

Как работает протокол HTTPS

  1. Клиент инициирует HTTPS-соединение с сервером 👋

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

2. Установление доверия с помощью сертификатов 🤝

После установления соединения между клиентом и сервером сервер докажет клиенту подлинность своей личности. Это делается с помощью SSL-сертификата. Вы можете думать о сертификате SSL как об удостоверении личности с полезной информацией. Клиент изучит сертификат и решит, заслуживает ли он доверия.

3. Обмен ключами 🔑

Клиент и сервер обмениваются ключами. Этот ключ используется для шифрования всех данных, передаваемых между обеими сторонами. Один и тот же ключ используется как для шифрования, так и для дешифрования.

Почему не все сайты поддерживают протокол HTTPS?

Что в этом такого простого, если это так просто? HTTPS не только синонимичен с безопасностью, он даже помогает вашим сайтам в SEO! » HTTPS требует больших вычислительных ресурсов при масштабировании. Это требует шифрования и дешифрования всех подключений к серверу на лету. Это довольно тривиально для такого сайта, как мое портфолио;) Но для более крупных сайтов, таких как Netflix (который отвечает за 34% мирового интернет-трафика), все процессорное время шифрования / дешифрования составляет большие деньги. В некоторых случаях им необходимо масштабировать с помощью большего количества серверов, чтобы справиться с этим спросом и дополнительным процессорным временем. Имейте в виду, что при масштабировании серверных подключений это может стать дорогостоящим уровнем безопасности, требующим планирования и предусмотрительности.

Риски HTTPS

Как и большинство моделей безопасности, HTTPS - это не серебряная пуля, и пользователи и разработчики должны помнить об этом при работе в Интернете! Вот несколько примеров атак / деталей реализации, которые могут сделать ваше приложение небезопасным.

HTTPS на страницах оформления заказа / входа в систему и HTTP везде - › Некоторые сайты по-прежнему используют HTTPS только на страницах оформления заказа / входа. Это опасно, потому что большинство веб-сайтов хранят учетные данные пользователя на клиенте (например, файлы cookie, токены аутентификации и т. Д.). С помощью HTTP-соединения пользователь может перехватить эти учетные данные и легко выдать себя за пользователей.

Фишинговые атаки - ›Злоумышленник может попытаться настроить фишинговую атаку с сайтом с поддержкой HTTPS. Будь осторожен!

Что дальше

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

Если этот пост был полезен, подпишитесь и нажмите кнопку хлопать 👏 ниже, чтобы выразить свою поддержку! ⬇⬇

Вы можете подписаться на меня в Instagram, Linkedin, Twitter и Medium, чтобы получить больше технического контента!

Совместное использование и управление компонентами React с Bit

Используйте Bit » ( Github ) для совместного использования, документирования и управления повторно используемыми компонентами React из разных проектов. Это отличный способ увеличить повторное использование кода, ускорить разработку и создавать масштабируемые приложения.



Связанные истории