Как зашифровать файл в linux

Обновлено: 08.07.2024

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

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

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

Сначала разберем самодостаточные файловые системы, которые часто используются в 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 можно использовать шифрование для корневого раздела.

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, когда все файлы и папки хранятся в зашифрованной фиртуальной файловой системе.

Выводы

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

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

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

Как это работает?

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

Нельзя поставить пароль на папку в самом файловом менеджере иначе к ней можно будет получить доступ из другого файлового менеджера или другой файловой системы. Но можно зашифровать файлы в папке и расшифровывать их только тогда, когда нужно. Раньше для таких целей использовалась специальная файловая система - EncFS и программы оболочки для неё, например CryptKeeper или Encfs Gnome Manager, но в 2014 году в этой файловой системе были обнаружены уязвимости, из-за которых она больше не могла считаться полностью безопасной.

Поэтому в сегодняшней статье мы не будем рассматривать старые утилиты, а сосредоточимся на новых, а именно Cryptomator и CryFS. Начнём с Cryptomator.

Пароль на папку в Cryptomator

1. Установка Cryptomator

Для установки необходимо добавить PPA репозиторий в систему:

sudo add-apt-repository ppa:sebastian-stenzel/cryptomator

Затем установите программу:

sudo apt install cryptomator

Запустить программу можно из главного меню:

2. Создание хранилища

В главном окне программы нажмите кнопку Добавить хранилище. В открывшемся окне выберите Создать хранилище:

Затем введите имя хранилища:

Далее, выберите расположение:

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

Ключ можно сохранять, а можно не сохранять, а просто помнить пароль. Хранилище готово:

3. Открытие хранилища

Если вы откроете сейчас папку, выбранную для размещения хранилища, то там будут зашифрованные файлы, их нельзя редактировать. Чтобы получить доступ к защищённой папке откройте программу и нажмите кнопку Разблокировка возле нужного хранилища:

Затем введите пароль:

И нажмите кнопку Показать хранилище чтобы получить доступ к вашим файлам:

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

4. Блокировка хранилища

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

Готово. Это хранилище может лежать локально или его можно синхронизировать на несколько компьютеров с помощью какого либо облака. А учитывая, что у программы есть Android версия. то и Android можно использовать.

Пароль на папку в CryFS

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

1. Установка CryFS

Установить файловую систему не сложно, она есть в официальных репозиториях. Для этого выполните:

sudo apt install cryfs

2. Создание хранилища

Создайте папку в которой будут находится зашифрованные файлы, например

Затем создайте папку куда будет монтироваться расшированое хранилище:

Затем подключите хранилище командой:

Утилита спросит использовать ли параметры по умолчанию, тут можно соглашаться, а затем надо будет ввести два раза пароль:

После этого ваша папка с паролем готова. Можете поместить в неё свои файлы, например, тестовый файл:

3. Блокировка хранилища

Когда завершите работу с файлами просто заблокируйте хранилище. Для этого выполните команду:

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

Выводы

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

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

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


Проверим установлена ли GnuGP

Почти во всех популярных дистрибутивах Linux утилита GnuPG установлена по-умолчанию, поэтому достаточно открыть терминал и ввести нужные команды. Для того, чтобы проверить установлена ли утилита на ваш дистрибутив, откройте терминал и введите:

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

Проверка наличия установленной GnuPG


Шифрование

Зашифруем файл

Если вы все сделали правильно, то у вас все должно быть примерно так:

GnuPG: Создание тестовой среды на Debian 9

А теперь зашифруем наш тестовый файл алгоритмом по-умолчанию:

После ввода команды, нужно задать пароль два раза в поле Passphrase. В Debian 9 это выглядит так, в других дистрибутивах это поле ввода может выглядеть иначе.

После ввода пароля рядом с тестовым файлом file.txt должна появиться его зашифрованная версия file.txt.gpg

GnuPG: Шифрование файла алгоритмом по умолчанию

Чтобы увидеть какой алгоритм используется по умолчанию, то нужно добавить опцию -vv перед файлом.

И после двукратного ввода пароля мы увидим алгоритм по дефолту. В данном случае об этом говорит строка: gpg: using cipher AES256

GnuPG: Шифрование файла с логированием операций

Если требуется указать алгоритм шифрования AES256 явно, нужно добавить опцию --cipher-algo AES256 перед файлом:

Как видите, зашифровать файлы в Linux не так уж и сложно. Вероятно это даже проще, чем в Windows.

Зашифруем папку

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

Подготовим тестовую папку для шифрования:

Если все идет по плану, то у вас должно быть вот так:

GnuPG: Создание тестовой папки перед ее шифрованием

Теперь поместим папку в архив с помощью утилиты tar.

Проверим наличие архива folder.tar с помощью команды ls

GnuPG: Архивация папки перед ее шифрованием

И так, архив с секретной папкой внутри создан. Теперь осталось зашифровать его как обычный файл.

И в результате должна появиться зашифрованная версия файла folder.tar , под именем folder.tar.gpg :

GnuPG: Шифрование архивированной папки

Теперь можно смело закидывать шифрованные файлы с расширением .gpg на облако, не боясь, что кто-то кроме вас прочитает эти файлы. Но перед этим было бы неплохо убедиться, что вы можете их расшифровать в будущем.


Дешифрование

Расшифруем файл

В этом случае скорее всего вы увидите похожий результат после ввода пароля:

GnuPG: дешифровка файла упрощенной командой

Это значит, что файл расшифрован и сохранен под именем file.txt . Ниже мы проверили наличие файла командой ls и его содержимое командой cat .

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

В данном случае опция -o указывает как должен называться расшифрованный файл, а опция -d указывает какой файл надо расшифровать.

Расшифруем папку

И так, файл расшифрован, но что делать с ранее зашифрованной папкой в архиве? Тут тоже ничего сложного, сначала расшифруем архив как обычный файл, а потом достаем папку из архива. Перед этим, для чистоты эксперимента лучше удалить ранее созданную оригинальную папку folder и архив folder.tar , чтобы убедиться в том, что мы точно расшифровали и достали из архива то, что нужно.

GnuPG: Удаление оригинальных файлов перед расшифровкой

Теперь расшифруем архивный файл folder.tar.gpg

Рядом с folder.tar.gpg должна появиться его расшифрованная версия folder.tar

GnuPG: расшифрование архивированной папки

Распакуем расшифрованный архив folder.tar:

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

GnuPG: распаковывание архива с папкой после дешифровки

Здесь вы можете почитать об остальных опциях GnuPG.
Здесь более подробный мануал от разработчиков.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


Обзоры

Сегодня мы переключаем наше внимание на методы шифрования и предлагаем вам список лучших программ для шифрования файлов и дисков для вашей Linux-машины.

1. Tomb

Он состоит из простого скрипт оболочки, который реализует стандартные инструменты GNU наряду с cryptsetup и LUKS (криптографический API ядра Linux).

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

Узнайте больше о программном обеспечении для шифрования Tomb из нашего обзора по этой ссылке:

2. Cryptmount

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

Мы уже рассматривали его в нашем обзоре:


3. CryFS

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

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

4. GnuPG

GnuPG, часто называемая GPG, означает GNU Privacy Guard и представляет собой бесплатную коллекцию криптографических инструментов с открытым исходным кодом, созданную в качестве замены пакета криптографического программного обеспечения Symantec PGP.

Он соответствует требованиям стандартов IETF OpenPGP и RFC 4889.

Мы рассмотрели GPG здесь немного подробнее.

5. VeraCrypt

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

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

6. EncFS

Вы можете использовать его для создания, редактирования, изменения и экспорта пароля папок EncFS, и он на 100% совместим с EncFS 1.7.4 на платформах GNU / Linux.

7. 7-zip

7-zip является одной из самых популярных утилит архивирования благодаря высокой степени сжатия в формате 7z, среди которых есть компрессия сжатия LZMA и LZMA2, плагин для менеджера FAR, интеграция с Windows Shell, шифрование AES-256 в форматах 7z и ZIP, а также другие функции.

8. dm-crypt

Он был создан для решения определенных проблем с надежностью в cryptoloop и может использоваться для резервного копирования нескольких типов томов.

9. ecryptfs

Она призвана отразить функциональность GnuPG путем реализации POSIX-совместимого уровня шифрования на уровне файловой системы и является частью ядра Linux с момента выпуска версии 2.6.19.

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

10. cryptsetup

LUKS расшифровывается как Linux Unified Key Setup и с тех пор стал стандартом для шифрования жесткого диска Linux благодаря его способности облегчать дистрибутивную совместимость, беспрепятственную передачу и / или миграцию данных, а также безопасное управление паролями нескольких пользователей.

Материалы по теме:

Насколько полезны инструменты шифрования для вас и какие утилиты вы предпочитаете использовать?

Читайте также: