Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Модель контроля целостности Кларка-Вилсона

Поиск

После того, как сформулировано определение понятия целостности данных и обсуждены основные принципы построения системы контроля целостности, в качестве примера политики контроля целостности рас­смотрим модель, предложенную Кларком и Вилсоном [25]. Другая извест­ная модель политики контроля целостности - модель Биба, которую с не­которой степенью условности можно охарактеризовать как интерпретацию модели Белла-Лападулы для случая контроля целостности.

Модель Кларка-Вилсона появилась в результате проведенного ав­торами анализа реально применяемых методов обеспечения целостности документооборота в коммерческих компаниях. В отличие от моделей Биба и Белла-Лападулы, она изначально ориентирована на нужды коммерче­ских заказчиков, и, по мнению авторов, более адекватна их требованиям, чем предложенная ранее коммерческая интерпретация модели целостно­сти на основе решеток. Основные понятия рассматриваемой модели-это корректность транзакций и разграничение функциональных обязанностей. Модель задает правила функционирования компьютерной системы и оп­ределяет две категории объектов данных и два класса операций над ними.

Все содержащиеся в системе данные подразделяются на контроли­руемые и неконтролируемые элементы данных (constrained data items - GDI и unconstrained data items - UDI соответственно). Целостность первых обеспечивается моделью Кларка-Вилсонз. Последние содержат инфор­мацию, целостность которой в рамках данной модели не контролируется (этим и объясняется выбор терминологии).

Далее, модель вводит два класса операций над элементами данных: процедуры контроля целостности (integrity verification procedures - IVP) и процедуры преобразования (transformation procedures - TP). Первые из них обеспечивают проверку целостности контролируемых элементов данных (GDI), вторые изменяют состав множества всех GDI (например, преобра­зуя элементы UDI в GDI).

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

Правило С1. Множество всех процедур контроля целостности (IVP) должно содержать процедуры контроля целостности любого элемента данных из множества всех CDI.

Правило С2. Все процедуры преобразования (ТР) должны быть реа­лизованы корректно в том смысле, что не должны нарушать целостность обрабатываемых ими GDI. Кроме того, с каждой процедурой преобразо­вания должен быть связан список элементов GDI, которые допустимо об­рабатывать данной процедурой. Такая связь устанавливается админист­ратором безопасности.

Правило Е1. Система должна контролировать допустимость приме­нения ТР к элементам GDI в соответствии со списками, указанными в пра­виле С2.

Правило E2. Система должна поддерживать список разрешенных конкретным пользователям процедур преобразования с указанием допус­тимого для каждой ТР и данного пользователя набора обрабатываемых элементов GDI.

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

Правило ЕЗ. Система должна аутентифицирозать всех пользовате­лей, пытающихся выполнить какую-либо процедуру преобразования.

Правило С4. Каждая ТР должна записывать в журнал регистрации информацию, достаточную для восстановления полной картины каждого применения этой ТР. Журнал регистрации - это специальный элемент GDI, предназначенный только для добавления в него информации.

Правило С5. Любая ТР, которая обрабатывает элемент UDI, должна выполнять только корректные преобразования этого элемента, в резуль­тате которых UDI превращается в CDI.

Правило Е4. Только специально уполномоченное лицо может изме­нять списки, определенные в правилах С2 и Е2. Это лицо не имеет права выполнять какие-либо действия, если оно уполномочено изменять регла­ментирующие эти действия списки.

Роль каждого из девяти правил модели Кларка-Вилсона в обеспече­нии целостности информации можно пояснить, показав, каким из теорети­ческих принципов политики контроля целостности отвечает данное правило. Напомним, что первые шесть из сформулированных выше принци­пов это:

1) корректность транзакций;

2) аутентификация пользователей;

3) минимизация привилегий;

4) разграничение функциональных обязанностей;

5) аудит произошедших событий;

6) объективный контроль.

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

 

Таблица 4

Правило модели Кларка-Вилсона Принципы политики контроля целостности, реализуемые правилом
С1 1,6
С2  
E1 3,4
Е2 1,2,3,4
СЗ  
ЕЗ  
С4  
С5  
Е5  

 

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

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

 

Защита памяти

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

 

• совместный доступ полностью исключен, возможно только монополь­ное использование области памяти;

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

 

  Чтение Запись Исполнение
Приложение 1 Да Да Да
Приложение 2 Да Да Нет
Приложение 3 Да Нет Нет

 

• совместный доступ разрешен и ничем не ограничен.

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

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

• ограничение возможностей совместно используемых программ по ма­нипулированию информацией различной ценности.

Кратко рассмотрим основные способы защиты памяти.

 

Барьерные адреса

Барьерный адрес указывает на начало пользовательской области памяти, отделяя ее от области памяти, е которой размещается програм­мы АС и ее данные (как правило, это области младших адресов). Это на­поминает забор, построенный дачником, чтобы отгородиться от назойли­вого соседа.

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

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

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

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

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

В обоих рассмотренных случаях на этапе выполнения программы адреса ее данных задавались в абсолютном формате (загруженная про­грамма содержала реальные значения физических адресов), что накла­дывало ограничения на способ изменения барьерного адреса АС. Более гибкий способ перераспределения памяти между АС и приложениями обеспечивает механизм динамических областей памяти.

 

