Qual é o objetivo do openssl passwd

5

Estou lendo " Implantando com segurança aplicativos Rails "

Em relação à definição de usuários a serem configurados pelo Chef, ele diz:

"Em seguida, precisamos definir os usuários, dentro de data_bags / users copiar o arquivo deploy.json.example para deploy.json.

Gere uma senha para o usuário de implementação com o comando:

openssl passwd -1 "plaintextpassword"

E atualize deploy.json de acordo. "

Minha pergunta é: qual é o propósito de openssl passwd ? É só para gerar uma senha strong? Seria tão bom se eu digitasse caracteres aleatórios?

E então, qual é a minha senha 'real'? A versão de texto simples ou a versão criptografada? Preciso guardar uma cópia de ambos no meu gerenciador de senhas?

ATUALIZAÇÃO:

Sim, li o manual. E sim, eu entendo que ele gera uma versão criptografada md5 da minha senha. Minha pergunta é mais sobre por que você a usaria, ao invés de usar uma seqüência aleatória muito segura de caracteres que você mesmo cria (ou gera com um gerador de senhas).

Um benefício que consegui pensar é que você pode digitar uma senha que pode ser lembrada e executá-la em openssl passwd -1 "plaintextpassword" sempre que precisar inseri-la. Então, você teria o melhor dos dois mundos em termos de uma senha fácil de lembrar e uma senha segura e aleatória. E a execução da versão em memória simples / legível através de '' openssl passwd -1 'toda vez que você precisar economizaria para armazenar a versão criptografada da senha e digitar / colar isso toda vez que precisar digitar sua senha.

Esse é o único benefício? Se não, quais são os outros?

    
por joshua.paling 11.02.2014 / 02:05

2 respostas

5

Depois de algum bate-papo no canal #chef do IRC, aqui está o que eu precisava saber. A maior parte é na verdade informação periférica, em vez de openssl passwd específico, mas de qualquer forma ...

O Chef usa o comando padrão adduser ( link ) para adicionar usuários. Esse comando aceita a senha já criptografada - Por isso, você precisa armazenar uma versão criptografada (gerada por openssl passwd -1 "plaintextpassword" ) no seu data_bags/users/deploy.json .

Portanto, sua senha em texto simples é a senha 'real'. Mas como o comando adduser espera que a senha passada esteja criptografada, é a versão criptografada que você precisa armazenar em data_bags/users/deploy.json

Isso funciona bem, porque você definitivamente não gostaria de armazenar uma senha em texto puro em data_bags/users/deploy.json !

Voltando às minhas perguntas originais:

Qual é a minha senha 'real'? A versão de texto simples ou a versão criptografada?
A versão de texto simples é sua verdadeira.

Eu preciso salvar uma cópia de ambos no meu gerenciador de senhas? Não. Você só armazena sua versão de texto simples. Você usa isso sempre que quiser fazer o login. O sistema criptografa isso e compara-o à versão criptografada que ele armazenou para sua conta.

Qual é o benefício / propósito do openssl passwd?

Não há "benefício" como tal. É simplesmente necessário porque o comando adduser espera que a senha já esteja criptografada.

Tendo dito tudo isso, aparentemente é muito melhor não ferir uma senha em data_bags/users/deploy.json e só permitir o acesso via chaves SSH.

Não é considerado uma boa prática armazenar até mesmo uma versão criptografada de sua senha em data_bags/users/deploy.json , porque a criptografia de senha do Linux tem um histórico tão ruim. (editar: leia os comentários abaixo para uma melhor explicação)

    
por 11.02.2014 / 04:10
8

O objetivo desse comando é alimentar sua senha através de um algoritmo de hash one-way ( -1 saídas MD5). O que você recebe é uma cadeia que é derivado de sua senha criptografada, mas não pode ser usado para encontrar sua senha em seu próprio país, se um atacante obtém suas mãos sobre a versão hash (teoricamente - não há um sal incluído que ajuda contra rainbow tabelas , mas um atacante ainda pode força bruta efetivamente contra ele).

A sua senha a ser executado completa a função hash sempre resultará no mesmo hash, que pode então ser comparado pelo servidor para o hash armazenado para verificar se você tem a mesma senha que foi executado através do comando openssl .

    
por 11.02.2014 / 02:24