Защищенное взаимодействие клиент/сервер. Статья обновлена в 2023 году.

Защищенное взаимодействие клиент/сервер

Защищенное взаимодействие клиент/сервер

Проблемы информационной безопасности далеко не исчерпываются отдельными вопросами разграничения доступа и межсетевым экранированием, которые чаще всего рассматриваются авторами публикаций. Настоящей статьей мы постарались исправить этот недостаток

Многоуровневая архитектура клиент/сервер

В современных информационных системах, построенных в архитектуре клиент/сервер, обычно выделяют три уровня:

• уровень представления (реализующий функции ввода и отображения данных);

• прикладной уровень (отвечающий за универсальные сервисы, а также функции, специфичные для определенной предметной области);

• уровень доступа к информационным ресурсам (выполняющий фундаментальные функции хранения и управления информационно-вычислительными ресурсами).

Связь между уровнями обеспечивает менеджер транзакций и коммуникаций. Применение технологии Интернет/Интранет внесло свои изменения в эту классическую схему, расположив на уровне представления универсальный клиент - Web-навигатор (возможно, пополненный прикладными аплетами) и возложив функции информационного концентратора (которые целесообразно объединить с обязанностями менеджера транзакций и коммуникаций) на Web-сервер. В результате получается схема, изображенная на рисунке.

Клиентские рабочие места связываются с Web-сервером и локальными, и глобальными сетями. Аппаратной платформой клиентских систем служат как полнофункциональные компьютеры (стационарные и/или мобильные), так и более простые коммуникаторы.

Серверные системы большинства организаций разнесены по нескольким производственным площадкам, соединенным, как правило, каналами связи общего пользования. Сточки зрения пользователей, такая разнесенность незаметна, поскольку они взаимодействуют с Web-сервером, однако с точки зрения защиты данное обстоятельство весьма существенно. Программная конфигурация клиентских рабочих мест не является жесткой. Ее могут динамически пополнять аплеты или иные активные агенты, получаемые посети.

В дальнейшем рассмотрим защиту описанных конфигураций клиент/сервер, то есть распределенные, разнородные, многосервисные, эволюционирующие системы.

Для них наиболее опасны сетевые угрозы, поскольку на серверах непосредственная работа пользователей не допускается. Если злоумышленник получил доступ к серверу, значит, по крайней мере, один защитный рубеж уже преодолен.

Угрозы в сетевой среде

Угрозы в сетевой среде можно разделить на следующие виды:

• прослушивание сети;

• изменение корпоративных потоков данных:

• воздействие на инфраструктурные сетевые сервисы:

• подделка сетевых пакетов:

• посылка аномальных пакетов:

• генерация аномального трафика:

• отказ от совершенных действий.

Прослушивание сети может предприниматься злоумышленниками для достижения следующих целей:

• перехват пересылаемых сведений:

• перехват аутентификационной информации:

• анализ трафика.

Изменение корпоративных потоков данных влечет за собой следующие нарушения безопасности:

• кража, переупорядочивание, дублирование информации;

• изменение и вставка собственных данных (нелегальный посредник).

Воздействие на инфраструктурные сетевые сервисы означает:

• вмешательство в работу сервиса имен;

• изменение маршрутов корпоративных потоков информации.

Подделка сетевых пакетов может принимать следующие формы:

• подделка адресов;

• перехват соединений:

• имитация работы других серверов.

Посылка аномальных пакетов и генерация аномального трафика представляют собой атаки на доступность, получившие в последнее время относительно широкое распространение. Наконец, отказ от совершенных действий - это угроза прикладного уровня, она реальна, в первую очередь, в силу распределенности систем клиент/сервер.

Сервисы безопасности и требования к ним

Требования к сервисам безопасности

Защиту систем, созданных в архитектуре клиент/сервер, наиболее целесообразно строить по той же схеме, то есть выделить набор сервисов безопасности, которыми могут пользоваться как серверы, так и клиенты. Подобный подход освобождает прикладные компоненты от несвойственных им функций, что важно для повышения надежности, упрощения и ускорения их разработки и обновления. Конечно, некоторые функции (например, разграничение доступа) могут быть реализованы в пределах прикладного компонента или операционной системы, но это, скорее, исключение, чем правило.

Совокупность сервисов безопасности призвана обеспечивать защиту от угроз, перечисленных в предыдущем разделе. Кроме того, необходимое условие в данном случае - это соблюдение архитектурной безопасности и, в частности, невозможность обхода защитных средств.

Сервисы безопасности призваны быть технологичными, допускающими простое встраивание в существующие системы и развитие в процессе эволюции систем. Чтобы достичь этого, необходимо следовать стандартам, прежде всего стандартам Интернет, как наиболее распространенным и жизнеспособным.

Сервисы безопасности должны иметь удобный, детально описанный программный интерфейс, поддержанный производителями программного обеспечения.

Кроме того, они обязательно управляемы. Это значит, что в распределенной среде поддерживаются централизованные конфигурирование и аудит, устойчивые по отношению к сетевым угрозам. Кроме того, сервисы безопасности должны интегрироваться с распространенными системами управления.

Сервисы безопасности по возможности должны быть прозрачными, вызываемые ими накладные расходы и неудобства - минимальными.

Для защиты систем клиент/сервер наиболее важными представляются следующие сервисы безопасности:

• аутентификация:

• разграничение доступа;

• межсетевое экранирование;

• шифрование;

• контроль целостности и аутентичности.

Идентификация/аутентификация

Современные средства идентификации/аутентификации обязаны удовлетворять двум условиям:

• быть устойчивыми к сетевым угрозам;

• поддерживать концепцию единого входа в сеть.

Первое требование можно выполнить, используя криптографические методы. Сегодня общепризнаны подходы, основанные на системе Kerberos или службе каталогов с сертификатами в стандарте X.509.

Единый вход в сеть - это требование прозрачности, удобства для пользователей. Если в корпоративной сети много информационных сервисов, допускающих независимое обращение, то многократная идентификация/аутентификация становится слишком обременительной.

Единый вход в сеть достигается за счет централизованного хранения данных, используемых при авторизации, то есть при определении полномочий пользователя. Авторизация - область, пограничная между управлением и информационной безопасностью, поэтому решения для аутентификации масштаба предприятия могут опираться как на управленческие, так и на чисто защитные средства.

Разграничение доступа

Разграничение доступа, вероятно, самая исследованная область информационной безопасности. "Дискреционное" и "мандатное" управление вошло во все теоретические курсы и критерии оценки. Доминирует оно и на практике.

В последние годы активно развивается так называемое ролевое управление. Суть его в том, что между пользователями и их привилегиями помещаются промежуточные сущности - роли. Для каждого пользователя одновременно могут быть активными несколько ролей, каждая из которых даст ему определенные права.

Поскольку ролей много меньше, чем пользователей и привилегий, их (ролей) использование способствует понижению сложности и, следовательно, улучшению управляемости систем. Кроме того, на основании ролевой модели можно реализовать такие важные принципы, как разделение обязанностей (это не позволяет в одиночку влиять на какойлибо в важный процесс).

Для некоторых употребительных сервисов, таких как Web, ролевое управление доступом не только естественно, но и относительно просто реализуется (в Web-случае - на основе cgiпроцедур). На наш взгляд, это направление заслуживает внимания специалистов по информационной безопасности.

Межсетевое экранирование

Межсетевое экранирование как сервис безопасности выполняет следующие функции:

• разграничивает межсетевой доступ путем фильтрации передаваемых данных;

• преобразовывает передаваемую информацию.

Межсетевые экраны фильтруют сведения на основе заранее заданной базы правил, что позволяет, по сравнению с традиционными операционными системами, более гибко решать вопросы безопасности. При комплексной фильтрации, охватывающей сетевой, транспортный и прикладной уровни, в правилах могут фигурировать сетевые адреса, количество переданных данных, операции прикладного уровня, параметры окружения (например, время) и т.п.

Преобразование передаваемой информации способно затрагивать как служебные поля пакетов, так и прикладные данные. В первом случае обычно речь идет о трансляции адресов, помогающей скрыть топологию защищаемой системы. Это уникальное свойство сервиса экранирования, позволяющее скрывать существование некоторых объектов доступа. Преобразование данных может состоять, например, в их шифровании.

Шифрование

Шифрование - важнейшее средство обеспечения конфиденциальности.

Для современных сервисов компьютерного шифрования важно, чтобы обеспечивались достаточное функциональное богатство интерфейсов и их стандартизация.

Речь идет о создании защищенных инвариантных компонентов, которые можно было бы свободно (по крайней мере, стехнической точки зрения) встраивать в существующие и перспективные конфигурации.

Обратим внимание на технические и нормативные проблемы компьютерного шифрования.

Из числа первых наиболее остро стоит вопрос производительности. Программная реализация на универсальных процессорах - это не адекватное средство. Другая техническая задача - разработка широкого спектра продуктов, предназначенных для использования во всех видах компьютерного и сетевого оборудования - от персональных коммуникаторов до мощных шлюзов.

Из нормативных проблем отметим необходимость официального признания допустимости использования зарубежных средств и алгоритмов (поскольку это предписывается, например, спецификациями IPsec).

Контроль целостности и аутентичности

В современных системах контроль целостности и аутентичности должен распространяться не только на отдельные группы данных, аппаратные или программные компоненты. Он обязан охватывать распределенные конфигурации, защищать от несанкционированной модификации потоки информации.

Сегодня существует достаточно решений для контроля целостности и аутентичности и с системной, и с сетевой направленностью (обычно контроль выполняется прозрачным для приложений образом как часть общей протокольной активности). Стандартизован программный интерфейс к этому сервису (как часть общего интерфейса службы безопасности, GSS-API).