Как зашифровать файл в 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 можно использовать шифрование для корневого раздела.
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 установлена по-умолчанию, поэтому достаточно открыть терминал и ввести нужные команды. Для того, чтобы проверить установлена ли утилита на ваш дистрибутив, откройте терминал и введите:
Если утилита установлена, то вы получите вот такой вывод, в котором будет указана версия и поддерживаемые алгоритмы шифрования.
Шифрование
Зашифруем файл
Если вы все сделали правильно, то у вас все должно быть примерно так:
А теперь зашифруем наш тестовый файл алгоритмом по-умолчанию:
После ввода команды, нужно задать пароль два раза в поле Passphrase. В Debian 9 это выглядит так, в других дистрибутивах это поле ввода может выглядеть иначе.
После ввода пароля рядом с тестовым файлом file.txt должна появиться его зашифрованная версия file.txt.gpg
Чтобы увидеть какой алгоритм используется по умолчанию, то нужно добавить опцию -vv перед файлом.
И после двукратного ввода пароля мы увидим алгоритм по дефолту. В данном случае об этом говорит строка: gpg: using cipher AES256
Если требуется указать алгоритм шифрования AES256 явно, нужно добавить опцию --cipher-algo AES256 перед файлом:
Как видите, зашифровать файлы в Linux не так уж и сложно. Вероятно это даже проще, чем в Windows.
Зашифруем папку
Что делать, если нужно зашифровать папку в Linux? Тут тоже есть довольно простое решение: перед шифрованием поместить папку в архив. Для этого мы будем использовать архиватор tar, который так же есть по-умолчанию почти во всех дистрибутивах.
Подготовим тестовую папку для шифрования:
Если все идет по плану, то у вас должно быть вот так:
Теперь поместим папку в архив с помощью утилиты tar.
Проверим наличие архива folder.tar с помощью команды ls
И так, архив с секретной папкой внутри создан. Теперь осталось зашифровать его как обычный файл.
И в результате должна появиться зашифрованная версия файла folder.tar , под именем folder.tar.gpg :
Теперь можно смело закидывать шифрованные файлы с расширением .gpg на облако, не боясь, что кто-то кроме вас прочитает эти файлы. Но перед этим было бы неплохо убедиться, что вы можете их расшифровать в будущем.
Дешифрование
Расшифруем файл
В этом случае скорее всего вы увидите похожий результат после ввода пароля:
Это значит, что файл расшифрован и сохранен под именем file.txt . Ниже мы проверили наличие файла командой ls и его содержимое командой cat .
Если укороченной версией расшифровать не получилось, тогда следует прописать все параметры явно:
В данном случае опция -o указывает как должен называться расшифрованный файл, а опция -d указывает какой файл надо расшифровать.
Расшифруем папку
И так, файл расшифрован, но что делать с ранее зашифрованной папкой в архиве? Тут тоже ничего сложного, сначала расшифруем архив как обычный файл, а потом достаем папку из архива. Перед этим, для чистоты эксперимента лучше удалить ранее созданную оригинальную папку folder и архив folder.tar , чтобы убедиться в том, что мы точно расшифровали и достали из архива то, что нужно.
Теперь расшифруем архивный файл folder.tar.gpg
Рядом с folder.tar.gpg должна появиться его расшифрованная версия folder.tar
Распакуем расшифрованный архив folder.tar:
После этого среди всех файлов должна появиться папка folder, которую мы зашифровали в конце прошлого раздела.
Здесь вы можете почитать об остальных опциях 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 благодаря его способности облегчать дистрибутивную совместимость, беспрепятственную передачу и / или миграцию данных, а также безопасное управление паролями нескольких пользователей.
Материалы по теме:
Насколько полезны инструменты шифрования для вас и какие утилиты вы предпочитаете использовать?
Читайте также: