- •Транзакции, для которых записываются модификации
- •Упрощённый алгоритм восстановления после сбоя
- •Элемент ключа
- •Сопоставленные с файлом данные efs
- •Дополнительная информация о шифровании файлов efs
- •Восстановление после сбоев
- •Литература по ч.1 раздела 3.1
- •Внутреннее устройство операционных систем (на примере Microsoft Windows) Процессы и потоки
- •Задание
- •Планирование выполнения потоков
- •Ресурсы процесса
Дополнительная информация о шифровании файлов efs
Имя файла журнала EFS – Efsx.log, где x – уникальное целое число.
Пары ключей пользователей перечислены в разделе реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Current Version\EFS\CurrentKeys\CertificateHash.
Резервный файл именуется, как Efs0.tmp.
Хотя доверять EFS нельзя, это всё-таки лучше, чем ничего. Используя предложенный алгоритм шифрования мы, как минимум, повышаем квалификацию возможного злоумышленника и заставляем проводить его немало операций вручную.
Восстановление после сбоев
При сбое системы во время шифрования согласованные данные сохранятся в одном из файлов – исходном или резервном.
При восстановлении после сбоев Lsass ищет файлы журналов EFS и по их содержимому определяет порядок восстановления состояния системы (т.е. какой из файлов следует считать правильным, а какой – удалить).
Результат – файловая система возвращается в целостное состояние без потери данных.
Не хватает механизмов контроля целостности, правильно ли у нас зашифровался/расшифровался файл.
Расшифрование файлов
Для расшифрования EFS ищет среди DDF или DRF-элементов пользователя его SID.
При нахождении пользователя расшифровывается его FEK из соответствующей записи DDF и DRF.
EFS выполняет шифрование блоками по 512 байтов.
Для расшифровки данных NTFS вызывает драйвер EFS по мере чтения данных с диска – до их помещения в файловый кэш.
Резервное копирование зашифрованных файлов
EFS позволяет выполнять резервное копирование зашифрованных файлов через специальные функции даже в том случае, если доступ к файлу отсутствует.
В этом случае резервная копия файла создаётся зашифрованной; восстановленный в результате файл также будет зашифрован.
Обычная логика работы с файлами
-
Открытие и блокировка файла.
-
Последовательные или с произвольным доступом операции чтения и/или записи.
-
Разблокировка и закрытие файла.
Блокировка файлов
Блокировка файла позволяет процессу получить монопольный доступ к файлу или его фрагменту, что предотвращает одновременные несогласованные модификации файлов несколькими процессами.
Виды блокировки:
-
Монопольная.
-
Разделяемая, предоставляющая другим процессам доступ только на чтение.
Логика предоставления блокировки
Существующая блокировка |
Запрашиваемая разделяемая блокировка |
Запрашиваемая монопольная блокировка |
Отсутствует |
+ |
+ |
Разделяемая (одна или несколько) |
+ |
- |
Монопольная |
- |
- |
Блокировки и операции ввода/вывода
Существующая блокировка |
Чтение |
Запись |
Отсутствует |
Выполняется |
Выполняется |
Разделяемая (одна или несколько) |
Выполняется |
Не выполняется |
Монопольная |
Выполняется только процессом – владельцем блокировки |
Выполняется только процессом – владельцем блокировки |
Реестр
Реестр – это централизованная иерархическая база данных, хранящая информацию о параметрах конфигурации операционной системы и установленных приложений.
Информация в реестре хранится в записях типа «имя-значение», организованных в древовидную структуру.
Пример информации, хранящейся в реестре
-
Информация об операционной системе.
-
Информация о приложениях, установленных в системе.
-
Информация о процессорах, памяти и прочие аппаратные характеристики компьютера.
-
Информация, необходимая для обеспечения безопасности ОС.
-
Данные, специфичные для каждого пользователя, например, индивидуальные настройки приложений.
Корневые разделы реестра
-
HKEY_LOCAL_MACHINE – хранит информацию об оборудовании локального компьютера и установленном на нём ПО.
-
HKEY_USERS – хранит информацию о настройке пользовательских конфигураций.
-
HKEY_CURRENT_CONFIG – хранит текущие настройки различных системных параметров.
-
HKEY_CLASSES_ROOT – содержит записи, устанавливающие соответствие между приложениями и расширениями имён файлов, для обработки которых данные приложения используются.
-
HKEY_CURRENT_USER – хранит информацию о предпочтительных для текущего пользователя конфигурационных параметрах приложений.
Этим список корневых разделов не исчерпывается. Это – пять основных.
Работа процессов с реестром во многом аналогична работе с файлами.