Содержание
Еще по теме: Защита NAS на примере домашнего сервера Synology
Рынок «домашних» сетевых хранилищ насыщен предложениями. Для тех, кого пугает само слово NAS, — линейка WD My Cloud Home, файлы в которой хранятся в виде порезанных на кусочки блобов в базе данных, а создать сетевую папку и организовать стриминг на умный телевизор — задача, штатными способами не решаемая. Более консервативные пользователи, энтузиасты и сегмент SOHO могут выбирать из предложений Synology, QNAP и Asustor.
В моделях всех производителей, за исключением «домашних» устройств Western Digital, поддерживается шифрование данных по алгоритму AES-256. Несмотря на использование одного и того же алгоритма, детали реализации у разных производителей могут отличаться настолько, что даже сравнивать между собой различные схемы получается с большим трудом. Так, в компании Synology сделали ставку на шифрование сетевых папок — eCryptFS. В QNAP пошли другим путем.
Архитектура защиты
В современных моделях QNAP, работающих под управлением актуальных версий QTS, может использоваться не один, а целых три варианта шифрования, из которых можно применить хоть любой на выбор, хоть все вместе в любых комбинациях. Перечислю доступные методы:
-
Self-encrypting drive (SED). Шифрование SED выполняет непосредственно контроллер жесткого диска — при условии поддержки со стороны прошивки. Далеко не все модели дисков поддерживают SED; проще всего получить такой диск, разобрав внешний накопитель WD My Book (только однодисковые модели; в двухдисковых шифрование реализовано на уровне контроллера USB). В NAS от QNAP, в тех моделях, где поддерживается SED, включить защиту можно как для отдельного диска, так и для всего пула — организовав, таким образом, полностью зашифрованный SED пул хранения. Шифрование SED — отличный «нулевой» слой шифрования, защищающий данные, например при отправке дисков в гарантийный сервис.
-
Шифрование тома. Традиционно именно этот тип шифрования использовался во всех устройствах QNAP. Данный тип шифрования — программный; его включение несколько снижает производительность дисковой подсистемы. Впрочем, разница не критична. Шифрование тома может защищать как тома, расположенные на конкретном диске, так и многодисковые тома, расположенные в пространстве хранения объединения физических жестких дисков.
-
Шифрование сетевых папок. Этот тип шифрования нам уже знаком по исследованию шифрования Synology. В NAS от QNAP данный тип защиты появился сравнительно недавно, а создавать зашифрованные папки на зашифрованных томах стало возможно и вовсе буквально на днях. Неудивительно, что реализация от QNAP отстает от аналога в Synology DSM по части хранения, управления и защиты депонированных ключей.
Шифрование SED: физический, или «нулевой», уровень защиты
Шифрование по методу self-encrypting drive — SED — возможно при использовании специфических моделей дисков, шифрование которых реализовано аппаратно в рамках контроллера и поддерживается прошивкой. Последняя ремарка имеет значение: подавляющее большинство современных контроллеров обладает возможностью аппаратного шифрования, но возможность эта активируется лишь в моделях, предназначенных для специфических применений. Эти применения далеко не всегда подразумевают использование в дата‑центрах. К примеру, популярные внешние диски WD My Cloud поставляются с дисками, в которых функция SED активирована.
К сожалению, свободного диска с SED для экспериментов у меня не нашлось, поэтому протестировать работу функции в NAS от QNAP я не смог.
Интересный момент: шифрование SED в NAS от QNAP можно использовать для создания полностью зашифрованных многодисковых пулов хранения. На таком зашифрованном пуле хранения можно затем создать обычный или зашифрованный логический раздел.
Согласно документации, в QTS существует возможность сохранить ключ шифрования для автоматического монтирования пула SED при загрузке устройства. При сохранении ключа необходимо понимать, что оно грозит несанкционированным доступом к данным, если у злоумышленника будет физический доступ к NAS.
Шифрование тома
В QNAP впервые была реализована именно защита на уровне тома. Этот тип защиты доступен для большинства накопителей QNAP, как тех, что оснащены процессорами Intel, так и основанных на архитектуре ARM.
Зашифрованный том можно создать в виде статичного раздела или в виде раздела поверх пула хранения (в том числе зашифрованного SED). Шифрование тома — прекрасный первый слой шифрования, который работает на любых дисках, даже тех, которые не поддерживают SED. Обратная сторона — скорость: при использовании шифрования тома наблюдается небольшая потеря производительности, а время, требующееся накопителю для любых операций с зашифрованным разделом, исчисляется в минутах.
Основные концепции
Шифрование тома реализовано на основе шифра AES-256 при помощи стандартного механизма cryptsetup (LUKS) с одним исключением: пароль пользователя преобразуется в криптографический ключ утилитой storage_util собственной разработки QNAP. Соответственно, чтобы смонтировать зашифрованный раздел за пределами NAS от QNAP, необходимо провести преобразование, воспользовавшись совместимым NAS от QNAP (это не обязательно должно быть то же устройство, на котором был создан том). Насколько мне известно, эквивалента этой утилите в Linux не существует.
- Реализация: cryptsetup (LUKS); утилита собственной разработки (storage_util) для преобразования пароля в ключ.
- Шифрование тома с данными: нет. Зашифровать можно только новый том при его создании.
- Расшифровка тома с данными: нет. Можно лишь удалить том и создать его заново.
- Смена или отзыв скомпрометированного пароля: да. Пароль можно сменить в любой момент. Это долго (минут пять), но возможно.
- Ключ шифрования: пароль (преобразовывается собственной утилитой от QNAP) или файл с ключом размером 256 байт.
- Потенциальные уязвимости: см. раздел «Сохранение ключей».
Зашифрованный том можно заблокировать, в результате чего том будет размонтирован. Это тоже занимает довольно много времени (примерно пять минут на нашей тестовой системе QNAP TS-453Be). Вероятно, с точки зрения разработчиков блокировка зашифрованного тома не считается рутинной операцией и, соответственно, не нуждается в оптимизации.
Ключ шифрования можно сохранить в файл с расширением .key, размером 256 байт. Способ преобразования ключа LUKS в содержимое файла не исследовался. Содержимое файла меняется каждый раз при его сохранении, поэтому определить, меняется ли ключ после изменения пароля, не удалось.
Разблокировать том можно, введя пароль или предоставив файл с ключом.
Разблокировка тома на тестовом устройстве QNAP TS-453Be занимает около пяти минут. Это еще одно действие, которое пользователи не будут совершать регулярно, а посему в оптимизации не нуждающееся.
Пароль шифрования можно сменить через пользовательский интерфейс. Смена пароля также относится к занятиям редким и потому, очевидно, не нуждающимся в оптимизации. (В скобках: и загрузка NAS тоже относится к таким не нуждающимся в оптимизации процессам. Мне хотелось бы взглянуть на полный список таких вещей, чтобы знать точно, что именно, с точки зрения разработчиков QTS, я не должен делать регулярно.) Смена пароля требует размонтирования зашифрованного тома (пять минут) и его последующего монтирования (еще пять минут). Итого — десять минут на смену пароля.
Детали реализации
Как уже было сказано, QNAP использует механизм cryptsetup и шифр AES-256. Подробные инструкции по монтированию зашифрованных томов есть на странице Mounting QNAP encrypted volumes; пароль для этого необходим.
Пароль пользователя нельзя передать непосредственно утилите cryptsetup; он должен быть предварительно закодирован утилитой storage_util собственной разработки QNAP:
1 2 |
# /sbin/storage_util --encrypt_pwd pwd=YOUR_PASSWORD Encrypted passwd is: $1$YCCaQNAP$11Ny1/mqEz2frukTALsHp/ |
1 |
# cryptsetup luksOpen /dev/mapper/cachedev1 myencrypteddisk |
1 |
# /sbin/storage_util --encrypt_pwd pwd=YOUR_PASSWORD > /tmp/keyfile.key |
Обрати внимание: это не тот ключ, который можно сохранить из веб‑интерфейса QTS! Данный ключ используй следующим образом:
1 |
# cryptsetup -v luksOpen /dev/mapper/cachedev1 ce_cachedev1 --key-file=/keylocation/keyfile.key --key-slot 0 |
Дополнительную информацию поищи на форумах QNAP:
Шифрование сетевых папок
Шифрование сетевых папок появилось в QTS относительно недавно. Поддерживается этот способ шифрования только в NAS с процессорами Intel (вероятно, сюда входят и модели с процессорами AMD, то есть имеет значение архитектура x64). Изначально возможности создать зашифрованную сетевую папку на зашифрованном томе не существовало и пользователю приходилось выбирать, на каком из двух типов шифрования остановиться. С недавних пор это ограничение сняли, и зашифрованные папки стало возможным создавать и на зашифрованных томах — что мы и проверим дальше.
Основные концепции
Шифрование папок реализовано посредством eCryptFS и использует алгоритм AES-256. Ключ шифрования создается единожды на основе пароля, указанного пользователем. Сменить пароль нельзя, зато QTS позволяет расшифровать зашифрованную папку или зашифровать обычную. Таким образом, время, требующееся для смены пароля, находится в прямой зависимости от объема данных в сетевой папке и может составить от нескольких секунд до нескольких дней. Помимо пароля, пользователь может сохранить файл с ключом шифрования (файл без расширения, 256 байт). Ключ шифрования можно сохранить на устройстве (см. раздел «Сохранение ключей»).
- Механизм: eCryptFS.
- Шифрование папок с данными: да.
- Расшифровка зашифрованных папок: да.
- Смена или отзыв скомпрометированного пароля: нет. Пользователю предлагается сначала расшифровать, а потом снова зашифровать сетевую папку.
- Ключи шифрования: пароль или файл с ключом.
- Потенциальные уязвимости: см. раздел «Сохранение ключей».
Сетевая папка может быть зашифрована как во время создания, так и в любой последующий момент.
Пользователи могут скачать файл с ключом шифрования. Название файла foldername_keyfile с пустым расширением. Длина — 256 байт. Если файл с ключом запросить и скачать несколько раз, его содержимое будет отличаться.
Существует возможность сохранить ключ на устройстве для автоматического монтирования зашифрованных папок при загрузке NAS. Это — потенциальная уязвимость, подробнее о которой мы поговорим в соответствующем разделе.
Зашифрованные папки можно блокировать и разблокировать в любой момент. Монтируются и размонтируются зашифрованные сетевые папки практически мгновенно.
Использование eCryptFS накладывает ряд ограничений, о некоторых из них QTS предупредит пользователя.
А вот о том, что ограничения касаются и длины файла, система не предупреждает. Сравни с сообщением, которое выдает Synology DSM.
Я проверил: файлы, длина имен которых превышает указанные цифры, создать в зашифрованной папке не удалось.
Как многослойное шифрование влияет на производительность
QNAP — единственный из известных мне производителей, поддерживающих в потребительских моделях многослойное шифрование. Попытка смонтировать зашифрованную папку при заблокированном зашифрованном томе ожидаемо окончилась ошибкой; так и должно быть.
Что произойдет с производительностью, если включить одновременно и шифрование тома, и шифрование сетевых папок? Я проверил: ничего особо страшного не происходит, по крайней мере при использовании гигабитного сетевого линка.
Обычная сетевая папка на обычном томе
Чтение: 96 Мбайт/с, запись: 115 Мбайт/с
Обычная сетевая папка на зашифрованном томе
Чтение: 96 Мбайт/с, запись: 107 Мбайт/с
Зашифрованная сетевая папка на зашифрованном томе
Чтение: 96 Мбайт/с, запись: 95 Мбайт/с (наблюдались пиковые скорости около 100 Мбайт/с)
Мне сложно сказать, что именно в системе не позволило скорости чтения подняться сверх 96 Мбайт/с, однако по скорости записи можно наблюдать эффект, который оказывает на скорость дисковой подсистемы каждый последующий слой шифрования. С моей точки зрения, негативное влияние на скорость дисковых операций относительно невелико даже при использовании зашифрованных папок на зашифрованном томе.
Сохранение ключа
«Сохранение ключа шифрования может привести к несанкционированному доступу к данным, если посторонний персонал сможет физически получить доступ к NAS». Это предупреждение находится на каждой странице документации QNAP, где упоминается сохранение ключа шифрования.
Ключи шифрования можно сохранять для всех поддерживаемых устройством типов защиты — от SED до шифрования сетевых папок включительно. При этом не предусмотрено возможности сохранить ключ на USB-накопителе, защитив его дополнительно паролем, как это сделано в Synology. Ключ всегда сохраняется на устройстве. Где именно? «Секрет». Такова официальная позиция разработчиков QTS. Как известно, security through obscurity — прекрасная концепция, никогда не дающая сбоев; именно ее придерживается компания QNAP в вопросе шифрования данных. Впрочем, в моем случае концепция сработала: дважды (до и после сохранения ключа) загружать NAS с USB-накопителя и создавать образ хранилища DOM мне было откровенно лень, поэтому секретное место, в котором сохраняются ключи, так и осталось секретным.
Заключение
В сетевых хранилищах QNAP реализована многослойная защита, которая позволяет уберечься от более широкого спектра угроз, чем любой единственный слой. В свежих сборках QTS пользователю больше не приходится выбирать между шифрованием тома и шифрованием сетевых папок — две эти возможности, которые защищают от разных сценариев угроз, можно использовать одновременно.
Аппаратное шифрование диска SED эффективно защищает данные в случае, если диск требует гарантийного обслуживания, и обеспечивает мгновенное безопасное уничтожение данных. Шифрование тома достигает аналогичной цели в конфигурациях с несколькими дисками, а также в случаях, когда SED недоступен.
Последний уровень, шифрование сетевых папок, защищает данные каждого ресурса или пользователя по отдельности, позволяя администраторам создавать зашифрованные резервные копии зашифрованных папок для всех пользователей, не сохраняя и не передавая ключей шифрования.
Еще по теме: Как проверить свой роутер на уязвимость?