Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗИПЕКТ 09.11.2011 Лекция 5.docx
Скачиваний:
8
Добавлен:
17.11.2018
Размер:
297.39 Кб
Скачать

Лекция 5

Файловые системы с отложенной записью

Файловая система с отложенной записью повышает производительность за счёт кэширования: изменения файлов записываются в кэш, содержимое которого сбрасывается на диск оптимизированным способом, обычно в фоновом режиме.

Преимущества кэширования

  • Уменьшается общее число операций записи на диск (поскольку некоторые операции могут отменять предыдущие).

  • Возрастает скорость выполнения запросов ввод-вывод (за счёт асинхронного выполнения). Крайне важно для современных многозадачных ОС.

  • Допускается многопоточный (одновременный) ввод-вывод. Крайне важно для современных многозадачных ОС.

Система быстрая, но ненадёжная.

Недостаток отложенной записи

При использовании отложенной записи бывают периоды, когда том находится в настолько несогласованном состоянии, что файловая система не сможет исправить его в случае аварии.

Таким образом, выигрыш в производительности достигается за счёт большого риска потери данных при сбое системы.

Восстанавливаемые файловые системы

При разработке NTFS Microsoft пошёл по пути «скрещивания».

  • Превосходят по надёжности файловые системы с точной записью.

  • Достигают уровня производительности файловых систем с отложенной записью.

Пример: NTFS.

Восстанавливаемость NTFS обеспечивается методикой обработки транзакций, называемой опережающим протоколированием. Прежде, чем выполнить над содержимым диска подоперации какой-нибудь транзакции, изменяющей важные структуры данной файловой системы, NTFS регистрирует её в файле журнала. Таким образом, в случае сбоя системы незавершённые транзакции можно повторить или отменить после перезагрузки компьютера.

Сервис файла журнала

Сервис файла журнала (log file service, LFS) – это набор процедур режима ядра, локализованных в драйвере NTFS, который NTFS использует для доступа к файлу журнала.

Порядок выполнения записи

  1. NTFS вызывает LFS для записи в кэшируемый файл журнала любых транзакций, изменяющих структуру тома.

  2. NTFS модифицирует том (в кэше).

  3. LFS сбрасывает журнал на диск (через диспетчер кэша).

  4. Диспетчер кэша записывает на диск изменения тома.

Типы записей журналов

Записи контрольной точки фиксируют моменты гарантированно согласованного состояния файловой системы и позволяют определить, с какого момента файловая система нуждается в восстановлении. NTFS добавляет записи контрольной точки каждые 5 секунд.

Записи модификаций – это записи о транзакциях.

Типы записей модификаций

Информация для повтора – описывает, как вновь применить к дисковому тому одну подоперацию полностью запротоколированной транзакции, если сбой системы произошёл до того, как транзакция была переписана из кэша на диск.

Информация для отмены – описывает, как обратить изменения, вызванные одной подоперацией транзакции, которая в момент сбоя была запротоколирована лишь частично.

То есть, информация для отмены записана, если сбой произошёл на третьем этапе записи на диск, а информация для повтора записана, если сбой произошёл на четвёртом этапе.

Формат записей модификации должен гарантировать, что лишние операции повтора или отмены дадут нейтральный эффект. Например, установка уже установленного бита.

Транзакции, для которых записываются модификации

  • Создание файла.

  • Удаление файла.

  • Уменьшение или увеличение размера файла.

  • Переименование файла.

  • Изменение прав доступа к файлу.

  • Модификация ряда атрибутов файла.

Упрощённый алгоритм восстановления после сбоя

  1. Выполняется поиск последней контрольной точки.

  2. Отрабатываются в прямом порядке (от последней контрольной точки к концу журнала транзакций) все записи для повтора – соответствующие им транзакции повторяются.

  3. Отрабатываются в обратном порядке (от конца журнала до последней контрольной точки) все записи для отмены – соответствующие подоперации отменяются.

EFS – Encrypting File System

Включение EFS

Окно свойств файла/каталога, кнопка «Другие»: галочка «Шифровать содержимое для защиты данных».

Порядок шифрования EFS

При первом шифровании файла EFS назначает учётной записи пользователя, шифрующего файл, криптографическую пару – закрытый и открытый ключи.

При доступе к файлу шифрование выполняется автоматически.

Если весь каталог помечен как зашифрованный, автоматически шифруются все файлы каталога.

Ключевая схема EFS

Достоинства ключевой схемы EFS

  1. Каждый файл шифруется различным случайным ключом – FEK (File encryption key).

  2. Сочетается скорость симметричного шифрования с удобством ассиметричного.

  3. Легко добавить нового пользователя, удалить пользователя или перешифровать файл.

Добавление пользователя

Порядок расшифрования

  1. В заголовке ищется запись, соответствующая текущему пользователю. Если запись не найдена – пользователю отказывается в доступе.

  2. FEK из записи пользователя расшифровывается с помощью закрытого ключа пользователя.

  3. Файл расшифровывается с помощью FEK.

Хранение закрытого ключа пользователя

По умолчанию закрытый ключ пользователя хранится на жёстком диске. Это совсем не безопасно и является очевидным недостатком EFS.

Возможен экспорт ключа на съёмный носитель типа смарт-карты.

Алгоритм шифрования RSA

RSA (Rivest, Shamir, Adleman) – простеший алгоитм ассиметричного шифрования.

Зашифрование:

C = Mk1 mod N

Где: M – блок шифруемых данных; C – шифртекст; k1 – открытый ключ; N – модуль системы: N = PQ, где P и Q – секретные большие простые числа.

Расшифрование:

M = Ck2 mod N

Где: k2 – секретный ключ.

Размерность определяется модулем системы. Должна быть не менее 2048 битов (значения меньше научились эффективно раскладывать на множители).

Алгоритм шифрования DESX

DESX – усиленный вариант алгоритма DES с увеличенным (184-битным) ключом:

C = k3 +(mod2) DESk1(K2+(mod2)M)

Где:

M – блок шифруемых данных; k1, k2, k3 – фрагменты секретного ключа; DESk – функция шифрования алгоритма DES на ключе k.

Ключ алгоритма DESX

Состоит из трёх фрагментов k1, k2, k3, имеющих различное назначение: k1 (56 битный) – ключ внутреннего алгоритма DES; k2, k3 (по 64 бита) – ключи, соответственно, для входного и выходного отбеливания.

DESX полностью совместим с алгоритмом DES в случае, если k2=k3=0.

Windows использует усечённый вариант алгоритма DESX со 128 битным ключом, или с 56 битным ключом, в случае экспортных ограничений.

Реализация EFS

  • EFS реализован в виде драйвера устройства, работающего в режиме ядра и тесно интегрированного с драйвером файловой системы.

  • Когда NTFS встречает шифрованный файл, она вызывает функции EFS, зарегистрированные в NTFS при инициализации EFS.

  • Шифрование файлов осуществляется по мере обращения к ним.

Управление ключами EFS

Все операции, связанные с управлением ключами EFS, выполняются подсистемой локальной аутентификации (LSASS – Local Security Authentication Subsystem).

Основное назначение подсистемы локальной аутентификации – управление сеансами пользователей.

LSASS используется криптофункциями Microsoft (Crypto API).

Crypto API

Crypto API состоит из компонентов доступа к криптографическим сервисам (CSP – Cryptographic Service Providers), которые обеспечивают приложениям доступ к различным криптографическим сервисам (шифрованию, хэшированию и т.п.).

В частности, CSP управляют получением ключей пользователя и FEK, что позволяет Lsass не заботиться о деталях криптоопераций.

Схема работы EFS