Выбор Web-сервера
Выбор Web-сервера
Правильный Web-сервер определяет дальнейшую судьбу защищенного сайта. Выбор Web-сервера основывается на сравнении ряда критериев, таких как стоимость, ценность хранимой и обрабатываемой информации, используемая платформа, защитная функциональность сервера. Немаловажным является и то, для кого вы создаете систему. Выбор сервера, как правило, основывается на субъективном решении. Что отлично подходит для одной компании, для вас может оказаться неприемлемым. Излишняя функциональность, цена, совместимость - все эти аспекты, в первую очередь, не должны противоречить деловым интересам компании. Если в процессе принятия решения полезно оглядываться на конкурентов и на используемые ими системы, то окончательный выбор - индивидуальный и независимый поступок.
Не пожалейте времени и выясните, что именно будет публиковаться на вашем сайте, какие данные попадают под определение «ценная информация» и должны защищаться. Например, ваши клиенты могут иметь свободный доступ к информации о товарах, но не должны видеть данные о кредитных картах. Клиенты могут иметь доступ ко всем ресурсам Web-сервера, но при этом доступ к другим ресурсам сети (тем более внутренней) должен быть ограничен. Кроме того, деятельность компании может регулироваться государством, которое накладывает определенные обязательства по обеспечению безопасности. Короче говоря, только четко определив для себя все требования к безопасности, вы поймете, чего хотите от Web-сервера, а это позволит принять компетентное решение.
Web-сервер или Web-сервис
Оценивая организационные потребности, вы можете прийти к умозаключению о том, что Web-сервер вообще не нужен. Многим компаниям достаточно факта личного присутствия в Internet, а никакой ценной информации они публиковать не собираются. На таком сайте нет защищенных и частных разделов, посредством его не ведется торговля. Безопасность здесь отходит на задний план, так как любая размещенная на сайте информация по определению доступна любому посетителю. Так обстоит дело с ресторанами или гостиницами, которые размещают в сети информацию о своих услугах, но не предоставляют возможности бронирования мест. Что им защищать, зачем тратить силы и средства на обеспечение массивной безопасности? И если подобный сайт будет взломан и хакер исказит страницы, то администратору достаточно выложить на сайт резервные копии HTML-документов и картинок. Для этих целей нужно воспользоваться услугами и сервером провайдера. Этот сервер будет независим от корпоративной сети организации, и, таким образом, через него нельзя будет получить доступ к ценной деловой информации. Кроме того, отпадает надобность в администрировании: Web-мастер будет заниматься только генерацией и обновлением контента.
1. Сравнение защитных свойств Web-серверов
Средства безопасности Web-сервера не менее важны, чем межсетевые экраны или антивирусные программы. Web-сервер - основа коммерческого сайта, система, с которой, так или иначе, работает любое Web-приложение. Все это означает, что в любом случае вам необходим наиболее безопасный сервер из тех, что отвечают потребностям вашего бизнеса.
Теперь, после того как вы определили для себя платформу, на которой будет работать сервер, сумму, которую согласны заплатить за него, и требования к безопасности, пришло время сравнить защитные свойства различных продуктов. Без сомнения, операционная система и цена сервера - важные, но не определяющие параметры при выборе системы.
Обратите особое внимание на некоторые функциональные возможности: аутентификацию, механизмы SET (Secure Electronic Transaction Protocol -протокол проведения защищенных транзакций), управление доступом и набором правил пользователей, а также поддержку CGI-приложений.
Рекомендуемые материалы
Аутентификация
Аутентификация обеспечивает проверку подлинности пользователя, сервиса или приложения. Другими словами, с ее помощью сервер идентифицирует пользователя, получающего доступ к ресурсам. С помощью аутентификации можно проверить подлинность сообщения или целостность устанавливаемого ПО. Без защитных аутентификационных механизмов пользователь может получить неконтролируемый доступ к разным частям системы или внедриться в защищенную локальную сеть. Обычно аутентификация осуществляется ОС, на которой установлен Web-сервер, но иногда подобные механизмы используются самим сервером или смежными программами - Web-приложениями. Аутентификация может проводиться несколькими способами, в числе которых:
■ Пароли.
■ Secure Sockets Layer (SSL).
■ Механизм NTLM, используемый в Windows-системах (Challenge/Re
sponse - симметричная защита).
■ Цифровые сертификаты и подписи.
■ Смарт-карты.
■ Биометрические устройства контроля доступа.
■ Серверные закладки (cookies).
В следующих разделах мы посмотрим на каждый из этих механизмов и выясним, какие серверы поддерживают работу с ними.
Пароли
Парольная защита наиболее широко используется в современных Web-системах и сетях. Введенный пароль сопоставляется системой с паролем, хранимым на сервере и соответствующим учетной записи пользователя, получающего в данный момент доступ к системе. Если пароль соответствует информации учетной записи, пользователь получает доступ, регламентируемый этой учетной записью. В большинстве случаев пароль соответствует имени пользователя, так что аутентификация заключается в проверке пары «имя пользователя-пароль».
Существует несколько вариантов реализации парольной аутентификации. Обычно метод проверки зависит от используемой ОС и Web-сервера:
■ Анонимный доступ.
■ Простая аутентификация с символьными паролями.
■ Простая аутентификация, шифруемая на SSL-уровне.
■ Механизм Challenge/Response Windows-систем.
Анонимные пользователи работают, как пользователи гостевой учетной записи. Обычно анонимная аутентификация используется для беспрепятственного доступа к публичным разделам Web-сайта. При этом поддерживается практически любой тип клиентской программы или браузера пользователя.
Анонимный пользователь не вводит свои имя и пароль, но это не означает, что вы должны предоставлять ему свободу действий. При конфигурации сервера необходимо установить ограничения на права доступа для анонимных пользователей. Отдельные службы, среди которых и Microsoft IIS, no умолчанию предоставляют анонимным пользователям возможность просмотра всего содержимого сервера, так что такие серверы необходимо предварительно настроить.
Простая аутентификация с символьными паролями - это обычный нешифрованный способ аутентификации. Как правило, пользователь должен ввести имя и пароль в диалоговом окне. Подавляющее большинство клиентских программ поддерживают такой способ аутентификации.
SSL-аутентификация сравнима с простой аутентификацией, но имеет отличительную особенность - трафик между клиентом и сервером шифруется, так что пароль и имя пользователя передаются в зашифрованном виде. Это предотвращает от перехвата пароля третьими лицами. SSL - основной протокол обмена шифрованной информацией в Internet, разработанный компанией Novell и использующий ключи длиной до 128 бит. Сейчас многие браузеры имеют встроенную поддержку SSL 2.0 и SSL 3.0. SSL-сессия инициируется клиентской программой автоматически в момент получения публичного ключа. Браузер с помощью этого ключа отсылает серверу свой ключ, и начинается шифрованный обмен данными. Обычно такая аутентификация используется на сайтах, имеющих разделы для зарегистрированных пользователей. Кроме того, SSL принято задействовать при передаче номеров кредитных карт и прочей «чувствительной» информации.
Windows Challenge/Response - это метод аутентификации, используемый серверами IIS 4.0 и IIS 5.0 на платформах Windows NT или Windows 2000. Его иногда называют интегрированной Windows-аутентификацией. При этом способе пользователь обычно не вводит пароль в диалоговом окне.
Данные о пользователе сервер получает от системы, на которой установлена клиентская программа. При этом используется технология хэширования. Если система пользователя при регистрации в домене не отдает контроллеру данные, способные авторизовать этого пользователя, появляется диалоговое окно, в котором вводятся имя и пароль, и процесс авторизации повторяется.
Этот метод аутентификации требует установки сервера Windows NT или Windows 2000. Кроме того, пользователь должен располагать браузером Internet Explorer версии 2.0 или выше. Недостатком можно считать то, что удаленные пользователи, в большинстве случаев, не смогут работать с сервером, если их сеть защищена proxy-сервером или экраном с NAT-преобразованием. В этом случае IP-адрес клиента будет заменен экраном и сервер Windows 2000 не получит соответствия адреса с данными хэша. Тем не менее, если в вашей компании используются Windows-системы, то такая аутентификация как нельзя лучше подойдет для внутрикорпоративного сайта.
Цифровые подписи и сертификаты
Использование цифровых сертификатов или подписей представляет собой другой метод аутентификации. Он нужен для того, чтобы подтвердить подлинность пересылаемых файлов или сообщений. При этом удостоверяется, что файл не был несанкционированно изменен и посылается именно тем пользователем или организацией, от которых эта передача ожидается. Цифровая подпись представляет собой шифрованный дайджест передаваемой информации. При получении он расшифровывается и сравнивается с полученным текстом. Если результат сравнения положительный, то сообщение может восприниматься получателем как подлинное. Вместе с цифровой подписью или вместо нее может быть задействован механизм сертифицирования.
Цифровые сертификаты - еще один способ подтверждения подлинности передаваемой информации. Такие сертификаты, например, нужны для проверки того, что передаваемый файл принадлежит авторизированному распространителю программы или создателю документа. Сертификат выпускается центром авторизации (certificate authority - СА) и основан на информации, предъявляемой владельцем сертификата. Кроме того, существует публичный ключ, заверенный центром авторизации и сопоставляемый сертификатам. При отправке файла получателю отсылается и сертификат вместе с шифрованным сообщением, которое подтверждает, что отправитель является авторизированным владельцем этого сертификата. Получатель использует публичный ключ центра авторизации, который является ключом дешифрации публичного ключа отправителя. Публичный ключ отправителя, в свою очередь, используется для расшифровки передаваемого сообщения.
Цифровые сертификаты выпускаются многими Internet-компаниями, но могут генерироваться и вашим собственным сервером (который может быть сертифицирован известным СА). Это позволяет проверить подлинность файлов, распространяемых посредством вашего Web-сервера. Некоторые Web-серверы имеют встроенную поддержку цифровых сертификатов. Позже, в этой главе, мы отдельно коснемся вопросов, связанных с цифровыми сертификатами и подписями.
Смарт-карты
Один из вариантов сертифицирования используется в стандарте Fortezza. При этом 56-битный публичный ключ и сертификат сохраняются на смарт-карте. Смарт-карта - это пластиковая карта со встроенным микропроцессором, которая может использоваться для хранения различных данных. Карта вставляется в специальный слот, где эта информация считывается и передается приложению. К сожалению, такой способ пока еще недостаточно эффективен с точки зрения безопасности и приемлемости. Fortezza может использоваться только на некоторых платформах; необходим специальный слот - считыватель смарт-карт. Кроме того, сертификат и публичный ключ расположены на одной карте, так что, если она будет похищена, вам придется приобретать другой сертификат. Однако смарт-карта имеет несколько уровней защиты, в частности PIN-код, без знания которого злоумышленник не сможет получить доступ к данным, хранящимся на карте.
Биометрическая аутентификация
Биометрическая аутентификация - современный способ проверки подлинности. Пользователь авторизируется в системе на основании проверки его биофизических характеристик, таких как структура сетчатки глаза, отпечаток пальца, голосовой фрагмент и т.п. В отличие от других методов аутентификации, здесь практически невозможно обойти систему защиты - подобные характеристики однозначно идентифицируют пользователя. Однако биометрия подразумевает наличие дорогостоящего оборудования и вряд ли может использоваться в Internet. Но, если такая аутентификация не подходит для посетителей коммерческого сайта, она может применяться для идентификации системных администраторов и Web-мастеров в локальной сети.
Cookies
Cookies (серверные закладки) посылаются сервером и сохраняются на компьютере пользователя - посетителя сайта. Когда этот пользователь вновь посещает сервер (или переходит на другую страницу Web-сайта), данные cookie передаются этому серверу. Когда пользователь посещает сайт, ему может быть предложено ввести свои имя, пароль, адрес и т.п. Вся эта информация сохранятся в закладке, и при последующих посещениях пользователь автоматически передает ее серверу, а не заполняет еще раз форму регистрации. Закладки могут использоваться и в Internet-магазинах, где cookie отражает содержимое корзины покупателя, его бонусы или, например, способ доставки товара.
Механизм закладок может быть выключен в браузере, так что они не будут сохраняться на компьютере пользователя. Это иногда достаточно актуально, потому что cookie ненадежны с точки зрения безопасности. Злоумышленник может украсть закладку и воспользоваться ее содержимым. Или, что тоже возможно, серверу вместе с закладкой могут пересылаться не только те данные, которые пользователь хотел бы передать серверу (например, сервер может получить ваш адрес электронной почты, и вы автоматически попадете в список рассылки бесполезного рекламного буклета). К сожалению, многие Web-сайты, ориентированные на технологию серверных закладок, не способны корректно работать с браузерами, где такая функция отключена пользователем.
Использование протокола SET
SET - открытый стандарт и протокол, который разработан компаниями Microsoft, Netscape, Visa и MasterCard. Он был создан как средство борьбы с мошенничеством при использовании кредитных карт в Internet и предназначен для обработки online-транзакций. При этом каждая сторона, участвующая в транзакции (заказчик, эмитент кредитной карточки, продавец и банк продавца), идентифицируется посредством сертификата.
Протокол SET разделяет элементы транзакции таким образом, что ни одна из сторон (за исключением владельца карты) не имеет доступа ко всей информации о производимой покупке. Продавец электронного магазина располагает данными о приобретаемом товаре и о результатах проверки кредитной карты, но не имеет информации о методе оплаты. Эмитент кредитной карты располагает данными о сумме покупки, но ничего не знает о самом товаре, который был куплен за эти деньги.
SET имеет свои недостатки, в основном заключающиеся в том, что не все браузеры и серверные приложения поддерживают соответствующий протокол. Отдельные электронные магазины требуют предъявить SET-сертифи-кат. Кроме того, браузер покупателя должен иметь встроенную функцию электронного кошелька SET, который используется при совершении покупки. Сайты электронной торговли и сайты банков, использующие SET, обычно предоставляют все необходимое ПО.
Установка прав доступа
Многие серверы имеют встроенные функции управления правами доступа и, кроме того, могут взаимодействовать с ОС для управления доступом к объектам файловой системы. Это позволяет дифференцировать права доступа различных пользователей и оградить от несанкционированного доступа к некоторым файлам и каталогам. Например, необходимо заботится о том, чтобы анонимные пользователи имели возможность просматривать HTML-документы, но не изменять файлы.
Ряд Web-серверов имеет функции сокрытия частей Web-страниц согласно ограничениям, которые накладываются на доступ того или иного пользователя или группы пользователей. Это особенно полезно, если вы хотите, чтобы определенная информация на страницах вашего сайта была доступна только для зарегистрированных пользователей.
Использование CGI-приложений
Поддержка CGI - еще одна функция, которую можно встретить практически на любом Web-сервере. CGI используется для передачи запросов приложению, после чего данные отображаются браузером пользователя в форме HTML-документа. CGI-приложения обычно служат для интерактивной обработки данных HTML-форм. CGI, как и другие Web-механизмы, имеет свои недостатки, но об этом мы поговорим позже.
Обзор функций безопасности
Теперь, когда мы рассмотрели ряд возможностей Web-серверов, давайте коротко ознакомимся с особенностями функций безопасности наиболее известных Web-серверов, представленных на современном рынке (табл. 3.2).
Сервер AOL
AOLSERVER - Web-сервер, созданный компанией America Online для крупномасштабных Web-сайтов. AOL использует этот сервер как платформу собственного Web-сайта, что должно показывать, насколько сервер надежен и что он может бесперебойно обрабатывать огромное количество обращений. Кроме того, сервер может расширять свою функциональность «на лету» и наделен достаточно серьезной системой безопасности. Он поддерживает протоколы S-HTTP и SSL и позволяет устанавливать правила защиты, основанные на строках URL. Существует возможность ограничения доступа по имени домена, IP-адресу, имени пользователя или группы пользователей. AOLSERVER позволяет конфигурировать группы пользователей и может изменять списки управления доступом без перезапуска служб. AOLSERVER позволяет устанавливать иерархические права доступа для документов справочника системы (directory-based documents).
Web-сервер Apache
У Apache длинная история, и с 1996 года он является самым распространенным Web-сервером в Internet. Одна из причин такой популярности - бесплатное распространение. Web-сервер Apache представляет собой результат действия проекта Apache, который поддерживается независимыми разработчиками, составляющими группу проекта. Исследователи вносят свои предложения по изменениям и модернизации сервера, которые затем должны быть одобрены большинством членов группы (Core Group). Некоторые большие компании используют именно сервер Apache, из чего следует, что его достоинства не ограничиваются отсутствием цены.
Исходные тексты Apache открыты, что позволяет Web-мастерам беспрепятственно изучать внутреннюю структуру и функциональные возможности сервера. Эта информация особенно полезна для программистов, создающих Web-приложения и интегрирующих базы данных. Расширения Apache в основном выполняются на языке Perl (Perl-интерпретатор интегрирован в сервер). Так как исходные тексты Apache доступны в открытом виде, администраторы сервера могут анализировать код и находить скрытые уязвимости.
Другой важный фактор популярности Apache - число поддерживаемых сервером платформ. Из табл. 3.1 видно, что версия 1.3 может работать на следующих платформах: Novell NetWare 5, Solaris, OS/2, Macintosh, UNIXWare, HEWLETT-PACKARD MPE/IX, TPF IBM, NetBSD, Digital UNIX, BSDI, AIX, SCO, HPUX, Be OS, Linux, FreeBSD, IRIX, Windows 9x, Windows NT и Windows 2000.
Главный недостаток Apache состоит в «недружественности» пользовательского интерфейса, а точнее, в его отсутствии. Незнакомые с Apache Web-мастера легко могут допустить ошибку, способную привести к компрометации системы. Apache не имеет графического пользовательского интерфейса, и все сопровождение осуществляется посредством командной строки и вызова скриптов.
IBM HTTP Server
"25 - Элементы биофизики слуха" - тут тоже много полезного для Вас.
IBM HTTP-сервер распространяется в двух вариантах: одна версия основана на сервере Apache, другая - на Lotus Domino Go Webserver. Функции Lotus Domino Go Webserver были включены в IBM HTTP-сервер.
Этот сервер служит платформой для интеграции других сетевых приложений компании IBM: модули работы с протоколами SET, SSL и S-HTTP или сертификационный сервер. Сервер позволяет устанавливать правила защиты, основанные на строках URL. Существует возможность ограничения доступа по имени домена, IP-адресу, имени пользователя или группы пользователей. Эти правила позволяют ограничивать просмотр отдельных элементов документа, доступных только для некоторых пользователей или групп. Сервер позволяет конфигурировать группы пользователей и изменять списки управления доступом без перезапуска служб. IBM HTTP-сервер работает с иерархическими правами доступа к документам справочника системы (directory-based documents) и имеет функции разграничения доступа к файлам и каталогам.
NetWare Enterprise Web Server
NetWare Enterprise Web Server предназначен для работы только в сетях Novell NetWare. Многие компании используют Netware как составную часть смешанной сети (с серверами типа Windows NT и Windows 2000). Эти предприятия выигрывают от использования Novell Enterprise Web Server и инструментальных средств, подключаемых к серверу, как-то: сервер Web-приложений Websphere компании IBM, Novell Firewall, сертификационный сервер и т.д. Все эти инструменты, как и другие системы Novell, давно доказали свою надежность и безопасность.
Несмотря на то что NetWare Enterprise Web Server работает только на базе Netware, система имеет расширенные механизмы защиты. Enterprise Web-сервер интегрирован со справочником Novell Directory Services, что позволяет управлять доступом к файлам, устанавливая защиту с помощью инструментов системы NetWare Administrator. Те, кто знаком с Novell NetWare, знают все преимущества этого средства, упрощающего администрирование сайта. Другая важная функция сервера - поддержка SSL-авторизации. Кроме того, Web-сервер Novell работает со стандартом RSA, сервисами Secure Authentication, смарт-картами и протоколом сертификации X. 509v3. Все это говорит о том, что интеграция Enterprise Web-сервера с Novell Netware -большой выигрыш с точки зрения безопасности.
Enterprise Web-сервер включен в состав ОС Netware 5.1. Эта версия Netware, кроме того, поставляется с WebSphere Studio. WebSphere - сервер приложений на базе Java, a WebSphere Studio - набор инструментальных средств для разработки Web-приложений. В дополнение к этим системам ОС Netware снабжена средствами для обеспечения доступа к публикациям, в числе которых Netware FTP-сервер, NetWare News Server (для создания и поддержания новостных групп), Netware Search Server (поисковый сервер, индексирующий содержимое сайта и ускоряющий поиск необходимой информации).