Изменили пароль encfs, но имена файлов не изменились
Я думал, что изменение пароля с помощью 'encfsctl passwd path/to/encrypted' изменит все имена файлов. Но это не сработало. Есть идеи почему?
Я получил это, поэтому пароль был изменен правильно:
Enter current Encfs password
EncFS Password:
Enter new Encfs password
New Encfs Password:
Verify Encfs Password:
Volume Key successfully updated.
2 ответа
Системы шифрования данных (как правило) напрямую не шифруют данные с помощью пароля. Проблема заключается в том, что при смене пароля все данные должны быть повторно зашифрованы, что является очень интенсивным процессом. (Это также предотвращает поддержку нескольких паролей.) Вместо этого при инициализации системы генерируется случайный ключ, и данные шифруются этим случайным ключом. Затем случайный ключ шифруется паролем и сохраняется на диске. Для расшифровки данных сначала используется пароль для расшифровки случайного ключа, а затем для расшифровки данных используется случайный ключ. Изменение пароля просто включает повторное шифрование этого случайного ключа, а не всех данных.
Страница руководства encfs упоминает:
Пользователь должен предоставить пароль, который используется (косвенно) для шифрования как имен файлов, так и содержимого файлов.
что подразумевает, что он использует эту схему.
В EncFS имена файлов и данные имеют разные векторы инициализации. Это не позволяет злоумышленнику зашифровать данные (или имена файлов) и сравнить их с зашифрованным текстом.
Как упоминалось в ответе по умолчанию, пароль фактически используется только для шифрования ключа. И ключ используется для шифрования данных. Таким образом, предполагая, что вы изменили пароль, вы можете перешифровать все данные внутри контейнера. Например. вот так (если ваш контейнер, содержащий дешифрованные файлы, ~ / dec /)
cd ~/dec/
mkdir _copy
cp -a ./ ./_copy/
mv ./_copy/* ./