Секретные каналы
Описываемая модель изначально была сформулирована в терминах единой системы разделения времени, но те же идеи применимы в локальной сети и в других многопользовательских средах. В ее чистом виде в эту модель входят три процесса, работающих на одной защищенной машине. Первый процесс представляет собой клиента, который доверяет выполнить некоторое задание второму процессу, серверу. Клиент и сервер доверяют друг другу не полностью. Например, работа сервера заключается в том, чтобы помочь клиентам заполнить их налоговые декларации. Клиенты беспокоятся, что сервер запишет в тайную тетрадь их финансовую информацию, а затем, например, продаст эти сведения. Сервер озабочен тем, что клиенты украдут ценную программу подсчета налогов.
Третий процесс, являясь сообщником сервера, намеревается украсть конфиденциальные сведения клиента. Владельцем этого процесса, как и сервера, обычно является один и тот же человек. Все три процесса показаны на рис. 5.27. Цель данной модели — помочь разработать систему, в которой невозможна утечка к сообщнику сервера информации, полученной сервером у клиента. В [72] это названо проблемой изоляции.
Рис. 5.27. Проблема изоляции: а — клиент, сервер и сообщник сервера; б — даже от изолированного сервера информация может попасть к сообщнику по секретному каналу |
С точки зрения разработчика системы задача заключается в изоляции сервера таким образом, чтобы он не мог передать информацию сообщнику.
С помощью матрицы защиты несложно гарантировать, что сервер не будет общаться с сообщником, записывая данные в файл, к которому у сообщника есть доступ для чтения. Вероятно, можно также гарантировать отсутствие взаимодействия между процессами сервера и сообщника при помощи системного механизма.К сожалению, утечка информации может происходить по секретным каналам. Например, сервер может передавать последовательность нулей и единиц, кодируя единицы интервалами высокой активности процессора, а нули — интервалами бездействия.
Сообщник может принимать этот поток, тщательно отслеживая время отклика сервера. Как правило, время отклика меньше у простаивающего сервера, то есть меньшее время отклика означает ноль, большее — единицу. Этот канал связи называется секретным. Он показан на рис. 5.27, б.
Конечно, секретный канал по определению зашумлен, но если применить помехоустойчивое кодирование (например, код Хэмминга), информация может
приниматься сообщником с высокой степенью надежности. Пропускная способность такого канала будет невелика, но это не снижает его опасности. Очевидно, что ни одна из моделей защиты, основанных на матрицах объектов и доменов, не в силах предотвратить данный тип утечки информации.
Модуляция центрального процессора не является единственным вариантом секретного канала. Информация может также кодироваться ошибками отсутствия страниц, например, много ошибок отсутствия страниц в течение определенного интервала времени будет означать 1, а отсутствие ошибок — 0. В принципе для этой цели подойдет любой способ снижения производительности системы в течение определенного интервала времени. Если система позволяет блокировать файлы, тогда сервер может блокировать некий файл, что будет означать, например, 1, и разблокировать его, кодируя, таким образом, 0. Некоторые системы позволяют процессу определить, что файл блокирован, даже если у него нет доступа к этому файлу.
Такой секретный канал представлен на рис. 5.28, где блокировка файла устанавливается и снимается через определенные интервалы времени, известные серверу и его сообщнику. В проиллюстрированном примере по секретному битовому потоку передается последовательность 11010100.Блокировка и разблокировка предопределенного файла S не является слишком зашумленным каналом, однако требует точного согласования по времени, если только передача не ведется очень медленно. Надежность и производительность можно повысить, введя протокол с подтверждениями. В этом протоколе используются два дополнительных файла F1 и F2, блокируемых соответственно сервером и его сообщником с целью синхронизации. После блокировки или разблокировки файла S сервер инвертирует состояние файла F1, показывая, что бит передан. Считав бит, сообщник инвертирует состояние файла F2, информируя сервер о том, что готов к приему следующего бита. Затем он ждет инвертирования F1, которое укажет ему на присутствие очередного бита в S. Поскольку согласование по времени больше не нужно, протокол является абсолютно надежным даже в загруженной системе. Скорость его работы определяется скоростью планирования двух процессов. Чтобы повысить ее, можно использовать два файла в одном битовом интервале или увеличить ширину канала до байта, введя 8 сигнальных файлов S0-S7.
Для передачи скрытых сигналов также применимы захват и освобождение внешних ресурсов (например, магнитофонов, плоттеров и т. д.). В системе UNIX сервер может создавать файл, что будет означать 1, и удалять его, передавая 0. Сообщник может проверять наличие файла при помощи системного вызова access. Этот системный вызов будет работать, даже если у сообщника нет доступа к создаваемому сервером файлу. К сожалению, помимо таких «семафоров» существует множество других возможностей для создания секретного канала.
В [72] также упомянуто о еще одном возможном потайном канале связи, но уже между сервером и человеком. Например, сервер может сообщать, сколько работы он сделал для клиента, выставляя ему счет. Если такой счет составляет 100 долларов, а доход клиента равен 53 000 долларов, то сервер может сообщить об этом в виде счета в 100,53 доллара.
Обнаружить все секретные каналы чрезвычайно трудно, не говоря уже об их блокировке. На практике в наших силах немногое. Добавление процесса, случайным образом вызывающего ошибки отсутствия страниц или снижающего производительность системы другим способом, чтобы уменьшить пропускную способность секретных каналов, в качестве варианта решения проблемы не импонирует.
5.6.
Еще по теме Секретные каналы:
- 9.13. Передне-срединный канал, VC (фр.), круглосуточно, канал "инь"
- 9.2. Канал толстой кишки, GI (франц.), 5-7 час., канал "ян"
- 9.6. Канал тонкой кишки, IG (фр.), 13-15 час., канал "ян"
- 9.4. Канал селезенки-поджелудочной железы, RP, 9-11 час., канал "ян"
- Рекомендации Крайона Магнитному Каналу и всем каналам Духа
- 9.8. Канал почек, R (фр.), 17-19 час., канал "инь"
- 9.12. Канал печени, F (фр.), 1-3 час., канал "инь"
- 9.14. Задне-срединный канал, VG, (фр.), круглосуточно, канал "ян"
- 4. Особенности использования секретных изобретений
- 15.3.2. Секретное оружие
- 9. Особенности правовой охраны секретных изобретений
- Статья 1249. Удостоверение нотариусом секретных завещаний