18.17. Шифрование области подкачки

Написано Christian Brüffer.

Шифрование области подкачки в FreeBSD достаточно легко конфигурируется. Варианты конфигурации слегка различаются в зависимости от версии системы. Для шифрования разделов подкачки можно использовать утилиты gbde(8) или geli(8);. В обоих случаях используется скрипт rc.d encswap.

Предыдущий раздел, Шифрование дисковых разделов, кратко описывает различные методы криптования.

18.17.1. Зачем шифровать область подкачки?

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

18.17.2. Подготовка

Замечание: В данном разделе мы будем считать, что разделом подкачки является ad0s1b.

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

# dd if=/dev/random of=/dev/ad0s1b bs=1m

18.17.3. Шифрование раздела подкачки при помощи gbde(8)

В строку файла /etc/fstab, описывающую раздел подкачки, необходимо добавить суффикс .bde:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b.bde         none            swap    sw              0       0

18.17.4. Шифрование раздела подкачки при помощи geli(8)

Процедура при использовании geli(8) для шифрования раздела подкачки сходна с использованием gbde(8). В строку файла /etc/fstab, описывающую раздел подкачки, нужно добавить суффикс .eli:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b.eli         none            swap    sw              0       0

По умолчанию, geli(8) использует алгоритм криптования AES с длиной ключа 256 бит.

При необходимости эти параметры могут быть изменены в опции geli_swap_flags файла конфигурации /etc/rc.conf. Приведенная ниже строка указывает, что скрипт rc.d encswap должен использовать для криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора 4 килобайта и включенной опцией ''отсоединиться при последнем закрытии'':

geli_swap_flags="-e blowfish -l 128 -s 4096 -d"

За списком возможных опций обращайтесь к описанию команды onetime в странице справочника geli(8).

18.17.5. Окончательная проверка

После перезагрузки системы правильность работы шифрованного раздела подкачки может быть проверена при помощи команды swapinfo.

В случае использования gbde(8):

% swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/ad0s1b.bde    542720        0   542720     0%

При использовании geli(8):

% swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/ad0s1b.eli    542720        0   542720     0%

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.