Що таке eCryptfs і як це працює?

Сьогодні, коли кібератаки стають дедалі частішими, люди не шкодують зусиль задля захисту власних конфіденційних даних. А платформа Linux пропонує різноманітні інструменти, які дозволяють захистити їх від сторонніх очей за допомогою шифрування. Ті, хто не хочуть шифрувати увесь вміст диска, можуть обрати eCryptfs, криптографічну файлову систему, яка забезпечує вибірковий захист певних файлів або дек. Тут ви можете знайти короткий огляд цього програмного забезпечення для шифрування та познайомитися з принципами його роботи.

Останнє оновлення:
20 липня 2023

Час прочитання: 4 хв.

Що таке eCryptfs?

eCryptfs (Enterprise Cryptographic Filesystem фбо корпоративна криптографічна файлова система) є найпоширенішою технологією шифрування на рівні файлів у Linux. Замість шифрування усього блокового пристрою вона дозволяє шифрувати вміст окремих файлів, коли вони записуються на диск або зчитуються з нього, і зберігає його поверх існуючої звичайної файлової системи, наприклад, ext4, XFS, Btrfs, JFS тощо. Ця технологія також сумісна з деякими мережевими файловими системами, як-от NFS, CIFS та іншими.

eCryptfs базується на Cryptfs Ереза Садока та фреймворці FiST для стекових файлових систем. Вона була випущена у 2006 році Майклом Хелкроу та Технологічним центром IBM Linux і наразі підтримується Дастіном Кіркландом і Тайлером Хіксом з Canonical Ltd, компанії, що утримує Ubuntu Linux.

Це шифрування можна застосувати до потрібного файлу або папки. eCryptfs зашифрує його за допомогою окремого випадково згенерованого ключа шифрування файлу (також відомого як "mount passphrase" або "парольна фраза монтування"). За замовчуванням це 32-символьна шістнадцяткова послідовність. Користувачеві пропонується зробити резервну копію цього паролю в якості міри безпеки.

alt

Сам ключ шифрування файлу також зберігається в зашифрованому вигляді. Процес його шифрування називається "загортанням". Останнє виконується за допомогою окремого ключа-"обгортки" (іноді його називають "головним ключем", з англ. "master key") на основі пароля користувача (його ще називають "парольною фразою для входу" або "login passphrase"). Ключ-"обгортка" хешується для отримання 8-байтового "підпису", який є його унікальним ідентифікатором.

Отриманий "загорнутий" ключ зберігається в метаданих шифрування, що додаються безпосередньо до заголовка файлу. "Підпис" також зберігається в заголовку та використовується для пошуку правильного ключа-"обгортки", здатного "розгорнути" ключ шифрування файлу для подальшого дешифрування вмісту даного файлу. Обидва вони також зберігаються у файлі "wrapped-passphrase" у відповідній папці ".ecryptfs".

alt

Таким чином, кожен зашифрований за допомогою eCryptfs файл є самодостатнім і може мати унікальний ключ шифрування. Цей ключ є симетричним, тобто він одночасно шифрує та розшифровує вміст файлу. Його довжина залежить від використовуваного шифру, при цьому стандартним і рекомендованим параметром є AES-128.

За бажанням також можна зашифрувати ім'я файлу за допомогою ключа шифрування імені файлу, отриманого з тієї самої або додаткової парольної фрази.

Вищеописаний механізм дозволяє eCryptfs:

  • зберігати зашифровані файли та папки разом із незашифрованими в одному томі;

  • шифрувати вміст і назву того самого файлу за допомогою різних паролів;

  • приймати будь-який пароль для розшифрування, оскільки потенційно може існувати файл, який відповідає цьому паролю. Якщо він не відповідатиме жодному, файл просто залишатиметься зашифрованим.

Як активувати це шифрування на пристрої?

eCryptfs підтримується ядром, починаючи з версії 2.6.19 як модуль ecryptfs. Наразі це стандартний метод шифрування домашньої папки користувача в багатьох дистрибутивах Linux, серед яких Ubuntu і ChromeOS.

Крім того, eCryptfs широко застосовується для шифрування мережевих папок на пристроях NAS від різних виробників, таких як Synology, QNAP, Asustor, TerraMaster та інших. Однак слід зазначити, що його реалізації можуть мати значні відмінності, в залежності від системи в основі.

Існує кілька сценаріїв, у яких застосовується шифрування eCryptfs:

  • Користувач може активувати шифрування свого каталогу /home під час встановлення чи перевстановлення системи.

  • eCryptfs можна активувати вручну, встановивши пакет ecryptfs-utils, а потім застосувавши шифрування у один із доступних способів (запустивши команду mount разом із прапорцем -t і опцією encryptfs, за допомогою інструменту налаштування ecryptfs-setup-private тощо, залежно від конкретної системи).

  • На підтримуваних пристроях NAS можна зашифрувати нову або наявну мережеву папку, встановивши відповідний прапорець під час створення/редагування даної папки.

Наступні програмні продукти дозволяють отримати доступ і відновити дані зі сховищ, у яких застосована вищезгадана технологія: