Категория > Новости > LUKS, eCryptFS или шифрование ZFS? Выбираем способ защиты данных в Linux - «Новости»

LUKS, eCryptFS или шифрование ZFS? Выбираем способ защиты данных в Linux - «Новости»


24-10-2021, 00:00. Автор: Ксения
Пол­нодис­ковое шиф­рование с LUKS2. Изу­чаем новую вер­сию популяр­ного средс­тва шиф­рования для Linux и про­веря­ем, мож­но ли его взло­мать» и «LUKS good! Ста­вим Linux на шиф­рован­ный раз­дел и дела­ем удоб­ной работу с ним».

В про­цес­се соз­дания зашиф­рован­ного дис­ка или кон­тей­нера поль­зователь может ука­зать любой алго­ритм шиф­рования. Тем не менее исполь­зование любого алго­рит­ма шиф­рования, кро­ме 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.



Перейти обратно к новости