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

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

Посредством каталогов исполняемых файлов

Обеспечить замкнутость программной среды можно не непосредственно заданием списков разрешенных к запуску процессов, а областью дискового пространства (каталогом), откуда пользователю можно запускать процессы. То есть пользователю можно разрешать/запрещать не что запускать, а откуда запускать. Другими словами, для каждого пользователя может быть выделен каталог, только из которого ему будет дозволено запускать программы. На этот каталог должно быть установлено право «Исполнение» для пользователя. Причем в данный каталог ему должен быть запрещен доступ «на запись» и «на модификацию», с целью предотвращения возможности внесения в данный каталог других, не разрешенных к запуску программ, а также с целью предотвращения возможности модификации расположенных в каталоге программ. Технологии искусственного интеллекта Термин «искусственный интеллект» – ИИ – (AI – artificial intelligence) был предложен в 1956 г. на семинаре с аналогичным названием в Дартсмутском колледже (США). Семинар был посвящен разработке методов решения логических, а не вычислительных задач.

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

Список разрешенных к запуску профамм (не процессов) определяется набором профамм, инсталлированных администратором безопасности в каталог, откуда пользователю разрешен их запуск [11, 12, 19].

Можем сформулировать следующие требования к корректности функционирования рассматриваемого механизма:

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

в этот выделенный каталог администратором должны быть инсталлированы профаммы, разрешенные пользователю для запуска;

» ко всем остальным каталогам, а также к усфойствам (дисководу, CD- ROM и т.д.), разделяемым сетевым ресурсам пользователю должен быть запрещен доступ «Исполнение»;

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

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

На рис. 14.3 приведена схема обработки запроса доступа к объекту, реализуемая диспетчером доступа в КСЗИ «Панцирь» с целью обеспечения замкнутости программной среды [31].

Рис. 14.3. Схема обработки запроса доступа к объекту при реализации механизма обеспечения замкнутости программной среды

Цифровая подпись и шифрование

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

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

1. Антон подписывает сообщение Р при помощи своего тайного ключа

 КА:

  SкА(Р)

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

 Бориса KБ, и посылает его Борису

 ЕкБ (SкА (Р))

3. Борис расшифровывает сообщение Антона с помощью своего тайного

 ключа KБ:

  DкБ (ЕкБ (SкА (Р))) = SкА (Р)

4. С помощью открытого ключа Антона КА, Борис проверяет подпись

 Антона и получает открытый текст его сообщения:

  VкА (SкА (P)) = P

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

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

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

1. Антон подписывает сообщение при помощи своего тайного ключа,

 шифрует это сообщение, используя открытый ключ Бориса, и посылает

 его Борису:

 ЕкБ (SкА (Р))

2. Борис расшифровывает сообщение Антона на своем тайном ключе,

удостоверяется в подлинности подписи Антона с помощью его открытого ключа и восстанавливает открытый текст сообщения:

 

3. Борис подписывает сообщение Антона с использованием своего

тайного ключа, шифрует это сообщение вместе со своей подписью на открытом ключе Антона и отсылает обратно:

 ЕкА (SкБ (Р))

4. Антон расшифровывает сообщение Бориса при помощи своего тайного

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

К сожалению, если для шифрования и проверки цифровой подписи применяется одинаковый криптографический алгоритм (т.е., VK = EK и SK = DK), Зиновий, являясь законным пользователем сети связи, при определенных условиях сможет читать шифрованную переписку Антона. Для этого, перехватив сообщение Антона ЕкБ (SкА (Р), Зиновий шлет его от своего имени Борису. Борис после расшифрования и проверки цифровой подписи Зиновия получит:

 ЕКз (DкБ (ЕкБ (DкA (Р)))) = ЕКз (DкA (Р))

В соответствии с протоколом Борис должен отправить Зиновию подтверждение правильности приема пришедшего ему сообщения:

ЕКз (ЕкБ (ЕКз ((DкA (Р))))

В результате Зиновию останется только преобразовать сообщение, присланное ему Борисом, при помощи своего тайного ключа и известных открытых ключей Антона и Бориса — и вот он, заветный открытый текст Р сообщения, отправленного Антоном!

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

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

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