Eu tenho tentado sem sucesso usar o cryptsetup - tanto no modi plain quanto no LUKS - para criar um dispositivo com uma cifra de fluxo [Chacha20 *, ARC4] em vez de uma das cifras de bloco padrão.
Comportamento é o mesmo para diferentes distribuições / kernels (Fedora, Ubuntu), onde o kernel suporta as cifras em princípio [/ proc / crypto, / lib / modules / * / kernel / crypto /]
Para Chacha20, chacha20poly1305 cryptsetup falha durante a criação, pois não há suporte a cbc-plain (o padrão está disponível) - o que eu suponho que seja razoável para uma cifra de fluxo não se importar com modi de bloco.
Para o RC4, posso criar um dispositivo e acessá-lo, mas depois de fechar a reabertura, o dispositivo não pode ser redefinido.
Minha abordagem para o RC4:
> dd if=/dev/zero of=/dev/shm/container bs=1M count=200
> dd if=/dev/urandom of=/tmp/keyfile bs=1k count=8
> cryptsetup --cipher arc4 --key-file=/tmp/keyfile open --type plain /dev/shm/container ramdisk
> mkfs.ext4 /dev/mapper/ramdisk
> echo "test" > /dev/mapper/ramdisk/test.foo
> cryptsetup close ramdisk
> cryptsetup --cipher arc4 --key-file=/tmp/keyfile open --type plain /dev/shm/container ramdisk
-- fails
Ao usar o LUKS, as informações do cabeçalho se parecem com
> cryptsetup luksDump /dev/shm/container
LUKS header information for /dev/shm/container
Version: 1
Cipher name: arc4
Cipher mode: cbc-plain
Hash spec: sha256
Payload offset: 4096
Na verdade, eu posso formatar o dispositivo com combinações diferentes de arc-modi-IV também - suponho que o container simples use como padrão também cbc-plain (o que não soa razoável, ou?).
Minha suposição é que o cryptsetup / dm-crypt não suporta cifras de fluxo e que falhar como para chacha20 deve ser o comportamento padrão e arc4 não é capturado graciosamente ??
A pergunta é, se essa suposição está correta ou como seria possível usar cifras de fluxo com dm-crypt?