Abra um volume LUKS como um usuário não-root?

3

Estou usando cryptsetup para criar um dispositivo baseado em arquivo LUKS para armazenar informações em:

# create a file as a container
dd if=/dev/zero of=zulu.bin bs=1024 count=102400
# create a key
dd if=/dev/urandom bs=1 count=8192 2>/dev/null | \
  base64 | \
  cut -b 1-8192 | \
  tr -d '\n' | \
  gpg2 --output zulu-key.gpg -aser DEADBEEF
# format the file-based "device"
gpg2 --decrypt zulu-key.gpg | \
  cryptsetup luksFormat --iter-time=10000 --hash sha256 \
    --cipher aes-cbc-essiv:sha256 --key-size 256 --key-file - \
    zulu.bin

Há muitas coisas abaixo do ideal aqui, ou seja, a criptografia de dispositivo de bloco não fornece autenticação criptográfica, etc.

De qualquer forma, não consigo abrir este dispositivo como um usuário não raiz:

$ gpg2 --decrypt zulu-key.gpg | \
    cryptsetup open -d - zulu.bin zulu
Cannot initialize device-mapper, running as non-root user.

O que eu essencialmente preciso é de um sistema de arquivos inteiro que é criptografado, mas armazenado em um arquivo. Eu preciso ser capaz de abrir e fechar este sistema de arquivos criptografado à vontade e sem privilégios elevados.

Eu pensei em simplesmente criar um tmpfs ou ramfs e então simplesmente dd ing o "dispositivo" diretamente canalizado para o GnuPG e então eu teria a criptografia, autenticação e não-repúdio do GnuPG, mas não tenho certeza se isso vai funcionar.

Existe uma maneira bem conhecida de alocar um sistema de arquivos de tamanho arbitrário como um arquivo que é criptografado em repouso via GnuPG, pode ser aberto na RAM e novamente canalizado para o GnuPG para criptografar o dispositivo offline novamente ? É possível fazer isso como um usuário normal usando o FUSE?

Meu caso de uso está precisando de um sistema de arquivos de tamanho arbitrário que é criptografado para que os programas que gravam arquivos no sistema de arquivos não precisem saber nada sobre criptografia; O GnuPG lidaria com a criptografia ao "fechar" o dispositivo e gravar o texto cifrado no disco como um arquivo.

    
por Naftuli Kay 04.07.2017 / 08:10

0 respostas