id: Гость   вход   регистрация
текущее время 09:31 20/04/2024
Автор темы: Mell, тема открыта 19/02/2006 21:49 Печать
https://www.pgpru.com/Форум/UnixLike/Loop-aesGpgядро2612ИВыше
создать
просмотр
ссылки

loop-aes & gpg (ядро 2.6.12 и выше)


Есть Линукс по соседству с виндой и ещё одной малоизвестной ОС, хард поделённый на разделы.
Линуксу отведены несколько разделов под б-м крупные каталоги, в том числе boot, root, swap, tmp.
Как организовать шифрование всех разделов ( т.е. включая загрузочный (если можно), корневой и swap разделы) Линукса с помощью loop-aes и интеграцией с gpg?


Вопрос очень объёмный, так что приветствуются любые ответы и советы.
Начиная от параметров конфигурации ядра, до конкретных инструкций по утилитам.


И в итоге неплохо бы это собрать в HOWTO, по рунету порыскал, есть кое-что, но для старых ядер по-моему, как здесь к примеру.


 
Комментарии
— andrew (19/02/2006 22:56)   профиль/связь   <#>
комментариев: 44   документов: 3   редакций: 0
Да, про полное шифрование именно в Linux информации недостаёт. Впрочем, чаще люди ограничиваются шифрованием /var, /tmp и /home. В таком случае GPG можно использовать для шифрования ключа ФС, с последующим сохранением последнего на USB flash. Например:

И далее:

После чего следует позаботиться о том, чтобы до монтирования криптотома ни одна программа не пыталась получить доступ до размещённых на нём каталогов. Пример почерпнут из ExitTheMatrix HOWTO. Ссылка на последний была приведена на HiddenWiki сети Tor; в HOWTO были приведены и вспомагательные скрипты, рекомендации и пр. Увы, и этот метод – всё ещё не то, что Вам нужно... Я сам буду с удвоенным интересом следить за развитием данной темы :)
Практиковал недавно полное шифрование дискового слайса FreeBSD средствами geom_bde и geom_eli (с использованием флэш-карты в качестве второго фактора аутентификации – "то, чем владеет пользователь"), если добьюсь упеха в этом деле, обещаю поделиться опытом на Wiki.
P. S. Да, ещё один, скорее справочного характера, материал вот: http://silinio.webhost.ru/crypt-discs.html
— Mell (20/02/2006 00:13)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 0
andrew, спасибо. Кстати на той странице обнаружил занятную ссылку Encrypted Root Filesystem HOWTO..
Кстати, на счёт шифрования boot раздела, на сколько это целесообразно?

А на счёт моего линукса, если надо будет, то переставлю, пока там ничего стоящего нет.
— paranoid ant (20/02/2006 13:01)   <#>
Mell, определитесь что вам надо. Зачем вы хотите зашифровать корневой раздел, у вас там супер секретные /bin и /usr/lib? Может стоит ограничится шифрованием только действительно важной информации. Если хочется зашифровать все "скопом", можно ограничиться /home (swap, var).

Целесообразность шифрования /var целиком для меня тоже сомнительна, ценность могут предствалять лишь логи и наверное база данных файловой системы (slocate, host ids – если они установлены). Но и эти данные хранить не обязательно
– журналирование на рабочей станции можно просто отключить
– если лог все таки бывает нужен, можно его хранить на tmpfs (который в свою очередь будет в зашифрованном swap) только в течении сеанса работы.
– индексацию зашифрованных разделов необходимо отключать в любом случае, это касается и slocate и host ids.

Итого получаем что в шифровать имеет смысл swap, /home и возможно (но необязательно) часть /var
— Гость (20/02/2006 14:53)   <#>
В том-то и дело, что необходимо шифровать корень и остальные каталоги (разделы), за исключением м/б boot'a (по содержимому этого раздела, насколько понял, не так просто судить о системе и компонентах?).

