|
Что такое SSL Протокол SSL (secure socket layer) был разработан фирмой Netscape, как протокол обеспечивающий защиту данных между сервисными протоколами (такими как HTTP, NNTP, FTP и т.д.) и транспортными протоколами (TCP/IP). Не секрет, что можно без особых технических ухищрений просматривать данные, которыми обмениваются между собой клиенты и серверы. Был даже придуман специальный термин для этого - sniffer. А в связи с увеличением объема использования Интернета в коммерческих целях, неизбежно вставал вопрос о защите передаваемых данных. И пользователи не очень были бы рады, если номер их кредитной карточки, был бы перехвачен, каким-нибудь предприимчивым хакером по дороге к виртуальному магазину. И, в общем, появление такого протокола как SSL было вполне закономерным явлением. С одной стороны, остаются все возможности сервисных протоколов (для программ-серверов), плюс к этому все данные передаются в зашифрованном виде. И раcкодировать их довольно трудно. Опустим здесь возможности взлома SSL (они, безусловно, есть, но это отдельная тема для большой статьи). Следует отметить, что SSL не только обеспечивает защиту данных в Интернете, но так же производит опознание сервера и клиента (server/client authentication). В данный момент протокол SSL принят W3 консорциумом (W3 Consortium) на рассмотрение, как основной защитный протокол для клиентов и серверов (WWW browsers and servers) в сети Интернет.
Алгоритм работы SSL основан на принципе публичных ключей. Этот
принцип построен на использовании пары асимметричных ключей (публичном и приватном) для
кодирования/декодирования информации. Публичный ключ раздается всем желающим. C его помощью шифруются
необходимые данные, которые можно дешифровать только с помощью приватного ключа. Отходя от темы,
можно сказать, что так оно выглядит в теории. На практике все несколько менее строго. Из-за юридических
ограничений на длину ключей, они поддаются взлому, хотя для этого и необходимы достаточно большие
вычислительные мощности.
Теперь рассмотрим, каким образом все-таки работает SSL.
Данная часть базируется на документе расположенном по адресу
http://home.netscape.com/info/security-doc.html
Представьте себе, что есть два человека, которые общаются посредством
Интернета и, соответственно, не видят друг друга и лишены возможности, узнать о том, кто же его абонент.
Допустим, их имена Алиса и Боб и Алисе надо узнать, действительно она разговаривает с Бобом или нет. В этом
случае диалог может выглядеть следующим образом:
Теперь закономерно встает вопрос о том, каким образом распространять свои публичные ключи. Для этого (и не только) была придумана специальная форма - сертификат (certificate). Сертификат состоит из следующих частей:
Теперь рассмотрим, каким образом происходит обмен данными в Интернете. Воспользуемся все теми же действующими лицами.
Теперь несколько слов о реализации SSL. Наиболее распространенным
пакетом программ для поддержки SSL является SSLeay. Последняя версия (SSLeay v. 0.8.0* ) поддерживает SSLv3.
Эта версия доступна в исходных текстах и без особых проблем устанавливается под UNIX (я не пробовал ставить
SSLeay под операционные системы фирмы Microsoft ** ). Этот пакет предназначен для создания и управления различного
рода сертификатами. Также в его состав входит и библиотека для поддержки SSL различными программами. Эта
библиотека необходима, например, для модуля SSL в распространенном HTTP сервере Apache. Если Вы устанавливаете
версию вне США, то особых проблем с алгоритмом RSA быть не должно. Но только накладывается ограничение на
длину ключа в 40 бит (возможно, на данный момент это ограничение снято, но на пакете SSLeay это никоим образом
не отразилось. Действует это ограничение и на другой пакет от фирмы Netscape - SSLRef). А вот если компьютер
с SSLeay находится на территории США, то за использование алгоритма RSA необходимо заплатить какие-то деньги.
Но об этом нужно разговаривать с самой фирмой RSA Data Security Inc. Я точно не знаю, но по слухам необходимо
регистрировать сертификаты в ФСБ. Если кто обладает такой информацией, всегда буду рад узнать.
* Эта версия документа могла уже устареть. ** В броузерах Netscape Navigator и Microsoft Internet Explorer версий 4 и старше есть поддержка SSL. Подводя итоги, можно сказать, что SSL просто необходим в сфере коммерческого Интернета, особенно там, где нужно обеспечить конфиденциальность данных. На самом деле решение о том насколько необходим такой канал, должен принимать администратор Web-узла. По своему опыту могу сказать, что особо ощутимой нагрузки на сервер при использовании SSL, не наблюдается. |