На главную страницу
На главную страницу Карта сайта Поиск по сайту Обратная связь
На страницы учебного центра
Организационно-правовые вопросы
Экономическая безопасность
Безопасность КИС
Защита речевой информации
Техническая защита объектов
Сертификация и лицензирование
Кадровая безопасность
Преступления в сфере высоких технологий
Нормативные документы
Полезные ресурсы

Создание защищенного канала передачи данных между распределенными информационными ресурсами предприятия

 

А. А. Теренин, к. т. н.,

специалист по обеспечению качества ИТ и ПО

«Дойче Банк Москва»

 

 

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

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

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

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

  • канал передачи данных должен быть постоянным,

  • данные, передаваемые по такому каналу, должны сохранять целостность, достоверность и конфиденциальность.

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

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

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

Под требованием достоверности подразумевается обеспечение авторизованного доступа, аутентификации сторон взаимодействия и обеспечение недопустимости отказа от авторства и факта передачи данных.

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

Как обеспечить подобную защиту канала передачи данных?

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

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

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

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

Рассмотрим подробно, как можно создавать защищенные каналы передачи данных через Интернет.

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

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

Защита информации при ее передаче по открытым каналам связи с помощью асимметричного шифрования рассмотрена в [2], а проблемы и пути их решения при использовании электронной цифровой подписи – в [3].

В данной статье подробно рассматриваются методы обеспечения информационной безопасности при передаче секретных данных по открытым каналам связи.

Для защиты информации, передаваемой по общедоступным каналам связи, применяется множество средств защиты: данные шифруются, пакеты снабжаются дополнительной управляющей информацией, используется протокол обмена данными с повышенной степенью защищенности [4, 5].

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

Из дополнительных требований к реализуемому защитному каналу передачи данных можно выделить:

  • идентификацию и аутентификацию взаимодействующих сторон;

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

  • контроль за целостностью передаваемых данных, маршрутом передачи информации и уровнем защиты канала связи;

  • конфигурирование и проверку качества канала связи;

  • компрессию передаваемой информации;

  • обнаружение и коррекцию ошибок при передаче данных по каналам связи;

  • аудит и регистрацию событий;

  • автоматическое восстановление работоспособности.

Построим модель нарушителя и модель объекта защиты (рис. 1).

 

Алгоритм установления соединения

Для реализации защищенного канала передачи данных используется клиент-серверная модель взаимодействия.

Рассматриваются две стороны: сервер и клиент – рабочая станция, которая хочет установить соединение с сервером для дальнейшей работы с ним.

Изначально существуют только два ключа: открытый и закрытый ключи сервера ( ОКС и ЗКС ), причем открытый ключ сервера известен всем и передается клиенту при его обращении к серверу. Закрытый ключ сервера в строжайшей секретности хранится на сервере.

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

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

Необходимо предусмотреть возможность подсоединения злоумышленника в любой момент времени и повторять процедуру «рукопожатия» (handshake) через определенные временные интервалы, продолжительность которых необходимо установить минимальной от допустимой.

Исходя из предположения, что ЗКС и ОКС уже созданы, причем ОКС известен всем, а ЗКС – только серверу, мы получаем следующий алгоритм:

1. Клиент посылает серверу запрос на соединение.

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

3. Клиент генерирует свои ключи (открытый и закрытый) для работы с сервером ( ОКК и ЗКК ).

4. Клиент генерирует ключ сессии ( КС ) (симметричный ключ шифрования сообщений).

5. Клиент передает серверу следующие компоненты:

  • открытый ключ клиента ( ОКК );

  • ключ сессии;

  • случайное сообщение (назовем его Х ), зашифрованное открытым ключом сервера по алгоритму RSA .

6. Сервер обрабатывает полученное сообщение и посылает в ответ сообщение Х , зашифрованное ключом сессии (симметричное шифрование) + зашифрованное открытым ключом клиента (асимметричное шифрование, например алгоритм RSA ) + подписанное закрытым ключом сервера ( RSA, DSA, ГОСТ ) (то есть если мы на стороне клиента после дешифрования получим опять Х, то это значит, что:

  • сообщение пришло от сервера (подпись – ЗКС );

  • сервер принял наш ОКК (и зашифровал нашим ключом);

  • сервер принял КС (зашифровал этим ключом сообщение).

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

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

Схема алгоритма установления соединения приведена на рис. 2.

Алгоритм подготовки сообщения к отправке в защищенный канал

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

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

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

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

Алгоритм может быть реализован следующим образом (рис. 3):

  • исходный текст сжимается с помощью алгоритма ZIP;

  • параллельно этому процессу происходит подпись исходного текста открытым ключом получателя;

  • сжатый текст шифруется симметричным ключом сессии, этот ключ тоже есть на приемной стороне;

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

  • сообщение готово к отправлению и может быть передано по каналу связи.

Алгоритм обработки сообщения при приеме из защищенного канала

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

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

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

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

Алгоритм обработки сообщения при приеме из защищенного канала (рис. 4):

  • из полученного зашифрованного, сжатого и подписанного сообщения выделяется цифровая подпись;

  • текст без цифровой подписи дешифруется ключом сессии;

  • декодированный текст проходит процедуру разархивирования с использованием, например, алгоритма ZIP;

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

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

Алгоритм подписи сообщения

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

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

Для нахождения значения хэшфункции можно применять известные алгоритмы хэширования ( SHA, MD4, MD5, ГОСТ и др.), которые позволяют получить на выходе блок данных фиксированной длины. Именно с этим блоком и будет работать алгоритм цифровой подписи. В качестве алгоритма электронной цифровой подписи можно использовать алгоритмы DSA, RSA, Эль-Гамаля и др.

Опишем алгоритм подписи сообщения по пунктам (рис. 5):

  • на вход общего алгоритма поступает исходный текст любой длины;

  • вычисляется значение хэш-функции для данного текста;

  • полученное отображение текста фиксированной длины поступает в следующий блок алгоритмической обработки;

  • также на вход этого блока (вычисление цифровой подписи) поступает секретный (закрытый) ключ, который используется для нахождения ЭЦП ;

  • используя поступившие данные, вычисляется значение ЭЦП всего текста;

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

Алгоритм проверки подписи

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

На выходе алгоритма мы имеем результат проверки цифровой подписи, который может иметь только два значения: «подпись соответствует оригиналу, текст подлинный» либо «подпись текста некорректна, целостность, подлинность или авторство сообщения вызывает подозрение». Значение на выходе данного алгоритма можно затем использовать дальше в системе поддержки защищенного канала.

Опишем алгоритм проверки подписи сообщения по пунктам (рис. 6):

  • на вход общего алгоритма поступает исходный текст любой длины и цифровая подпись этого текста фиксированной длины;

  • вычисляется значение хэш-функции от данного текста;

  • полученное отображение текста фиксированной длины поступает в следующий блок алгоритмической обработки;

  • в этот же блок направляется цифровая подпись, которая пришла на вход общего алгоритма;

  • также на вход этого блока (вычисление цифровой подписи) поступает секретный (закрытый) ключ, который используется для нахождения ЭЦП ;

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

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

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

Возможные атаки на предложенную схему реализации защищенного канала связи

Рассмотрим наиболее распространенные примеры возможных атак на защищенный канал передачи данных [6].

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

Мы доверяем себе, а также программному обеспечению, установленному на рабочей станции.

При использовании для установления связи с сервером браузера (Internet Explorer или Netscape Navigator) мы доверяем этому браузеру и доверяем его проверке сертификатов посещаемых сайтов.

После проверки подписи на апплете можно доверять ОКС , который вшит в загружаемые с сервера данные или программы (апплеты).

Обладая ОКС , которому мы доверяем, можно приступить к дальнейшей работе с сервером.

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

Возможные атаки.

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

2. После передачи с сервера ОКС и перед отправлением клиентом в ответ своих ОКК и КС . В случае если при их генерации ( ОКК , ЗКК и КС ) используется слабый генератор случайных чисел, можно попытаться предсказать все три указанных параметра или какой-нибудь один из них.

Для отражения данной атаки необходимо генерировать случайные числа, отвечающие ряду требований. Нельзя, например, использовать для генерации случайных чисел таймер, так как злоумышленник, перехватив первое сообщение ( ОКС от сервера), может установить время отправления пакета с точностью до секунд. Если таймер срабатывает каждую миллисекунду, то для вскрытия необходим полный перебор всего лишь 60 000 значений (60 с _ 1000 мс).

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

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

4. При передаче от сервера к клиенту некоторого тестового сообщения Х , зашифрованного КС и ОКК и подписанного ЗКС . Чтобы расшифровать перехваченное сообщение, надо знать и ОКК , и КС , которые будут известны в случае реализации одной из приведенных выше атак после того, как противнику стал известен ЗКС .

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

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

Итак, мы рассмотрели атаки, возможные на этапе реализации процедуры «рукопожатия» (HandShake). Опишем атаки, которые могут осуществляться в процессе передачи данных по нашему каналу.

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

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

Из описанного следует, что в любом случае злоумышленник может применить только атаку на основе полного перебора всех возможных значений ключа. Для усиления устойчивости к данному типу атак необходимо расширять диапазон значений КС . При использовании ключа длиной 1024 бита диапазон возможных значений возрастает до 2 1024.

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

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

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

Заключение

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

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

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

ЛИТЕРАТУРА

1. Медведовский И. Д., Семьянов П. В., Платонов В. В. Атака на Интернет. – СПб.: Изд-во «ДМК» 1999. – 336 с.

2. Карве А. Инфраструктура с открытыми ключами. LAN/Журнал сетевых решений (Russian edition), 8, 1997.

3. Мельников Ю. Н. Электронная цифровая подпись. Возможности защиты. Конфидент № 4 (6), 1995, с. 35–47.

4. Теренин А. А., Мельников Ю. Н. Создание защищенного канала в сети. Материалы семинара «Информационная безопасность – юг России», Таганрог, 28–30 июня 2000.

5. Теренин А. А. Разработка алгоритмов для создания защищенного канала в открытой сети. Автоматизация и современные технологии. – Изд-во «Машиностроение», № 6, 2001, с. 5–12.

6. Теренин А. А. Анализ возможных атак на защищенный канал в открытой сети, созданный программным способом. Материалы XXII Конференции молодых ученых механико-математического факультета МГУ, М, 17–22 апреля 2000.

 

Защита информации. INSIDE № 3’2005

| Начало | Новости | О проекте | О ЦПР | Правовая информация | Сотрудничество | Наши партнеры | Координаты |

Copyright © 2004-2016 ЧОУ ДПО «ЦПР». Все права защищены
info@cprspb.ru