Estou tentando integrar chaves PKI em um cartão inteligente (usando OpenSC) com montagens eCryptFS para facilitar verificações de autorização mais strongs.
Veja como eu iria criptografar a frase secreta para o sistema de arquivos:
pkcs15-tool --read-public-key $KEYID > ~/userpub.key
<(generate 63 digit random string> | openssl rsautl -encrypt -inkey \
~/.userpub.key -pubin -out ~/.ecryptfskey
Depois de criptografada, a única maneira de descriptografá-la é por meio da chave privada não-exportável localizada no cartão inteligente.
Agora, para montar o sistema de arquivos:
exec 3<<<'pkcs15-crypt --raw --decipher --pkcs1 -k $KEYID -i ~/ecryptfskey'
mount -t ecryptfs $DIR $DIR -o key=passphrase:passphrase_passwd_fd=3,(etc)
Além disso, posso usar um método semelhante para criptografar a senha do sistema de arquivos usando a chave pública de outro usuário, permitindo o compartilhamento de arquivos.
Isto parece ser um método seguro, uma vez que a chave não criptografada é canalizada através de um descritor de arquivo para o comando mount para uma leitura única. Estou perdendo um erro óbvio com a minha metodologia? Existe um caminho mais seguro?
Por favor, note que estamos tentando habilitar a criptografia em nível de arquivo para uso sob demanda. O LUKS não funcionaria, pois nossas máquinas estão sempre ativadas e, portanto, a criptografia de toda a unidade seria inútil.
(Nota: Estamos presos a uma versão do eCryptFS que não possui o pkcs11-helper)
Tags ecryptfs