УДК 004
Теремов Иван Алексеевич – студент Института информационных технологий МИРЭА - Российского технологического университета.
Научный руководитель Паршин Игорь Олегович – кандидат технических наук, доцент Института информационных технологий МИРЭА - Российского технологического университета.
Аннотация: Работа посвящена методу изоляции конфиденциальных данных при файловом шифровании диска в Linux-системах. В работе описаны предпосылки к использованию ФС в ОЗУ при применении шифрования хранимых файлов. Проведен анализ существующих реализаций ФС в ОЗУ, описана логика предлагаемого метода, а также примерная последовательность операций для реализации метода в прикладном программном продукте.
Ключевые слова: конфиденциальность, защита данных, шифрование, Linux.
В настоящий момент криптостойкость современных шифров не подвергается сомнению и является более чем достаточной для защиты конфиденциальных данных от внешних угроз при грамотном решении проблемы распределения ключей, т.к. вычислительных мощностей современной техники не достаточно для подбора ключей шифрования. Как правило, в компьютерных системах данные защищаются как при передаче, так и при хранении.
При написании программы не составляет сложности реализовать процесс шифрования и дешифрования данных с дискового устройства при наличии библиотек шифрования. Тем не менее, для взаимодействия со сложными форматами файлов обычно также применяются соответствующие библиотеки, которые в большинстве своем берут операции чтения-записи на себя, что требует поддержание файлов с открытыми данными.
Предложенный в работе метод позволяет решить данную проблему, снизив риски утечки открытых данных, и предоставить пользователю-программисту удобный инструмент защищенных временных файлов.
Очевидным и простейшим решением поставленной во введении задачи является использование временных файлов. Ввиду того, что современные вычислительные системы (ЦОДы) могут быть развернуты децентрализовано, либо иметь удаленные дисковые массивы (т.н. дисковые фабрики) – записываемые на диск в таких системах данные могут быть прочитаны посторонним лицом или программой [7]. В данном случае использование привилегий в файловой системе также не осмысленно, т.к. доступ к данным в такой ситуации происходит на уровне ниже уровня ФС.
В основе данного метода лежит возможность создания временной файловой системы в оперативной памяти машины под управлением ОС семейства Linux, и последующее сохранение открытых данных в данной ФС. В общем случае, получить доступ к содержимому ОЗУ на физическом уровне или преодолев механизмы контроля доступа в ОС – сложнейшая задача, которую невозможно решить без прямого доступа к физическим частям системы или достаточного уровня привилегий у пользователя ОС. Таким образом, файлы с открытыми данными изолируются от операций с физическими дисками, предоставляя программисту возможность использовать файлы как обычные временные файлы на диске.
В таблице 1 представлен перечень существующих реализаций размещения файловой системы в оперативной памяти [5].
Таблица 1. Сравнение реализаций ФС в ОЗУ.
|
ramdisk |
ramfs |
tmpfs |
Ограничение размера создаваемой ФС |
+ |
- |
+ |
Изменение размера ФС |
+/- |
+ |
++ |
Использование swap |
- |
- |
+ |
Очистка неиспользуемой памяти |
- |
+ |
+ |
Из сравнения видно, что tmpfs является одним из самых совершенных и современных решением. Важно отметить, что tmpfs активно использует swap для сброса редко используемых данных из ОЗУ в ПЗУ с целью оптимизации, что лишает смысла использовать данное решение в контексте рассматриваемого метода изоляции. Таким образом, оптимальным решением является ramfs, который размещается только в ОЗУ, но требует от программиста контроля количества расходуемой памяти.
Помимо изоляции открытых данных от дисковых операций с помощью описанных ранее методов «виртуальных» ФС, необходимо реализовать механизм регуляции доступа к файлам в данных ФС. Для решения данной задачи можно предложить различные методы, например, стандартные для Unix-систем права доступа к файлу. Использование данного механизма надежно регламентирует доступ к файлам и легко программируется, однако, не обладает достаточной гибкостью.
В качестве метода контроля доступа к файлам предлагается использовать мандатную блокировку с помощью системного вызова fcntl. Данный метод однозначно позволяет блокировать определенный файл, ассоциируя блокировку с i-node файла и PID процесса, из которого она вызвана [8]. Таким образом, при инициации данной блокировки файл доступен только внутри вызвавшего блокировку потока, что позволяет защитить файл от доступа как из сторонних процессов, не связанных с выполняемой программой, так и от собственных потоков выполняемой программы.
Важно отметить, что блокировка подобным образом доступна не во всех Linux-системах, и при ее использовании необходимо удостовериться, что целевая система обладает данной возможностью [8].
Для появления возможности мандатной блокировки файлов в ФС ramfs, необходимо монтировать ее с опцией -o mand [3].
Для иллюстрации последовательности операций при реализации данного метода на рисунке представлена примерная диаграмма последовательности операций по созданию временного файла. Рассмотрим три встречающихся абстракции в диаграмме:
Рисунок 1. Примерная диаграмма последовательности.
Рассмотренный в работе метод может использоваться для безопасной изоляции открытых конфиденциальных данных при FLE-типе шифрования диска. Метод позволяет избавиться от потенциально опасных дисковых операций с открытыми данными. В работе также представлена приблизительная последовательность основных операций для реализации рассматриваемого метода.
Список литературы