Очистка оперативной и внешней памяти
Перераспределение внешней памяти возможно в двух случаях:
-
при удалении/усечении файлов таблицы и системных журналов;
-
при завершении работы СУБД (усекаются ее рабочие файлы).
В обоих случаях освободившееся дисковое пространство очищается с помощью трехкратной записи маскирующей информации.
Первый раз очистка выполняется путем записи только 0-х битов, затем чередованием 0-х и 1-х битов, в третий раз запись осуществляется только 1-ми битами. Т.к. файлы системного журнала могут использоваться повторно, то их очистка выполняется путем записи новой информации поверх ранее записанной. Информация в СУБД записывается сначала в системный журнал (для обеспечения надежности), а потом уже в файлы таблицы. Дублирование информации необходимо для обеспечения надежности функционирования СУБД. При удалении таблицы происходит перераспределение внешней памяти, занимаемой файлами таблицы, однако перераспределения внешней памяти, занимаемой системным журналом, при этом не происходит. Поэтому информация в системном журнале сохраняется и после удаления файлов таблицы. Ее очистка произойдет позднее, при перераспределении или переиспользовании памяти журнала. В последнем случае очистка осуществляется записью новой информации поверх старой.
Во время работы СУБД ЛИНТЕР отслеживает занятое ею место в оперативной памяти.
При завершении своей работы СУБД ЛИНТЕР обнуляет весь объем оперативной памяти, который она занимала.
В процессе обработки информация может проходить следующие пути:
-
от приложения через механизмы межпроцессного обмена ОС к СУБД;
-
от удаленного приложения по сети через ОС к СУБД;
-
от СУБД через ОС к внешней памяти.
В каждом случае ОС может использовать оперативную память для выполнения этой функциональности. СУБД не очищает оперативную память, использующуюся для этих целей – эта обязанность должна возлагаться на ОС.
СУБД может быть настроена на использование математического преобразования информации, хранимой на диске и передаваемой по сети. Это может быть использовано для затруднения доступа к остаточной информации ОЗУ, контролируемой ОС.
Очистка памяти (внешней и оперативной) выполняется, только если в БД присутствует хотя бы один уровень секретности.
В состав дистрибутива входит утилита erasefile для очистки указанного файла и скрипт erasefile.sh для выполнения очистки и удаления файлов из заданного каталога. Утилита работает по алгоритму записи маскирующей информации, описанному выше.