Динамические области памяти

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

Рассмотренные выше способы защиты реализуют только разграни­чение доступа к памяти АС и приложений. Однако в многозадачной сис­теме необходимо также отдельно защитить данные каждого приложения. Такие механизмы рассматриваются ниже.

 

Адресные регистры

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

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

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

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

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

 

Адрес ячейки Чтение Запись Исполнение
  Да Да Нет
  Да Нет Нет
  Да Нет Да

 

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

Более совершенные средства защиты памяти обеспечиваются меха­низмами страничной организации памяти и сегментации.

 

Страницы и сегменты памяти

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

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

Смысл сегментной организации памяти заключается в том, чтобы предоставить индивидуальные (возможно, неодинаковые по размеру) об­ласти памяти логически различным частям программы. Например, в от­дельные сегменты могут быть помещены данные с различным типом дос­тупа или код основной части программы и вызываемых ею подпрограмм. Преобразование логических адресов в физические происходит на основе содержимого таблицы сегментов, куда заносятся базовый и предельный адреса каждого сегмента (они обсуждались при описании функциониро­вания адресных регистров). Логический адрес имеет формат <номер сег­мента, смещение>, похожий на формат, применяемый в страничной адре­сации. Однако теперь каждый сегмент содержит однородные объекты, которым необходим одинаковый уровень защиты, так же как и выше, обеспечиваемый ключом доступа. Возможно совместное использование сегментов данных и кода, отдельные участки которого (например, проце­дуры и функции) могут быть предоставлены в совместное использование независимо от основной программы.

 

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

Средства контроля целостности программ и файлов данных, храни­мых в АС, должны обеспечивать защиту от несанкционированного изме­нения этой информации нарушителем, особенно при ее передаче по ка­налам связи. Цифровая (электронная) подпись, основные характеристики которой рассмотрены в целом ряде источников, в частности [2], является одним из часто используемых для решения данной задачи механизмов.

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

В чем состоит проблема аутентификации данных или цифровой подписи?

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

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

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

Перечислим возможные способы обмана (нарушения подлинности сообщения) при условии, что между участниками модели А, В, С отсутст­вует кооперация.

Способ А: отправитель А заявляет, что он не посылал сообщение Т получателю В, хотя в действительности его посылал (подмена отправлен­ного сообщения или отказ от авторства).

Способ В1: получатель В изменяет полученное от отправителя А сообщение Т и заявляет, что данное измененное сообщение он получил от отправителя А (подмена принятого сообщения).

Способ В2: получатель В сам формирует сообщение и заявляет, что получил его от отправителя А (имитация принятого сообщения).

Способ С1: злоумышленник С искажает сообщение, которое отпра­витель А передает получателю В {подмена передаваемого сообщения).

Способ С2: злоумышленник С формирует и посылает получателю В сообщение Т от имени отправителя А (имитация передаваемого сообщения).

Способ СЗ: злоумышленник С повторяет ранее переданное сообще­ние, которое отправитель А посылал получателю В (повтор ранее пере­данного сообщения).

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

Приведем сравнительный анализ обычной и цифровой подписи.

При обычной подписи:

• каждая личность использует индивидуальные, только ей присущие характеристики - почерк, давление на ручку и т. д.;

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

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

• копии подписанных документов недействительны, если каждая из этих копий не имеет своей настоящей (а не скопированной) подписи.

При цифровой подписи:

• каждая личность использует для подписи документов свой уникальный

секретный ключ;

• Любая попытка подписать документ без знания соответствующего сек­ретного ключа практически не имеет успеха;

• цифровая подпись документа есть функция от содержания этого доку­мента и секретного ключа; цифровая подпись может передаваться от­дельно от документа;

• копия документа с цифровой подписью не отличается от его оригинала

(нет проблем каждой копии).

Для аутентификации информации Диффи и Хеллман в 1976 г. пред­ложили концепцию "цифровой подписи". Она заключается в том, что каж­дый абонент сети имеет личный секретный ключ, на котором он формиру­ет подпись и известную всем другим абонентам сети проверочную комби­нацию, необходимую для проверки подписи (эту проверочную комбинацию иногда называют открытым ключом). Цифровая подпись вычисляется на основе сообщения и секретного ключа отправителя. Любой получатель, имеющий соответствующую проверочную комбинацию, может аутентифицировать сообщение по подписи. При этом знание лишь проверочной комбинации не позволяет подделать подпись. Такие схемы называются асимметричными схемами аутентификации.

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

Известны два класса формирования цифровой подписи.

• Первый класс способов использует труднообратимые функции типа возведения в степень в конечных полях большой размерности (сотни и даже тысячи битов). К этому классу относится Российский ГОСТ на цифровую подпись (ГОСТР 34.10-94 и ГОСТ Р 34.11-94). Он является усложнением алгоритмов цифровой подписи RSA и Эль-Гамаля.

• Второй класс способов использует криптостойкие преобразования, зависящие от секретного ключа.

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

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



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 1613; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.136.26.156 (0.01 с.)