senhas do Linux em arquivos de configuração

3

Alguns programas no linux que usam arquivos de configuração, querem que eu digite minha senha em texto simples em um de seus arquivos de configuração. Por exemplo newsbeauter, o leitor rss quer que eu digite minha senha da conta do google em um ~ / .newsbeauter / config se eu quiser ler feeds google reader. Mutt também quer uma senha em um arquivo de texto, mas dá a opção de inseri-la em cada login.

Existe alguma solução segura para armazenar uma senha em um arquivo de configuração como esse (por exemplo, para newsbeauter)? Eu estava pensando em executar o aplicativo como root, mas isso não parece certo. Ou de alguma forma, criar e excluir o arquivo toda vez que eu usar o aplicativo.

Alguma idéia?

    
por udo 03.04.2010 / 06:58

3 respostas

4

As permissões de ajuste não protegem contra um adversário que tenha acesso aos seus discos (laptop roubado).

Você não pode proteger contra um adversário que tenha raiz em seu sistema em execução, mas pode se proteger contra um disco roubado ou vários softwares mal-intencionados não muito inteligentes, com estas duas técnicas:

  • Configure um pequeno sistema de arquivos criptografado (use dm-crypt ou truecrypt, por exemplo) e substitua seus arquivos de configuração por links simbólicos que apontam para algum lugar na partição criptografada. Isso é simples de implantar, mas coloca você em risco quando o fs criptografado é montado

    mount encrypted fs under /mnt/crypt
    cp ~/.application/config /mnt/crypt/app-config
    ln -s /mnt/crypt/app-config ~/.application/config
    unmount encrypted fs to lock config
    
  • Substitua seus arquivos de configuração por pipes nomeados (mkfifo). Isso só funcionará bem se o aplicativo ler a configuração em uma única passagem; na inicialização, o aplicativo bloqueará a leitura do arquivo de configuração até que você o escreva no canal nomeado. Você pode armazenar uma versão criptografada do arquivo em outro lugar (use por exemplo gpg); quando necessário, decifre o conteúdo com gpg e envie-o para o tubo. Isso é um pouco mais seguro, já que você deve permitir a mão a cada acesso ao arquivo, mas talvez seja menos conveniente.

     # setup
     gpg -e -r [email protected] <~/.application/config ~/.application/config.pgp
     mkfifo ~/.application/config
     # run application, application hangs waiting for config
     gpg -d <~/.application/config.pgp >~/.application/config
    
por 03.04.2010 / 22:55
2

A execução de software não crítico como root quase nunca é uma boa ideia.

O que você deve fazer é alterar as permissões desses arquivos para que somente você (o usuário que está executando esses programas) possa lê-los. Para remover, e. ler, escrever e executar permissão para ninguém além de você em um arquivo mine.conf , você estaria sob sua conta

chmod og-rwx mine.conf
    
por 03.04.2010 / 07:12
0

Ou outro truque é colocar o arquivo de configuração dentro de um diretório, mas tirar as permissões de leitura para isso também, para que você não possa ver o interior apenas faça

chmod a-r whatever/

Para que você possa ver apenas dentro dele, se você for root, ou apenas lembrar o nome do arquivo, mas ainda assim poderá fazer tudo no arquivo, contanto que saiba o nome do arquivo ou se você é root, fazer

sudo ls whatever/

    
por 03.04.2010 / 21:14