В цифровую эпоху частные лица и предприятия сталкиваются с растущим риском утечки данных. В контексте теории информации информационный поток относится к процессу передачи данных от одной переменной x
к другой переменной y
. Ни одна система не хочет допускать утечки конфиденциальной информации, которая не только затрагивает личную жизнь, но и может нанести существенные убытки компании. р>
Существует множество способов ограничить раскрытие информации, например, списки контроля доступа, брандмауэры и технологии шифрования. Однако, хотя эти методы в определенной степени ограничивают раскрытие информации, они не могут гарантировать, что информация не будет раскрыта. р>
С развитием технологий методы обеспечения безопасности данных также существенно изменились. Например, списки контроля доступа могут предотвратить несанкционированный доступ к файлам, но они не могут контролировать, что происходит с данными после их использования. Аналогичным образом, хотя технология шифрования позволяет передавать информацию конфиденциально по незащищенному каналу, конфиденциальность данных окажется под угрозой после их расшифровки. Поэтому становится особенно важным понимание управления информационными потоками. р>
Информационные потоки можно условно разделить на две категории: явные потоки и обходные потоки. Явный поток — это когда секрет явно передается в публично наблюдаемую переменную, например:
<код>var l, h; l := h;код>С другой стороны, сторонние потоки используют определенные характеристики, такие как время выполнения или энергопотребление, для утечки информации. Например, в условии, если h
истинно, будет выполнена некоторая трудоемкая работа, что позволяет злоумышленнику вывести h
на основе времени, затраченного программой. . Значение . р>
Неявный поток информации также является частью обходного потока. В то время как поток управления программой основан на закрытых данных, открытые переменные могут подразумевать некоторую секретную информацию. р>
Политика невмешательства заключается в том, что злоумышленник не должен иметь возможности различить два вычисления на основе их выходных данных, если они отличаются только секретными входными данными. Тем не менее, эта политика слишком ограничительна для применения в реальных процедурах. р>
Например, программе проверки паролей может потребоваться при необходимости раскрыть некоторую секретную информацию: а именно, верен ли введенный пароль. Это позволяет злоумышленнику получить полезную информацию, даже если программа отклоняет пароль, например, если введенный пароль оказался недействительным. р>
Механизмы управления информационными потоками предназначены для обеспечения соблюдения политик в отношении информационных потоков. Для достижения этой цели было предложено несколько методов реализации стратегий информационных потоков. Механизмы выполнения могут маркировать данные на уровне операционной системы и языка программирования, в то время как статический анализ программы гарантирует, что поток информации в программе следует соответствующим политикам. р>
Однако методы динамического анализа не могут отслеживать все пути выполнения и, следовательно, не могут гарантировать как надежность, так и точность. Чтобы гарантировать, что они не помешают реализации политики, эти методы часто требуют прекращения выполнения, которое может привести к утечке конфиденциальной информации, или игнорирования обновлений, которые могут привести к утечке информации. р>
Безопасная система типов добавляет важный элемент в языки программирования, позволяя каждому выражению иметь метку безопасности в дополнение к типу (например, логическому или целому числу). Преимущество такого подхода заключается в том, что, если программа проходит проверку типов, она может гарантировать соблюдение политики потока, тем самым избегая ненадлежащего потока информации. р>
Например, если переменная помечена как тип с высокой степенью безопасности, то эта переменная не должна изменять переменную типа с низкой степенью безопасности, тем самым защищая конфиденциальную информацию от утечки. р>
В реальных приложениях строгость политики невмешательства делает ее непрактичной. Поэтому для достижения цели контролируемого раскрытия информации было предложено множество схем разрешения ее раскрытия. Эти схемы также известны как рассекречивание информации. Надежная рассекречивание должна гарантировать, что активный злоумышленник не сможет манипулировать системой, чтобы получить доступ к секретам, выходящим за рамки того, что известно пассивному злоумышленнику. р> Краткое содержание
Управление потоками информации становится все более важным в современном программировании и защите данных. Однако эффективное обеспечение безопасности данных в практических приложениях остается проблемой, требующей решения. Готовы ли вы справиться с этими потенциальными угрозами? р>