Suponho que você esteja usando um linux e tenha algumas ideias ...
Extrair para RAM
Uma maneira fácil seria criar o arquivo descriptografado, mas não gravá-lo no disco. Coloque-o na memória RAM, por exemplo, com um sistema de arquivos ramfs ou tmpfs . Porém, os problemas podem ser:
- O arquivo pode não caber no RAM
- os ramfs podem aumentar de tamanho até que todo o RAM seja usado (subsequentemente provavelmente travando)
- tmpfs pode ser gravado em seu swap em disco (veja também esse link para a diferença entre tmpfs & ramfs).
Seu /tmp
ou outras pastas (como /run
, /run/shm
, /run/user
) podem já estar montadas como um tmpfs, você pode verificar com mount|grep tmpfs
.
Para criar um novo tmpfs , você pode fazer isso (opcionalmente com um tamanho em bytes, se desejar, semelhante a -o size=16384
, acho que o padrão é metade do RAM):
sudo mount -v -t tmpfs tmpfs /mountpoint
Para usar os ramfs mais antigos, que não serão gravados para troca, mas não têm limites de tamanho, isso deve funcionar:
sudo mount -v -t ramfs ramfs /mountpoint
Embora o link acima avise :
ramfs file systems cannot be limited in size like a disk based file system which is limited by it’s capacity. ramfs will continue using memory storage until the system runs out of RAM and likely crashes or becomes unresponsive
Além disso, a documentação do kernel aqui também avisa & diz:
One downside of ramfs is you can keep writing data into it until you fill up all memory, and the VM can't free it because the VM thinks that files should get written to backing store (rather than swap space), but ramfs hasn't got any backing store. Because of this, only root (or a trusted user) should be allowed write access to a ramfs mount.
A ramfs derivative called tmpfs was created to add size limits, and the ability to write the data to swap space. Normal users can be allowed write access to tmpfs mounts. See Documentation/filesystems/tmpfs.txt for more information.
Extrair para um dispositivo ou pasta criptografada
Se os problemas de RAM acima forem muito, você pode usar outro programa para criptografar o arquivo em disco novamente , mas ele pode ser lido & usado "on-the-fly" não criptografado (ex. a versão descriptografada parece e atua como um arquivo normal, mas permanece criptografada no disco). Você pode criar uma partição criptografada ou um arquivo contêiner com dm -crypt / LUKS / truecrypt com cryptsetup , ou uma pasta criptografada com eCryptFS ou EncFS e, em seguida, descriptografe o seu arquivo lá.
-
Por exemplo, para criar um arquivo contêiner LUKS de 1 GB com ext4, montado na pasta
mountpoint-folder
, faça isso:head -c 1G /dev/zero > 1G sudo cryptsetup -v luksFormat 1G sudo cryptsetup -v luksOpen 1G container sudo mkfs.ext4 -v /dev/mapper/container sudo mount -v /dev/mapper/container <mountpoint-folder>
Em seguida, descriptografe seu arquivo no
mountpont-folder
, onde ele será legível, mesmo que seja gravado em disco novamente. -
O eCryptFS já está instalado no Linux Mint, Ubuntu e em muitas outras distribuições. Você só precisa executar
ecryptfs-setup-private
e depois usar a pasta~/Private
criada. -
O EncFS provavelmente precisa ser instalado (semelhante a
apt-get install encfs
) e, em seguida, é a página do manual aqui ou aqui , um comando comoencfs ~/.secret ~/decrypted
deve funcionar.Além disso, o EncFS tem um recurso
--reverse
puro que "toma dados de fonte de texto simples e produz dados codificados sob demanda. Isso pode ser útil para criar backups criptografados remotamente, onde você não deseja manter o local arquivos não criptografados. "