Основной целью применения SSL сертификатов является шифрование данных, передаваемых на сервер от клиента и клиенту от сервера. Для обеспечения безопасности такого соединения современные браузеры используют алгоритм TLS, основанный на сертификатах формата X.509. Данный алгоритм применяет ассиметричное шифрование, чтобы создать ключ сессии для симмертичного шифрования. Последнее используется непосредственно для передачи данных после установления защищенного соединения.
Что такое ключ в криптографии?
Ключ в криптографии представляет собой секретную информацию, которая применяется в криптографии для шифрования и декодирования сообщений, для простановки цифровой подписи и ее проверки, для вычисления кодов аутентичности сообщений и прочее. Насколько ключ надежен определяется так называемой длиной ключа, которая измеряется в битах. Стандартной длиной ключа для SSL сертификатов считается 128 или 256 бит. Длина ключа
сертификата корневого центра сертификации (root certificate) не должна быть ниже 4096 бит. Все центры сертификации, с которыми мы сотрудничаем, предоставляют SSL сертификаты с ключом, полностью соответствующим современным стандартам:
Открытый и закрытый ключ в ассиметричном шифровании
В ассиметричном шифровании применяется пара ключей: открытый (Public key) и закрытый, также называемый секретным (Private key). Открытый и закрытый ключи в данном случае позволяют криптографическому алгоритму шифровать и дешифровать сообщение. При этом сообщения, зашифрованные открытым ключом, расшифровать можно только с помощью закрытого ключа. Открытый ключ публикуется в сертификате владельца и доступен подключившемуся клиенту, а закрытый – хранится у владельца сертификата.
Открытый и закрытый ключ между собой связаны математическими зависимостями, поэтому подобрать открытый или закрытый ключ невозможно за короткое время (срок действия сертификата). Именно поэтому максимальный срок действия SSL сертификатов более высокого уровня защиты всегда ниже. Так,
сертификаты EV можно заказать максимум на 2 года. При этом заказывая новый SSL сертификат или продлевая старый, важно генерировать новый CSR запрос, так как к нему привязывается Ваш закрытый ключ и при выпуске нового SSL сертификата лучше его обновлять.
Взаимодействие клиента с сервером происходит следующим образом:
- браузер на основе открытого ключа шифрует запрос и отправляет его на сервер;
- сервер, применяя закрытый ключ, расшифровывает полученное сообщение;
- сервер шифрует закрытым ключом свой цифровой идентификатор и передает его клиенту;
- клиент сверяет идентификатор сервера и передает свой;
- после взаимной аутентификации клиент шифрует открытым ключом ключ будущей сессии и передает его на сервер;
- все последующие сообщения, которые передаются между клиентом и сервером, подписываются ключом сессии и шифруются с использованием открытого и закрытого ключа.
Таким образом обеспечиваются несколько пунктов безопасности:
- исключается возможность утечки информации – при перехвате её нельзя будет расшифровать;
- сервер подтверждает свой адрес и идентификатор, отсекается возможность перенаправления на другой сайт (фишинг);
- клиенту присваивается индивидуальная сессия, что позволяет отличать его от других клиентов более надежно;
- после установки защищенной сессии все сообщения шифруются с использованием идентификатора клиента, и не могут быть незаметно перехвачены или изменены.
В общем случае шифрование открытым и закрытым ключом можно рассматривать как кейс, для которого используются два ключа: одним можно только закрыть, другим – открыть. Если кейс закрыли первым ключом, открыть его может только второй, если закрыли вторым, чтобы открыть – потребуется первый. Наглядно это можно увидеть на схеме выше.