next up previous
Next: Заключение Up: Спецификация и Реализация в Previous: Модуль ACI

Средство Принятия Решения о Предоставлении Доступа (ADF)

Модуль ADF приняв запрос о предоставлении доступа от AEF оценивает его при помощи правил различных политик безопасности. Схема 4, например, демонстрирует правила политики секретности ADF для запросов типа append-open. Язык спецификации должен быть интуитивно понятен для широкой аудитории, а так же его описание имеется в [LaPadula 1995]. В этой спецификации следующие предикаты соответствуют следующим значениям:

Necessary (task, class, transp, right) <=> (task, class, transp, right) is element of the table Necessary-Accesses.

Purpose-binding(task, class) <=> Purpose(task) is element of Purposes(class).

Consent(task, object) <=> (purpose(task), object) is element of the table consent.

CASE APPEND_OPEN

   SELECT CASE target[input-argument]

      CASE file

         SELECT CASE data-type(object)

            CASE personal-data

                  IF [Necessary (current-task (process), class (object),

                       transformation-procedure (process), append )

               AND

                  Purpose-binding (current-task (process), class (object)) 

               OR 

                  consent (current-task (process), object)]

               AND

                  purposes(class(object)) in input-purposes(process)

               THEN

                  return(YES)

               ELSE

                  return(NO)

            CASE TP (* it is not allowed to directly modify TPs *)

               return (NO)

            CASE non-personal-data

                  IF purposes(class(object)) in input-purposes(process) 

               THEN (* in this case input-purposes(process) is equal

                     to the set of all possible purposes *) return(YES)

               ELSE return(NO)

            CASE ELSE

               return(NO);

            CASE ipc

                  IF class(object) is none (*object contains non-personal-data*) 

               THEN

                  IF purposes(class(object)) in input-purposes(process) 

               THEN

                  return(YES)

               ELSE

                  return(NO)

               ELSE (* object contains personal data *)

                  IF Necessary (current-task(process), class(object),

                     transformation-procedure (process), append)

               AND

                  Purpose-binding (current-task (process), class(object))

               AND

                  purposes(class(object)) in input-purposes(process)

               THEN (* consents are not defined for ipc-objects *)

                  return (YES)

               ELSE

                  return (NO)

            CASE ELSE

               return (UNDEFINED);

Схема 4: Спецификация ADF - правила политики секретности для запроса типа append-open

Для соответствия с моделью секретности файлы личных данных могут быть созданы при помощи системного вызова create_personal_data, если как параметр указан класс нового файла. Для сохранения функциональности в системе Unix, процессам TP-типа должно быть позволено создание объектов при помощи обычного системного вызова Unix - creat (создать). Если процесс TP-типа создает файл или ipc-объект, то эти объекты должны обрабатываться как личные данные, во-избежание возникновения нелегального информационного потока. Между тем, если был вызван системный вызов creat, то в качестве параметра для нового файла или ipc-объекта не может быть использован класс объекта. Следовательно, для каждой цели pj уникальным значением default-class будет являться: purpose(default-class(pj)) = pj.

Если процесс TP-типа создаёт при помощи системного вызова creat файл или объект ipc-типа, то object-class вновь созданного объекта будет иметь значение default-class цели текущей задачи процесса.


next up previous
Next: Заключение Up: Спецификация и Реализация в Previous: Модуль ACI