Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

HTTPS Протокол HTTP

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

По этим причинам, нельзя вводить чувствительные данные, такие как пароли, номера карточек и любую персональную информацию на страницах, работающих по протоколу HTTP.

Эти проблемы привели к разработке HTTPS (HyperText Transfer Protocol Secure), который обеспечивает защиту данных в Интернете. HTTPS не является новым протоколом сам по себе; это расширение существующего протокола HTTP. Технически, HTTPS — это просто использование HTTP поверх TLS (Transport Layer Security).

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

Клиент:                                     Сервер:
   |                                           |
   |---- Запрос на соединение ---------------> |
   |                                           |
   |<- Сертификат и публичный ключ ----------- |
   |                                           |
   |---- Сессионный ключ (зашифрованный) ----> |
   |                                           |
   |<- Соединение установлено ---------------- |
   |                                           |
   |<=== Зашифрованные данные ===============> |
   |                                           |

TLS

TLS - это криптографический протокол, который обеспечивает защиту данных при их передаче между клиентом и сервером. TLS включает несколько ключевых компонентов:

  • Аутентификация: Проверка подлинности сторон, участвующих в соединении.
  • Шифрование: Защита данных от перехвата и чтения посторонними.
  • Целостность данных: Обеспечение того, что данные не были изменены во время передачи.

Сертификаты

Сертификаты в TLS играют ключевую роль в обеспечении безопасности и доверия в Интернете. Представьте себе сервер, который хочет установить безопасное соединение с клиентом. Чтобы это сделать, он должен доказать клиенту, что он действительно тот, за кого себя выдает, а передаваемые данные будут защищены от перехвата и подделки. В этом ему помогают цифровые сертификаты.

Сертификат HTTPS

Когда сервер, допустим, интернет-магазин, хочет обеспечить безопасность своих пользователей, он обращается к доверенному третьему лицу — сертификатному центру (CA). Сертификатный центр — это организация, которой доверяют браузеры и операционные системы. Она проверяет подлинность сервера и выдает ему цифровой сертификат.

Процесс начинается с того, что сервер генерирует пару ключей — один публичный и один частный. Публичный ключ можно свободно распространять, в то время как частный ключ должен храниться в секрете. Затем сервер создает запрос на сертификат (Certificate Signing Request, CSR), в котором указывает свой публичный ключ и информацию о себе, такую как доменное имя.

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

  • Информацию о сервере (например, доменное имя)
  • Публичный ключ сервера
  • Информацию о самом сертификатном центре
  • Цифровую подпись CA, которая подтверждает подлинность сертификата
  • Цифровая подпись сертификатного центра — это гарантия, что сертификат был проверен и выдан доверенной организацией. Сервер получает этот сертификат и устанавливает его на своем веб-сайте.

Когда пользователь (например, Алиса) пытается подключиться к этому серверу, начинается процесс установления TLS-соединения. Веб-браузер Алисы запрашивает сертификат сервера. Сервер отправляет свой сертификат, и браузер Алисы проверяет его, используя список доверенных сертификатных центров, встроенный в операционную систему или браузер.

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


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

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

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 21 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 21 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 21 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»