Могу ли я сделать зашифрованное изображение, используя инструменты шифрования openssl вместо dmsetup?

590
shuofei

Как правило, я могу создать зашифрованное изображение ext4, сделав это:

fallocate -l 6553600 encrypt.img losetup -f encrypt.img dmsetup create encrypt_disk --table "0 12800 crypt aes 32BYTEKEY 0 /dev/loop0 0" mkfs.ext4 /dev/mapper/encrypt_disk 

Затем я могу смонтировать / dev / mapper / encrypt_disk в каталог, и все файлы на этом диске будут зашифрованы автоматически. И я получил encrypt.img. Он может быть загружен dmsetup в следующий раз.

Вот мой вопрос: могу ли я создать encrypt.img, используя инструменты openssl вместо dmsetup? Может быть, это понравится:

fallocate -l 6553600 encrypt.img losetup -f encrypt.img mkfs.ext4 /dev/loop0 openssl aes ... 

Спасибо.

2
Я всегда предполагал, что OpenSSL ориентирован на потоковые шифры, но это может быть не совсем правильно, поэтому убедитесь, что он может реализовывать блочные шифры, такие как AES, в режиме CBC (цепочка блоков шифра). Все сказанное, первое правило крипто, которое они преподают в ведущих университетах: «Не пытайтесь делать это самостоятельно. Для этого требуются эксперты и большое количество экспертных проверок. Лучшие криптографы в мире не работают в одиночку, и ни Тебе следует". Итак, в заключение, не пытайтесь зайти слишком далеко, когда пытаетесь реализовать криптографию. Более вероятно, что мастеринг ослабит систему. Frank Thomas 9 лет назад 0

1 ответ на вопрос

2
Juergen

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

Если вместо этого вы использовали файловую систему пользовательского пространства, которой нет ext4, но она может быть чем-то окружающим fuse, то эта может быть основана на чем-то другом, чем блочное устройство на основе ядра, но это совсем другая тема.

Похожие вопросы