В 1987 году Дэвид Кларк и Дэвид Уилсон представили модель целостности, которая существенно отличалась от уровне-ориентированных моделей безопасности БЛМ и Биба. Созданию этой модели, которая известна как модель Кларка-Вилсона (МКВ), способствовал анализ методов управления целостностью бумажных ресурсов в неавтоматизированном офисе коммерческими организациями. Получившаяся модель целостности представляет собой руководство для разработчиков и проектировщиков компьютерных систем по обеспечению целостности определенных вычислительных ресурсов.
Модель МКВ выражается в терминах набора правил функционирования и обслуживания компьютерного окружения или приложения. Эти правила вырабатываются для обеспечения уровня защиты целостности для некоторого заданного подмножества данных в этом окружении или
приложении. Критическим понятием модели МКВ является то, что эти правила выражаются с использованием так называемых правильно сформированных транзакций, в которых субъект инициирует последовательность действий, которая выполняется управляемым и предсказуемым образом.
Представим модель МКВ с помощью строгого описания основных компонентов, включенных в модель. Модель Кларка-Вилсона выражается в терминах конечного множества. За D (для данных) обозначим все наборы данных в определенной компьютерной системе.
Чтобы различать данные, обладающие и не обладающие целостностью, создатели модели разделили D на два непересекающиеся подмножества, которые называются ограниченные элементы данных (CDI) и неограниченные элементы данных (UDI). Это можно изобразить следующими определениями:
D = CDIuUDI; CDInUDI = 0.
Первое определение показывает, что D является объединением CDI и UDI, а второе определение показывает, что нет элементов, принадлежащих и CDI, и UDI. Набор D разделен таким образом, потому что мы хотим показать, как может меняться целостность данных. Другими словами, данные, не имеющие целостности и находящиеся поэтому в UDI, могут быть некоторым образом модернизированы, так чтобы иметь целостность и находиться соответственно в CDI.
Субъекты включены в модель как множество компонентов, которые могут инициировать так называемые процедуры преобразования. Процедура преобразования определяется как любая ненулевая последовательность элементарных действий. Элементарное действие, в свою очередь, определяется как переход состояния, который может вызвать изменение некоторых элементов данных. Например, субъекты могут устранять элементы данных, изменять информацию в элементах данных, копировать их и т.д. Каждая из этих операций называется процедурой преобразования, поскольку действительный способ, которым каждая из них выполняется, включает в себя последовательность элементарных действий (например, копирование А в В обычно состоит из таких операций, как чтение А, создание В, запись в В).
6.6.1. Правила модели МКВ
Используя вышеуказанные понятия, мы можем теперь рассмотреть основные правила, составляющие МКВ. В МКВ девять правил. Предполагается, что правила приняты все вместе, так что любое правило может ссылаться на любое другое правило без каких-либо ограничений.
Правило 1. В системе должны иметься процедуры утверждения целостности, утверждающие целостность любого CDI.
Простейшим примером такой процедуры утверждения является проверка контрольной суммы. При использовании этого подхода вычисляется контрольная сумма некоей хранимой информации, и копии этой информации сравниваются с оригиналом путем проверки соответствующих контрольных сумм. Различия в контрольных суммах сигнализируют о внесении изменений.
Правило 2. Применение любой процедуры преобразования к любому CDI должно сохранять целостность этого CDI.
Это правило можно рассматривать как свойство скрытия применения процедуры преобразования над CDI, то есть любое применение процедуры преобразования над CDI не приведет к нарушению целостности CDI.
Правило 3. Только процедура преобразования может вносить изменения в CDI.
Данное правило модели МКВ не позволяет субъектам с низкой целостностью, то есть не использующим процедуру преобразования, изменять объекты с высокой целостностью, то есть CDI. В этом плане модель Клар-ка-Вилсона подобна мандатной модели целостности Биба.
Правило 4. Субъекты могут инициировать только определенные процедуры преобразования над определенными CDI.
Это правило предполагает, что система должна определять и поддерживать некоторые отношения между субъектами процедуры преобразования и CDI, так называемые МКВ-тройки. Каждая такая тройка определяет возможность данного субъекта применить данную процедуру преобразования к данному CDI. Например, если (s, t, d) является элементом отношения, то субъекту s разрешается применить процедуру преобразования t к CDI d. Если же эта тройка не является элементом отношения, то такой тип применения процедуры преобразования будет запрещен. Это правило гарантирует, что всегда можно определить, кто может изменить CDI и как это изменение может произойти.
Правило 5. МКВ-тройки должны проводить некоторую соответствующую политику разделения обязанностей субъектов.
Это правило предусматривает, что компьютерная система определяет такую политику, чтобы не позволять субъектам изменять CDI без соответствующего вовлечения других субъектов. Это предотвращает субъектов от возможности наносить ущерб целостности CDI. Некоторые системы управления конфигурацией предоставляют уровень разделения обязанностей. Например, в некоторых системах разработчики ПО должны представить свои модули на просмотр менеджеру по разработке ПО перед тем, как они смогут включить их в конфигурацию. Этот подход защищает целостность конфигурации ПО.
Правило 6. Некоторые специальные процедуры преобразования могут превращать UDI в CDI.
Правило 7. Каждое применение процедуры преобразования должно регистрироваться в специальном CDI, в который может производиться только добавление информации, достаточной для восстановления картины о процессе работы этого CDI.
Это правило требует ведения специального регистрационного журнала, который хранится в определенном CDI.
Правило 8. Система должна распознавать субъекты, пытающиеся инициировать процедуру преобразования.
Это правило определяет механизмы предотвращения атак, при которых один субъект пытается выдать себя за другого.
Правило 9. Система должна разрешать производить изменения в списках авторизации только специальным субъектам (например, офицерам безопасности).
Можно сказать, что указанные выше девять правил определяют, как может быть проверена целостность, как и кем могут изменяться CDI и как UDI могут быть превращены в CDI.
Основным преимуществом модели МКВ является то, что она основана на проверенных временем методах обращения с бумажными ресурсами. Поэтому модель МКВ не следует рассматривать как академическое исследование, а скорее как комплекс существующих методов. Модель МКВ также предоставляет исследователям методы работы с целостностью, отличные от традиционных уровне-ориентированных подходов, таких как модели БЛМ и Биба.
Основным недостатком модели является то, что процедуру утверждения целостности и методы предотвращения CDI от искажения целостности нелегко реализовать в реальных компьютерных системах.
Все недостатки данной модели вытекают из-за ее неформализованное™. Ее можно применять при проектировании систем для спецификации пользовательских приложений и использовать на соответствующем уровне иерархии рассмотрения защищенной вычислительной системы.