Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Базовая информация по работе с зашифрованными файлами и файловыми системами.

25 февр. 2014

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

Шифрование отдельных файлов



Gpg.

Отдельный файл удобнее всего зашифровать командой gpg. Если вы введете gpg -c, система попросит вас дважды ввести пароль, затем зашифрует указанный файл и сохранит результат под именем file.gpg. При этом по умолчанию применяется алгоритм шифрования CAST5. Теперь исходный файл можно удалить. Команда gpg -d снова восстанавливает файл.

<code>user$ gpg -c file

Введите пароль: ********** Повторите пароль: ********** user$ gpg -d файл-gpg > file

Введите пароль: **********</code>


Команда gpg может использовать при кодировании или декодировании открытый или закрытый ключ, может ставить на файлах цифровые подписи, управлять ключами и т. д. Описание бесчисленных параметров в справке man занимает около 50 страниц! Но вручную команда gpg применяется редко. Чаще ее используют почтовые клиенты, чтобы (более или менее автоматически) ставить на электронные сообщения подписи или шифровать эти сообщения.

Шифрование файловой системы (USB-флешка, внешний жесткий диск)


dm_crypt и LUKS.

Уже давно разработаны многочисленные методы для шифрования файловых систем: CryptoFS, eCryptfs, Enc-FS, Loop-AES и LUKS. Некоторые из этих методов применяются до сих пор, другие — зачастую из-за недостаточной безопасности — уже заброшены. В настоящее время самым популярным методом является LUKS (Linux Unified Key Setup).

Метод LUKS основан на модуле ядра dm_crypt, который обогащает применяемый в LVM модуль отображения устройств функциями шифрования. Модуль dm_crypt — это логический слой, расположенный между зашифрованными исходными данными жесткого диска и файловой системой, которую видит пользователь. Модуль поддерживает различные алгоритмы шифрования, его можно комбинировать с LVM — часто так и делается, но это совсем не обязательно. Модуль dm_crypt можно использовать и в такой системе, которая не работает с LVM!

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

Cryptsetup.

Чтобы создавать зашифрованные файловые системы, воспользуйтесь командой cryptsetup из одноименного пакета. В следующих строках показано, как сначала отформатировать USB-флешку (/dev/sdhl) как криптоу-стройство (luksFormat), а потом активизировать устройство под произвольно выбранным именем mycontainer (luksOpen). Разумеется, степень защиты ваших данных прямо пропорциональна сложности пароля, который может состоять и из нескольких слов (passphrase). Рекомендуется, чтобы в пароле было минимум 20 символов.

Кроме того, вы можете использовать /dev/mapper/mycontainer как раздел жесткого диска или логический том, то есть создать файловую систему, подключить ее к дереву каталогов и т. д. После выполнения команды unmount можно снова деак-тивизировать криптоустройство (luksOpen), чтобы открыть доступ к /dev/sdhl. Только после этого извлекайте флешку.

root# cryptsetup luksFormat /dev/sdh1


Безвозвратно заменить данные /dev/sdhl

Вы уверены? (Введите YES): YES

Введите пароль LUKS: **********

Подтвердите пароль: **********

Команда выполнена успешно.

root# cryptsetup luksOpen /dev/sdh1 mycontainer


Введите пароль LUKS: **********

<code>root# mkfs.ext3 /dev/mapper/mycontainer

root# mount /dev/mapper/mycontainer /test

root# touch /test/xy

root# umount /test/

root# cryptsetup luksClose mycontainer
</code>

Разумеется, вместо USB-флешки можно использовать и раздел внешнего или внутреннего жесткого диска, устройство RAID или логический том вашей системы LVM. Для этого просто замените /dev/sdhl названием устройства раздела или логического тома.

По умолчанию cryptsetup использует алгоритм шифрования AES, длина ключа в котором составляет 128 бит. Вы можете в этом убедиться с помощью команды cryptsetup luksDump: она выдает метаинформацию о криптоустройстве; ЕиК8 сохраняет эту метаинформацию в специальном секторе носителя данных.

