Jump to content

Информационный поток (теория информации)

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

Введение

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

В последние годы защита данных, которыми манипулируют компьютерные системы, стала непростой задачей. Сегодня существует несколько методов ограничения раскрытия информации, такие как списки контроля доступа , межсетевые экраны и криптография . Однако, хотя эти методы накладывают ограничения на информацию, публикуемую системой, они не дают никаких гарантий относительно распространения информации . [1] Например, списки контроля доступа файловых систем предотвращают несанкционированный доступ к файлам, но не контролируют, как данные будут использоваться впоследствии. Аналогичным образом, криптография предоставляет средства для частного обмена информацией по незащищенному каналу, ногарантии конфиденциальности данных предоставляются после их расшифровки.

При анализе информационных потоков низкого уровня каждой переменной обычно присваивается уровень безопасности. Базовая модель включает два различных уровня: низкий и высокий, что означает, соответственно, общедоступную информацию и секретную информацию. Для обеспечения конфиденциальности не следует допускать перетекания информации от высоких переменных к младшим. С другой стороны, для обеспечения целостности потоки к переменным с высоким значением должны быть ограничены. [1]

В более общем смысле уровни безопасности можно рассматривать как решетку , в которой информация течет только вверх. [2]

Например, учитывая два уровня безопасности и (низкий и высокий), если , вытекает из к , от к , и к будет разрешено, в то время как потоки из к не стал бы. [3]

На протяжении всей статьи используются следующие обозначения:

  • переменная (низкий) обозначает общедоступную переменную
  • переменная (высокий) обозначает секретную переменную

Где и — единственные два уровня безопасности в решетке рассматриваемой .

Явные потоки и побочные каналы

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

Информационные потоки можно разделить на две основные категории. Самый простой из них — явный поток, когда некоторый секрет явно передается публично наблюдаемой переменной. В следующем примере секрет переменной h переходит в общедоступную переменную l .

вар  л,чл := ч 

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

В следующем примере злоумышленник может определить, равно ли значение h единице или нет, к моменту завершения программы:

вар  л, ч если  h = 1,  то     (* сделать некоторую трудоемкую работу *)л := 0 

Другим побочным потоком канала является неявный информационный поток, заключающийся в утечке информации через поток управления программой. Следующая программа (неявно) раскрывает значение секретной переменной h переменной l . В этом случае, поскольку переменная h является логической, раскрываются все биты переменной h (в конце программы l будет равно 3, если h истинно, и 42 в противном случае).

вар  л, ч если  h = правда  , то     л := 3 еще     л := 42 

Невмешательство

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

Невмешательство — это политика, которая обеспечивает, чтобы злоумышленник не мог отличить два вычисления от их выходных данных, если они различаются только секретными входными данными.Однако эта политика слишком строга, чтобы ее можно было использовать в реалистичных программах. [4] Классическим примером является программа проверки паролей, которая, чтобы быть полезной, должна раскрыть некоторую секретную информацию: верен или нет введенный пароль (обратите внимание, что информация, которую узнает злоумышленник в случае, если программа отклоняет пароль, заключается в том, что предпринятый пароль недействителен ).

Управление информационными потоками

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

Механизм управления информационными потоками — это механизм, который обеспечивает соблюдение политик информационных потоков. Было предложено несколько методов обеспечения соблюдения политики потоков информации. Механизмы времени выполнения, которые помечают данные метками информационных потоков, использовались на уровне операционной системы и на уровне языка программирования. Также был разработан статический анализ программ, который обеспечивает соответствие потоков информации внутри программ политике.

Разработан как статический, так и динамический анализ для современных языков программирования. Однако методы динамического анализа не могут наблюдать все пути выполнения и, следовательно, не могут быть одновременно надежными и точными. Чтобы гарантировать невмешательство, они либо прекращают выполнение операций, которые могут привести к раскрытию конфиденциальной информации. [5] или они игнорируют обновления, которые могут привести к утечке информации. [6]

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

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

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

В языке программирования, дополненном системой типов безопасности , каждое выражение содержит как тип (например, логическое или целое число), так и метку безопасности.

Ниже приведена простая система типов безопасности от [1] это обеспечивает невмешательство.Обозначения означает, что выражение имеет тип . Сходным образом, означает, что команда можно вводить в контексте безопасности .

К правильно типизированным командам относятся, например,

.

И наоборот, программа

неправильно типизирован, так как раскрывает значение переменной в .

Обратите внимание, что правило является правилом включения, которое означает, что любая команда с типом безопасности также может быть . Например, может быть и то, и другое и . это называется полиморфизмом В теории типов . Аналогично, тип выражения это удовлетворяет может быть и то, и другое и в соответствии с и соответственно.

Рассекречивание

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

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

Надежное рассекречивание требует, чтобы активный злоумышленник не мог манипулировать системой с целью узнать больше секретов, чем то, что уже известно пассивным злоумышленникам. [4]

Конструкции рассекречивания информации можно классифицировать по четырем ортогональным измерениям: какая информация публикуется, кто имеет право на доступ к информации, где информация публикуется и когда информация публикуется. [4]

Политика рассекречивания «что» определяет, какая информация (частичная или нет) может быть передана в публично наблюдаемую переменную.

В следующем примере кода показана конструкция деклассификации from. [8] В этом коде программист явно разрешает значению переменной h перетекать в общедоступную переменную l .

вар  л, ч если  l = 1,  то     л :=  рассекретить  (h) 

Политика Who рассекречивания определяет, какие участники (т. е. кто) могут получить доступ к определенной части информации. Такая политика реализована в компиляторе Jif. [9]

