HTTPS протокол онлайн урок.


HTTPS (HTTP Secure) - это протокол, который по сути является HTTP, но данные передаются в зашифрованном виде. Также, по умолчанию этот протокол использует порт 443 (для HTTP, как правило, это 80). Рассмотрим детальнее, каким образом происходит защита данных при передаче. 


Обмен данными с публичным и приватным ключом


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


Таким образом, зашифровать сообщение может кто угодно, но расшифровать - только тот кто имеет приватный ключ. Эта схема лежит в основе HTTPS протокола. Однако, она является уязвимой к атаке "Человек посередине" ("Man in the middle"), когда третье лицо посередине перехватывает сообщения между двумя пользователями (в частности - клиент и сервер) и подменяет ключи на свои.


Сертификат


Для предотвращения этой атаки HTTPS предусматривает использование сертификата на стороне сервера. Сертификат - это по сути открытый ключ, но подписанный центром сертификации (Certification Authority). В сертификате также указана принадлежность хосту. Таким образом, если третье лицо попытается подменить сертификат при перехвате сообщения, то браузер просигнализирует о проблеме с безопасностью. Браузер будет информировать пользователя, если



  • Сертификат отсутствует

  • Сертификат присутствует, но не является подписанным центром сертификации. Такие сертификаты можно генерировать самостоятельно

  • В сертификате не совпадает информация о его владельце. В этом случае может иметь место попытка подделать сертификат


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