Мно­гие дис­три­бути­вы Linux в качес­тве штат­ных средств защиты пред­лага­ют пол­нодис­ковое шиф­рование (LUKS), шиф­рование папок и фай­лов (eCryptFS) или даже шиф­рование средс­тва­ми ZFS, нерод­ной для Linux фай­ловой сис­темы. Какой из дос­тупных спо­собов име­ет смысл выб­рать сегод­ня? Поп­робу­ем разоб­рать­ся.
 

LUKS

LUKS (Linux Unified Key Setup), а если быть точ­ным, dm-crypt, — это клас­сичес­кая, уни­вер­саль­ная, высокоп­роиз­водитель­ная, хорошо изу­чен­ная и не име­ющая обна­ружен­ных уяз­вимос­тей сис­тема шиф­рования дис­ков. LUKS под­держи­вает мно­гочис­ленные алго­рит­мы шиф­рования и режимы работы, а так­же нес­коль­ко хеш‑фун­кций. В качес­тве алго­рит­ма шиф­рования мож­но выб­рать один из мно­жес­тва под­держи­ваемых, в час­тнос­ти AES, Serpent, Twofish, CAST-128 и CAST-256, которые могут работать в одном из четырех режимов: ECB, CBC-PLAIN64, CBC-ESSIV:hash или XTS-PLAIN64. Чаще все­го по умол­чанию исполь­зует­ся ком­бинация парамет­ров CBC-ESSIV:SHA256 с шиф­ровани­ем AES и 256-бит­ным клю­чом.

В про­цес­се соз­дания зашиф­рован­ного дис­ка или кон­тей­нера поль­зователь может ука­зать любой алго­ритм шиф­рования. Тем не менее исполь­зование любого алго­рит­ма шиф­рования, кро­ме AES, контрпро­дук­тивно: реаль­ная безопас­ность (как и ско­рость под­бора пароля при ата­ке) не уве­личи­вает­ся, а вот ско­рость работы стра­дает очень силь­но из‑за того, что AES — единс­твен­ный алго­ритм шиф­рования, получив­ший аппа­рат­ную под­дер­жку в виде набора команд про­цес­сора AES-NI.

Хеш‑фун­кции, или фун­кции односто­рон­него крип­тогра­фичес­кого пре­обра­зова­ния, исполь­зуют­ся для пре­обра­зова­ния пароля в дво­ичный ключ в сос­таве Key Derivation Function (KDF). LUKS под­держи­вает сле­дующие вари­анты: SHA-1, SHA-256, SHA-512, RIPEMD160 и Whirlpool. Однознач­но не рекомен­дую поль­зовать­ся SHA-1 и RIPEMD160. SHA-256 — выбор по умол­чанию, но и фун­кции SHA-512 и Whirlpool не хуже.

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

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

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

Проб­лема соз­дания и вос­ста­нов­ления резер­вных копий, в том чис­ле на недове­рен­ные уда­лен­ные компь­юте­ры, побуди­ла раз­работ­чиков искать аль­тер­натив­ные спо­собы шиф­рования. Одним из них ста­ли крип­тогра­фичес­кие (шиф­рующие) фай­ловые сис­темы.

 

Криптографические файловые системы

По­мимо шиф­рования дис­ков целиком, в Linux мож­но исполь­зовать и шиф­рование на уров­не папок (крип­тогра­фичес­кие ФС). Такое шиф­рование мож­но вклю­чать как на обыч­ных, так и на зашиф­рован­ных дис­ках. В готовых сетевых хра­нили­щах чаще все­го исполь­зует­ся пер­вый вари­ант, но в отдель­ных слу­чаях (нап­ример, в некото­рых моделях QNAP) мож­но исполь­зовать и вто­рой.

Поль­зовате­лям дос­тупен доволь­но широкий выбор крип­тогра­фичес­ких фай­ловых сис­тем. Сре­ди них мож­но выделить две: eCryptFS, работа­ющую на уров­не ядра и не исполь­зующую FUSE, и EncFS, работа­ющую в прос­транс­тве поль­зовате­ля через FUSE.

eCryptFS шиф­рует каж­дый файл по отдель­нос­ти; метадан­ные шиф­рования для каж­дого фай­ла хра­нят­ся в его заголов­ке. Таким обра­зом, как каж­дый отдель­ный файл, так и целые пап­ки мож­но спо­кой­но копиро­вать меж­ду компь­юте­рами. Это поз­воля­ет орга­низо­вать сис­тему «сле­пого» резер­вно­го копиро­вания, ког­да копиру­ются или син­хро­низи­руют­ся толь­ко те зашиф­рован­ные фай­лы, которые были изме­нены. В то же вре­мя eCryptFS не поз­воля­ет вос­поль­зовать­ся фун­кци­ями дедуп­ликации фай­ловой сис­темы: каж­дый зашиф­рован­ный файл исполь­зует уни­каль­ную соль, в резуль­тате чего содер­жимое даже иден­тичных изна­чаль­но фай­лов в зашиф­рован­ном виде будет раз­личать­ся (с точ­ки зре­ния безопас­ности это пра­виль­но).

eCryptFS час­то исполь­зует­ся для шиф­рования домаш­них катало­гов поль­зовате­лей (в этом слу­чае адми­нис­тра­тор может нас­тро­ить «сле­пое» резер­вное копиро­вание), а так­же в ряде сетевых хра­нилищ (NAS) про­изводс­тва Asustor, QNAP, Synology, TerraMaster и некото­рых дру­гих.

warning

Са­мая популяр­ная аль­тер­натива eCryptFS — шиф­рующая фай­ловая сис­тема EncFS. В отли­чие от пре­дыду­щего eCryptFS, EncFS работа­ет в прос­транс­тве поль­зовате­ля без каких‑либо допол­нитель­ных при­виле­гий через фрей­мворк FUSE. К сожале­нию, не так дав­но в ней была най­дена серь­езная уяз­вимость, которая дела­ет ее небезо­пас­ной для исполь­зования.

eCryptFS под­держи­вает нес­коль­ко алго­рит­мов шиф­рования, вклю­чая AES, Blowfish, DES3_EDE, Twofish, CAST6 и CAST5. Так же как и в дру­гих слу­чаях, исполь­зовать отличный от AES алго­ритм шиф­рования смыс­ла нет: надеж­ность AES дос­таточ­на, а ско­рость работы это­го шиф­ра нам­ного пре­выша­ет ско­рость работы аль­тер­натив бла­года­ря аппа­рат­ному уско­рению набором инс­трук­ций AES-NI.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Подписаться
Уведомить о
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии