Стандарт управления правами доступа к корпоративным файловым информационным ресурсам. Каждому свое
Автоматизированная система АСОМИ предусматривает возможность гибкого разграничения прав доступа пользователей к хранимой метрологической информации. Такой подход обеспечивает защиту хранящейся и обрабатываемой информации, а именно:
- ограничение прав на чтение, изменение или уничтожение;
- возможность хранения и передачи информации между объектами АСОМИ в виде, значительно затрудняющем ее распознавание при несанкционированном доступе или техническом обслуживании (в частности, с использованием технологий шифрования);
- обеспечение целостности информации, а также доступности информации для органов управления и уполномоченных пользователей;
- исключение утечки информации при обработке и передаче между объектами вычислительной техники.
Разграничение доступа для пользователей системы АСОМИ реализовано в разрезе следующих групп сущностей: отчетность и операционные данные (протоколы) справочные данные, журналы истории (логирование действий пользователя и данные по истории изменений сущностей), учетные данные (карточки СИ). Рассмотрим далее подробно каждую из групп.
Доступ к учетным данным определяется через следующие концептуальные понятия:
- Лицо, ответственное за обработку текущего статуса средства измерения - это сотрудник предприятия, который в текущем статусе СИ должен выполнить определенные этим статусом действия и перевести СИ в последующий статус в рамках рабочего цикла одной из метрологических работ. Определяется из параметров текущего статуса СИ. Например, таким лицом является лицо, исполняющее роль диспетчера (далее по тексту Диспетчер), принявшее СИ для выполнения ремонта и обязанное его затем передать лицу, исполняющему роль исполнителя ремонта (далее по тексту Исполнитель ремонта).
- Материально-ответственное за СИ лицо - это сотрудник предприятия, который несет материальную ответственность за средство измерения или эксплуатирует его. Определяется в учетной карточке СИ. Как правило, таким лицом является мастер, в ведении которого находится это СИ.
- Руководители "первых двух" лиц - буквально по определению. Определяются из организационной структуры предприятия по следующему принципу: они являются руководителями лиц из первых двух категорий "Лицо, ответственное за обработку текущего статуса СИ" и "Материально-ответственное за СИ лицо"; либо они являются руководителями вышестоящего подразделения предприятия, в состав которого входит (подчиняется) структурное подразделение, где исполнителями работают лица из первых двух категорий. В рамках АСОМИ этот концептуальный принцип приводит к тому, что информация о СИ доступна как всем вышестоящим руководителям Метролога, так и всем вышестоящим руководителям исполнителей тех или иных МР (например, начальник цеха имеет доступ к информации о СИ, за которые ответственны его мастера).
- Лицо, ответственное за метрологический надзор и контроль - это, например, сотрудник поверочного, ремонтного подразделения или метролог структурного подразделения, исполняющий обязанности по надзору и контролю. В соответствии с его обязанностями, он вправе иметь доступ на чтение учетной информации обо всех СИ, закрепленных за ним.
Таким образом, те сотрудники предприятия, которые попадают в одну из четырех (возможно, сразу в несколько) вышеперечисленных категорий, по отношению к конкретному СИ имеют возможность видеть на своем рабочем месте информацию о текущем статусе каждого СИ и, соответственно, данные учетной карточки СИ, включая данные об истории метрологических работ.
При этом сотрудник предприятия, который в данный момент времени ответственен за обработку текущего статуса СИ, имеет право изменять информацию СИ, связанную с этим статусом, и переводить СИ в последующий статус, соответствующий выполняемому рабочему циклу МР, но не имеет права влиять на историю переходов по Диаграмме статусов СИ.
Теперь рассмотрим Правила и порядок доступа к справочным данным. Такие функции как просмотр и использование справочных данных для выполнения своих обязанностей по метрологическому обеспечению доступны всем пользователям АСОМИ.
При этом доступ на пополнение и редактирование справочных данных разрешается только сотрудникам предприятия, исполняющим в системе АСОМИ роль администратора или контролера. Они полностью ответственны за актуальность и корректность информации, содержащейся в справочниках. При заполнении справочников, касающихся структуры прав доступа в АСОМИ, используются данные из справочников, входящих в справочный блок "Структура прав доступа в АСОМИ". При заполнении специфических (дополнительных) справочников используются данные из НТД (нормативно-технической документации) на СИ, данных Госреестра СИ, допущенных к применению на территории РФ, других достоверных источников.
Правила и порядок доступа к отчетности и операционным данным (протоколам) организован следующим образом. Доступ к реализованной в АСОМИ стандартной отчетности организуется по ролям в системе. При этом для каждой должности указывается тот перечень стандартных отчетов (выборка из общего перечня всех стандартных отчетов АСОМИ), которые может формировать со своего рабочего места сотрудник, занимающий данную должность.
В рамках отчетности может быть организован доступ к специальным функциям. Примером такой функции может являться поиск и получение информации о любом из учтенных в системе СИ по различным его параметрам, к примеру, мастер будет иметь возможность вывести в виде отчета список всех СИ, зарегистрированных в АСОМИ, для того, чтобы, например, подыскать варианты замены своего СИ на такое же СИ, которое находится на консервации в соседнем цехе.
Доступ к операционным данным (протоколам работы пользователей) разрешен только Администраторам АСОМИ и Главному метрологу предприятия.
Правила и порядок назначения и изменения доступа к информационным данным могут быть назначены или изменены только Администратором АСОМИ.
Если Вас заинтересовал данный продукт или возникли вопросы,
которые Вы хотели бы задать, пишите:
На своей практике веб-разработки я очень часто сталкивался с ситуациями, в которых заказчики ставили конкретную цель, а именно о разделении частей админки относительно доступности тем или иным пользователям. При этом разработка данного модуля велась в контексте расширяемой системы, а то есть с нефиксированым числом модулей, к которым организовуется доступ, ну и, соответственно, неограниченным числом пользователей системы.
Что ж, сама по себе данная тема довольно грузная, и требует определённого времени на анализ и постанувку задачи.
В контексте данной статьи, мы будем вести разработку в контексте некоторой абстрактной информационной системы, со своей инфраструктурой и архитектурой, при этом данная система предоставляет пользователю возможность расширять функционал, а то есть устанавливать новые модули, и соответственно устанавливать права доступа к ним тому либо иному пользователю, зарегистрированному в качестве администратора системы.
Давайте с самого начала обсудим архитектуру модульной системы на выбранной нами псевдо-системе.
Все модули представлены ввиде подключаемых к главному документу (индекс-файлу) вставок. Запрос модуля происходит из строки запроса QUERY_STRING, и название подключаемого модуля передаётся в качестве аргумента act. В некотором месте индекса файла происходит изъятие и обработка данного параметра. После, если у пользователя достаточно прав для доступа к модулю в контексте чтения, происходит проверка существования указанного в строке запроса модуля, и если таковой существует, то происходит его подключение к индекс файлу.
Я не просто так упомянул о "контексте чтения", так как наша системе предполагает существование двух контекстов работы с системой, а именно - чтение и запись. При этом под чтением предполагается непосредственный доступ к модулю и к тем его частям, которые не предполагают внесение изменений в структуру данных в БД. Под записью же предполагается непосредственное внесение изменений в информацию, хранимую в базе данных.
Для воплощения данного механизма мы будет проверять значение переменной строки запроса `do`, которая обрабатывается в самом модуле и носит информацию о том, к какому разделу модуля необходимо предоставить доступ пользовалю.
Значение do буду фиксированными, данная переменная будет принимать следующие значения:
- main - главная часть модуля (доступно в контексте чтения)
- config - раздел настройки модуля (доступно в контексте записи)
- create - произвести некоторые действия, по добавлению информации в БД (доступно в контексте записи)
- delete - доступ к разделу, предоставляющему возможности удалить некоторую информацию, в контексте данного модуля (доступно в контексте записи)
- edit - доступ к редактированию информации в контексте модуля (доступно в контексте записи)
В целом, этот список можно увеличить, при этом всё зависит лишь только от масштабов проекта и его потребностей в функционале.
Теперь непосредственно о модулях. Кроме физического существования некоторого модуля в контексте файловой системы проекта, модуль так же должен быть добавлен в особую таблицу БД, которая будет содержать информацию о всех существующих модулях в системе. Добавление и изменение данных данной таблицы, обычно, производится непосредственно в контексте модулей, а то есть во время их инсталяции в системе. Однако это уже углубление в принципы посмотроения расширяемых систем, о чём мы как-то в другой раз поговорим, и посему, мы ограничимся ручным обновлением и добавлением данных о модулях.
Так, запись о модуле системы будет содержать следующую информацию: английский идентификатор названия модуля, который будет идентичен значению переменной среды GET - act (относительно него будет производится непосредственно запрос модуля), русский идентификатор модуля, который будет использоватся в списке модулей.
Кроме модулей у нас будут ещё две таблицы, а именно таблица в которой будут хранится данные относительно профилей прав доступа и таблица с информацией о пользователях непосредственно.
Таблица профилей безопасности будет состоять всего из трёх полей - идентификатор профиля (числовое значение идентификатора записи), текстый идентификатор модуля (предназначенный для пользователей), а так же особым образом сформированная текстовая метка, содержащая информацию о правах пользователя, в контексте каждого из модулей.
Что ж, давайте рассмотрим эту особую структуру. Она будет следующей: [ module_indefier: + \: + \;] *
То есть идёт список из пар: имя модуля ":" права чтения "," права записи ";". При этом данная метка обновляется в момент внесения изменений о правах доступа пользователя к системе. Если в системе появляется информация о модуле, который не вошёл в данную метку, то стоит просто произвести процедуру редактирования, и данные сохранятся автоматически.
Теперь же нам осталось рассмотреть структуру всего одной таблицы БД, и мы сможем принятся за реализацию алгоритмической части, а именно таблицы с информацией о пользователях системы, ведь назначение им прав доступа и является нашей главной задачей.
Я не буду добавлять ничего лишнего в неё, но лишь то, что будет использоватся в контексте темы данной статьи. Таблица пользователей будет содержать следующие поля: идентифицатор пользователя (числовой счётчик), логин, пароль (хеш оригинального пароля), профиль безопасности пользователя (идетификатор группы пользователя, относительно прав в системе), и всё. Мне кажется этой информации нам с вами вполне хватит, для реализации поставленной задачи, а уже все остальные надстройки я предоставляю возможность сделать самим.
Итак, структуру мы обсудили, и, надеюсь, у всех сложилось уже некоторое представление о том, как мы будем реализовывать поставленную в теме статьи задачу. Сейчас я приведу вспомогательный SQL-код таблиц, описанных выше, после чего сразу же перейду к воплощению алгоритма проверки прав доступа пользователя, а так же создания и изменения профилей доступа. После каждого отдельного модуля мы подробно обсудим все вопросы, которые могут возникнуть у читателей.
Таблица `modules`:
CREATE TABLE `modules` (`id` bigint(20) NOT NULL auto_increment, `indefier` text collate utf8_unicode_ci NOT NULL, `title` text collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Таблица `secure_groups`:
CREATE TABLE `secure_groups` (`id` bigint(20) NOT NULL auto_increment, `title` text collate utf8_unicode_ci NOT NULL, `perms` text collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
Таблица `users`
CREATE TABLE `users` (`id` bigint(20) NOT NULL auto_increment, `login` text collate utf8_unicode_ci NOT NULL, `passwd` text collate utf8_unicode_ci NOT NULL, `groupId` int(1) NOT NULL default "0", PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
temp=array(); $this->temp["_result"]=0; $this->temp["_uid"]=explode("::",$_COOKIE["site_hash"]); $this->temp["_uid"]=$this->temp["_uid"]; $this->temp["_gid"]=$this->getUserSecurityAccess($this->temp["_uid"]); $this->temp["_conn_id"]=mysql_connect("host","user","passwd"); mysql_select_db("database"); $this->temp["_q1"]=mysql_query("SELECT perms" ."FROM `secure_groups`" ."WHERE id=".$this->temp["_gid"]); $this->temp["_access_stamp"]=mysql_fetch_assoc($this->temp["_q1"]); $this->temp["_access_stamp"]=$this->temp["_access_stamp"]["perms"]; $this->temp["_access_stamp"]=explode(";",$this->temp["_access_stamp"]); $this->temp["_access_stamp"]=array_slice($this->temp["_access_stamp"],0,-1); foreach($this->temp["_access_stamp"] as $this->temp["v"]){ $this->temp["_mod_access"]=explode(":",$this->temp["v"]); $this->temp["_mod_indefier"]=$this->temp["_mod_access"]; if($this->temp["_mod_indefier"]==$module){ $this->temp["_perms"]=explode(",",$this->temp["_mod_access"]); switch($act){ case "r": $this->temp["_result"]=($this->temp["_perms"]==1)? 1:0; break; case "w": $this->temp["_result"]=($this->temp["_perms"]==1)? 1:0; break; } break; } } mysql_close($conn_id); return $this->temp["_result"]; } } ?>
Данный класс внедряет функции, предназначенные для воплещения алгоритмического задания, описанного выше. Сейчас мы обсудим каждую функцию отдельно.
Функция secure::getUserId()
Используя данную функцию, мы подразумеваем, что во время авторизации пользователя в системе в переменной среде $_COOKIE была установлена переменная `site_hash`, состоящая из идентификатора пользователя в системе и хеша для проверки аутентичности его в системе. Функция просто изымает значение идентификатора, возращая его значение на выходе.
Функция secure::getUserSecurityAccess($id)
На выходе данная функция возвращает идентификатор профиля безопасности текущего пользователя в системе.
Функция secure::checkUserPermission($module,$act))
Производится запрос к БД, относительно прав пользователя на произведение действий чтения/записи в контексте переданного в качестве параметра модуля.
Осталось лишь описать процедуру формирования переменной в среде $_COOKIE, и тему статьи можно будет считать расскрытой.
Процедура авторизации будет выглядеть ввиде внесения личных данных пользователя (логин и пароль) в специальную форму, после отправки которой произойдёт обработка данных, переданных пользователем, по-методу функции checkAuthData(), и, в случае корректности данных, будет произведено сохранение данных о пользователе ввиде куки записи на период установленный пользователем, либо в отсутствии заданного значение на период по-умолчанию.
Для проверки аутентичности данных хранимых в переменной среде $_COOKIE, мы будем использовать функцию EatCookie(), которая будет производить валидацию данных, возвращая булевый результат проверки (истина - ложь).
Я не привожу форму для отправки, так как это не часть теории программирования, указав лишь идентификаторы полей.
- `ulogin` - логин пользователя
- `upasswd` - пароль пользователя
- `stime` - время сессии, устанавливаемое пользователем (от 1 до 5 часов)
- `auth` - имя кнопки отправки
Вот, в целом и всё. Осталось лишь пробовать, экспериментировать, ошибатся и находить решение, что я всецело и оставляю вам.
Надеюсь, что мы скоро встретимся, а для тех кто имеет ко мне вопрос в отношении статьи, да и не только - писать на [email protected], либо на [email protected].
С уважением Карпенко Кирилл, глава IT-отдела ИНПП.
Разграничение доступа.
Автоматизированная система в зависимости от ее сложности и выполняемых задач может размещаться в одной, двух, трех и т. д. помещениях, этажах, зданиях. В силу различия функциональных обязанностей и работы с разными документами необходимо обеспечить разграничение доступа пользователей к их рабочим местам, аппаратуре и информации. Это обеспечивается размещением рабочих мест пользователей в отдельных помещениях, закрываемых разного рода замками на входных дверях с устанавливаемыми на них датчиками охранной сигнализации или применением специальной автоматической системы контроля доступа в помещения по жетонам или карточкам с индивидуальным кодом ее владельца, записанным в ее память.
Разграничение доступа в автоматизированной системе заключается в разделении информации, циркулирующей в ней, на части и организации доступа к ней должностных лиц в соответствии с их функциональными обязанностями и полномочиями. Задача такого разграничения доступа к информации: сокращение количества должностных лиц, не имеющих к ней отношения при выполнении своих функций, т.е. защита информации от нарушителя среди законных пользователей.
Основная задача контроля и разграничения доступа (ПКРД) – это блокировка несанкционированного, контроль и разграничение санкционированного доступа к информации, подлежащей защите. При этом разграничение доступа к информации и программным средствам ее обработки должно осуществляться в соответствии с функциональными обязанностями и полномочиями должностных лиц-пользователей, обслуживающего персонала и руководителей работ.
Основной принцип построения ПКРД состоит в том, что допускаются и выполняются только такие обращения к информации, в которых содержатся соответствующие признаки разрешенных полномочий. В указанных целях осуществляются идентификация и аутентификация пользователей, устройств и т.д., деление информации и функций ее обработки согласно установленным требованиям разграничения доступа, установка и ввод полномочий пользователей
Деление информации и функций ее обработки обычно производится по следующим признакам:
По степени важности;
По степени секретности;
По выполняемым функциям пользователей, устройств;
По наименованию документов;
По видам документов;
По видам данных;
По наименованию томов, файлов, массивов, записей;
По имени пользователя;
По функциям обработки информации: чтению, записи, исполнению;
По времени дня.
Принимая во внимание, что доступ осуществляется с различных технических средств, начинать разграничение можно путем разграничения доступа к техническим средствам, разместив их в отдельных помещениях. Все подготовительные функции технического обслуживания аппаратуры, ее ремонта, профилактики, перезагрузки программного обеспечения и другие должны быть технически и организационно отделены от основных задач системы. Комплекс средств автоматизации и организация его обслуживания должны быть построены следующим образом:
Техническое обслуживание ИС в процессе эксплуатации должно выполняться специальным техническим персоналом без доступа к информации, подлежащей защите;
Функции обеспечения безопасности информации должны выполняться специальным подразделением в организации-владельце ИС, вычислительной сети или АСУ;
Организация доступа пользователей к памяти ИС должна обеспечивать возможность разграничения доступа к информации, хранящейся в ней, с достаточной степенью детализации и в соответствии с заданными уровнями полномочий пользователей;
Регистрация и документирование технологической и оперативной информации должны быть разделены.
В качестве идентификаторов личности для реализации разграничения широко распространено применение кодов паролей, которые хранятся в памяти пользователя и ИС. В помощь пользователю в системах с повышенными требованиями большие значения кодов паролей записываются на специальные носители – электронные ключи, жетоны, смарт-карты и т.д.
Принципиальная возможность разграничения по указанным параметрам должна быть обеспечена проектом ИС. А конкретное разграничение при эксплуатации ИС устанавливается потребителем и вводится в систему его подразделением, отвечающим за безопасность информации.
В указанных целях при проектировании вычислительных средств для построения ИС проводятся:
Разработка операционной системы с возможностью реализации разграничения доступа к информации, хранящейся в памяти ЭВМ, ПК, сервера;
Изоляция областей доступа;
Разделение базы данных на группы;
Процедуры контроля перечисленных функций.
Разработка и реализация функциональных задач по разграничению и контролю доступа к аппаратуре и информации как в рамках данного ИС, так и АСУ (сети) в целом;
Разработка аппаратных средств идентификации и аутентификации пользователя;
Разработка программных средств контроля и управления разграничением доступа;
Разработка отдельной эксплуатационной документации на средства идентификации, аутентификации, разграничения и контроля доступа.
Выбор конкретных признаков разграничения доступа и их сочетаний производится в соответствии с техническим заданием при проектировании программного обеспечения автоматизированной системы.
Информация, подлежащая защите, должна быть размещена в непересекающихся областях памяти. В любой из этих областей хранится совокупность информационных объектов, каждый из которых подлежит защите. Защита в этом случае сводится к тому, что доступ к информационному объекту осуществляется через единственный охраняемый вход. В функцию «охраны» входят опознание пользователя по имени (или условному номеру) и коду предъявленного пароля. При положительном результате проверки разрешается допуск его к информации в соответствии с выделенными ему полномочиями. Эти процедуры выполняются при каждом обращении пользователя: запросе, выдаче команд и т.д. Чтобы не набирать каждый раз пароль, удобно предъявляемый пароль хранить на специальном физическом носителе (ключе, карте), который перед входом в вычислительную систему должен вставляться пользователем в специальное гнездо АРМ. Кроме того, после изъятия носителя с паролем из гнезда вход в систему сразу блокируется.
Если же требования к защите информации для конкретной системы позволяют применение набора пароля вручную, необходимо сделать так, чтобы предъявляемый пароль при повторных обращениях в процессе работы с информацией находился в памяти данного АРМ. Хранение в центральном вычислителе допускается только при обеспечении его связки с условным номером данного АРМ, т.е. все последующие обращения в центральном вычислителе должны приниматься на обработку только с условным номером АРМ, с которого предъявлялся хранимый код пароля. По окончании работы для исключения возможности несанкционированного доступа со стороны посторонних пользователей необходимо с АРМ ввести соответствующую команду, по которой предъявленный ранее и хранимый пароль стирается. О факте стирания на АРМ пользователя должно быть выдано сообщение. Для проверки последней операции полезно повторить одно из предыдущих обращений без пароля и убедиться в этом по отрицательной реакции вычислительной системы.
Цель: освоение приемов обмена файлами между пользователями локальной компьютерной сети; осуществление защиты информации.
Сведения из теории
1. Виды компьютерных сетей.
Одним из самых значительных достижений прошлого века считается развитие информационных технологий - компьютерных технологий хранения, преобразования и передачи информации. Важнейшую роль в информационном скачке человечества сыграло создание коммуникационных компьютерных сетей.
Совокупность компьютеров, взаимосвязанных между собой каналами передачи информации и распределенных по некоторой территории, называется компьютерной сетью. Существующие в настоящий момент многочисленные компьютерные сети принято делить по так называемому территориальному признаку:
GAN (Global Area Network – глобальная сеть), общее планетное соединение компьютерных сетей - Интернет;
WAN (Wide Area Network – широкомасштабная сеть), континентальное на уровне государства объединение компьютерных сетей;
MAN (Metropolitan Area Network – междугородняя сеть), междугороднее и областное объединение компьютерных сетей;
LAN (Local Area Network – локальная сеть) сетевое соединение, функционирующее обычно в стенах одной организации.
WAN и MAN – региональные сети. Деление на WAN и MAN компьютерные сети в настоящее время является весьма условным, поскольку сейчас каждая региональная сеть представляет собой, как правило, часть какой-нибудь глобальной сети.
Многие организации, заинтересованные в защите информации от несанкционированного доступа (например, военные, банковские и пр.), создают собственные, так называемые корпоративные сети. Корпоративная сеть может объединять тысячи и десятки тысяч компьютеров, размещенных в различных странах и городах (в качестве примера можно привести сеть корпорации Microsoft, MSN).
2. Локальная компьютерная сеть.
Важной отличительной особенностью любой локальной сети является то, что для соединения компьютеров в такой сети не нужно использовать телефонную сеть - компьютеры расположены достаточно близко друг от друга и соединяются кабелем.
Посредством ЛС в систему объединяются персональные компьютеры, расположенные на многих удаленных рабочих станциях, которые используют совместно оборудование, программные средства и информацию. Рабочие места сотрудников перестают быть изолированными и объединяются в единую систему.
Рассмотрим преимущества, получаемые при сетевом объединении персональных компьютеров в виде внутрипроизводственной вычислительной сети.
Разделение ресурсов: разделение ресурсов позволяет экономно использовать ресурсы, например, управлять периферийными устройствами, такие как лазерное печатающее устройство, со всех присоединенных рабочих станций.
Разделение данных: разделение данных предоставляет возможность доступа и управления базами данных с периферийных рабочих мест, нуждающихся в информации.
Разделение программных средств: разделение программных средств, предоставляет возможность одновременного использования централизованных, ранее установленных программных средств.
Разделение ресурсов процессора: при разделение ресурсов процессора возможно использование компьютерных мощностей для обработки данных другими системами, входящими в сеть. Предоставляемая возможность заключается в том, что на имеющиеся ресурсы не "набрасываются" моментально, а только лишь через специальный процессор, доступный каждой рабочей станции.
Многопользовательский режим: многопользовательские свойства системы содействуют одновременному использованию централизованных прикладных программных средств, ранее установленных и управляемых, например, если пользователь системы работает с другими заданиями, то текущая выполняемая работа отодвигается на задний план.
Электронная почта: с помощью электронной почты происходит интерактивный обмен информацией между рабочей станцией и другими станциями, установленными в вычислительной сети.
Основные понятия
При рассмотрении вопросов информационной безопасности используются понятия субъекта и объекта доступа. Субъект доступа может производить некоторый набор операций над каждым объектом доступа. Эти операции могут быть доступны или запрещены определенному субъекту или группе субъектов. Доступ к объектам обычно определяется на уровне операционной системы ее архитектурой и текущей политикой безопасности. Рассмотрим некоторые определения, касающиеся методов и средств разграничения доступа субъектов к объектам.
Определение 1
Метод доступа к объекту – операция, которая определена для данного объекта. Ограничить доступ к объекту возможно именно с помощью ограничения возможных методов доступа.
Определение 2
Владелец объекта – субъект, который создал объект несет ответственность за конфиденциальность информации, содержащейся в объекте, и за доступ к нему.
Определение 3
Право доступа к объекту – право на доступ к объекту по одному или нескольким методам доступа.
Определение 4
Разграничение доступа – набор правил, который определяет для каждого субъекта, объекта и метода наличие или отсутствие права на доступ с помощью указанного метода.
Модели разграничения доступа
Наиболее распространенные модели разграничения доступа:
- дискреционная (избирательная) модель разграничения доступа;
- полномочная (мандатная) модель разграничения доступа.
Дискреционная
- любой объект имеет владельца;
- владелец имеет право произвольно ограничивать доступ субъектов к данному объекту;
- для каждого набора субъект – объект – метод право на доступ определен однозначно;
- наличие хотя бы одного привилегированного пользователя (например, администратора), который имеет возможность обращаться к любому объекту с помощью любого метода доступа.
В дискреционной модели определение прав доступа хранится в матрице доступа: в строках перечислены субъекты, а в столбцах – объекты. В каждой ячейке матрицы хранятся права доступа данного субъекта к данному объекту. Матрица доступа современной операционной системы занимает десятки мегабайт.
Полномочная модель характеризуется следующими правилами:
- каждый объект обладает грифом секретности. Гриф секретности имеет числовое значение: чем оно больше, тем выше секретность объекта;
- у каждого субъекта доступа есть уровень допуска.
Допуск к объекту в этой модели субъект получает только в случае, когда у субъекта значение уровня допуска не меньше значения грифа секретности объекта.
Преимущество полномочной модели состоит в отсутствии необходимости хранения больших объемов информации о разграничении доступа. Каждым субъектом выполняется хранение лишь значения своего уровня доступа, а каждым объектом – значения своего грифа секретности.
Методы разграничения доступа
Виды методов разграничения доступа:
Разграничение доступа по спискам
Суть метода состоит в задании соответствий: для каждого пользователя задается список ресурсов и права доступа к ним или для каждого ресурса определяется список пользователей и права доступа к этим ресурсам. С помощью списков возможно установление прав с точностью до каждого пользователя. Возможен вариант добавления прав или явного запрета доступа. Метод доступа по спискам используется в подсистемах безопасности операционных систем и систем управления базами данных.
Использование матрицы установления полномочий
При использовании матрицы установления полномочий применяется матрица доступа (таблица полномочий). В матрице доступа в строках записываются идентификаторы субъектов, которые имеют доступ в компьютерную систему, а в столбцах – объекты (ресурсы) компьютерной системы.
В каждой ячейке матрицы может содержаться имя и размер ресурса, право доступа (чтение, запись и др.), ссылка на другую информационную структуру, которая уточняет права доступа, ссылка на программу, которая управляет правами доступа и др.
Данный метод является достаточно удобным, так как вся информация о полномочиях сохраняется в единой таблице. Недостаток матрицы – ее возможная громоздкость.
Разграничение доступа по уровням секретности и категориям
Разграничение по степени секретности разделяется на несколько уровней. Полномочия каждого пользователя могут быть заданы в соответствии с максимальным уровнем секретности, к которому он допущен.
Парольное разграничение доступа
Парольное разграничение использует методы доступа субъектов к объектам с помощью пароля. Постоянное использование паролей приводит к неудобствам для пользователей и временным задержкам. По этой причине методы парольного разграничения используются в исключительных ситуациях.
На практике принято сочетать разные методы разграничений доступа. Например, первые три метода усиливаются парольной защитой. Использование разграничения прав доступа является обязательным условием защищенной компьютерной системы.