Armazenar segredos de aplicativos com segurança [fechado]

2

Eu tenho um serviço de rede Linux que precisa ler um segredo para descriptografar alguns dados. O aplicativo também permite que os usuários alterem a senha de criptografia durante o tempo de execução. O aplicativo será executado em uma conta de usuário separada e o segredo está atualmente em um arquivo de propriedade desse usuário. Estou tentando pensar em maneiras de melhorar essa situação, já que a senha está em texto sem formatação em um arquivo.

O aplicativo pode ser iniciado como root e, em seguida, descartar privilégios para o usuário do aplicativo. Dessa forma, o arquivo secreto pode ser de propriedade de root, mas, em seguida, o cenário de alteração de senha é interrompido, a menos que eu esteja executando outro daemon como root.

Estou basicamente procurando evitar que o segredo esteja em texto puro no disco, e sem um ser humano no loop para iniciar o processo de criptografia, o melhor que pode ser feito é dificultar a obtenção do segredo mesmo se alguém obtém execução de código.

Alguém pode compartilhar alguma sugestão sobre como posso melhorar a situação atual? O keyctl é algo que é aplicável aqui ou é normalmente usado apenas para armazenar segredos do kernel?

Qualquer sugestão será apreciada!

Esta questão foi considerada ampla para este site. Para reduzi-lo, o keyring do kernel (usando keyctl) é um local apropriado para os segredos do aplicativo?

    
por deadc0de 09.11.2016 / 22:50

0 respostas