расшифровать ключ громкости Encfs в Java - PullRequest
1 голос
/ 19 июля 2011

Я пытаюсь расшифровать ключ тома encfs в Java. Я запускал encfs со стандартными настройками (т.е. 192-битное шифрование aes). Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 12 февраля 2012

В https://github.com/mrpdaemon/encfs-java имеется библиотека Java, которая обеспечивает чтение и экспериментальную запись в файловые системы encfs.

1 голос
/ 19 июля 2011

На самом деле это не вопрос Java, а скорее вопрос криптографии.Краткое исследование EncFS показывает, что ключ тома зашифрован ключом, полученным из пароля пользователя.Вероятно, это лучший вектор атаки: атака грубой силой на слабый пароль.Однако я бы не стал слишком надеяться.

Для чего бы то ни было, классы Java JCE в javax.crypto были бы вашим путем к выполнению симметричной криптографии в Java.В следующем фрагменте кода показано, как можно выполнить некоторую расшифровку AES с помощью открытого текста:

byte[] keyBytes = ...
byte[] volumeKeyFileContents = ...

SecretKeyFactory factory = SecretKeyFactory.getInstance("AES");
SecretKey aesKey = factory.generateSecret(new SecretKeySpec(keyBytes, "AES"));

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); // for example
cipher.init(Cipher.DECRYPT_MODE, aesKey);
byte[] plaintext = cipher.doFinal(volumeKeyFileContents);

// (written from memory so may not compile without tweaks)

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

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...