Информационная безопасность Модели управления доступом Разграничение доступа Глобальные сети Средства анализа и управления сетями Примеры скриптов на JavaScript Примеры программирования на Java

Информационная безопасность

Локализация прав доступа к ресурсам стандартных приложений со встроенными средствами защиты информации

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

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

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

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

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

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

Включение в субъекты доступа субъекта «ПРОЦЕСС», позволяет принципиально иным образом решать данную задачу при построении СУБД, т.к. в этом случае настройками диспетчера доступа можно организовать доступ к файлам, содержащим таблицы, только приложением, имеющим встроенные средства разграничения доступа к таблицам. Иным же приложениям (в частности проводникам, работающим с файлами) доступ к файлам, содержащим таблицы, должен быть запрещен. Таким образом, применение рассматриваемой возможности управления доступом позволяет кардинально изменить подход к интеграции механизмов защиты ОС и приложений.

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

Псевдослучайные последовательности

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

Псевдослучайная битовая последовательность должна, по возможности, не отличаться от по-настоящему случайной. Необходимо, чтобы в ней число единиц примерно совпадало с числом нулей, а половина всех “полосок” (подряд идущих идентичных компонентов последовательности) имела длину 1, одна четвертая — длину 2, одна восьмая — длину 4 и т. д. Кроме только что перечисленных, существует еще ряд общепринятых тестов, которые позволяют проверить, действительно ли данная последовательность является псевдослучайной.

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

Криптографически надежные псевдослучайные последовательности

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

По-настоящему случайные последовательности

Последовательность называется no-настоящему случайной, если ее нельзя воспроизвести. Это означает, что если запустить генератор по-настоящему случайных последовательностей дважды при одном и том же входе, то на его выходе получатся разные случайные последовательности. Основная трудность состоит в том, чтобы суметь отличить случайную последовательность от неслучайной. Если несколько раз зашифровать строку символов с помощью криптографического алгоритма, соответствующего ГОСТ 28147-89, то получится последовательность, очень напоминающая по-настоящему случайную. Чтобы доказать ее неслучайность, другого способа, кроме аренды у АНБ соответствующих вычислительных мощностей и программы вскрытия, не существует. Однако вряд ли ваше предложение об аренде будет воспринято там всерьез.

Общие принципы построения вычислительных сетей