Шифрована файлова система

Encrypting File System(EFS) — система шифрування даних, що реалізує шифрування на рівні файлів в операційних системах Microsoft Windows NT (починаючи з Windows 2000 і вище), за винятком «домашніх» версій ( Windows XP Home Edition, Windows Vista Basic, Windows Vista Home Premium, Windows 7 Starter (Home Basic та Premium), Windows 10 Home). Дана система надає можливість "прозорого шифрування" даних, що зберігаються на розділах з файловою системою NTFS, для захисту потенційно конфіденційних даних від несанкціонованого доступу при фізичному доступі до комп'ютера та дисків.

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

Зміст

EFS працює, шифруючи кожен файл за допомогою алгоритму симетричного шифрування, що залежить від версії операційної системи та налаштувань (починаючи з Windows XP доступна теоретична можливість використання сторонніх бібліотек для шифрування даних). При цьому використовується випадково згенерований ключ для кожного файлу, званий File Encryption Key (FEK), вибір симетричного шифрування на даному етапі пояснюється його швидкістю по відношенню до асиметричного шифрування.

FEK (випадковий для кожного файлу ключ симетричного шифрування) захищається шляхом асиметричногошифрування, що використовує відкритий ключ користувача, що шифрує файл, та алгоритм RSA (теоретично можливе використання інших алгоритмів асиметричного шифрування). Зашифрований у такий спосіб ключ FEK зберігається в альтернативному потоці $EFS файлової системи NTFS. Для розшифрування даних драйвер шифрованої файлової системи прозоро для користувача розшифровує FEK, використовуючи закритий ключ користувача, а потім і необхідний файл за допомогою файлового ключа.

Оскільки шифрування/розшифрування файлів відбувається за допомогою драйвера файлової системи (по суті надбудови над NTFS), воно відбувається прозоро для користувача та програм. Варто зауважити, що EFS не шифрує файли, що передаються по мережі, тому для захисту даних, що передаються, необхідно використовувати інші протоколи захисту даних (IPSec або WebDAV).

Для роботи з EFS користувач може використовувати графічний інтерфейс провідника або утиліту командного рядка.

Використання графічного інтерфейсу

Для того, щоб зашифрувати файл або папку, що містить файл, користувач може скористатися відповідним вікном діалогу властивості файлу або папки, встановивши або знявши прапорець "шифрувати вміст для захисту даних", при цьому для файлів, починаючи з Windows XP, можна додати відкриті ключі інших користувачів, які також матимуть можливість розшифрувати цей файл і працювати з його вмістом (за наявності відповідних дозволів). При шифруванні папки шифруються всі файли, що знаходяться в ній, а також ті, які будуть розміщені в ній пізніше.

При роботі з провідником Windows можливе (за замовчуванням) відображення зашифрованих папок та файлів іншим (за замовчуванням зеленим) кольором, що дозволяє візуально відрізнити захищене таким чиномвміст. При копіюванні зашифрованих файлів на розділ, де шифрування не підтримується (наприклад, з файловою системою FAT32 і т. д.), буде видано попередження про те, що файл буде розшифрований.

Методом редагування реєстру можна додати в контекстне меню провідника (та інших, що підтримують цю функціональність файлових менеджерів) пунктів «зашифрувати» та «розшифрувати», що підвищує зручність роботи при частому використанні цих функцій, для чого необхідно створити (або змінити існуючий) параметр реєстру типу DWORD EncryptionContextMenu на 00000001 , що знаходиться у гілці HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced .

Інтерфейс командного рядка

Для роботи з EFS користувачем є можливість використовувати інтерфейс командного рядка — командаcipher. Під час виконання цієї команди без параметрів буде виведено вміст поточної папки з міткою U перед файлом, якщо він не зашифрований, та E, якщо зашифрований.

Команда зашифрування файлу/папки має вигляд:

Команда розшифрування файлу/папки має вигляд:

Ця утиліта має низку інших можливостей, список яких може бути отриманий за допомогою команди cipher /? серед яких перешифрування файлів з новим ключем, генерація нового ключа шифрування, додавання агента відновлення і т.д.

Очищення місця, що не використовується.

При видаленні файлу або папки не відбувається повного фізичного видалення інформації, очищається лише «зміст» файлової системи. За допомогою утиліти cipher можливе часткове вирішення цієї проблеми, оскільки існує можливість виконати очищення вільного місця на диску затиранням її. Для цього необхідно використати синтаксис

Для роботи з EFS прикладних та системних программожливе використання документованих та недокументованих функцій API Windows.

Підсистема EFS використовує різні симетричні алгоритми шифрування, що залежать від версії операційної системи Windows NT, що використовується.