А зачем?
1) Ради интереса и опыта полезного в дальнейшей работе.
2) Проверить этот способ, стабильность там и т.д.
3) Ну скажем так, я параноик, и не хотел бы, чтобы дядьки разные не смогли узнать, чем я там хитрым занимаюсь :) (А я и незанимаюсь, просто – параноик, но дядькам же об этом не обязательна знать, правильно? ;) )

Вообще хотелось бы сделать безопасную рабочую станцию на базе Gentoo. Конечно лучше бы Open BSD, но ушлости мне пока не хватает, и с портированием будут напряги. А для развлечений выньда пока устраивает.

paranoid ant, ну как, удовлетворил любопытство? :)

От блин пароль зобыл, ничего, что я гостем пока?

[offtopic]Блин, я вот как-то узнал, что унас дисеры через таких дядек проходят, хрустно-хрустно стало. Тупасть совковая[/offtopic]
— Гость (21/02/2006 13:48)   <#>
В readme к loop-aes есть такие строки
Don't use a journaling file system on top of file backed loop device. Device backed loop device can be used with journaling file systems as device backed loops guarantee that writes reach disk platters in order required by journaling file system (write caching must be disabled on the disk drive, of course). With file backed loop devices, correct write ordering may extend only to page cache (which resides in RAM) of underlying file system. VM can write such pages to disk in any order it wishes, and thus break write order expectation of journaling file system.

Это означает, что фс контейнера должна быть не журналируема, или фс на которой находится контейнер должна быть не журналируема?
Чего-то расшифровать сей пункт невмочь, помогоите, а?
— andrew (21/02/2006 23:42)   профиль/связь   <#>
комментариев: 44   документов: 3   редакций: 0
Mеll:
В readme к loop-aes есть такие строки
Don't use a journaling file system on top of file backed loop device. Device backed loop device can be used with journaling file systems as device backed loops guarantee that writes reach disk platters in order required by journaling file system (write caching must be disabled on the disk drive, of course). With file backed loop devices, correct write ordering may extend only to page cache (which resides in RAM) of underlying file system. VM can write such pages to disk in any order it wishes, and thus break write order expectation of journaling file system.

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

При шифровании дискового раздела средствами dm-crypt или geom_{bde, eli} систем Linux и FreeBSD, зашифровывается ведь содержимое самого раздела, а файл-контейнер как таковой не создаётся. Файл устройства /dev/mapper/cryptfs в таком случае предоставляет доступ к plaintext-содержимому, а /dev/hdxN – к ciphertext. Иными словами, данные нисколько не защищены в то время, когда смонтирован раздел. Имеется в виду та ФС, что создаётся на /dev/mapper/cryptfs (кстати в вышеуказанном примере создаётся ext3 – журналируемая ФС :!: ).
— Mell (24/02/2006 16:00)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 0
Да, практический во всех примерах создается журналируемая фс, означает ли это, что так и должно быть? Или использование ext2 предпочтительней?
— Mell (24/02/2006 17:14)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 0
Кстати, на сколько снизится производительность?
На порядок? Или меньше?
Просто есть мысль, что можно ограничиться шифрованием /tmp и swap в моменты необходимости.
А делами достойными наибольшей засекреченности заниматься уже внутри, допустим, vmware, расположив его virtual hd в зашифрованном разделе.
— andrew (26/02/2006 16:44)   профиль/связь   <#>
комментариев: 44   документов: 3   редакций: 0
Mell:
Да, практический во всех примерах создается журналируемая фс, означает ли это, что так и должно быть? Или использование ext2 предпочтительней?

Мне самому интересно, почему в примере использована журналируемая ФС... Впрочем, если журналируются только метаданные (в reiserfs, к примеру, по умолчанию происходит именно так), не думаю, чтобы журналирование представляло большой риск.

По поводу шифрования свопа, Mell, видели ли Вы эту тему: http://pgpru.com/forum/viewtopic.php?t=1116?

