Традиционный протокол передачи данных в Интернете, такой как HTTP (Hypertext Transfer Protocol), не обеспечивает должной защиты информации на пути от сервера к пользователю и обратно. При незащищенном соединении злоумышленники могут легко перехватить информационные пакеты, изменить их содержимое или перенаправить на поддельный сервер, имитирующий работу настоящего. Это грозит тем, что мошенники смогут завладеть вашей личной информацией (например, данными кредитной карты), и сделки, совершенные от имени ее владельца, могут стать предметом судебных разбирательств. Для того чтобы избежать подобных проблем, были разработаны специальные протоколы защиты передаваемых данных и цифровые сертификаты.
SSL сертификат является цифровым удостоверением вашего сайта и служит подтверждением того, что обмен данными между браузером пользователя и сайтом происходит по защищенному каналу с использованием протокола https (буква «s» в конце означает Secure — безопасный).
Если Вы занимаетесь электронной коммерцией, являетесь владельцем онлайн-магазина или же принимаете от своих клиентов конфиденциальную информацию, SSL сертификат поможет обеспечить высокую защиту передаваемых данных с помощью надежного алгоритма шифрования. Наличие цифрового сертификата гарантирует, что данные не будут доступны третьим лицам для несанкционированного просмотра и изменения.
SSL сертификат обеспечит выполнение трех необходимых условий безопасности при передаче данных:
- Подлинность передаваемых данных. Ваш клиент сможет быть всегда уверен, что получаемая им информация отправляется с указанного адреса, а сам адрес принадлежит организации, на чье имя был выдан сертификат.
- Конфиденциальность. Благодаря надежному шифрованию данных перехват информации, передаваемой от клиента серверу и обратно, становится невозможным.
- Целостность данных. Защищенная SSL сертификатом информация не может быть изменена во время сеанса передачи данных по каналам интернета.
Как работает протокол SSL?
Принцип работы SSL протокола основан на алгоритме шифрования асимметричными ключами, когда создается открытый ключ, доступный любому пользователю, и закрытый ключ, который известен только владельцу сертификата. Один ключ выполняет преобразования обратные преобразованиям второго ключа. Т. е. если сообщение закодировано открытым ключом, то прочитать его сможет только владелец закрытого ключа и наоборот, если сообщение закодировано закрытым ключом, прочитать его сможет любой обладатель открытого ключа.
Представим, что человек совершает какую-либо операцию в банке через интернет, и для этого ему нужно сообщить данные своей кредитной карты. Клиент должен быть уверен, что его данные получит только нужный банк и никто другой. В данном случае обмен сообщениями может выглядеть следующим образом.
Клиент посылает случайное сообщение банку. Это сообщение шифруется закрытым ключом банка и отправляется обратно клиенту. Клиент дешифрует сообщение открытым ключом. И, сравнив дешифрованное сообщение с ранее отправленным, может убедиться, что это нужный банк.
Но на самом деле со стороны банка не очень удачная идея шифровать сообщение клиента своим закрытым ключом. Это равносильно подписи документа, о котором банк мало что знает. С такой позиции банк должен сам придумать сообщение и передать его клиенту в двух экземплярах: в открытом виде и в зашифрованном своим закрытым ключом. Зашифрованное сообщение называется message digest. А способ шифрования сообщения с помощью закрытого ключа — digital signature (цифровая подпись).
Естественно, теперь возникает вопрос, каким образом распространять свои открытые ключи. Для этого (и не только) была придумана специальная форма — цифровой сертификат (certificate).
SSL сертификат содержит в себе следующие данные:
- название сертификационного центра (фирма, которая выпускает сертификаты);
- субъект сертификата (для кого был выпущен сертификат);
- открытый ключ субъекта;
- дата выдачи и срок действия сертификата.
SSL сертификат «подписывается» закрытым ключом сертификационного центра (Certificate autority). Если в стандартном веб браузере зайти в раздел security (защита), то там можно увидеть список известных организаций, которые подписывают сертификаты.
Рассмотрим, каким образом теперь будет происходить обмен данными в интернете.
Клиент: Добрый день.
Банк: Добрый день. Вы попали в банк.
Клиент: А точно ли Вы банк?
Банк: Да. Это банк. (Сообщение передается два раза, один раз в открытую, второй раз зашифрованным с помощью закрытого ключа банка).
Клиент: Все в порядке, Вы действительно банк. (И присылает банку секретное сообщение, зашифрованное с помощью открытого ключа банка).
Банк: Чем могу Вам помочь? (Посылает сообщение, которые было зашифровано с помощью секретного сообщения клиента).
Так как банк знает сообщение клиента (он расшифровал его с помощью закрытого ключа), и клиент знает содержание своего сообщения, то теперь они могут использовать симметричный алгоритм шифрования, где секретным ключом служит сообщение клиента. Для обеспечения защиты сообщений от случайного или преднамеренного изменения также применяется специальный алгоритм MAC — Message Authentication Code, благодаря чему достоверность передаваемых сообщений повышается в несколько раз, и внести изменения в процесс обмена практически невозможно.