Senha SMTP salva como texto simples?

Olá,

Sou novo na instalação do Discourse e, recentemente, configurei em um Droplet da Digital Ocean para servir como nosso fórum/página de comunidade da empresa.

Durante a instalação, notei que a entrada da senha SMTP não está protegida e é armazenada como texto simples no arquivo app.yml.

Isso parece ser uma possível questão de segurança. No entanto, não sou especialista em redes ou segurança, então isso pode estar correto por vários motivos. Mas, para deixar nosso Gerente de TI satisfeito, me ajudaria se eu pudesse entender melhor por que isso é feito dessa maneira.

Sei que o Discourse é amplamente utilizado por muitas empresas, então suspeito que esse tópico já tenha sido abordado anteriormente.

Qualquer ajuda será apreciada.

Obrigado!
Jason

Se alguém em quem você não confia tiver acesso ao seu arquivo app.yml, sua senha SMTP será o menor dos seus problemas.

Como você proporia protegê-lo?

Hashes são unidirecionais; não é possível reverter para os dados originais.

As senhas dos usuários são hashadas porque não precisam ser reversíveis. Um hash de senha no banco de dados é consultado apenas quando o usuário tenta fazer login. O hash da senha fornecida é comparado ao hash de senha armazenado no registro daquele usuário.

É bastante comum que coisas como senhas SMTP e chaves de API sejam armazenadas em texto puro. Elas precisam ser transmitidas em sua forma original, então hashá-las impediria seu uso. Se o terceiro aceitasse um hash da senha, não haveria benefício em usar hash como forma de proteção.

Como Jay mencionou acima, se a integridade física do seu servidor for comprometida e seu app.yml for acessado, você terá problemas muito maiores para se preocupar do que a necessidade de redefinir uma senha SMTP.

Uma ressalva importante aqui: você não deve usar a senha SMTP em nenhum outro lugar — mas isso não é específico do Discourse. É uma boa prática de segurança para todos os sistemas e todas as contas.

Como Jay disse, se alguém obtiver acesso ao seu app.yml, você terá outros problemas. Isso significa que provavelmente eles têm acesso root completo ao seu servidor, incluindo seu banco de dados de produção.

A melhor prática aqui é garantir que seu servidor esteja seguro.

Olá a todos - Obrigado pelas respostas.

Concordo que proteger o servidor é a primeira linha de defesa. No entanto, neste caso, isso está fora do meu controle, pois instalei o Discourse em um Droplet da Digital Ocean.

@Stephen - obrigado pelas informações de contexto sobre senhas SMTP. Eu não sabia que é comum armazená-las em texto simples para esse tipo de uso. Como disse, isso está fora da minha área de especialização. É apenas algo que chamou minha atenção e eu quis perguntar.

Obrigado!
Jason

Não exatamente :slight_smile: Você pode restringir logins apenas a uma chave SSH, manter um firewall em execução e garantir que as correções de segurança sejam aplicadas regularmente. Isso representa uma porcentagem significativa na segurança de um droplet.

Isso mesmo. E, a menos que você tenha seu sistema de arquivos criptografado — o que é difícil de fazer —, então você também precisa confiar neles. Eles têm acesso físico aos servidores e à rede.

Como explicado, você só precisa ter a senha para usá-la.