Как SSL / TLS делает HTTPS безопасным?
HTTPS расшифровывается как HyperText Transfer Protocol Secure, который является безопасной версией HTTP. Это основной протокол, используемый для обмена данными между веб-браузером и веб-сайтом. Поскольку HTTPS является безопасной версией, она добавляет шифрование в HTTP для повышения безопасности обмена данными.
Давайте погрузимся глубже, чтобы понять, как именно защищены данные в сети.
Обзор HTTP
HTTP является базовым протоколом, используемым в интернете, и этот протокол определяет, как сообщения форматируются и передаются, и какие действия веб-серверы и браузеры должны выполнять в ответ на запросы или в ответ на различные команды.
Например, когда вы вводите URL-адрес в браузере, он фактически отправляет HTTP-команду веб-серверу, направляя ее на выборку и передачу запрошенной веб-страницы.
HTTP также является протоколом без сохранения состояния, потому что каждая команда выполняется независимо, без каких-либо сведений о командах, которые предшествовали ей.
Как протокол запроса-ответа, HTTP предоставляет пользователям способ взаимодействия с веб-ресурсами, такими как файлы HTML, путем передачи гипертекстовых сообщений между клиентами и серверами. HTTP-клиенты обычно используют соединения протокола управления передачей (TCP) для связи с серверами.
HTTP использует определенные методы запроса для выполнения различных задач:
GET: Запрашивает представление указанного ресурса. Запросы, использующие этот метод, должны только извлекать данные.
HEAD: Запрашивает ответ, идентичный ответу на GET запрос, но без тела ответа.
POST: Этот метод используется для отправки объекта на указанный ресурс, что часто вызывает изменение состояния или побочные эффекты на сервере.
PUT: Этот метод заменяет все текущие представления целевого ресурса полезной нагрузкой запроса.
DELETE: Этот метод удаляет указанный ресурс.
TRACE: Этот метод выполняет проверку обратной связи по пути к целевому ресурсу.
OPTIONS: Этот метод используется для описания параметров связи для целевого ресурса.
CONNECT: Этот метод устанавливает туннель к серверу, идентифицированному целевым ресурсом.
PATCH: Этот метод используется для применения частичных модификаций к ресурсу.
В чем разница между HTTP и HTTPS?
Наиболее важным отличием между двумя протоколами является сертификат SSL. На самом деле HTTPS – это в основном протокол HTTP с дополнительной защитой. Однако эта дополнительная безопасность может быть чрезвычайно важной, особенно для веб-сайтов, которые получают конфиденциальные данные от своих пользователей, такие как данные кредитной карты и пароли.
Так как же работает HTTPS? Сертификат SSL шифрует информацию, которую пользователи предоставляют сайту, что в основном переводит данные в код. Даже если кому-то удастся украсть данные, передаваемые между отправителем и получателем, он не сможет понять это из-за этого шифрования.
Но помимо добавления этого дополнительного уровня безопасности, HTTPS также защищен по протоколу TLS (Transport Layer Security). TLS помогает обеспечить целостность данных, что помогает предотвратить передачу или изменение данных, а также аутентификацию, которая доказывает вашим пользователям, что они общаются с предполагаемым веб-сайтом.
Пользователи могут определить, использует ли сайт протокол HTTPS по веб-адресу. Самая первая часть веб-адреса (перед «www») указывает, использует ли сайт протоколы HTTP или HTTPS.
Как SSL / TLS делает его безопасным?
Одной из наиболее важных частей протокола SSL / TLS является связь SSL / TLS, где каждое соединение установлено.
Коннект TLS состоит из трех этапов:
- Настройка комплектов шифров.
- Аутентификация как на стороне сервера, так и на стороне клиента.
- Обмен симметричными сеансовыми ключами.
Настройка набора шифров
Веб-браузеры являются наиболее распространенным клиентом. Аналогично, на стороне сервера популярные операционные системы, такие как Windows Server, Apache и NGINX, имеют очень разную поддержку функций. И все это становится еще сложнее, когда вы добавляете пользовательские конфигурации. Итак, первые шаги TLS коннекта требуют, чтобы клиент и сервер совместно использовали свои возможности, чтобы они могли найти криптографические функции, которые они взаимно поддерживают.
Как только клиент и сервер согласовывают точные методы шифрования, которые они будут использовать. Это называется набором шифров, и затем сервер отправляет клиенту свой сертификат SSL.
Аутентификация как на стороне сервера, так и на стороне клиента
Клиент проверяет, является ли сертификат «подлинным». Это чрезвычайно важный шаг. Чтобы действительно иметь безопасное соединение, вы не можете просто зашифровать свои данные, вы также должны знать, что они отправляются на правильный сайт. Сертификаты SSL/TLS обеспечивают эту аутентификацию. Но то, как они это делают, зависит от используемого набора шифров.
Все доверенные сертификаты SSL выпускаются центром сертификации (ЦС), который является компанией, которая была утверждена для выпуска цифровых сертификатов. Эти организации должны следовать строгим правилам выдачи и проверки, чтобы выдаваемые ими сертификаты продолжали пользоваться доверием. Это прежде всего для того, чтобы вы могли получить сертификат только для веб-сайта или компании, которой вы действительно владеете. В этом контексте вы можете думать о CA как о нотариусе – его подпись означает, что сущность в сертификате – это то, кем она является.
Во время аутентификационной части соединения TLS клиент выполняет несколько криптографически безопасных проверок, чтобы убедиться, что сертификат, предоставленный сервером, является подлинным. Это включает проверку цифровой подписи и проверку того, что сертификат исходит из доверенного центра сертификации.
На этом этапе клиент также проверяет, что серверу принадлежит закрытый ключ, связанный с сертификатом. Сервер отправляет открытый ключ через сертификат SSL. Открытый ключ используется для шифрования данных, а закрытый ключ используется для расшифровки. Это известно как «асимметричное» шифрование с открытым ключом, потому что две функции выполняются разными ключами. Шифрование эффективно одностороннее.
В самой распространенной криптосистеме с открытым ключом, RSA, клиент будет шифровать случайные данные с помощью открытого ключа, который необходимо использовать для генерации ключа сеанса. Сервер сможет дешифровать и использовать эти данные только в том случае, если у него есть закрытый ключ, который обеспечивает подтверждение владения.
Обмен симметричными ключами сессии
Последняя часть соединения TLS включает создание «ключа сессии», который является ключом, который фактически будет использоваться для защищенной связи.
Ключи сессии являются «симметричными», то есть один и тот же ключ используется для шифрования и дешифрования. Эти ключи могут обеспечить надежное шифрование гораздо более эффективно, чем асимметричные ключи, что делает их подходящими для отправки данных туда и обратно по HTTPS-соединению.
Точный метод генерации ключа зависит от выбранного набора шифров, причем двумя наиболее распространенными схемами являются RSA и Diffie-Hellman.
Чтобы прекратить связь, каждая сторона сообщает другой стороне, что она выполнила всю необходимую работу, а затем запускает контрольные суммы, чтобы убедиться, что связь произошло без какого-либо злонамеренного вмешательства или повреждения.
Все связь SSL происходит за несколько сотен миллисекунд, и все это за кадром. Это первое, что должно произойти при подключении HTTPS, даже до загрузки веб-страницы.
По завершении рукопожатия SSL начинается зашифрованное и аутентифицированное HTTPS-соединение, и все данные, отправляемые и получаемые между вами и сервером, защищаются с помощью ключа сессии.
Связь SSL/TLS – это увлекательный процесс, который имеет решающее значение для безопасного интернета, и все же это происходит быстро и незаметно, и большинство людей никогда не задумывается об этом.