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

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

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

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

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

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

1. ZFS

ZFS — это одна из самых интересных и перспективных файловых систем. Ее разработка началась еще в компании Sun Microsystems в 90 годах. Затем она прошла очень долгий путь развития и стала файловой системой с открытым исходным кодом. В этой файловой системе одной из первых появились такие возможности, как создание логических томов, снапшотов и многое другое. Изначально файловая система разрабатывалась для Solaris, но потом была портирована и для Linux. Шифрование в Linux версию было добавлено недавно.

Как и другие операции с файловой системой, шифрование можно выполнить даже для примонтированого раздела. Поддерживаются такие режимы шифрования, как AES (Advanced Encryption Standard) с длинной ключа 128, 192 и 256 бит. Но стоит отметить, что таким образом вы не можете зашифровать системный раздел. Можно выполнять шифрование без прав суперпользователя, и даже можно настроить политику шифрования для файлов, но отключить ее от обычного пользователя нельзя.

2. Ext4

Ext4 — это одна из самых популярных файловых систем, используемых в дистрибутивах Linux. Она применяется по умолчанию в большинстве дистрибутивов. Эта файловая система изначально разрабатывалась для Linux и с самого начала была включена в ядро. На данный момент это самая стабильная файловая система, в нее достаточно редко вносятся крупные изменения, а последний серьезный выпуск был в 2006 году, хотя новые функции добавляются постоянно.

Поддержка шифрования в файловой системе появилась тоже относительно недавно, начиная с ядра версии 4.1. Реализацией этой функции занималась компания Google, вероятно для своего Android. Здесь, также как и в предыдущем варианте можно настроить шифрование как для раздела целиком, так и для папок. Каждый файл шифруется собственным ключом, который генерируется на основе главного ключа. Поддерживается шифрование имен файлов и символических ссылок. Пока что для шифрования можно использовать алгоритмы AES-256 и AES-256 CBC+CTS. В отличие от ZFS, в ext4 можно использовать шифрование для корневого раздела.

Читайте также:  Создание командного файла windows

3. F2FS

Файловая система F2FS известна как файловая система, адаптированная для работы на флеш накопителях и SSD дисках. Она содержит ряд оптимизаций, которые уменьшают число перезаписей диска, чем повышают срок его службы. Поддержка шифрования в F2FS появилась примерно тогда же, когда и в ext4, в ядре Linux 4.2. Из алгоритмов шифрования поддерживается AES-256.

4. CryFS

CryFS была разработана специально для шифрования. Файловая система позволяет скрывать не только данные, но и такую информацию, как размер файлов, метаданные и структуру каталогов. Файлы разбиваются на небольшие блоки фиксированного размера, которые используются по отдельности, независимо один от другого. Для запоминания размещения блоков используется древовидная структура. Метаданные и каталоги тоже записываются в зашифрованные блоки. Такой подход позволяет использовать шифрование с минимальными потерями производительности.

Эта шифрованная файловая система может использоваться поверх любой другой файловой системы. Каждый блок хранится в виде отдельного файла в базовом каталоге, эти файлы можно синхронизировать, например, в облачное хранилище. По умолчанию используется AES-256-GCM.

5. EncFS

EncFS — это еще одна шифрованная файловая система, основанная на FUSE. Как и в предыдущем случае зашифрованные файлы будут хранится в любой файловой системе, а для доступа к ним нужно использовать EncFS. При монтировании вы указываете директорию-источник и фразу-пароль, с помощью которой будут расшифрованы файлы. Зашифрованные файлы будут храниться как есть, без дополнительных изменений. Эта файловая система довольно старая и не использует современные практики шифрования. Поэтому на данный момент она считается небезопасной и была удалена из официальных репозиториев многих дистрибутивов.

6. eCryptfs

eCryptfs — это полноценная файловая система, предназначенная для шифрования. Она встроена в ядро Linux начиная с версии 2.6. Для шифрования используется стандарт OpenPGP, с несколькими модификациями. Каждый файл разделен на так называемые экстенты, части, которые могут быть расшифрованы независимо одна от одной, что позволяет реализовать произвольный доступ. Все метаданные файловой системы зашифрованы и находятся в отдельном файле. Это позволяет передавать данные через сеть.

7. LessFS

LessFS — файловая система, очень похожая по возможностях на Btrfs. Она позволяет оптимизировать дубли файлов, поддерживает сжатие и шифрование. LessFS основана на Fuse, а это значит, что нет необходимости модифицировать ядро. Поддерживается сжатие LZO, OuickLZ и Bzip. Из алгоритмов шифрования поддерживается AES.

8. GocryptFS