<code>root# cryptsetup luksDump /dev/sdh1

LUKS header information for /dev/sdhl

Version: l

Cipher name: aes

Cipher mode: cbc-essiv:sha256

Hash spec: shal

Payload offset: 1032

MK bits: 128</code>


Если хотите использовать другой алгоритм шифрования или более длинный ключ, сообщите нужные данные с помощью параметров -c и -s команде cryptsetup

luksFormat. Чтобы узнать, какие алгоритмы можно применить, посмотрите cat /proc/ crypto. В настоящее время наиболее надежными считаются алгоритмы AES и TwoFish. Обратите внимание, что алгоритмы шифрования сейчас активно исследуются и ситуация с ними быстро меняется: они часто оказываются не такими надежными, как это казалось поначалу.

Используя команду cryptsetup «luksAddKey, можно обезопасить доступ к устройству LUKS с помощью восьми различных паролей. Это позволяет совместно работать с носителем, для доступа к которому каждый из пользователей применяет собственный пароль.

Команда luksformat. Эта команда немного упрощает создание зашифрованного раздела или носителя данных. Сначала она выполняет cryptsetup luksFormat, а затем mkfs.vfat. Если вы хотите работать с файловой системой другого типа, укажите его с помощью параметра -t.

СОВЕТ


После выполнения команды (зачастую и при возникновении ошибки) криптоустройство /dev/mapper/ luksformatn может «отстать» и не сразу среагировать. Прежде чем удалить носитель данных и еще раз попытаться создать криптоустройство, выполните команду cryptsetup luksClose luksformatn.

Работа с локальным компьютером. Если вы подключаете к компьютеру внешний носитель данных, отформатированный под LUKS, и начинаете работать с Gnome или KDE, то носитель данных автоматически распознается как криптоустройство. Открывается окно, в котором вам следует указать пароль для шифрования (рис. 13.3). После этого носитель данных подключается к файловой системе. Имя контейнера для /dev/mapper — luks_crypto_uuid. При отключении носителя нужно выполнить luksClose.

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

Файл построен очень просто: в первом столбце указывается название для /dev/ mapper, во втором — имя устройства, в третьем — файл, из которого должен быть считан ключ (например, с USB-флешки), или none, если пароль шифрования вводится в интерактивном режиме; в четвертом столбце указываются параметры.

В следующем примере устройство /dev/sda7 нужно создать под именем /dev/ mapper/cdiskl. Пароль необходимо указать при запуске компьютера, а криптоустройство создается с LUKS (другие параметры описаны в man crypttab).

# Файл /etc/crypttab


# Название модуля Устройство Файл ключей Параметры cdiskl /dev/sda7 none luks

Чтобы не только активизировать криптоустройство, но и подключить файловую систему к дереву каталогов, нужно дополнить /etc/fstab. Следующая строка позволяет использовать файловую системучерез каталог /media/private-data:

# Файл /etc/fstab

/dev/mapper/cdiskl /media/private-data ext3 defaults 0 0

После этого перезапустите компьютер и проверьте, все ли работает. Недостатки. Шифрование раздела имеет и свои недостатки. Во-первых, все операции с файлами совершаются заметно медленнее, чем обычно — и более того, тем медленнее, чем сложнее (и надежнее) применяемый метод шифрования. По возможности используйте быстрый процессор с несколькими ядрами. Во-вторых, при загрузке системы необходимо вводить пароль. Это не просто неудобно — главное, что в ваше отсутствие компьютер нельзя будет перезапустить. В принципе с зашифрованными разделами стоит работать только на локальном компьютере и в исключительных случаях на сервере.

TrueCrypt.

У представленных здесь методов, основанных на dm_crypt и LUKS, есть интересная альтернатива — TrueCrypt (http://www.truecrypt.org/). Эта шифровальная программа доступна также для Windows и Mac OS X, таким образом, она значительно упрощает обмен данными между Linux и другими системами. Исходный код открыт, но некоторые его части несовместимы с лицензией GPL, поэтому в распространенных дистрибутивах TrueCrypt отсутствует.

ecryptfs (Ubuntu).

В Ubuntu есть возможность зашифровать весь домашний каталог (версия 9.10 и выше) или его подкаталог Private (Ubuntu 8.10 и 9.04). Зашифрованный каталог автоматически подключается к файловой системе, а при выходе снова отключается. Внутри системы для этого применяется не dm_crypt и LUKS, а файловая система ecryptfs.

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



Файл /etc/crypttab, рассмотренный в предыдущем разделе, позволяет сделать еще один небольшой шаг от шифрования раздела локального диска (например, /home) к шифрованию всей системы, в том числе системного раздела. Важно учесть две детали: во-первых, GRUB не может получить доступ к зашифрованным данным, поэтому обязательно должен быть отдельный, незашифрованный загрузочный раздел. Во-вторых, для доступа к системному разделу нужно ввести пароль шифрования; необходимые для этого функции должны быть интегрированы в виде сценариев в файл Initrd (все необходимые файлы содержатся в пакете cryptsetup).

Отдельно нужно рассказать, кому вообще может потребоваться зашифровать всю систему: в принципе будет вполне достаточно зашифровать только личные файлы, находящиеся в каталоге / home. Однако для вора, укравшего ноутбук и желающего заполучить содержащиеся в нем данные, может быть очень информативен и системный раздел: в /var/cache или /var/tmp могут содержаться остатки отосланных электронных писем, распечатанных документов, прочитанных файлов PDF и т. д; в /var/log документируется, кто и когда работал с компьютером; в разделе подкачки содержатся всевозможные выгруженные блоки данных с информацией, важной с точки зрения безопасности, и т. д. Таким образом, если вы хотите максимально защитить данные (например, личные), хранящиеся на компьютере, попробуйте зашифровать всю систему.

Установка



В большинстве крупных дистрибутивов в установочной программе предусмотрена функция, позволяющая зашифровать всю файловую систему (в openSUSE — только в версии 11.2 и выше). В любом случае в дистрибутивах, где на выбор предлагается несколько способов или видов установки, нужно, как правило, останавливаться на традиционном варианте; установочные программы, запускаемые с живого CD или DVD, в силу принципа их работы не подходят. В следующем списке перечислены подходящие средства установки для важнейших дистрибутивов:

Debian — все стандартные CD или DVD (в том числе Netinstall, но не живые диски);

Fedora — установка с DVD (но не живые диски);

openSUSE — установка с DVD в версии 11.2и выше (но не живые диски);

Ubuntu — установка с CD Alternate в текстовом режиме (но не с CD для локальной системы).

В Debian и Ubuntu выберите вариант секционирования диска Шифрование ► LVM-система, в Fedora откройте диалоговое окно секционирования, а в нем установите флажок Зашифровать систему. В openSUSE секционирование нужно выполнить вручную, а затем создать незашифрованный загрузочный раздел и зашифрованный раздел LVM. После этого вы сможете создать в физическом томе LVM любые другие разделы, в том числе системный.

Вообще, в Интернете есть множество руководств, описывающих создание зашифрованной системы «задним числом» или помогающих «перехитрить» систему живого диска и все-таки зашифровать ее, хотя это и не предусматривалось. Но зачем усложнять жизнь, если она и так непроста?

Организация системы



В большинстве дистрибутивов зашифрованные системы построены одинаково: для GRUB создается незашифрованный загрузочный раздел, а другой раздел — зашифрованный — работает как физический том для LVM. Таким образом, все разделы, созданные с применением LVM (раздел подкачки, системный раздел, разделы с данными) автоматически шифруются. Кроме того, не требуется задавать для каждого раздела собственный пароль; достаточно будет общего пароля для всей системы LVM.

Можно представить себе и другой метод задания ключа: не вводить пароль интерактивно, а считывать ключ из файла, расположенного на USB-флешке, при загрузке системы. В таком случае флешка служит своего рода «аппаратным ключом», необходимым для загрузки компьютера. Некоторые устройства для чтения карт памяти также могут работать с Linux; однако интеграция подобных устройств с системой шифрования выполняется вручную.






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать