Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
козлов 4.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
80.42 Кб
Скачать

Теоретические сведения

  1. Общие сведения об efs

Благодаря спискам контроля доступа (ACL), содержащим права доступа отдельных пользователей и групп, Windows эффективно контролирует обращения к файлам на дисках файловой системы NTFS. Однако такая защита действует только во время работы ОС. Данные на диске остаются уязвимыми для любого, у кого есть физический доступ к компьютеру. Злоумышленнику в этом случае требуется лишь вставить DOS-дискету в компьютер, перезагрузить его и затем запустить NTFSDOS фирмы Winternals Software. С помощью такого нехитрого способа он получит доступ к любому файлу системы. Единственный способ защитить данные в устройстве, которое может попасть в руки злоумышленников, — это зашифровать их.

Шифрование — это процесс преобразования данных в формат, недоступный для чтения другим пользователям.

Шифрованная файловая система (Encrypted File System - EFS) стандартная и неотъемлемая составляющая NTFS в ОС Windows, решает перечисленные выше проблемы, предоставляя простую и практически полностью прозрачную для пользователя систему шифрования с агентами, предназначенными для восстановления данных. Файлы прозрачно шифруются по мере записи на диск и расшифровываются во время считывания с диска. После того как файл был зашифрован, он автоматически остается зашифрованным в любом месте хранения на диске.

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

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

  1. Принцип действия efs

EFS основывается на поддержке шифрования в Windows 2000/XP, аналог которой впервые появился ещё в Windows NT 4.0. Первоначально эти функции не использовались для шифрования файлов, а только для установки защищённых сетевых соединений, защиты паролей пользователя и т.п. Только с появлением Windows 2000 и NTFS 5.0, как основной файловой системы для него, появилась возможность шифровать любые файлы средствами ОС.

Для шифрования EFS использует личный и публичный ключи пользователя, которые генерируются на основе идентификатора безопасности пользователя SID.

При шифровании файла EFS генерирует File Encryption Key (FEK) - случайный номер, длиной 128 бит, для каждого файла разный. FEK используется для шифрования файла с использованием одного из вариантов Data Encryption Standard (DES) алгоритма – DESX.

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

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

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

Для того, чтобы обеспечить надёжность шифрования, FEK и шифруется по RSA, ассиметричному алгоритму, когда для шифрования и расшифровки используются разные ключи. Это слишком медленно, чтобы шифровать, таким образом, большие объёмы данных, но для шифрования FEK, RSA с использованием открытого и личного ключей подходит наилучшим образом.

EFS работает как драйвер, на уровне ядра, но для того, чтобы работала вся система шифрования необходимо взаимодействие нескольких компонентов ОС (рис.1). EFS тесно связана с драйвером NTFS, таким образом, когда пользователь или приложение обращаются к зашифрованному файлу, драйвер NTFS вызывает EFS. EFS самостоятельно работает с алгоритмом DESX, но её возможностей не хватает для того, чтобы разобраться с RSA.

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

Для этого используется Local Security Authority Subsystem (Lsass - \System32\Lsass.exe), которая управляет сессиями пользователей, и заодно обрабатывает обращения EFS. Непосредственно обработкой запросов EFS занимается Local Security Authority Server (Lsasrv - \System32\Lsasrv.dll), компонент Lsass, который и занимается непосредственно шифровкой или расшивкой FEK, используя Microsoft's CryptoAPI (CAPI).

Рис1. Система шифрования Windows

В Windows XP EFS была несколько усовершенствована. Теперь пользователь может разрешать другим пользователям использовать его защищённые файлы. Для того что бы сделать это возможным, EFS сохраняет вместе с файлом дополнительный блок информации (рис.2). Как и любой другой файл, зашифрованный файл начинается с заголовка.

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

После этого сообщается о количестве Data Decryption Field (DDF) в файле. Именно это и позволяет использовать файл нескольким пользователям. Каждый из пользователей, который имеет право расшифровывать и читать содержимое файла обязан иметь свой DDF. Эти поля равнозначны, и содержат одинаковую информацию.

Это SID пользователя, так называемый container name, которое позволяет найти нужный для расшифровки ключ, имя криптографической службы (обычно Microsoft Base Cryptographic Provider), и EFS certificate hash, где находится открытый ключ пользователя. Кроме этого, DDF содержит 128 битный FEK, зашифрованный с открытым ключом пользователя.

Таким образом, когда пользователь разрешает кому-либо другому пользоваться зашифрованным файлом, то к файлу просто добавляется ещё один DDF. Для того что бы добавить его, от пользователя требуется расшифровать FEK со своим личным ключом, а потом зашифровать его с открытым ключом пользователя, которого он хочет добавить, что позволит тому расшифровать FEK со своим личным ключом, и получить доступ. Для этого у другого пользователя должен быть открытый и закрытый ключи которые, генерируются только тогда, когда пользователь впервые воспользуется шифрованием.

Рис.2. Заголовок файла в EFS

После всех DDF записей, следует раздел о количестве Data Recovery Field (DRF), на чём основана система позволяющая восстанавливать файлы, в случае если ни один из ключей пользователей прописанных в DDF не доступен. Это может случится как в случае когда учётная запись пользователя случайно или намеренно удалена (что может произойти в случае, например, если пользователь уволился), так и в случае если ключ был утерян. DRF имеет тот же самый формат что и DDF. Очевидно, что Data Recovery Agent может восстанавливать только те файлы, которые были зашифрованы после того, как он зарегистрирован системе, но никак не те, которые зашифрованы раньше.