SSL-сессия

1. Каждая сторона при передаче сообщения формирует код для последующей проверки целостности сообщения на приемной стороне (MAC) и исходное сообщение вместе с кодом шифрует на своем секретном сеансовом ключе.
2. Каждая сторона при приеме сообщения расшифровывает его и проверяет на целостность (вычисляется MAC и сверяется с кодом проверки целостности, полученным вместе с сообщением); в случае обнаружения нарушения целостности сообщения SSL-сессия закрывается.

Описанная процедура установления SSL-сессии, безусловно, не обладает полнотой изложения, однако дает представление о возможностях протокола SSL.

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

Для защиты трафика в Интернете помимо протокола SSL используется протокол S-HTTP (Secure HTTP). Этот протокол обеспечивает целостность и защиту документов, передаваемых по протоколу HTTP. В отличие от протокола SSL, расположенного между транспортным уровнем (TCP) и протоколами сеансового уровня, протокол S-HTTP находится на прикладном уровне ЭМВОС, что позволяет с его помощью защищать не транспортное соединение, а данные, передаваемые по соединению. Это повышает производительность протокола защиты информации, но ценой ограничения применимости механизма защиты только приложением HTTP.

Протокол РСТ (Private Communication Technology) обеспечивает защиту для клиент-серверных приложений. Функционально РСТ похож на SSL Так же как в SSL, при установлении сеанса связи РСТ согласует секретный ключ и симметричный алгоритм шифрования. Основное отличие от SSL в том, что РСТ отделяет аутентификацию от шифрования. Кроме того, РСТ более эффективен, поскольку использует меньшее множество сообщений и они более короткие по сравнению с SSL. РСТ поддерживает алгоритмы RSA, Diffie-Hellman, Fortezza для управления ключами; DES, RC2 и RC4 — для шифрования данных; DSA и RSA — для цифровой подписи.

РСТ реализован в Microsoft Internet Explorer версии 3 и выше, а также в Microsoft Internet Information Server версии 2 и выше.

В Интернете применяются и другие протоколы защиты информации: S/MIME — для защиты электронной почты, S/WAN — для защиты соединений (как правило, между маршрутизаторами), PGP — для защиты электронной почты, Secure Shell — для защиты сеансов telnet и передачи файлов. На этих протоколах ввиду их специального назначения,
не связанного с ЭК, мы останавливаться не будем.

Упомянем лишь протокол IPSec, предназначенный для шифрования данных на сетевом уровне (данный протокол в отличие от всех перечисленных ранее является независимым не только от приложения, но и от транспортного уровня, что, в частности, позволяет применять его для защиты данных приложений, использующих в качестве транспортного протокола UDP). IPSec состоит из трех протоколов: Authentication Header, Encapsulating Secure Payload (ESP) и Internet Key Exchange (IKE). Первый протокол обеспечивает аутентификацию источника данных, их целостность и защиту от навязывания повторных сообщений. С помощью протокола АН аутентифицируется каждый пакет, что делает программы, пытающиеся перехватить управление сеансом, неэффективными.

Протокол ESP обеспечивает шифрование потоков данных. Протокол IKE решает задачу распределения ключей на базе протокола Diffie-Hellman. В используемых протоколах в качестве алгоритма шифрования чаще всего используются DES или Triple DES, а в качестве алгоритма ЭЦП — RSA. Однако ничто не запрещает использовать в качестве алгоритма шифрования другие методы, краткий обзор которых приведен далее. В этом случае ПО отдельных компонентов ЭК должно поддерживать набор соответствующих алгоритмов шифрования.

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

Вторая конфигурация — закрытие данных внутри самой локальной сети, для чего все рабочие места и сервера сети обязаны поддерживать протокол IPSec. Сегодня большинство современных операционных систем (Windows 2000, OpenBSD, Linux, Solaris) поддерживают протокол IPSec.

Обзор методов защиты данных в Интернете не будет полным, если в нем не упомянуть о технологии межсетевых экранов (Firewall), широко используемой для защиты информации в Интернете. В ЭК межсетевые экраны, в частности, широко применяются для защиты от хакеров таких компонентов электронной коммерции, как Internet Payment Gateway, Server Based Wallet, Payment Server. Подробнее об этих компонентах будет рассказано в главе, посвященной решениям на базе протокола SET.

В основном межсетевые экраны можно разделить на три категории:

  • пакетные фильтры (фильтры без памяти);
  • фильтры сеансового уровня;
  • фильтры прикладного уровня.

Пакетные фильтры блокируют или пропускают пакеты только на основе свойств последних, к числу которых относятся IP-адреса и номера портов отправителя и адресата. Этот тип межсетевого экрана является самым простым в реализации и обслуживании и почти никак не влияет на пропускную способность сети. Однако уровень такой защиты невысок. Так, например, правила фильтрования можно обойти, используя вложение протоколов. Например, если запрещен протокол HTTP, но разрешен Telnet, то для прохождения HTTP-трафика его достаточно вложить в сеанс Telnet.

Другой пример успешного прохождения через пакетный фильтр — address spoofing (имитация адресов). Хакер может использовать в качестве адреса отправителя адрес авторизованного клиента, и тогда пакетный фильтр пропустит пакет хакера.

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

Фильтр сеансового уровня следит за подтверждением связи (квитированием) между авторизованным клиентом и внешним хостом, определяя, является ли запрашиваемый сеанс связи допустимым. Чтобы определить, является ли запрос на сеанс связи допустимым, шлюз сеансового уровня выполняет примерно следующую процедуру. Когда авторизованный клиент запрашивает некоторую услугу, шлюз принимает этот запрос, проверяя, удовлетворяет ли данный клиент базовым критериям фильтрации (например, может ли DNS-сервер определить IP-адрес клиента и ассоциированное с ним имя). Затем, действуя от имени клиента, шлюз устанавливает соединение с внешним хостом и следит за процедурой квитирования связи по протоколу TCP. Эта процедура состоит из обмена TCP-пакетами, которые помечаются флагами SYN (синхронизировать) и АСК (подтвердить).

Первый пакет сеанса TCP, помеченный флагом SYN и содержащий произвольное число, например 1000, является запросом клиента на открытие сеанса. Внешний хост, получивший этот пакет, посылает в ответ пакет, помеченный флагом АСК и содержащий число, на единицу большее, чем в принятом пакете (в нашем случае 1001), подтверждая таким образом прием пакета SYN от клиента. После этого осуществляется обратная процедура: хост посылает клиенту пакет SYN с исходным числом (например, 2000), а клиент подтверждает его получение передачей пакета АСК, содержащего число 2001. На этом процесс квитирования связи завершается.

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

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

Для копирования и перенаправления пакетов в шлюзах сеансового уровня используются специальные приложения, которые иногда называют канальными посредниками (pipe-proxy). Большинство шлюзов сеансового уровня не являются самостоятельными продуктами и поставляются в комплекте со шлюзами прикладного уровня. Примерами таких шлюзов являются Gauntlet Internet Firewall компании Trusted Information Systems, AltaVista Firewall компании DEC и ANS Interlock компании ANS.

Шлюз сеансового уровня выполняет еще одну важную функцию защиты — трансляцию адресов (Network Address Translation), при которой производится преобразование внутренних IP-адресов в один «надежный» IP-адрес. Этот адрес ассоциируется с фильтром, из которого передаются все исходящие пакеты. В результате в сети со шлюзом сеансового уровня все исходящие пакеты оказываются отправленными из этого шлюза, что исключает прямой контакт между внутренней авторизованной сетью и внешней сетью, а также скрывает от внешних пользователей архитектуру внутренней защищаемой сети. Таким образом, фильтры сеансового уровня защищают внутренние сети от нападений типа address spoofing (имитация адресов).

Наиболее известным стандартом для реализации шлюза сеансового уровня является протокол SOCKS. Версия 5 этого протокола включает в себя процедуры аутентификации взаимодействующих сторон, а также контроль организации сессии в протоколе UDP. Протокол SOCKS 5 поддерживается большинством имеющихся на рынке браузеров, а также поддерживается различными операционными системами, включая Unix, Windows, Mackintosh и другие.

Фильтры прикладного уровня обеспечивают высокую степень защиты, но за счет снижения производительности и увеличения сложности. Такие фильтры реализуются как выделенные межсетевые экраны. Сам сервер приложения находится в частной сети за межсетевым экраном. Внешние клиенты подключаются к последнему, который ведет себя как сервер приложения. Фактически, клиент не может обнаружить, что взаимодействует с межсетевым экраном, который в этом случае называется прикладным прокси-сервером (proxy application server).

С другой стороны, межсетевой экран «притворяется» клиентом и пересылает принятые клиентские запросы настоящему серверу приложений. Но прежде межсетевой экран на основе заданных правил решает вопрос о допустимости такого запроса и наличия у клиента права на запрашиваемые действия. Таким образом, межсетевой экран имеет полное представление об используемых приложениях и протоколах. Единственный недостаток прокси-сервера — снижение общей производительности.

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

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

Такие продукты, как Eagle компании Raptor Systems, ANS Interlock компании ANS, Sidewinder Security Server компании Secure Computing Corporation, Firewall-1 компании Checkpoint, включают в себя программы-посредники прикладного уровня для служб FTP, Telnet, HTTP. Утилиты этих шлюзов позволяют фильтровать определенные команды, используемые этими службами. Например, можно сконфигурировать шлюз таким образом, чтобы он предотвращал использование клиентами команды FTP Put, которая дает возможность пользователю, подключенному к FTP-серверу, записывать на него информацию.

В дополнение к фильтрации многие фильтры прикладного уровня регистрируют все выполняемые сервером действия и, что особенно важно, предупреждают администраторов о возможных нарушениях защиты (Intrusion Detection System). Например, при попытках проникновения в систему извне BorderWare Firewall Server компании Secure Computing позволяет фиксировать адреса отправителя и получателя пакетов, время, в которое эти попытки были предприняты, и используемый протокол. Продукт Black Hole компании Milkyway Networks также фиксирует все попытки проникновения в систему и предупреждает о них администратора, посылая ему сообщения по электронной почте или на пейджер.