SSL (Secure Sockets Layer) и TLS (Transport Layer Security) — это криптографические протоколы, которые используются для защиты данных при их передаче через интернет. Они обеспечивают безопасность связи между двумя компьютерами, гарантируя, что информация не будет перехвачена или подделана.
Основная задача SSL/TLS-протоколов — обеспечение конфиденциальности, целостности и аутентичности передаваемых данных, что достигается путём шифрования данных, их цифровой подписи и аутентификации сервера.
SSL был разработан компанией Netscape в 1995 году. В 1999 году протокол SSL заменили на протокол TLS, который является его преемником. TLS предлагает усиленные меры безопасности и исправляет некоторые уязвимости, присущие старым версиям SSL.
Сайт, где используют SSL/TLS-протокол, отличается тем, что его URL-адрес начинается с «HTTPS», а не «HTTP», что свидетельствует о защищённом соединении.
Когда пользователь открывает веб-сайт, браузер запрашивает сертификат у сервера, который отправляет копию SSL-сертификата с открытым ключом. Затем браузер проверяет, чтобы название сертификата совпадало с именем веб-сайта.
Также осуществляется проверка срока действия сертификата и наличия корневого сертификата, выданного авторитетным центром сертификации. Если браузер признает сертификат надежным, он создает предварительный секрет (pre-master secret) для сессии, используя открытый ключ и наивысший уровень шифрования, поддерживаемый обеими сторонами.
Сервер расшифровывает предварительный секрет с помощью своего закрытого ключа, подтверждает готовность продолжить связь и создает общий секрет (master secret) с использованием выбранного метода шифрования. Теперь обе стороны применяют симметричный ключ, который действителен только для текущей сессии. После завершения сессии ключ уничтожается, и при следующем посещении сайта процесс рукопожатия начинается заново.
Теперь, когда мы разобрались с тем, что такое протокол SSL/TLS и как происходит соединение на его основе, давайте обсудим виды сертификатов.
Получить SSL-сертификат можно и самостоятельно: пара ключей генерируется с помощью любого генератора, например, бесплатного OpenSSL. Такой защищенный канал связи можно использовать для внутренних нужд, например, между устройствами в своей сети или приложениями. Однако для использования на веб-сайте сертификат необходимо приобретать официально, чтобы в цепочке подтверждения сертификатов обязательно присутствовал корневой сертификат. Это позволит избежать сообщений о небезопасном соединении в браузерах и обеспечит пользователям уверенность в безопасности их данных.