Шифрування файлової системи
Одним
з головних досягнень Win 2000 в області
безпеки є шифрування файлової
системи. Засіб EPS (Encrypting File System) —
це система шифрування на основі відкритого
ключа, призначена для кодування
даних на диску в реальному часі
і запобігання несанкціонованому
доступу до них. Компанія
Microsoft опублікувала статтю, що
описує деталі функціонування EPS (http://www.microsoft.com/windows200/ library/howitworks/security/encrypt.asp).
Система
EFS дозволяє закодувати файл або теку
за допомогою швидкого симетричного алгоритму
шифрування на основі випадкового ключа
FEK (File Encryption Кеу), що згенерував,
спеціально для цього файлу або теки. Як
алгоритм шифрування в початковій версії
системи EFS використовується розширений стандарт
шифрування даних DESX . Ключ, що
випадково згенерував, для шифрування файлу
сам, у свою чергу, кодується за допомогою
одного або декількох відкритих ключів,
включаючи ключ користувача (у Win 2000 кожен
користувач отримує пару ключів —
відкритий і закритий) і агент відновлення
ключа. Ці зашифровані значення зберігаються
як атрибути файлу.
Процедура
відновлення ключа застосовується
для відновлення інформації в
тому випадку, якщо співробітник, що зашифрував
дані, більше не працює в організації, а
його ключ загублений. Щоб забезпечити
можливість відновлення зашифрованих
даних в Win 2000 існує агент
відновлення даних EFS. Без агента
відновлення система EFS не працює.
Оскільки ключ шифрування файлу абсолютно
не залежить від пари ключів користувача,
агент відновлення може дешифрувати
вміст файлу, не розкриваючи закритого
ключа користувача. За умовчанням агентом
відновлення даних в системі служить
локальний обліковий запис адміністратора.
Хоча шифрування файлової системи у
багатьох випадках може виявитися корисним,
його не варто застосовувати для захисту даних
різних користувачів однієї робочої станції
один від одного. Для захисту даних від інших
користувачів існують списки
управління доступом (ACL — Access Control List)
файлової системи NTFS. Компанія Microsoft
розглядає систему EFS як засіб
захисту від атак, направлених на отримання
даних в обхід операційної системи (шляхом
завантаження через іншу операційну систему
або використання засобів доступу до
жорсткого диска від сторонніх виробників),
або для зашиті файлів, розташованих на
видалених серверах. У статті компанії Microsoft,
присвяченій системі EFS. мовиться буквально
наступне: "Система EFS служить для
забезпечення захисту інформації від доступу
з інших операційних систем, тобто від
фізичного доступу до файлів розділу NTFS без
відповідних прав". Далі буде
показано, наскільки це твердження
відповідає істині.
Застосування EFS
Систему EFS можна застосовувати для шифрування
будь-якого файлу або теки. Цю операцію можна
виконати в діалоговому вікні властивостей
об'єкту за допомогою кнопки Advanced у вкладці
General. Крім того, для шифрування і
дешифровки файлів можна використовувати
утиліту командного рядка cipher. Для отримання
довідкової інформації про цю програму
введіть команду cipher /?.
Хоча файли можна шифрувати і окремо, компанія Microsoft рекомендує робити це на рівні тек, оскільки окремо зашифровані файли можуть піддаватися різноманітним маніпуляціям або випадково виявитися розшифрованими. Крім того, зашифровані файли не підлягають стискуванню.
Для забезпечення найбільш раціонального шифрування файлової системи автори радять прислухатися до рекомендацій по використанню EFS, приведеним в згаданій вище статті компанії Microsoft.
Будьте уважні при переміщенні зашифрованих файлів. Хоча при використанні стандартних механізмів резервного копіювання (наприклад, ntbackup.exe) зашифровані файли копіюються без модифікації, при виконанні звичайної операції копіювання файли розшифровуються. Якщо файл копіюється в розділ з файловою системою, відмінною від NTFS 5.0, то після копіювання файли виявляться розшифрованими. При копіюванні файлу на видалений комп'ютер з файловою системою NTFS 5.0 він буде зашифрований, проте не буде ідентичний оригіналу, оскільки видалена копія буде зашифрована за допомогою іншого ключа. Таким чином, шифрування файлової системи захищає файли тільки при зберіганні на диску, а при переміщенні файлів вони розшифровуються.
Розшифровка ключа агента відновлення EFS
Продовжимо почате раніше обговорення статті Джеймса Дж. Грейса (James J. Grace) і Томаса с.В. Бартлетта III (Thomas S. V.
Bartlett III). Можливість зміни пароля обліковому запису адміністратора може мати набагато серйозніші наслідки, якщо врахувати, що обліковий запис Administrator за умовчанням є агентом відновлення ключа. Якщо реєструватися в системі з порожнім паролем адміністратора, то всі зашифровані системою EFS файли будуть декодовані, оскільки адміністратор може дістати доступ до ключа кодування файлів (а значить, і вмісту цих файлів) за допомогою свого ключа відновлення.
Чому це відбувається? Нагадаємо, як працює система EFS. Ключ шифрування файлу РІЧОК, що випадково згенерував, сам кодується за допомогою інших ключів, і це зашифроване значення зберігається як атрибут файлу. Ключ РІЧОК, зашифрований за допомогою відкритого ключа користувача (кожен користувач системи Win 2000 має пару ключів: закритий і відкритий), зберігається в атрибуті DDF (Data Decipher Field). При доступі до файлу атрибут DDF розшифровується закритим ключем, і за допомогою декодованого ключа РІЧОК розшифровується сам файл. Значення, отримане після розшифровки ключа РІЧОК за допомогою ключа агента відновлення, зберігається в атрибуті DRF (Data Recovery Field). Тому, якщо локальний обліковий запис адміністратора є агентом відновлення (а за умовчанням це так), то будь-яка людина з правами адміністратора в даній системі може декодувати значення атрибуту DRF своїм закритим ключем, отримати ключ РІЧОК і розшифрувати файл.
Делегування прав агента відновлення не вирішує проблему
На перший погляд може здатися, що проблему легко вирішити, делегировав права агента відновлення іншого облікового запису. Насправді це не так. Джеймс Дж. Грейс
(James J. Grace) і Томас с.В. Бартлетт III (Thomas S. V. Bartlett III) розробили засіб для зміни пароля будь-якому обліковому запису, визначеному як агент відновлення.
Звичайно ж, хакерів не цікавить сам агент відновлення. Просто це найпростіший спосіб доступу до будь-якого файлу на диску, зашифрованого системою EFS. Ще один спосіб боротьби з делегуванням прав агента відновлення — просто "представитися" користувачем, що зашифрував файл. Утиліта chntpw (див. вищий) дозволяє змінити пароль будь-якого облікового запису в автономному режимі. Потім зломщик може реєструватися в системі як потрібний йому користувач і декодувати значення атрибуту DDF за допомогою свого закритого ключа, розшифрувавши таким чином ключ FEK. і сам файл. При цьому закритий ключ агента відновлення даних не знадобиться.
Експортування ключів відновлення і їх безпечне зберігання
У
відповідь на статтю Джеймса Дж. Грейса (James J. Grace) і Томаса с.В. Бартлетта III (Thomas S. V. Bartlett III) компанія Microsoft визнала, що у такий спосіб дійсно можна обійти систему EFS, але в своє виправдання заявила, що для запобігання цій атаці потрібно правильно зберігати ключ відновлення EFS
(http://www. microsoft.com/technet/security/analefs.asp).
На жаль, приведений за цією адресою опис процесу експортування застарілий, а у файлах довідки по EFS інший спосіб не приводиться. Щоб експортувати сертифікат агента відновлення на окремий комп'ютер, відкрийте аплет завдання групової політики Group Policy (gpedit.msc), знайдіть елемент Computer Configurationwvindows Settings\security Settings\public Кеу Policiesvencrypted Data Recovery Agents і виберіть з контекстного меню агента відновлення на правій панелі команду All
Tasks>export.
Запуститься майстер, після виконання рекомендацій якого ключ відновлення буде експортований. Для резервного копіювання ключа агента відновлення разом з сертифікатом необхідно експортувати і закритий ключ. При цьому автори рекомендують використовувати захист паролем.
І нарешті, не забудьте видалити закритий ключ, вибравши опцію Delete The Private Кеу If export Is Successful. Після цього дістати ключ до агента відновлення з локальної системи буде украй складно (автори просто уникають вживати слово "неможливо"):
Нагадаємо, що при простому видаленні сертифікату агента відновлення з правої панелі шифрування файлової системи стане неможливим. На наступному малюнку показано, що відбувається при спробі шифрування без агента відновлення — система не працює.
Файли, зашифровані до видалення агента відновлення, залишаються зашифрованими, але можуть бути відкриті тільки відповідним користувачем або після відновлення агента з резервної копії.
Для
вузлів, що входять в домен, ситуація відрізняється. Ключі відновлення всіх систем, що входять в домен, зберігаються на його контроллері. При додаванні до домена комп'ютера під управлінням Win 2000 автоматично набуває чинності використовувана за умовчанням політика відновлення домена і агентом відновлення стає адміністратор домена, а не локальний адміністратор. Таким чином, ключі відновлення фізично відділяються від зашифрованих даних, що значно утрудняє описану атаку. Не заважає також експортувати сертифікат агента відновлення з контроллера домена, оскільки при їх отриманні уразливими стануть всі комп'ютери даного домена.
Компанія Microsoft
в у відповідь документі також стверджує, що можливість видалення файлу SAM, що приводить до установки пароля адміністратора в NULL, можна запобігти за допомогою ключа SYSKEY. Але вище було показано, що це не так, якщо не вибраний режим його захисту паролем або зберігання на гнучкому диску (у статті про це умалчиваєтся).
|