HTTP

Как работает HTTPS? - Руководство для начинающих

Как работает HTTPS? - Руководство для начинающих
Центры сертификации - один из важнейших краеугольных камней интернет-безопасности. Центр сертификации - это тот, кому все доверяют с самого начала, когда никто никому не доверяет. Тогда это работа этого центра сертификации (.k.CA), чтобы гарантировать установление доверия между серверами и клиентами, прежде чем они установят связь через Интернет.ЦС важен не только для HTTPS, используемого браузерами и веб-приложениями, но также для зашифрованных электронных писем, подписанных обновлений программного обеспечения, VPN и многого другого. Мы возьмем прототипный пример HTTPS и узнаем о CA в этом конкретном контексте. Хотя вы можете экстраполировать результат на любой другой программный пакет.

Проблемы с HTTP и обычным текстом

Интернет - ненадежный канал общения. Когда вы отправляете или получаете информацию со старого HTTP-сайта http: //www.пример.ком в вашем браузере многое может произойти на полпути к вашим пакетам.

  1. Плохой субъект может перехватить сообщение, скопировать данные для себя, прежде чем повторно отправить их по каналу вам или серверу, с которым вы разговаривали. Без ведома какой-либо из сторон информация будет скомпрометирована. Нам нужно убедиться, что общение частный.
  2. Злоумышленник может изменить информацию, передаваемую по каналу. Боб мог отправить сообщение "Икс" но Алиса получит «У» от Боба, потому что злоумышленник перехватил сообщение и изменил его. Другими словами, честность сообщения скомпрометировано.
  3. Наконец, что наиболее важно, мы должны убедиться, что человек, с которым мы разговариваем, действительно является тем, кем они себя называют. Возвращаясь к пример.ком домен. Как мы можем убедиться, что ответивший нам сервер действительно является законным владельцем www?.пример.ком? В любой точке вашей сети вы можете быть перенаправлены на другой сервер. Где-то DNS отвечает за преобразование доменного имени, например www.пример.com в IP-адрес в общедоступном Интернете. Но ваш браузер не может проверить, что IP-адрес, переведенный DNS.

Первые две проблемы можно решить путем шифрования сообщения перед его отправкой через Интернет на сервер. То есть, перейдя на HTTPS. Однако последняя проблема, проблема идентификации, заключается в том, что в игру вступает центр сертификации.

Запуск зашифрованных HTTP-сессий

Основная проблема с зашифрованной связью по незащищенному каналу: «Как это начать??”

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

Что ж, если ключи отправляются по незащищенному каналу, любой может прослушать это и поставить под угрозу безопасность вашего сеанса HTTPS в будущем. Более того, как мы можем доверять тому, что ключ, отправленный сервером, утверждающим, что это www.пример.com действительно является фактическим владельцем этого доменного имени? Мы можем иметь зашифрованную связь со злоумышленником, маскирующимся под законный сайт, и не знать разницы.

Итак, проблема обеспечения идентичности важна, если мы хотим обеспечить безопасный обмен ключами.

Центры сертификации

Возможно, вы слышали о LetsEncrypt, DigiCert, Comodo и некоторых других сервисах, которые предлагают сертификаты TLS для вашего доменного имени. Вы можете выбрать тот, который соответствует вашим потребностям. Теперь человек / организация, владеющая доменом, должны каким-то образом доказать своему центру сертификации, что они действительно контролируют домен. Это можно сделать, создав DNS-запись с уникальным значением в ней по запросу центра сертификации, или вы можете добавить файл на свой веб-сервер с содержимым, указанным центром сертификации, после чего центр сертификации сможет прочитать этот файл. и подтвердите, что вы действительный владелец домена.

Затем вы согласовываете сертификат TLS с ЦС, в результате чего для вашего домена выдается закрытый ключ и открытый сертификат TLS. Сообщения, зашифрованные вашим закрытым ключом, затем могут быть расшифрованы общедоступным сертификатом и наоборот. Это называется асимметричным шифрованием

Клиентские браузеры, такие как Firefox и Chrome (иногда даже операционная система), обладают знаниями центров сертификации. Эта информация записывается в браузер / устройство с самого начала (то есть, когда они установлены), поэтому они знают, что могут доверять определенным центрам сертификации. Теперь, когда они пытаются подключиться к www.пример.com через HTTPS и посмотрите сертификат, выданный, скажем, DigiCert, браузер может действительно проверить, что с помощью ключей, хранящихся локально. На самом деле, есть еще несколько промежуточных шагов, но это хороший упрощенный обзор того, что происходит.

Теперь, когда сертификат предоставлен www.пример.com можно доверять, это используется для согласования уникального симметричного ключа шифрования, который используется между клиентом и сервером до конца их сеанса. При симметричном шифровании один ключ используется как для шифрования, так и для дешифрования, и обычно он намного быстрее, чем его асимметричный аналог.

Нюансы

Если вам нравится идея TLS и безопасности в Интернете, вы можете глубже изучить эту тему, покопавшись в LetsEncrypt и их бесплатном TLS CA. Во всей этой чепухе гораздо больше мелочей, чем указано выше.

Другие ресурсы, которые я могу порекомендовать для получения дополнительной информации о TLS, - это блог Троя Ханта и работа, проделанная EFF, например HTTPS Everywhere и Certbot. Доступ ко всем ресурсам бесплатный, их очень дешево внедрить (вам просто нужно заплатить за регистрацию доменного имени и почасовую оплату VPS) и получить практический опыт.

Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...