Кстати похоже, что loop-aes действительно гораздо предпочтительнее, чем dm-crypt, вот любопытная цитата из nlo.lists.linux-crypto по этому поводу:
[quote:9e8ccb8090="Phil H"]
I'm not an expert, so a flame war with me will useless and not responded to (*note*), however this is what I think I've gleaned in all my googling:

Loop-aes is still regarded as by far the best civilian partition encryption scheme available for linux. Developmentally and in terms of bug fixes is is way ahead of dmcrypt.

Loop-aes developer Jari Rassu has been at pains to point this out – I strongly suggest you search this list for his comments on dmcrypt and truecrypt. Truecrypt, which is also device-mapper based, only very recently attempted to fix a major security hole which Jari had been warning people about for some time.

The rise of dmcrypt is perhaps largely because Fedora has decided it's the thing to go with. Why? Perhaps because it's seen to be "easier to use", because the loop-aes readme insists that a kernel recompile is necessary => "no newbies please". However the debian packages for loop-aes do not require a kernel recompile unless you want to encrypt the root filesystem. (But I overreach my level of expertise. The person to talk to here might be Max, the maintainer of the debian loop-aes packages. He is a regular on this list). If you look at some of the "serious" security-oriented livecds ie knoppix-STD and INSERT, you'll see they ship with recent versions of loop-aes – not dmcrypt.

I don't want to disparage any efforts in this direction and I really hope dmcrypt and truecrypt continue to improve, but if you look at the dmcrypt wiki the project doesn't inspire confidence in me. I mean, loop-aes has a venerable history. Also, truecrypt cannot yet make containers under linux – it can only mount them.

Recently I was horrified when I read an article on root filesystem encryption on laptops in Linux Journal by an "expert" who, being a Fedora user, went with dmcrypt. The horrifying thing was this: his instructions used a *PLAIN TEXT single aes256 keyfile* – NOT EVEN a gpg-encrypted, multiline keychain. So your usb stick contains the key in plain text. An attacker gets hold of your usb stick, and game over. Yet it is a simple matter to use a gpg-encrypted key with dmcrypt – I've done it just to prove this.

I don't see how cryptLUKS or whatever it's called is any easier to use than loop-aes, once loop-aes is set up. In fact I find it confusing to use.

Just why has what is often regarded as an inferior encryption scheme been pushed? That in itself would make an interesting article.


Видимо, dm-crypt имеет и очевидную слабость – использование номера сектора в качестве вектора инициализации для режима CBC. Цитата из того же треда:

I'm looking over this dmcrypt stuff but it looks like it still has the
old bug of using the sector number as the IV for CBC mode encryption.
The security weakness is well known. The maintainers apparently
decided to keep the bug in place to help interoperability with legacy
cryptoloop instances. But I think at minimum, IV generation for new
installations should be done differently. There is no reason to
postpone adding a new mode that generates IV's by encrypting the
sector number or something like that. Keep the current method
available as a backwards compatibility option, but make the default do
things securely.


P. S. Может кому-то будет полезно, зеркало ExitTheMatrix HowTo в виде не-hidden сервиса: http://exitthematrix.dod.net/matrixmirror/index.html
— andrew (26/02/2006 17:38)   профиль/связь   <#>
комментариев: 44   документов: 3   редакций: 0
Mell, вот ещё крайне полезный документ: http://wiki.suspend2.net/EncryptedSwapAndRoot, loop-AES + GPG + Suspend2 :)
— andrew (27/02/2006 23:30)   профиль/связь   <#>
комментариев: 44   документов: 3   редакций: 0
И ещё один: http://distrowatch.com/weekly......ue=20040816#feedback
— ivlad (06/03/2006 17:13)   профиль/связь   <#>
комментариев: 21   документов: 2   редакций: 0
И еще: http://www.debian-administration.org/articles/179
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3