Это шифрованная файловая система, написанная на Go и основанная на FUSE. Она работает аналогично EncFS, только не содержит её уязвимостей и проблем с безопасностью. Впервые она появилась в 2015 году. Файловая система шифрует каждый файл отдельно, поэтому её можно использовать для загрузки шифрованных файлов в облака. Для шифрования используется алгоритм AES-GCM, а для шифрования имен файлов — алгоритм EME.

9. SecureFS

И снова файловая система специально разработанная для шифрования файлов на основе FUSE. Поддерживает не только Linux, но и Mac, а также Windows. Файловая система может работать в режиме lite, когда шифруются имена файлов и их содержимое отдельно, аналогично EncFS. Или же в режиме full, когда все файлы и папки хранятся в зашифрованной фиртуальной файловой системе.

Читайте также:  Драйвер для web камеры под windows

Выводы

В этой статье мы рассмотрели лучшие шифрованные файловые системы Linux, которые вы можете использовать для защиты своих данных. Сейчас конфиденциальность и безопасность информации имеет первостепенное значение. Если ваш компьютер находится в потенциально опасной обстановке и может быть доступен другим, то важно использовать шифрование чтобы избежать проблем. А какие шифрующие файловые системы вы используете? Напишите в комментариях!

Источник

Шифрование файлов и папок в Linux

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

В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов — GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.

Утилита GPG

Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:

$ gpg опции файл параметры

Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:

  • -h — вывести справку по утилите;
  • -s, —sign — создать цифровую подпись, эта опция используется вместе с другими опциями для шифрования;
  • —clearsign — подписать незашифрованный текст;
  • -e, —encrypt — зашифровать данные, с помощью ключа;
  • -с, —symmetric — зашифровать данные, с помощью пароля;
  • -d, —decrypt — расшифровать данные, зашифрованные с помощью ключа или пароля;
  • —verify — проверить подпись;
  • -k, —list-keys — вывести доступные ключи;
  • —list-sigs — вывести доступные подписи;
  • —fingerprint — вывести все ключи вместе с их отпечатками;
  • —delete-key — удалить ключ;
  • —delete-secret-key — удалить секретный ключ;
  • —export — экспортировать все ключи;
  • —export-secret-keys — экспортировать все секретные ключи;
  • —import — импортировать ключи;
  • —send-keys — отправить ключи на сервер, должен быть указан сервер ключей;
  • —recv-keys — получить ключи от сервера ключей;
  • —keyserver — указать сервер ключей;
  • —fetch-keys — скачать ключи;
  • —gen-key — создать ключ;
  • —sign-key — подписать ключ;
  • —passwd — изменить пароль для ключа.

А теперь рассмотрим по порядку, что нам нужно для того, чтобы выполнять шифрование файлов Linux.

Шифрование файлов с помощью пароля

Симметричный шифр — самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:

gpg -c имя файла

Утилита создаст файл с расширением gpg. Для расшифровки используйте:

Шифрование с использованием ключей

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

Читайте также:  Архиваторы для linux ubuntu

Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:

Программа задаст ряд вопросов для настройки ключа:

Выберите требуемый тип ключа.

Выберите нужный размер для ключа, обычно 2048 будет достаточно.

Выберите строк действия для ключа.

Проверьте все ли правильно.

Введите имя нового ключа, фактически, это имя пользователя, но вы будете использовать его чтобы зашифровать файл linux, поэтому выбирайте обдумано.

Введите ваш email адрес.

Описание ключа, если нужно.

Финальная проверка, затем нажмите O для завершения.

Процесс генерации может занять некоторое время. Когда все будет готово в каталоге

./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.

Также вы можете посмотреть список доступных ключей:

Если вы собираетесь шифровать файлы на другом компьютере необходимо экспортировать публичный ключ, для этого есть опция -а:

gpg -a -o gpgkey.asc —export имя_ключа

Затем передаем файл на целевое устройство и импортируем ключ:

gpg —import gpgkey.asc

После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:

gpg —edit-key Username

Для выбора уровня доверия введите команду trust:

Для своих ключей можно использовать пункт абсолютно доверяю с номером 5, вы же знаете что это именно ваш ключ.

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

gpg -e -r ид_пользователя имя_файла

Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:

gpg -d имя_файла.gpg

Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:

tar -cf — каталог | gpg -e -r ид_пользователя

А для расшифровки:

gpg -d каталог.gpg | tar -xvf

Подписи и шифрование

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

Вы можете подписать файл с помощью опции —sign:

gpg —sign имя_файла

Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:

gpg -b имя_файла

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

gpg —verify textfile.sig textfile

Если файл был изменен, то вы увидите, что подпись не сходиться.

Выводы

В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение отличное видео о том, как работает асимметричный алгоритм шифрования:

Источник

Оцените статью