1. Система CORPO
2. Вопросы безопасности
Заключение
Литература

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

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

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

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

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

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

При разработке корпоративного хранилища данных для системы "Галактика" было решено пожертвовать постоянной целостностью и добиться за счет режима offline более высокой скорости работы при меньших, чем в случае с online, затратах. Для этой цели была разработана система CORPO, осуществляющая обмен данными между разными площадками по схеме offline, где в качестве канала передачи файлов выступает обычная электронная почта или передача файлов, определяемая пользователем (дискеты, FTP) (рис. 1). Фактически, путем настройки в CORPO формируется собственная сеть передачи изменений, функционирующая на любом канале передачи сообщений.

Picture 1.

Рисунок 1.
Пример одной площадки системы "Галактика"

1. Система CORPO

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

Picture 2. (1x1)

Рисунок 2.
Пример топологии сети передачи данных CORPO

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

2. Вопросы безопасности

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

Система журналирования JOURNAL дает возможность контролировать и просматривать изменения, внесенные каждым пользователем. Если данные оказались сильно испорчены (неправильными действиями пользователя или злоумышленника, в случае сбоя и т.д.), их можно восстановить с помощью специальной программы REPAIR. Таким образом обеспечивается безопасность на уровне рабочих мест. Нарушения, совершаемые в обход средств контроля и восстановления системы "Галактика", предотвращаются административными методами (ограничение доступа к компьютерам, охрана серверов, пропускной контроль и т.п.), а также средствами операционной системы.

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

2.1 Перечень возможных угроз

Нарушения безопасности можно сгруппировать по следующим пунктам [1]:

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

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

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

2.2 Задачи, решаемые системой защиты

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

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

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

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

Применительно к CORPO, система защиты выполняет в соответствии с требованиями следующие функции:

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

2.3 Требования к криптографическим функциям системы защиты

Наибольшее распространение сегодня получили криптографические системы с открытым ключом (например, RSA) и симметричные системы с закрытым ключом (например, DES, IDEA [3]). Максимальный эффект достигается при их совместном использовании, когда удается сочетать такие особенности системы RSA, как электронная подпись и открытые ключи, с высокой скоростью шифрования симметричными методами. Такое сочетание демонстрирует криптографический протокол "электронный конверт" - digital envelope, основанный на алгоритме RSA и служащий для защиты случайного секретного ключа, который используется в алгоритме DES для быстрого шифрования массива данных. Для аутентификации принимаемых данных используется протокол электронной подписи - передача hash-функции данных, зашифрованной секретным ключом отправляющего абонента. Сами данные перед шифрованием рекомендуется упаковать (методом Хаффмана или Лемпела-Зива), что, например, позволяет выровнять частотную характеристику передаваемых данных и усложнить криптоанализ.

Поскольку некогда считавшийся стойким алгоритм DES сейчас может быть довольно легко взломан, вместо него в "электронном конверте" применен метод Triple DES (в режиме "зацепления" - CBC), который заключается в последовательном использовании алгоритма DES с тремя разными ключами. Эффективная длина ключа при этом увеличивается с 55 бит (для обычного DES) до 120 бит (при этом фактическая длина ключа составит 56*3 = 168 бит или 21 байт). Пока нет других методов взлома алгоритмов Triple DES и DES, кроме полного перебора всего пространства ключей, которое для DES составляет 255 ключей. Разрабатываются проекты устройств по взлому ключа DES за одну секунду, но даже этим быстродействующим устройствам потребуется 1012 лет для взлома метода Triple DES.

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

В протоколе digital envelope метод RSA используется для засекречивания передаваемого Triple DES-ключа. Применять RSA для шифрования самих данных практически невозможно из-за его более чем в 100 раз низкой скорости по сравнению с Triple DES. Ключ шифрования алгоритма Triple DES генерируется случайным образом для каждого сеанса передачи данных, шифруется по методу RSA и передается вместе с зашифрованными данными. При приеме сначала расшифровывается методом RSA ключ Triple DES, которым и расшифровывают данные.

2.4 Распределение ключей и хранение паролей

Поскольку в системе CORPO используется схема шифрования с открытым ключом, возникает проблема с защитой обмена открытыми ключами. Удобство RSA в том, что открытый ключ может быть доступен всем и не следует защищать канал распространения открытых ключей от чтения (подслушивания). Но атакующий, имея доступ в канал по чтению и записи, может применить метод активной атаки. Он может сгенерировать свою пару RSA-ключей и, внедрившись в канал распространения ключей и сообщений, перехватить открытый ключ одного из абонентов и послать далее вместо него свой открытый ключ. Таким образом, он получает возможность читать все шифровки, адресованные данному абоненту с помощью своего секретного ключа и отправлять их ничего не подозревающему абоненту, предварительно зашифровав открытым ключом абонента. Такой вид атаки практически невозможно обнаружить, если атакующий будет достаточно аккуратен и не пропустит ни одного сообщения в исходном виде, а также не будет распознан какой-либо логической проверкой. Такой проверкой может быть передача в сообщении неких зашифрованных данных, которые атакующий забудет перекодировать. Но в дальнейшем следует полагать, что злоумышленнику известно все об алгоритмах и протоколах системы криптографической защиты.

Мерой защиты от подмены ключей в ATCRYPT служит дублирование каналов передачи с последующим сравнением принятых открытых ключей, причем одновременно могут использоваться телефон, факс, почта, e-mail, дискеты и другие методы передачи файлов, например, FTP. Поддерживаются различные методы вывода ключа (файл; на бумагу и дисплей для телефона, факса, курьера; автоматическая посылка по e-mail) и соответственно ввода (из файла, с клавиатуры, из электронного почтового ящика). В случае обнаружения подмены во время очередной передачи можно вернуться к использованию любого из предыдущих открытых ключей абонента.

Picture 3. (1x1)

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

Что касается секретных ключей в RSA, то при их хранении соблюдаются требования повышенной секретности. Файл с секретными ключами дожен быть зашифрован, а доступ к нему (и ко всей системе) защищен паролями по протоколу "разделенного знания". В целях обеспечения безопасности в случае нелояльности сотрудников право получения доступа может быть выдано не единичному пользователю, а разделяться целой группой так, чтобы все пользователи группы должны были одновременно вводить свои пароли (рис. 3 и 4). Данная схема усложняет атаку на систему защиты путем подкупа или шантажа ответственных сотрудников фирмы. В зависимости от "группы риска" пользователей, можно менять количество человек в группе доступа. Например, абсолютно доверенное лицо (администратор) может быть один в своей группе, а два его зама в другой группе разделять право доступа. Для повышения безопасности системы введены роли администратора и обычного пользователя, причем последний имеет допуск только к функциям инициирования приема/передачи данных.

Picture 4. (1x1)

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

2.5 Интерфейс пользователя

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

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

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

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

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

Дополнительной процедурой, применяемой при передаче по e-mail, является кодирование/декодирование передаваемых данных кодом UUE в соответствии со спецификацией G-протокола и разбиение длинных файлов на части фиксированного размера. Это вызвано необходимостью более надежной передачи данных.

Вспомогательные режимы ATCRYPT предназначены для пассивного просмотра разнообразной информации:

  • списка сгенерированных в своем офисе пар ключей RSA;
  • списка пересланных открытых ключей своего офиса;
  • списка принятых открытых ключей данного абонента;
  • протокола событий в системе защиты.

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

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

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

Заключение

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

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

При написании системы была задействована объектно-ориентированная библиотека Atlantis (Новый Атлант) и компрессирующая библиотека ZLIB (Jean-loup Gailly и Mark Adler). Благодаря использованию инструментария, применямого при разработке системы "Галактика", ATCRYPT работает на разных аппаратно-программных платформах DOS, Windos, Unix и c СУБД Btrieve, MS SQL, Oracle. Ядро системы используется также для решения других задач, связанных с защитой информации (например, защита и аутентификация документов).


Литература

  1. В.А. Галатенко Информационная безопасность. Открытые системы, # 6, 1995, # 4, 1996
  2. В.И. Беляев Безопасность в распределенных системах. Открытые системы, # 3, 1995
  3. Bruce Schneier. Applied Cryptography: Protocols, Algorithms and Source Code in C. John Willey & Sons, 1994, ISBN 0-471-59756-2.