Така и така май ще подготвям лекция на тема криптиране на данни за OpenFest тази година, реших да видя какво ще предложат Ubuntu в новата си версия 8.10.

Какво е положението в момента: Ubuntu както и Fedora могат да криптират цели дялове пред mdcrypt модула като създават некриптирана /boot директория за initrd образа който декриптира / и прави цялата магия. Недостатъците на този подход освен очевидното забавяне като се криптират ненужни неща, например /lib, е че при всяко зареждане се изисква парола за разшифроването на дяла. Това е неудобство ако машината се ползва от много потребители и не е прозрачно.br /Възможно е да се криптират отделни потребителски директории като се ползва cryptoloop но недостатъкът тук е, че дори и това да се извърши прозрачно трябва да се създадат отделни файлове с фиксирана дължина, което напрактика си е доста неудобна квота за потребителя.

Сега Ubuntu ще предложат добър компромис между абсолютната сигурност на пълното дисково криптиране и удобстово за работа. В интерес на истената пакетът който върши магията е наличен и за сегашната версия. Става въпрос за ecryptfs-utils и съответните библиотеки. Този пакет съдържа pam модул – вършещ черната работа, което напрактика го прави доста добре интегриран в системата. Има допълнителен помощен обект mount.ecryptfs_private както и скрипт за настройка. Те небяха налични в пакета и се наложи да ги дърпам от нета и да си ги инсталирам.

Но каква е идеята. Текущата настройка не криптира абсолютно всичко в ~, а създава директория Private която при влизане на потребителя със собствената си парола се маунтва (mount.ecryptfs_private) към директория .Private. Когато потребителят копира в Private файл, то неговото СЪДЪРЖАНИЕ прозрачно се криптира и се записва в .Private под същото име. Така на практика се осигурява неограничено (ограничено от самата файлова система все пак) място за съхранение на данни. Освен това е доста по-надеждно от единичен имидж файл, който лесно може да се повреди ако стане прекалено голям. Недостатък е, че файловата йерархия не е криптирана и може да се отгатне съдържанието по имената на файловете. Въпреки това смятам, че е доста добро решение преставляващо приличен компромис между производителност и защита.

Интересно ми е как работи FileVault във макос, който криптира цели ~ директории.

Със Сашо коментирахме, че май най-сигурен е вариантът на пълно дисково криптиране, като импрементацията на линукс дистрибуциите не е най-добра. Некриптпиранат /boot директория позволява подмяна на initrd образа като е възможто да се инталира спайуеър там. Подходът на TrueCrypt е малко по-сигурен уж, като те ползват собствен буут лоудър но и там са възможни мръсотии ако някой има редовен достъп до компютъра. Май това което се чува за криптирането на глистата (изисква тмп чип и ЮСБ диск за запис за ключ) защитава дори буут сектора от модификации но не съм сигурен дали наистина е толкова ефективно.

Не трябва да се забравя, че декриптираните ключове се пазят в ram паметта на компотите, а това се оказа доста уязвимо към атаки със замразяване, изваждане на чиповете и копиране на съдържанието им преди зареждането на ОС. Просто е необходимо прези изключване дадените части от паметта да се зануляват но незнам някоя ос да прави това.

И накрая разбира се трябва да се помни, че почти е невъзможно да се гарантира абсолютна сигурност на данните при физически достъп до машината.