Протоколы SSL/TLS широко используется в ip-сетях там, где нужно обеспечить безопасность передаваемых данных. Они обеспечивают три основных сервиса: конфиденциальность данных (секретность), целостность данных (защита от подмены или искажения), аутентификация сервера и опционально клиента. Но при неправильном их использовании они не дают эффекта т. к. не обеспечивается аутентификация сервера, вследствие этого данные могут быть перехвачены и/или искажены злоумышленником. Если у него есть возможность вклинится в канал связи между клиентом и сервером (а такая возможность часто есть), то клиент может установить шифрованный канал до сервера злоумышленника, который таким образом сможет как читать, так и изменять закрытые данные. Упрощенная схема такого нападения показана на рис. 1.
В идеале сертификат (в формате x.509) сервера должен быть подписан одним из общеизвестных CA (Certificate Authority, центр сертификации). Большинство клиентских приложений (веб-браузеры, почтовые клиенты) поставляются с набором сертификатов этих CA, что позволяет им при подключении к серверу проверять действительность сертификата. Но такой сертификат стоит денег и его получение требует времени, поэтому очень часто используются сертификаты, которые подписаны сами собой. В инете много руководств о том, как создать самоподписанный сертификат, но нигде не предостерегают о том, что для обеспечения работы SSL/TLS при этом необходимы дополнительные действия.
Порядок работы с самоподписанными сертификатом может быть таким:
openssl x509 -inform PEM -sha1 -fingerprint -noout -in server.crt
.
1. Когда вы заходите на сайт https://inet.icn.bmstu.ru Браузер показывает предупреждение, что подлинность этот сертификата подписан неизвестным центром сертификации, и нужно просмотреть содержимое сертификата:
Нажмем кнопку "View Certificate"2. Далее будет сообщение о том, что центр сертификации (CA) подписавший этот сертификат не входит в число доверенных. Чтобы его включить в их число необходимо установить сертификат:
Нажмем кнопку "Install Certificate..."3. Потом два раза жмем кнопку "Next", затем кнопку "Finish"
4. Появится предупреждение:
inet.icn.bmstu.ru
. Значение SHA1 хэша сертификата должно быть именно таким: C3500115 808286A3 093CFD0B 80F4275B FC5C0B2D. Если вы видите другое значение, то возможно Ваш трафик уже перехватывается злоумышленником. Лучше если это значение будет распечатано или записано на бумаге, поскольку то, что вы видите через web, так же может быть подменено, если Ваш сетевой трафик перехватывается.
5. Если после импорта сертификата закрыть IE, запустить заново и снова зайти на https://inet.icn.bmstu.ru то никакого окошка с предупреждением как на первом рисунке уже быть не должно. Если в строке статуса щелкнуть по иконке в виде замка, то должно появиться окошко: