Jump to content

Тип системы безопасности

В информатике можно систему типов описать как синтаксическую структуру, содержащую набор правил, которые используются для присвоения свойства типа (int, boolean, char и т. д.) различным компонентам компьютерной программы, таким как переменные или функции. . Система типа безопасности работает аналогичным образом, только с основным упором на безопасность компьютерной программы посредством информационными потоками управления . Таким образом, различным компонентам программы присваиваются типы безопасности или метки. Целью такой системы является в конечном итоге возможность проверить, что данная программа соответствует правилам системы типов и удовлетворяет требованиям невмешательства . Системы типов безопасности — это один из многих методов безопасности, используемых в области языковой безопасности , и он тесно связан с информационными потоками и политиками информационных потоков.

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

Простая политика потока информации

[ редактировать ]
Диаграмма Хассе , описывающая простую политику потока конфиденциальной информации.

Предположим, есть два пользователя А и Б. В программе следующие классы безопасности введены (SC):

  • SC = {∅, {A}, {B}, {A,B}}, где ∅ — пустое множество.

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

  • → = {({A}, {A}), ({B}, {B}), ({A,B}, {A,B}), ({A,B}, {A}), ({A,B}, {B}), ({A}, ∅), ({B}, ∅), ({A,B}, ∅)}

Это также можно описать как надмножество (⊇). Другими словами: информация может передаваться в сторону более строгого уровня конфиденциальности. Оператор комбинации (⊕) может выразить, как классы безопасности могут выполнять операции чтения по отношению к другим классам безопасности. Например:

  • {A} ⊕ {A,B} = {A} — единственный класс безопасности, который может читать оба {A} и {A,B} является {A}.
  • {A} ⊕ {B} = ∅ - ни один {A} ни {B} разрешено читать с обоих {A} и {B}.

Это также можно описать как пересечение (∩) между классами безопасности.

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

Политика информационных потоков в системах типа безопасности

[ редактировать ]

После внедрения политики разработчик программного обеспечения может применить классы безопасности к компонентам программы. Использование системы типов безопасности обычно сочетается с компилятором, который может выполнять проверку информационного потока в соответствии с правилами системы типов. Для простоты в качестве демонстрации можно использовать очень простую компьютерную программу вместе с политикой потока информации, описанной в предыдущем разделе. Простая программа представлена ​​в следующем псевдокоде:

if y{A} = 1 then x{A,B} := 0 else x{A,B} := 1

Здесь проверка на равенство выполняется для переменной y, которой присвоен класс безопасности {A}. Переменная x с более низким классом безопасности ( {A,B}) зависит от этой проверки. Это означает, что информация утекает из класса {A} в класс {A,B}, что является нарушением политики конфиденциальности. Эта утечка должна быть обнаружена системой типа безопасности.

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

  • Типы присваиваются операциям чтения: Γ ⊢ e : τ.
  • Типы присваиваются операциям записи: Γ ⊢ S : τ cmd.
  • Константам можно присвоить любой тип.

Для декомпозиции программы можно использовать следующую запись снизу вверх: предположение 1 ... предположение n / вывод . После того как программа разложена на тривиальные оценки, с помощью которых можно легко определить тип, можно получить типы для менее тривиальных частей программы. Каждый «числитель» рассматривается изолированно, при этом анализируется тип каждого оператора, чтобы определить, можно ли получить разрешенный тип для «знаменателя» на основе определенных «правил» системы типов.

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

Назначение:
Γ(x) = τ1, Γ ⊢ a : τ2

Γ ⊢ x := a : τ1 cmd
, где должно выполняться следующее условие: τ2 ⊑ τ1
Условный тест:
Γ ⊢ t : τ, Γ ⊢ S1 : τ1 cmd, Γ ⊢ S2 : τ2 cmd

Γ ⊢ if t then S1 else S2: τ1 ⊓ τ2 cmd
, где должно выполняться следующее условие: τ ⊑ τ1, τ2

Применяя это к простой программе, представленной выше, получаем:

3 Γ(y) = {A} Γ(x) = {A,B} cmd, Γ ⊢ 0 : {A,B} Γ(x) = {A,B} cmd, Γ ⊢ 1 : {A,B}



2 Γ ⊢ y = 1 : {A} Γ ⊢ x := 0 : {A,B} cmd Γ ⊢ x := 1 : {A,B} cmd

1 Γ ⊢ if y = 1 then x := 0 else x := 1 : Not typeable

Система типов обнаруживает нарушение политики в строке 2, где выполняется операция чтения класса безопасности. {A} выполняется, после чего следуют две операции записи менее строгого класса безопасности {A,B}. Говоря более формализованно, {A} ⋢ {A,B}, {A,B} (из правила условного теста). Таким образом, программа классифицируется как «нетипизированная».

разумность

[ редактировать ]

Надежность системы типа безопасности можно неформально определить как: если программа P хорошо напечатан, P удовлетворяет принципу невмешательства. Вольпано, Смит и Ирвин были первыми, кто доказал правильность системы типов безопасности для детерминированного императивного языка программирования со стандартной (неинструментальной) семантикой, используя понятие невмешательства. [1]

  1. ^ Вольпано, Деннис; Смит, Джеффри; Ирвин, Синтия (1996). «Надежная система для безопасного анализа потока». Журнал компьютерной безопасности . 4 (2).

Дальнейшее чтение

[ редактировать ]
  • Фред Б. Шнайдер, Грег Моррисетт и Роберт Харпер, Языковой подход к безопасности .
  • Андрей Сабельфельд, Эндрю Майерс, Языковая безопасность информационных потоков .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1c1e657795fe7e1c9a8c6c1629ecfe5c__1700353440
URL1:https://arc.ask3.ru/arc/aa/1c/5c/1c1e657795fe7e1c9a8c6c1629ecfe5c.html
Заголовок, (Title) документа по адресу, URL1:
Security type system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)