Intereting Posts
Некоторые клавиши продолжают получать случайное игнорирование при наборе на клавиатуре ноутбука Как записать образ ISO-образа Linux из Linux Live? bash: export: `PATH: home / pi / netkit / bin: / usr / local … invalid indentifier Установка драйвера платформы Как я могу безопасно создавать и получать доступ к временным файлам из сценариев оболочки? Как использовать команду cat для отображения содержимого текстового файла с пронумерованными параграфами? Почему я не могу удалить свои файлы? Является ли VMWare причиной того, что мой Linux-сервер потерял сетевое подключение? Сохранение процесса, запускающегося после закрытия оболочки, порожденной идеей gedit возвращает настройки по умолчанию Как настроить SSH на рабочем столе Ubuntu и связать с ним поддомен для удаленного доступа к внешней сети? Vim: замените всю строку, начинающуюся с строки строкой Как автоматически шифровать, подписывать и пересылать адрес электронной почты root? Как разрешить обратные пространства в небуферизованном / неканоническом режиме? Режим спасения Fedora 20 с USB-накопителя

Каков максимальный разрешенный размер файла (и папки) с помощью eCryptfs?

Я новый пользователь eCryptfs, и у меня есть очень простой вопрос, который я не смог найти нигде. Я заинтересован в использовании eCryptfs через мое NAS Synology, которое использует Linux.

При попытке зашифровать мою папку (EXT4) с помощью приложения шифрования Synology (eCryptfs) я сталкиваюсь с ошибками, указывающими, что длина моего имени файла не может превышать 45 символов (поэтому, без шифрования).

Если предел действительно составляет 45 символов, eCryptfs может быть не пригодным для использования инструментом для большинства.

Каков максимальный разрешенный размер имени файла при шифровании файлов и папок с помощью eCryptfs? Являются ли символы Linux 255?

Полное раскрытие: я являюсь одним из авторов и нынешним разработчиком служебных программ eCryptfs.

Отличный вопрос!

Для большинства файловых систем (включая EXT4) для Linux максимальная длина файла составляет 255 символов, а максимальный путь – 4096 символов.

eCryptfs – это многоуровневая файловая система. Он складывается поверх другой файловой системы, такой как EXT4, которая фактически используется для записи данных на диск. eCryptfs всегда шифрует содержимое файла, но может произвольно шифровать (скрывать) имена файлов (или нет).

Если имена файлов не зашифрованы, вы можете безопасно записывать имена файлов длиной до 255 символов и шифровать их содержимое, так как имена файлов, записанные в нижнюю файловую систему, будут просто совпадать. Хотя злоумышленник не сможет прочитать содержимое index.html или budget.xls , они будут знать, какие имена файлов существуют. Это может (или не обязательно) утечка конфиденциальной информации в зависимости от вашего варианта использования.

Если имена файлов зашифрованы, все становится немного сложнее. eCryptfs предваряет бит данных на передней части зашифрованного имени файла, так что он может окончательно идентифицировать зашифрованные имена файлов. Кроме того, само шифрование включает «заполнение» имени файла.

Например, у меня есть зашифрованный файл ~/.bashrc . Это имя файла зашифровывается с помощью моего ключа:

 /home/kirkland/.Private/ECRYPTFS_FNEK_ENCRYPTED.dWek2i3.WxXtwxzQdkM23hiYK757lNI7Ydf0xqZ1LpDovrdnruDb1-5l67.EU-- 

Очевидно, что для 7-символьного имени файла требуется зашифровать более 7 символов. Эмпирически мы обнаружили, что имена файлов символов длиной более 143 символов начинаются с шифрования более 255 символов. Поэтому мы (как разработчики eCryptfs upstream) обычно рекомендуем вам ограничить имена файлов до ~ 140 символов.

Теперь все, что сказано, Synology NAS – это коммерческий продукт, который внедряет и использует eCryptfs и Linux для шифрования и защиты данных на устройстве. Мы (разработчики upstream eCryptfs) не имеют ничего общего с Synology или их продуктами, хотя мы в целом рады видеть, что eCryptfs используются в дикой природе . Мне кажется, что их рекомендация в 45 символов является либо типографской ошибкой (из нашей рекомендации по 140 символов), либо просто более консервативной оценкой.

Эта тема очень интересная, потому что мне было интересно то же самое. Я могу жить с необходимостью переименовать 20 файлов из 50 000, если имена файлов должны быть 140 символов или меньше, но 45 или менее невозможно (в моей ситуации), потому что это потребует от меня переименовать слишком много файлов.

Я задал тот же самый вопрос непосредственно Synology (даже указав их на настоящую статью), и их ответ был интересен: «Ограничение имени файла зашифрованного файла – 143 байта. Оно может быть до 140 символов латинского или 45 CJK (китайский , Японский и корейский).

После этого ответа я больше тестировал себя, тестируя файлы с 45, 46, 140, 143 и 144 символами. Мои тесты показывают, что файлы размером до 143 символов (а не байты, в отличие от того, что сказал мне Synology) будут зашифрованы, но файлы с 144 символами будут ПРЕДОСТЕРЕЖАТЬ папку, которая будет зашифрована. Однако СООБЩЕНИЕ ОШИБКИ, которое я получаю от своего NAS, заключается в том, что имя файла должно быть меньше 45 символов (тогда как реальность такова, что оно должно быть менее 144 символов).

Я не делал тестов с символами CJK … Но, для всех, кто читает это, кажется, что вы в порядке до 143 символов, несмотря на то, что система сообщает вам.

Я хотел бы уточнить, что linux имеет ограничение на 255 байт для имени файла, а не 255 символов. Это существенное различие, и если вы используете, например, кодировку UTF-8, вы можете в конечном итоге указать имена файлов не более 100 символов.

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

 dd if=/dev/zero of=/home/me/.some.img bs=1024 count=1024 mkfs.ext3 /home/me/.some.img chmod 777 /home/me/longfilenames sudo mount /home/me/.some.img /home/me/longfilenames 

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

Мои коллеги поместили свое изображение в / tmp – тестовые данные не являются особенно конфиденциальными: мы в основном хотим обеспечить наш исходный код, а не наши результаты тестирования.