книги хакеры / журнал хакер / 141_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
EncFS шифруетнетолькосодержимоефай-
лов, ноиихимена
СоздаемновуюфайловуюсистемуEncFS
уязвимое, нонастолькопритягательнопростоеиудобное решение, чтоегонельзяобойтистороной.
Еслиговоритьостойкостишифрованияипригодностидля повседневногоприменения, тоздесьвсевпорядке, по крайнеймере, упервыхтрехпретендентов. Всетрисистемы производятшифрованиеналетуинаходятсянижефайловой системы, поэтомувзломщикнеимеетниединогошанса узнатькакие-либоподробностиохранящихсявнутритома данных. Каждаясистемазащищенаоттакназываемой Watermark-атаки, спомощьюкоторойможноопределить наличиевтомеопределенныхтиповфайлов(dm-crypt до сихпориспользуетрежимшифрованияCBC (Сipher Block Chaining)), уязвимыйдляэтойатаки, ноеголегкоможно изменитьнаустойчивыйESSIV, LRW илиXTS). Всесистемы могутиспользоватьразличныеалгоритмышифрования,
такиекак, например, AES-256, Serpent илиTwofish. Для получениядоступакданнымвсесистемыпозволяютиспользоватьзашифрованныйключ, хранящийсянаUSB-брелке илисмарт-карте.
Всторонеотloop-aes, LUKS/dm-crypt иTrueCrypt стоит простаяисвидунезамысловатаяпрограммаEncFS. В отличиеотсвоихтяжеловесныхсобратьев, онаработает поверхужесуществующейфайловойсистемыипоэтому раскрываетзлоумышленникукучусамойразнообразной информации, включаявсюструктурукаталоговфайловойсистемы, времясозданияимодификациифайлов, ихвладельцаиразмер. EncFS шифруеткаждыйфайл индивидуально, поэтомускрытымиотпостороннихостаютсятолькосамиданные, хранящиесявнутрифайлов,
иихимена. ТакаяособенностьделаетEncFS неприменимойдляхранениясерьезныхданных, нонаделяетее несколькимидостоинствами: файловаясистемаможет динамическирасти, инкрементальныесистемыбэкапа будутправильнообрабатыватьфайлы, зашифрованные EncFS, другиевиртуальныефайловыесистемытакже могутбытьзашифрованы(например, тыможешьподключитьcurlftpfs, создатькаталог, подключитькнемуencfs,
ивсезаливаемыевнегоданныесохранятсянасерверев зашифрованномвиде).
LUKS/DM-CRYPT
СистемакриптозащитыдисковLUKS/dm-crypt, какнетрудно догадаться, состоитиздвухосновныхкомпонентов:
•dm-crypt — стандартнаяподсистемашифрованиядисков Linux-ядраверсии2.6, котораяопираетсянаподсистемуDevice Mapper (dm), способнуюотображатьдисковые устройствадругнадруга, икриптографическоеAPI (Crypto
API), такжепредоставляемоеядромипредназначенноедля выполненияразличныхкриптографическихфункций.
•LUKS (Linux Unified Key Setup) — стандартшифрова-
ниядисковыхустройствдляLinux, которыйописывает дисковыйформатдлязашифрованныхданных. БлагодаряLUKS производителидистрибутивовиразработчики ПО, работающегосдисковымиустройствами, получают возможностьвстроитьвсвоипродуктысредствадляоднозначногоопределенияшифрованныхдисковиработы сними. Например, подсистемаHAL, котораясегодня используетсябольшинствомдистрибутивоввкачестве прослойкидляработысоборудованием, ужедавноумеет определятьLUKS-диски, поэтому, есливкомпбудет вставленафлешка, зашифрованнаяспомощьюLUKS/ dm-crypt, пользовательувидитсообщениеспросьбой ввестипароль, послечегофлешкабудетблагополучносмонтирована. Именновэтойстандартизации заключаетсяглавноедостоинствоLUKS/dm-crypt перед всемиостальнымирешениями.
ДлясозданияLUKS-совместимыхшифрованныхдисков предназначенаутилитаподназваниемcryptsetup-luks, котораявотдельныхдистрибутивах(например, Ubuntu)
ловкозамаскированаподобычнуюcryptsetup. Поэтомудля ееустановкидостаточновыполнитьпростуюкоманду:
$ sudo apt-get install cryptsetup
Большеничегоинсталлироватьненужно, dm-crypt ивсенеобходимыекриптомодулиужеестьвдистрибутиве. Ноперед темкакначатьшифрование, ихпридетсязагрузить:
$ sudo modprobe dm-crypt $ sudo modprobe sha256 $ sudo modprobe aes
ЧтобымодулизагружалисьвовремяинициализацииОС, добавимихименавфайл/etc/modules:
$ sudo -i
# echo "dm-crypt\nsha256\naes" >> /etc/modules
Далеевыбираемдисковыйраздел, которыйхотимподвергнутьшифрованию, изабиваемегонулями(есливразделе естьданные, ихнеобходимосохранитьвукромномместе):
$ sudo dd if=/dev/zero of=/dev/sda5 bs=4K
Дляпущейнадежностиизапутываниявзломщикараздел можнонаполнитьслучайнымиданными, ноэтапроцедура можетзанятьдлительноевремя(несколькочасов, адля большихдисков— ицелыесутки):
$ sudo dd if=/dev/random of=/dev/sda5 bs=4K
INFO |
info
EncFS может работать в Linux, Mac OS X, FreeBSD
и, теоретически, в любом UNIX, поддерживающем фреймворк
fuse. Проект по портированию
EncFS в Windows
располагается по адресу www.assembla.com/spaces/ wencfs.
WARNING |
warning
•В целях безопасности индексацию зашифрованных разделов лучше отключить, отредактировав конфигурационный файл /etc/updatedb. conf.
•Файлы, зашифрованные EncFS, не могут иметь жестких ссылок, так как система шифрования привязывает данные не к inode, а к имени файла
XÀÊÅÐ 10 /141/ 10 |
099 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
UNIXOID
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
УстанавливаемTrueCrypt
LUKS/dm-crypt и образы ФС
LUKS/dm-cryptвполнепригоденидлясозданияобразовФС,которые
можноиспользоватьдляхраненияважнойинформации:
#dd if=/dev/urandom of=luks.img bs=1M count=100
#losetup /dev/loop0 luks.img
#cryptsetup luksFormat /dev/loop0 -c aes-cbc- essiv:sha256 -s 256
#cryptsetup luksOpen /dev/loop0 luks
#mkfs.ext2 /dev/mapper/luks
#mkdir /mnt/luks
#mount /dev/mapper/luks /luks
ИнициализируемLUKS-разделспомощьюcryptsetup:
$ sudo cryptsetup luksFormat /dev/sda5 \ -c aes-xts-plain -s 256
Опция'-c' задаетрежимшифрования, внашемслучаеэтоAES-XTS (имеет гораздоболеевысокийуровеньзащитыпосравнениюсрежимами CBC, ECB; устойчивкWatermark-атакам). Опция'-s' задаетдлинуключа шифрованиявбитах. Утилитаcryptsetup запроситпароль, используемыйдлярасшифровкиключашифрования, аеслиговоритьпростым языком— длядоступакданнымраздела. Попробуйпридуматьчто-нибудь действительносложное.
Послетого, какразделбудетинициализирован, егоможноотобразить надругоеблочноеустройствоспомощьюDevice Mapper итакимобразом получитьдоступкданным(всезаписываемыенаэтиустройстваданные будутпередаватьсяdm-crypt ипопадатьнафизическийразделужев зашифрованномвиде):
$ sudo cryptsetup luksOpen /dev/sda5 èìÿ
Теперьнаразделеможносоздатьфайловуюсистемуисмонтироватьее:
$ sudo mkfs.ext4 /dev/mapper/имя -L метка $ sudo mkdir /mnt/имя
$ sudo mount /dev/mapper/èìÿ /mnt/èìÿ
РазмонтированиеиотключениеустройстваотDevice Mapper происходит вобратномпорядке:
$ umount /mnt/èìÿ
$ cryptsetup luksClose sda5
Выбираемалгоритмшифрованияихеширования
TrueCrypt
Чтобыоперационнаясистемасаманаучиласьподключатьимонтировать нужныекриптованныеустройствавовремязагрузки, азатемкорректно отключатьихвовремяшатдауна, достаточнодобавитьпооднойстрокев файлы/etc/crypttab и/etc/fstab:
$ sudo -i
#echo "èìÿ /dev/sda5 none luks,cipher=aes-cbc- essiv:sha256" >> /etc/crypttab
#echo "/dev/mapper/èìÿ /mnt/èìÿ ext4 defaults 0 0" \
>>/etc/fstab
ТеперьвовремякаждойзагрузкиОСбудетспрашиватьпарольдля доступаккриптованномуразделу, еслионбудетуказаннеправильно— загрузкаостановится.
Шифрование домашнего каталога производится по точно такой же схеме с тем лишь исключением, что перед добавлением новой записи в /etc/fstab следует удалить старую запись, ссылающуюся на /home. При создании шифрованной флешки специальные записи в /etc/crypttab и /etc/fstab не требуются. Подсистема HAL сама определит наличие на устройстве хранения LUKS-раздела и передаст эту информацию среде рабочего стола (Gnome, KDE, XFCE), которая, в свою очередь, выведет на экран окно с просьбой ввести пароль. Единственное, что необходимо сделать — при первом монтировании флешки изменить права доступа на ее корневой каталог:
$ sudo chown -R þçåð:þçåð /media/èìÿ $ sudo chmod g+s /media/èìÿ
Здесьюзер— этотвоеимявсистеме, аимя— названиеметки, которуюты указалприсозданиифайловойсистемы(опция'-L' утилитыmkfs). ИнтереснаяособенностьLUKS/dm-crypt заключаетсяввозможностииспользованиясразунесколькихключейшифрования(азначит, ипаролей) дляодногодисковогоустройства. Этоможетпонадобитьсявмногопользовательскихсистемахдлявыделениякаждомупользователюсобственногопароля, расшифровывающегодиск. Новыеключидобавляютсяв
LUKS спомощьюдействияluksAddKey утилитыcryptsetup:
$ sudo cryptsetup luksAddKey /dev/sda5
Командапопроситтебяввеститекущийпароль, азатемдваждыввести новый. Удалитьключможно, используяследующуюкоманду:
$ sudo cryptsetup luksDelKey /dev/sda5 ID-ключа
Идентификаторнужногоключатынайдешьввыводеследующей команды:
$ sudo cryptsetup luksDump /dev/sda5
100 |
XÀÊÅÐ 10 /141/ 10 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ФорматированиеобразаTrueCrypt
LUKS/dm-crypt и одноразовые ключи
LUKS/dm-cryptтакжеумеетиспользоватьодноразовыеключи,что
оченьполезнопришифрованииswap-разделов:
#swapoff -a
#cryptsetup -d /dev/urandom create cryptoswap /dev/sda1
#mkswap /dev/mapper/cryptoswap -L accessisdenied -v1
#echo "cryptoswap /dev/sda1 /dev/urandom swap" >> /etc/crypttab
#echo "/dev/mapper/cryptoswap none swap sw 0 0" >> /etc/fstab
#swapon -a
Вместопаролятыможешьиспользоватьключевойфайл, сохраненный наUSB-брелкеилилюбомдругомносителеинформации. Дляэтого создайслучайныйключспомощьюdd:
$ dd if=/dev/urandom of=/путь/к/файлу bs=512 count=4
АзатемиспользуйегоприинициализацииLUKS-раздела:
$ sudo cryptsetup luksFormat -c aes-xts-plain -s 256 \ /dev/sda5 /путь/до/ключа
Для«открытия» разделаиспользуйследующуюкоманду:
$ sudo cryptsetup -d /путь/до/ключа luksOpen \ /dev/sda5 имя
TRUECRYPT
ОткрытаясистемашифрованиядисковTrueCrypt появиласьдлясистем Windows ещев2004 году, иужечерезгодвнеебыладобавленаподдержкаLinux (версия4.0), котораясталаполноценнойв2008 году, когдабыла выпущенаTrueCrypt 5.0 сграфическиминтерфейсомкакдляWindows, такидляLinux.
TrueCrypt впервуюочередьпредназначенадляшифрованияобразов ФС, номожетбытьиспользованаидляшифрованияцелыхразделов. Также, какиLUKS, Linux-версияTrueCrypt опираетсянаподсистему dm-crypt, но, вотличиеотпервой, используетfuse длямонтирования зашифрованныхустройств/образов. Этооставляетсвойотпечатокна производительностииделаетTrueCrypt болеемедленнойвсравнениис LUKS, однакоиунееестьсвоисильныестороны.
Во-первых, TrueCrypt по-настоящемукроссплатформенна, версииПО естьдляWindows, Mac OS X иLinux, ихядроабсолютноодинаково, поэтомуникакихпроблемприпереносеобразовмеждусистемамивозникнуть неможет(длячтенияLUKS-разделовподWindows естьпрограмма FreeOTFE, нозаееподдержкуотвечаютсторонниеразработчики). Вовторых, TrueCrypt умеетсоздаватьскрытыешифрованныетомавнутри
ГлавноеокноTrueCrypt иодинсмонтированныйобраз
ужесуществующихтомов, причемделаетэтотак, чтоформальнонельзя доказатьихналичие. В-третьих, TrueCrypt создаеттоматакими, чтоих невозможноотличитьотслучайныхданных, чтополезноприсокрытииинформации(LUKS, какбылоописановыше, добавляетклюбому томузаголовок, покоторомуеголегконайти). В-четвертых, TrueCrypt позволяетменятьпаролиилифайлыключейдлятомабезпотериданных (LUKS требуетпересозданиятома).
Всвязислицензионнымипроблемами(привсейоткрытостиисходногокодалицензияTrueCrypt былапризнананесвободнойведущими производителямидистрибутивов) TrueCrypt былисключенизмногих дистрибутивов, поэтомуегопридетсяскачиватьиустанавливатьсамостоятельно:
$ cd /tmp
$ wget http://www.truecrypt.org/download/truecrypt- 6.3a-linux-x86.tar.gz
$ tar -xzf truecrypt-6.3a-linux-x86.tar.gz $ ./truecrypt-6.3a-setup-x86
Впроцессеустановкинеобходимопрочитатьисогласитьсяслицензией иввестисвойпарольвсистеме(илипарольрута). ПослеэтогоTrueCrypt будетустановленвкаталог/usr, захламляясистемунеуправляемыми пакетнымменеджеромфайлами(которые, правда, могутбытьудаленыс помощьюкомандыtruecrypt-uninstall.sh).
После установки запускаем команду truecrypt и видим перед собой графический интерфейс. Основное пространство окна занимает список смонтированных шифрованных образов/разделов, в верхней части располагается стандартное меню, а снизу — основные элементы управления программой: создать том (Create Volume), смонтировать, размонтировать, открыть существующий том и т.д. После нажатия на кнопку «Create Volume» ты попадешь в мастер создания томов. Он проведет тебя через все шаги создания зашифрованного тома, включая выбор носителя (файл или раздел), типа тома (обычный или скрытый), ввод полного пути до файла тома или выбор устройства, выбор алгоритма шифрования и хеширования ключей, ввод размера тома, ввод пароля для доступа, выбор файловой системы (FAT, Ext2 или Ext3) и т.д. Все просто и понятно. После того, как том будет создан, его можно найти с помощью кнопки «Select File» в нижней части окна программы, ввести пароль доступа, и том появится в списке подклю-
XÀÊÅÐ 10 /141/ 10 |
101 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
UNIXOID
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ТекстовыйрежимработыTrueCrypt
ченных томов. Клик на томе автоматически откроет стандартный файловый менеджер. После окончания работы можно нажать «Dismount All» и выйти из программы.
Некаждыйпользовательбудетрадграфическомуинтерфейсу, поэтому уTrueCrypt естьещеодинтипинтерфейса: интерактивныйтекстовый режим, активируемыйспомощьюфлага'-t'. Созданиетомавэтом режимеоченьпохоженасозданиетомасиспользованиемграфического мастера. Тыпростозапускаешькоманду«truecrypt -t -c» иотвечаешьна всетежестандартныевопросы. Поокончаниибудетсозданобраз(или TrueCrypt'ныйтомвнутрираздела), которыйможноподключитьспомощьюследующейкоманды:
$ truecrypt -t /путь/до/образа /точка/монтирования
дляразмонтированияиспользуетсяфлаг'-d':
$ truecrypt -d
Замечу, чтоTrueCrypt совсемнеуступаетLUKS постепениобеспечения безопасностизашифрованныхданных. Впоследнейверсиипрограммы используетсявсетотжережимшифрованияXTS, которыймыиспользовалиприсозданиизашифрованныхразделовспомощьюLUKS. В качествеалгоритмовшифрованиямогутбытьиспользованыалгоритмы AES, Twofish иSerpent, ниодинизнихещенебылскомпрометирован. Болеетого, TrueCrypt позволяетиспользоватьтакназываемыекаскады алгоритмов, когдазашифрованныйоднималгоритмомблокданных повторношифруетсядругим.
ENCFS
ВиртуальнаяфайловаясистемаEncFS распространяетсяввидеобычногодистрибутивногопакетаинетребуетдлясвоейработыничего, кроме поддержкифреймворкаfuse вядре, libfuse, OpenSSL инебольшойбиблиотекидлялогирования. ДляинсталляцииEncFS достаточноустановить пакетсодноименнымназванием:
$ sudo apt-get install encfs
102
СоздатьзашифрованнуюспомощьюEncFS файловуюсистемуочень просто, дляэтогоподойдетлюбойкаталог. Вкачествепримерасоздадим двапустыхподкаталогав/tmp: директорияcrypted будетсодержать данныепослеихшифрованияспомощьюEncFS, аdecrypted — использоватьсяпростокакточкамонтированиядлянееже:
$ cd /tmp
$ mkdir crypted decrypted
ПодключимккаталогамEncFS:
$ encfs /tmp/crypted /tmp/decrypted
Теперьнеобходимоответитьнанескольковопросов. Первыйвопрос: выборрежимаработыEncFS спользователем. Ихвсегодва: expert (буква«x») иparanoid (буква«p»). Выбравпервыйвариант, тысможешь задатьалгоритмшифрования(AES илиBlowfish), длинуключа, такие вещи, какInitialization Vector (еслитынезнаешь, чтоэтотакое, можешь жать<Enter> длявыбораответапоумолчанию) ит.д. Врежимеparanoid программасамаответитнасвоивопросыипредложитввестипарольдля доступакданным.
Стоитсказать, что, хотядлябольшинствапользователейрежим paranoid будетболееправильнымвыбором, режимexpert открывает некоторыевозможностидляоптимизации. Например, алгоритм Blowfish быстрееAES, нооннеиспользуетсяпоумолчанию, простопотомучтонелегалендлячастногоиспользованиявнекоторыхстранах. ТакжесистемаподефолтуустанавливаетблокданныхФСравным1024 байт, хотялучшуюпроизводительностьEncFS показываетприустановкеразмераблокаравнымразмерустраницыоперативнойпамяти. То есть4096 байтдляx86.
Новернемсякнашемузашифрованномукаталогу. Перейдемвкаталог decrypted исоздадимнесколькофайлов:
$ cd decrypted
$ echo qwerty > file1 $ echo asdfgh > file2 $ echo zxcvbn > file3
ОтключимEncFS ивзглянемнарезультат:
$ cd ..
$ fusermount -u /tmp/decrypted $ cd crypted
$ ls
Как видишь, EncFS полностью скрыла имена и данные файлов, но оставила почти все метаданные на виду. Кроме того, EncFS создала небольшой скрытый файл, начинающийся с «.encfs» и заканчивающийся номером версии.
Файл содержит в себе метаданные, такие как опции шифрования
(алгоритм, длина ключа), заголовки MAC (Message authentication code) и размер блоков шифрования.
ЧТОЛУЧШЕ?
Ситуация с шифрующими системами в Linux весьма неоднозначна. С одной стороны, здесь есть стандартная реализация под названием LUKS/dm-crypt, обладающая всеми присущими криптосистеме функциями/свойствами и поддерживаемая из коробки самыми популярными дистрибутивами. С другой стороны, у LUKS/dm-crypt есть серьезные конкуренты, которые уделывают ее по нескольким характеристикам. Так что однозначный выбор сделать трудно. Я
бы рекомендовал использовать LUKS/dm-crypt или loop-aes для повседневного использования и прибегать к помощи TrueCrypt, когда необходимо создать кроссплатформенный том, и EncFS, когда другие системы не могут быть использованы (например, шифрованный бэкап). z
XÀÊÅÐ 10 /141/ 10