Иллюстрации: Артём Морозов

 

Обмен информацией в интернете похож на почтовую переписку: компьютер-клиент отправляет письмо на веб-сайт, а тот в ответ отправляет веб-страничку.

Познакомьтесь с героями статьи: клиентом, веб-сайтом и шпионом-злодеем.

Естественно, доставка сообщений в интернете происходит существенно быстрее почтовой пересылки. По пути письмо точно так же проходит множество промежуточных узлов — почтовых отделений, и в каждом из них это письмо могут вскрыть и прочесть третьи лица. А ведь порой в почте содержится конфиденциальная информация (номера кредитных карточек, комбинации сейфов, любовная переписка герцога Бэкингема и Анны Австрийской). Вряд ли кого обрадует утрата таких ценных данных. Как же уберечь себя от этих неприятностей?

В интернете для защиты важной информации используется HTTPS — особый протокол, передающий информацию между компьютером и веб-сайтом в зашифрованном виде. Третьи лица по прежнему могут вскрыть письмо, но чтобы его прочесть, им прийдется взламывать шифр, что существенно усложняет задачу.

Техническая справка

HTTPS — это аббревиатура от Hypertext Transfer Protocol Secure — расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивается защита этих данных.

Статья о HTTPS на Википедии

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

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

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

Во время процедуры рукопожатия веб-сайт первым делом передает клиенту свой сертификат — особый пакет, содержащий имя веб-сайта и открытый ключ шифрования, подписанный центром сертификации.

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

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

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

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

После того, как ключ сеанса создан и передан веб-сайту, безопасный канал связи установлен и начинается само общение клиента с веб-сайтом.

Безопасный канал связи позволяет клиентам отправлять на веб-сайты конфиденциальную информацию, и не переживать о том, что она попадет в неправильные руки. Паспортные и личные данные, номера кредитных карт, конфиденциальная переписка — все это примеры информации, для передачи которой используется протокол HTTPS.