Следующий пример позволяет Бобу поделиться своим секретом, содержащимся в переменной b, с Алисой через общедоступную переменную ab .

var  ab  (* {Алиса, Боб} *)  var  b  (* {Боб} *)  если  ab = 1  , то     ab :=  рассекретить  (b, {Алиса, Боб})  (* {Алиса, Боб} *) 

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

В следующем примере используется конструкция потока , предложенная в разделе . [10] Эта конструкция принимает политику потока (в этом случае переменным в H разрешено передавать переменные в L) и команду, которая запускается в соответствии с данной политикой потока.

вар  л, ч поток  H  л  в     л := ч 

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

Подходы к рассекречиванию неявных потоков

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

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

Наивный подход

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

Наивный подход заключается в обеспечении соблюдения свойства конфиденциальности для всех переменных, на значение которых влияют другие переменные. Этот метод приводит к частичной утечке информации из-за того, что в некоторых экземплярах приложения переменная имеет значение Low, а в других — High. [ объяснить ]

Нет деликатного обновления

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

«Нет чувствительного обновления» останавливает программу всякий раз, когда переменная High влияет на значение переменной Low. Поскольку он просто ищет выражения, в которых может произойти утечка информации, не глядя на контекст, он может остановить программу, которая, несмотря на потенциальную утечку информации, на самом деле никогда не осуществляет утечку информации.

В следующем примере x — это High, а y — Low.

вар  х, уy := ложь если  х = правда,  то     y := правда вернуть  истину 

В этом случае программа будет остановлена, поскольку, говоря синтаксически, она использует значение переменной High для изменения переменной Low, несмотря на то, что программа никогда не теряет информацию.

Разрешительное обновление

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

Permissive-upgrade вводит дополнительный класс безопасности P, который будет определять переменные утечки информации. Когда переменная High влияет на значение переменной Low, последняя помечается P. Если переменная с меткой P влияет на переменную Low, программа будет остановлена. Чтобы предотвратить остановку, переменные Low и P следует преобразовать в High с помощью функции приватизации, чтобы исключить утечку информации. В последующих случаях программа будет работать без перерывов.

Заключение о приватизации

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

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

Применение в компьютерных системах

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

Помимо приложений к языку программирования, теории управления информационными потоками применяются к операционным системам. [11] распределенные системы, [12] и облачные вычисления. [13] [14]

  1. ^ Перейти обратно: а б с Андрей Сабельфельд и Эндрю К. Майерс. Языковая безопасность информационных потоков. Журнал IEEE по избранным областям коммуникаций, 21 (1), январь 2003 г.
  2. ^ Дороти Деннинг. Решётчатая модель безопасного потока информации. Сообщения ACM, 19(5):236-242, 1976.
  3. ^ Смит, Джеффри (2007). «Принципы анализа защищенных информационных потоков». Достижения в области информационной безопасности . Том. 27. Спрингер США. стр. 291–307.
  4. ^ Перейти обратно: а б с Андрей Сабельфельд и Дэвид Сэндс. Размеры и принципы рассекречивания. В Proc. семинара IEEE по основам компьютерной безопасности, 2005 г.
  5. ^ Томас Х. Остин и Кормак Фланаган. Эффективный чисто динамический анализ информационных потоков, Учеб. четвертого семинара ACM SIGPLAN по языкам программирования и анализу безопасности, ACM, 2009 г.
  6. ^ Дж. С. Фентон. Подсистемы без памяти, Вычисл. Дж. 17 (2): 143–147 (1974).
  7. ^ С. Зданцевич. Проблемы безопасности информационных потоков. На семинаре по взаимодействию и зависимости языков программирования (PLID'04), 2004 г.
  8. ^ А. Сабельфельд и AC Майерс. Модель ограниченного выпуска информации. В Proc. Международного симпозиума по безопасности программного обеспечения (ISSS) 2003 г.
  9. ^ Jif: информационный поток Java
  10. ^ А. Алмейда Матос и Г. Будоль. О рассекречивании и политике неразглашения. В Proc. Семинар IEEE по основам компьютерной безопасности, 2005 г.
  11. ^ М. Крон, А. Йип, М. Бродский, Н. Клиффер, М. Каашук, Э. Колер и Р. Моррис. Управление информационными потоками для стандартных абстракций ОС. В Специальной группе интересов ACM по операционным системам (SIGOPS) на симпозиуме по принципам операционных систем 2007 г.
  12. ^ Н. Зельдович, С. Бойд-Викайзер и Д. Мазиер. Защита распределенных систем с помощью управления информационными потоками. На симпозиуме USENIX по проектированию и внедрению сетевых систем, 2008 г.
  13. ^ Дж. Бэкон, Д. Эйерс, Т. Паскье, Дж. Сингх, И. Папаяннис и П. Пицуч. Управление информационными потоками для безопасных облачных вычислений. В транзакциях IEEE по управлению сетями и услугами, 2014 г.
  14. ^ Паскье, Томас; Сингх, Джатиндер; Эйерс, Дэвид; Бэкон, Жан (2015). «CamFlow: управляемый обмен данными для облачных сервисов». Транзакции IEEE в облачных вычислениях . 5 (3): 472–484. arXiv : 1506.04391 . Бибкод : 2015arXiv150604391P . дои : 10.1109/TCC.2015.2489211 . S2CID   11537746 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b3e9eadcd4f7c137889f3ec9712532a5__1713500040
URL1:https://arc.ask3.ru/arc/aa/b3/a5/b3e9eadcd4f7c137889f3ec9712532a5.html
Заголовок, (Title) документа по адресу, URL1:
Information flow (information theory) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)