Файловая система NTFS Механизм EFS
Категория реферата: Рефераты по информатике, программированию
Теги реферата: дипломная работа, бесплатные дипломные работы скачать
Добавил(а) на сайт: Райков.
Предыдущая страница реферата | 1 2 3 4 5 6 | Следующая страница реферата
2. В каталоге System Volume Information создается файл журнала с именем
EFSx.log, где х – уникальное целое число от 0. По мере выполнения следующих этапов в журнал заносятся записи, позволяющие восстановить файл после сбоя системы в процессе шифрования.
3. Base Cryptographic Provider 1.0 генерирует для файла случайное 128- битное число, используемое в качестве FEK.
4. Генерируется или считывается криптографическая пара ключей пользователя. Она идентифицируется в HKEY_CURRENT_USER Software
MicrosoftWindows NTCurrentVersion EFSCurrentKeys
CertificateHash.
5. Для файла создается связка ключей DDF с элементом для данного пользователя. Этот элемент содержит копию FEK, зашифрованную с помощью открытого EFS-ключа пользователя.
6. Для файла создается связка ключей DRF. В нем есть элементы для каждого агента восстановления в системе, и при этом в каждом элементе содержится копия FEK, зашифрованная с помощью открытого EFS- ключа пользователя.
7. Создается резервный файл с именем вида EFS0.tmp в том каталоге, где находится шифруемый файл.
8. Связка ключей DDF и DRFдобавляются к заголовку и сопоставляются с файлом как атрибут EFS.
9. Резервный файл помечается как шифрованный, и в него копируется содержимое исходного файла.
10. Содержимое исходного файла уничтожается, в него копируется содержимое резервного. В результате этой операции данные исходного файла шифруются, так как теперь файл помечен как шифрованный.
11. Удаляется резервный файл.
12. Удаляется файл журнала.
13. Выгружается профиль пользователя, загруженный на шаге 1.
При сбое системы во время шифрования согласованные данные непременно
сохраняются в одном из файлов – исходном или резервном. Когда Lsasrv
инициализируется после сбоя системы, он ищет файлы журнала в каталоге
System Volume Information на каждом NTFS-томе в системе. Если Lsasrv
находит один или несколько файлов журнала, он изучает их содержимое и
определяет порядок восстановления. Если исходный файл не был модифицирован
на момент аварии, Lsasrv удаляет файл журнала и соответствующий резервный
файл; иначе он копирует резервный файл поверх исходного (частично
шифрованного) файла, после чего удаляет журнал и резервную копию. После
того как Lsasrv обработает файлы журналов, файловая система возвращается в
целостное состояние без потери пользовательских данных.
Процесс расшифровки
Процесс расшифровки начинается, когда пользователь открывает шифрованный
файл. При открытии файла NTFS анализирует его атрибуты и выполняет функцию
обратного вызова в драйвере EFS. Драйвер EFS считывает атрибут
$LOGGED_UTILITY_STREAM, сопоставленный с шифрованным файлом. Чтобы
прочитать этот атрибут, драйвер вызывает функции поддержки EFS, которые
NTFS экспортирует для EFS. NTFS выполняет все необходимые действия, чтобы
открыть файл. Драйвер EFS проверяет наличие у пользователя, открывающего
файл, прав доступа к данным шифрованного файла, т.е. зашифрованный FEK в
связке ключей DDF и DRF должен соответствовать криптографической паре
ключей, сопоставленной с пользователем. После такой проверки EFS получает
расшифрованный FEK файла, применяемый для обработки данных в операциях, которые пользователь может выполнять над файлом.
EFS не может расшифровать FEK самостоятельно и полагается в этом на
Lsasrv, который может использовать CryptoAPI. С помощью драйвера KsecDD.sys
EFS посылает LPC-сообщение Lsasrv, чтобы тот извлек из атрибута
$LOGGED_UTILITY_STREAM FEK пользователя, открывающего файл, и расшифровал
его.
Получив LPC-сообщение, Lsasrv вызывает функцию LoadUserProfile из
Userenv.dll для загрузки в реестр профиля пользователя, если он еще не
загружен. Lsasrv перебирает все поля ключей в данных EFS, пробуя
расшифровать каждый FEK на основе закрытого ключа пользователя; с этой
целью Lsasrv пытается расшифровать FEK в DDF или DRF элементе ключа. Если
хэш сертификата в поле ключа не подходит к ключу пользователя, Lsasrv
переходит к следующему полю ключа. Если Lsasrv не удастся расшифровать ни
одного FEK в DDF или DRF, пользователь не получит FEK файла, и EFS запретит
доступ к файлу приложению, которое пыталось открыть этот файл. А если
Lsasrv найдет какой-нибудь хэш, который соответствует ключу пользователя, он расшифрует FEK по закрытому ключу пользователя через CryproAPI.
Lsasrv, обрабатывая при расшифровке FEK связки ключей DDF и DRF, автоматически выполняет операции восстановления файла. Если к файлу пытается получить доступ агент восстановления, не зарегистрированный на доступ к шифрованному файлу, т.е. у него нет соответствующего поля в связке ключей DDF, EFS позволит ему обратиться к файлу, потому что агент имеет доступ к пере ключей для поля ключа в связке ключей DRF.
Путь от драйвера EFS до Lsasrv и обратно требует довольно много времени –
в процессе расшифровки FEK в типичной системе CryptoAPI использует
результаты более 2000 вызовов API-функций реестра и 400 обращений к
файловой системе. Чтобы сократить издержки от всех этих вызовов, драйвер
EFS использует кэш в паре с NTFS.
Открыв шифрованный файл, приложение может читать и записывать его данные.
Для расшифровки файловых данных NTFS вызывает драйвер EFS по мере чтения
этих данных с диска – до того, как помещает их в кэш файловой системы.
Аналогичным образом, когда приложение записывает данные в файл, они
остаются незашифрованными в кэше файловой системы, пока приложение или
диспетчер кэша не сбросит данные обратно на диск с помощью NTFS. При записи
данных шифрованного файла из кэша на диск NTFS вызывает драйвер EFS, чтоб
зашифровать их.
Драйвер EFS выполняет шифрование и расшифровку данных порциями по 512 байт. Такой размер оптимален для драйвера, потому что объем данных при операциях чтения и записи кратен размеру сектора.
Резервное копирование шифрованных файлов
Рекомендуем скачать другие рефераты по теме: бесплатные рефераты и курсовые, сочинение на тему зимой.
Предыдущая страница реферата | 1 2 3 4 5 6 | Следующая страница реферата