За останні кілька років в розвитку криптографічних файлових систем було досягнуто значного прогресу. Надання користувачам простий в зверненні служби шифрування з метою захисту інформації збереженої в файлової системі стає більш привабливою, оскільки мережа все частіше піддається нападу з боку зовнішніх і внутрішніх джерел. Один з ключових принципів надійної політики безпеки - це можливість забезпечити цілісність інформації зберігається в мережі. Криптографічні файлові системи роблять це можливим, спрощуючи шифрування файлів. TECKLORD
, За матеріалами SecurityFocus
З тих пір, як безпека стала одним з важливих елементів властивих мереж, кожен аспект онлайнової інформації вимагає певного рівня захисту: від використання файрволов і IDS на мережевому рівні до використання IDS на рівні окремого хоста. Останнім часом криптографічним файловим системам приділяється значно більше уваги, і з додаткового рівня захисту вони перетворилися в основою. Хоча технологія криптографічних файлових систем і народилася недавно, її стрімкого розвитку можна тільки позаздрити. Мета цієї статті звернути увагу читачів на технологію і особливості криптографічних файлових систем, а також продемонструвати деякі способи реалізації таких файлових систем на прикладах Microsoft's Encrypting File System for Windows 2000, Linux CryptoAPI, і Secure File System.
Типи криптографічних файлових систем.
Існує кілька підходів до питання про криптографічних файлових системах. Розрізняють шифрування томів, шифрування файлових систем і шифрування файлів. Кожен з цих підходів має свої переваги і недоліки і буде нижче докладно нами описаний.
шифрування томів
Даний підхід використовує рівень драйвера пристрою для шифрування і дешифрування інформації на фізичному носії і використовується такими системами, як PGPDisk, Secure File System (SFS), Linux CryptoAPI і ScramDisk. Шифрування томів уможливлює кодування всіх логічних розділів і є зручним і інтуїтивно зрозумілим для використання кінцевим користувачем, хоча і не надає надійний контроль над доступом до окремих директорій або фалам.
Шифрування файлів.
Шифрування файлів оперує рівнем додатків і забезпечує надійне безперервне кодування файлів. Для додання якоїсь прозорості кінцевого файлу користувача, програми зазвичай трохи переписуються для підтримки шифру. Однією з утиліт, що підтримують цей метод шифрування, є PGP. Цей метод виправданий лише для невеликої кількості файлів, але не зовсім придатний для систем збереження.
Шифрування файлових систем
Цей метод дозволяє шифрувати файли на основі per-file або per-directory, використовуючи єдиний ключ. До таких систем відносяться: Cryptographic File System (CFS), розроблена Матом Блейз (Matt Blaze), Transparent Cryptographic File System (TCFS), підтримувана Linux і BSD, CryptFS, а також Microsoft's EFS for Windows 2000.
Дизайн криптографічних файлових систем.
CryptFS
Ця реалізація криптографічного файлової системи побудована на використанні постійного ядра файлової системи. Реалізаційна модель використовується в CryptFS . З її допомогою файлова система може бути змонтована в будь-якій директорії, або навіть поверх іншої файлової системи (UFS або NFS). Ця модель, також позбавляє систему від додаткових демонів, які можуть бути використані для отримання доступу до системи, або файлів. Інтерфейс, який використовується CryptFS , Є стековідним віртуальним вузлом (stackable V-Node). Операційні системи * nix використовують віртуальні вузли для позначення відкритих файлів, директорій, пристроїв та інших об'єктів. Віртуальні вузли приховують ту частину фізичної файлової системи, яку використовують. Завдяки концепції стикування віртуальних вузлів (V-node stacking), CryptFS дозволяє файловим системам реалізувати функцію модулярізаціі: коли один V-node інтерфейс викликає інший. Стикування віртуальних вузлів показано на рис. 1
Мал. 1: Будова стековідного V - node інтерфейсу.
Кожна v-node операція в CryptFS викликає функцію свого нижчестоящого рівня для специфічних операцій над файлової системою. CryptFS був спочатку розроблений для Solaris, а потім імпортувати в Linux і FreeBSD. CryptFS працює з усіма директоріями і шифрує дані ще до запису їх в файлову систему, а дешифрує в зворотному порядку. Розробники CryptFS також впровадили в свій продукт схему управління ключами (key management scheme), згідно з якою лише root може змонтувати CryptFS і ключ буде асоційований не тільки з UID, але і з ID сесії. Атакуючому доведеться не тільки зламати еккаунт, а й змусити свої процеси використовувати ті ж ID сесій, що і користувач, для отримання або зміни ключа. CryptFS використовує для криптування алгоритм blowfish в режимі CBC.
CryptFS доступний для користувачів як частина пакету для файлових систем (fistgen) і може бути завантажений звідси .
Linux CryptoAPI
Хоча і Linux CryptoAPI не є програмою для шифрування файлових систем, вона часто використовується для цих цілей. Спочатку kernelint patch був створений для здійснення шифрування файлових систем для ядра 2.2. Розвиток kernelint patch у всіма використовуваний API для шифрування kernel-space - це великий крок вперед. При монтуванні файлової системи, пристрій зворотного петлі (loopback) робить можливим перенаправлення, внаслідок чого системні виклики можуть бути перехоплені для шифрування і дешифрування даних файлової системи. Замість того, щоб змонтувати систему поверх потрібної директорії, файлова система може бути змонтована на пристрої зворотного петлі. Цей пристрій буде змонтовано в точці монтування директорії. Як результат, всі команди ядра системи надсилаються за допомогою пристрою зворотного петлі. Процес показаний на рис. 2 і 3
Мал. 2: Шифрування за допомогою CryptoAPI
Figure 3: Дешифрування за допомогою CryptoAPI
CryptoAPI можна скачати з GNU / Linux CryptoAPI site .
Microsoft's Encrypted FileSystem (EFS)
Microsoft's EFS використовує загальну схему, засновану на ключі. Дані з файлу шифруються з використанням симетричного алгоритму за допомогою випадкового згенерованого ключа. Цей ключ створюється шляхом шифрування одного або декількох загальних ключів, отриманих з сертифіката користувача X.509 version 3. Прихована частина приватних і відкритих ключів використовується для розшифровки ключа кодування, який потім використовується, щоб розшифрувати файл. Microsoft's EFS не підтримує використання симетричного алгоритму використання заснованого на паролі ключа через те, що такі схеми більш уразливі до атак з використанням методу підбору за словником. EFS також забезпечує відновлення ключа кодування в разі його втрати. Процеси шифрування і дешифрування показані на рис. 4 і 5.
Рис 4: Шифрування Microsoft EFS
Рис 5: Дешифрування Microsoft EFS
EFS проста у використанні кінцевим користувачем. При спробі користувача отримати доступ до зашифрованого файлу, EFS знайде приватний ключ, який використовувався для утворення ключа кодування, який шифрував файл, розкодує ключ і розшифрує файл. Якщо ж буде спроба розшифрувати файл, створений іншим користувачем, EFS не зможе знайти приватний ключ для ключа кодування і користувачеві буде відмовлено в доступі.
Схема Microsoft's EFS показана на Рис. 6. Архітектура програми складається з 4 основних категорій: драйвер EFS, файлова система бібліотеки Run-Time, сервіс EFS, і різні Win32 API. Драйвер розташований на поверхні файлової системи NTFS. Він обмінюється даними з EFS сервісами для отримання ключа кодування та іншої інформації. Драйвер передає цю інформацію в бібліотеку Run-Time, щоб виконати безліч різних операцій з файлової системою. Драйвер і бібліотека run-time не спілкуються безпосередньо, а використовують механізм контролю за фалом в NTFS - call-out. Сервіс EFS є частиною підсистеми безпеки і використовує порт між LSA і монітором безпеки ядра для спілкування з драйвером EFS. Сервіс EFS використовує інтерфейси за допомогою CryptoAPI в режимі користувача для створення ключів кодування для файлів і інших служб. Він так само підтримує Win32 API, які забезпечують програмні інтерфейси як для шифрування, дешифрування або відновлення, так і для імпортування та експортування зашифрованих даних.
Рис 6: Архітектура EFS
В даний момент EFS підтримує лише алгоритм шифрування DESX, заснований на 128-бітному ключі. Майкрософт повідомляє, що в майбутньому EFS буде підтримувати також альтернативні алгоритми шифрування.
висновок
За останні кілька років в розвитку криптографічних файлових систем було досягнуто значного прогресу. Надання користувачам простий в зверненні служби шифрування з метою захисту інформації збереженої в файлової системі стає більш привабливою, оскільки мережа все частіше піддається нападу з боку зовнішніх і внутрішніх джерел. Один з ключових принципів надійної політики безпеки - це можливість забезпечити цілісність інформації зберігається в мережі. Криптографічні файлові системи роблять це можливим, спрощуючи шифрування файлів.