Криптозащита и безопасные коммуникации
Цифровые сертификаты
При использовании схемы шифрования с открытым ключом нужно распространить открытый ключ своим корреспондентам или выложить его в Сети на открытом сервере. Однако злоумышленник может назваться вашим именем и распространять открытый ключ от вашего лица. Для того чтобы определить, кто является истинным владельцем публичного ключа, нужна третья сторона, которой доверяют все корреспонденты. С этой задачей справляются центры сертификации CA (Certification Authority). Они выдают сертификаты - цифровые данные, подписанные цифровой подписью поручителя, подтверждающие соответствие открытого ключа и информации, идентифицирующей его владельца. Сертификат содержит публичный ключ, информацию о владельце ключа, название сертификационного центра, время, в течение которого сертификат действителен, и т.д. Каждая копия сертификата имеет цифровую подпись организации, выдавшей сертификат, так что каждый, кто получит сертификат, может удостовериться в его подлинности.
Сертификат является аналогом удостоверения личности. Проблема идентификации существует и при личной встрече (паспорта, водительские удостоверения и т.д.). В Сети, где мы общаемся с партнером, которого не видим, удостоверение личности еще более необходимо.
Классы сертификатов
Личные сертификаты могут быть разных классов. Для получения сертификата низшего уровня требуется минимальный уровень проверки владельца публичного ключа. При выдаче сертификата высшего уровня проверяются не только личные данные владельца, но и уровень его кредитоспособности. В этом случае сертификат может выступать аналогом "кредитной карты", подтверждающей кредитоспособность при сделках в Web.
Для получения личного сертификата пользователь обязан внести плату, которая тем больше, чем выше класс сертификата.
Подлинность сертификата подтверждается подписью сертификационного центра, выдавшего сертификат. Система сертификации может иметь многоуровневый характер (рис. 10.7.).
Для того чтобы понять, как организована выдача и использование сертификатов, можно прибегнуть к аналогии с условной схемой заверки обычной подписи.
Пусть имеется сотрудник центра сертификации Иванов, уполномоченный выдавать сертификаты, заверяющие принадлежность подписи владельцу. Рассмотрим, как может быть организована работа такой службы по почте (рис. 10.8.).
Рис. 10.8. Выдача и использование сертификатов может быть проиллюстрирована условной схемой заверки обычной подписи
Изначально у всех должен храниться корневой сертификат, в котором имеется образец подписи Иванова. Если некто Петров (рис. 10.8, пункт 1) хочет получить личный сертификат, он направляет в центр сертификации свой паспорт и в ответ получает личный сертификат, заверенный подписью Иванова (пункт 2-3). У Петрова имеется образец подписи Иванова, поэтому он верит, что сертификат пришел именно от Иванова. Петров сохраняет этот сертификат и рассылает его копии своим корреспондентам (пункт 4), одним из которых является некто Сидоров. Сидоров получает сертификат, заверенный подписью Иванова, и поэтому не сомневается, что сертификат действительный (пункт 5). После того как Сидоров получил сертификат Петрова, тот может написать Сидорову, в полной уверенности, что его не примут за кого-то еще (пункт 6). Сидоров получает письмо с подписью Петрова (пункт 7), сравнивает ее с подписью в личном сертификате Петрова и убеждается, что письмо от Петрова.
В случае с электронными подписями механизм проверки и сравнения подписей происходит автоматически, и весь сложный процесс аутентификации осуществляется прозрачно для пользователя. При этом просматривается полная аналогия с обычными подписями. В браузере (например, в Internet Explorer) уже предустановлены корневые сертификаты известных центров сертификации. Например, такого как Verisign.
Корневой сертификат содержит публичный ключ и информацию о его владельце. Когда вы получаете личный сертификат вашего корреспондента, заверенный подписью Verisign, вы можете убедиться в его подлинности и сохранить его на своем компьютере. При этом под термином "корреспондент" мы можем подразумевать не обязательно человека, а, например, сервер с которого вы хотите скачать ПО.
Во вновь полученном сертификате находится публичный ключ вашего корреспондента, который позволяет убедиться в подлинности его подписи.
Для получения личного сертификата нужно обратиться на Web-сервер издателя сертификатов, сообщить личные данные, необходимые для получения конкретного сертификата, и выбрать длину закрытого ключа. Перед отправкой формы браузер сгенерирует пару ключей (публичный и частный) и внесет их в защищенную паролем базу данных. Закрытый ключ не должен быть известен никому, в том числе и сертификационному центру. Открытый ключ отсылается вместе с другими данными в сертификационный центр для включения его в сертификат. После получения оплаты сертификационный центр выпускает сертификат и указывает URL, откуда его можно скачать. После получения сертификата браузер пользователя автоматически запускает процедуру установки.