Um dos maiores pesadelos dos administradores de redes sempre foi a capacidade incrível dos usuários em escolher senhas inseguras. O que fazer quando não podemos contar com o usuário sequer na hora de criar a sua própria senha?
Mkpasswd é a ferramenta escolhida por mim para me ajudar na geração destas senhas de forma randômica garantindo uma complexidade nas mesmas através da combinação de letras maiúsculas, minúsculas, caracteres especiais e números.
Forma de sintaxe do mkpasswd:
mkpasswd [parâmetro] [usuário]
Quando utilizado sem parâmetro algum, o mkpasswd nos retorna uma senha aleatória como o exemplo a seguir:
$ mkpasswd
ui9B&n4Rc
O comando acima apenas joga uma senha aleatoriamente na tela sem que a mesma tenha validade alguma para nada. Porém o mkpasswd também pode servir para associar uma senha a um determinado usuário existente. Para isso basta inserir o nome do usuário ao lado do comando, lembrando que este tipo de operação requer privilégios de superusuário ou root.
# mkpasswd ngd
O comando acima irá setar uma senha aleatória para o usuário ngd informando-lhe qual foi esta senha.
Mas e se por acaso eu quiser especificar mais ainda minha senha? Se ao invés de meros caracteres aleatórios eu quiser que ela possua por exemplo 2 números dentre os caracteres? E se eu quiser 4 caracteres especiais em minha senha? Acho que 9 caracteres não é seguro, posso ter 12?
É justamente nesse tipo de caso que os parâmetros do mkpasswd vão se encaixar perfeitamente.
[4] Comentário enviado por elgio em 26/05/2008 - 18:28h
Kalib.
Só para registrar o que já haviamos conversado em OFF: existem diversas implementações de mkpasswd. Em algumas delas, como no Ubuntu, o mkpasswd é um binário que GERA O HASH de uma senha CONHECIDA.
Neste, no Ubuntu, tem uma implementaçao em perl (mkpasswd.pl) que se comporta como o que o Kalib descreveu.
[6] Comentário enviado por equeiroga em 26/05/2008 - 19:24h
Pianista, acho q o Kalib fez esse comentário querendo fazer menção à necessidade das empresas, não o cenário atual :)
Na verdade, muitas empresas, realmente, não ligam pra este tipo de detalhe. Um tempo atrás fiz uma consultoria num escritório de advocacia, e os advogados ficaram indagando que era "Frescura do pessoal de informática criar essas senhas dos computadores!!!".
[7] Comentário enviado por kalib em 26/05/2008 - 19:35h
Sim pessoal..
É uma ameaça constante..por incrível que pareça...neste século ainda encontramos este tipo de vulnerabilidade. :/
O grande problema da maioria das empresas hoje em dia é o próprio pessoal..a mentalidade deve estar focada e sintonizada com os objetivos e processos da empresa. Altos investimentos em tecnologia sem o mínimo de conscientização do pessoal interno é apenas dinheiro jogado no lixo. ;]
[8] Comentário enviado por fulllinux em 26/05/2008 - 22:30h
Hhaauha... Aew kalib, muito bom seu artigo, não tinha conhecimento desta excelente ferrameta... foi muita boa a leitura do artigo valeu kara.... É sempre bom aprender coisas deste tipo!
[9] Comentário enviado por y2h4ck em 26/05/2008 - 22:39h
A idéia de senhas complexas é bem excitante e atrativa, porém lembrem-se que quanto mais complexa for a senha, maiores as chances delas acabarem em um post-it colado no monitor ou embaixo do teclado :D
[10] Comentário enviado por foguinho.peruca em 26/05/2008 - 23:21h
Olah Kalib!
Gostei do artigo... esses dias eu tava tendo problemas om senhas também que eu precisava criar pro pessoal usaar as maq... eu usei a ferramenta gráfica do gnome, quando a gte cria usuário... mas eh bomm conhecer outras alternativas...
Detalhe: testei os comandos aqui na Keiko (meu note) --> Ubutu 7.1 e os parametros aqui não funcionaram... tava lendo o man do mkpasswd e os parametros que vc passou não são válidos...
[11] Comentário enviado por removido em 27/05/2008 - 07:33h
Ae Kalib!!
Já tinha visto esse artigo em seu site lembra? até que fiz uma pergunta aqui e dae eu consegui instalar o programa... como utilizo o (k)ubuntu como disse o elgio... o mkpasswd gera o HASH de uma Senha já conhecida. Para instalar baixei o mkpasswd junto com uma biblioteca perl que ae sim (mkpasswd.pl)... faz tudo isso que você falou e já está em utilização aqui na minha empresa... concluindo: Excelente Artigo... tá de parabens!
[14] Comentário enviado por Tjdestroyer em 27/05/2008 - 09:21h
Bom Artigo, parabéns....
Mas não se esqueça, estamos lidando com usuário, e se ele não puder escolher a senha dele, com certeza essa senha vai se anotada em um bloquinho e colocada do lado do monitor da seguinte forma:
SENHA DO COMPUTADOR: @wo_45#Yt
Como sempre a melhor solução é conscientizar os usuários na prática do uso de uma boa senha. E torcer para que eles nos ouçam.... :)
[15] Comentário enviado por engos em 27/05/2008 - 09:37h
O artigo sobre o mkpasswd está muito bom, mas a proposta do artigo era falar sobre segurança de senha e não do mkpasswd em si (talvez uma infelicidade sua ao postar?), certo?
Nesse caso então você falou da solução mais insegura e de maior (re)trabalho que pode existir. Qualquer tipo de sniffer quebraria sua perna ao passar a senha para o usuário, o qual teria que mante-la por escrito em algum lugar (pois dificilmente iria se recordar), o que seria super simples de se conseguir obter, bastaria "pagar o café" enquanto a pessoa coloca a senha que enquanto ela toma o café você olha a senha e pronto! :)
Alem disso, senhas devem ser mudadas de tempos em tempos, aumentando ainda mais seu trabalho e a possibilidade de sniffer ou roubo de senha de qualquer outro modo, pois se você não mudar de tempos em tempos, qualquer programinha de ataque consegue cedo ou tarde quebrar a senha.
Agora no caso Petrobras, ou para qualquer note, o correto é ter todos os dados criptografados no HD e somente depois de se autenticar é que se pode dar o boot no sistema.
Ainda acredito que a melhor opção é o usuários escolher a senha, a qual deve ser validada antes de aceita, verificando a quantidade de caracteres, se tem caracteres numéricos e alfa, alem de manter um dicionário de palavras para serem pesquisadas que jamais devem conter na senha e também checar os dados do usuário (data de nascimento, cidade etc) para se assegurar que nada disso está indo para a senha.
Não sei se era esse seu intuito no artigo, mas foi o que a introdução dele deu a entender...
[16] Comentário enviado por Icehawk em 27/05/2008 - 09:46h
É um bom comando mas para o usuário fica meio complicado. Trabalhei muito tempo com usuários e esse sempre foi um problema. Os usuários comuns tendem a usar as senhas mais fáceis possíveis, data de aniversário, nome dos filhos, data do casamento, etc. Devemos nos lembrar que o usuário já tem muitas senhas para lembrar (bancos, e-mail, login...) e se for escolhida uma senha complicada, fatalmente ela será anotada em algum lugar. Muitos usuários reclamavam quando a senha vencia e quase sempre havia a mudança de apenas um dígito na senha anterior, para não "complicar". Sem contar que a cada troca de senha muitos usuários esqueciam a senha nova e ligavam para criarmos outra senha. Então devemos lembrar sempre que estamos lidando com pessoas e não com máquinas, sendo assim devemos encontrar um meio termo entre segurança e capacidade dos usuários.
[17] Comentário enviado por kalib em 27/05/2008 - 09:46h
Acho que não caro engos...
Acho que foi o oposto...voc6e que foi infeliz em seu comentário... huahauha
E não é a primeira vez que isso acontece, em meu ver pelo menos...
A proposta do artigo nunca foi falar de segurança de senhas...se você tivesse lido com atenção o artigo, veria logo no título:
"Criando senhas seguras com o mkpasswd"
Claro que no caso de muitos usuários pode-se utilizar um script para agilizar as coisas em cima do mkpasswd. ;]
Enfim..maior atenção antes de comentar algo camarada... hauhauh
[19] Comentário enviado por kalib em 27/05/2008 - 09:58h
Acho que alguns confundiram a idéia do artigo..
A idéia aqui não é dizer qual a melhor forma de se criar uma senha..e qual a mais segura...
Mas apenas apresentar como o mkpasswd pode fazer uma senha segura... Se é a melhor forma...isso já é outra história..afinal depende muito do tipo de corporação, tipo de pessoas que usarão...
Numa firma com 10 funcionários, talvez seja bom você deixar que eles escolham uma senha e passe por uma análise de segurança e complexidade da mesma...mas numa firma com 100 funcionários a coisa muda um pouco.. não é mais tão simples checar a de cada um..você deveria criar um script para checar isso e por os devidos parâmetros para dizer: a senha dele precisa de pelo menos duas letras maiusculas, dois numeros e dois caracteres especiais...
Neste tipo de caso..eu particularmente prefiro adotar o mkpasswd juntamente com uma política de gestão de pessoas (conscientização) da importância daquilo e do porque ela ter sido gerada daquela forma "estranha".
Cada caso é um caso...
E novamente..o artigo não é sobre como tornar uma senha segura, ou como aumentar a segurança..
Mas sim COMO GERAR UMA SENHA SEGURA COM O MKPASSWD, que é uma forma de se fazer isso...repito... é UMA forma de se fazer isso. ;]
abraços e obrigado pelos comentários e pela discussão saudável.
[20] Comentário enviado por y2h4ck em 27/05/2008 - 10:33h
Caro Engos, vc fala repetidamente no comentário, que concordo com Kalib que foi infeliz ao comentar, que "um sniffer isso", "um sniffer aquilo". Rapaz, vc realmente sabe o que é um sniffer?? Afinal olhe ali eu não estou vendo nenhuma situação do nosso amigo Kalib onde ele fala pra alguem acessar os servidores via TELNETD para setar senhas ... oO
Assim... mkpasswd gera a senha para a maquina onde ele executa ... sendo assim o seu "sniffer ultra l33t hax0r" a menos que ele seja tão ninja a ponto de decriptar uma sessão SSH on the fly pra capturar essas senhas ai que ele está gerando, só posso crer que você anda viajando nos seus conceitos. rlogin e telnetd não são mais usados não meu velho (não pelo menos por pessoas que pensam).
[24] Comentário enviado por rafastv em 27/05/2008 - 19:58h
Não conhecia o script, bom artigo :-)
Só faltou mencionar que o mkpasswd tem implementações diferentes, aqui no Kurumin, que uso no trabalho, por exemplo, o mkpasswd é apenas um front end para acessar a função crypt da libc.
Existe uma versão on-line do script: http://www.samurajdata.se/~cj/mkpasswd.html
O mkpasswd original de Don Libes para baixar faz parte do pacote Expect: http://expect.nist.gov/
Existe também uma alternativa, que me pareceu melhor(você pode inclusive escolher a quantidade de senhas geradas), implementada em PERL por Aaron Sherman no seguinte endereço: http://www.ajs.com/~ajs/mkpasswd.html
[25] Comentário enviado por KelvinVicente em 28/05/2008 - 00:00h
Artigo excelente =]
E esse artigo é um pé para artigos sobre segurança da informação.
Utilizo o mkpasswd e ele pode não ser o melhor, mas tem se mostrado bastante eficiente para criar senhas com um certo nível de segurança.
Quanto ao que falaram de anotarem senhas, pode até acontecer, mas se a pessoa tiver senso ela vai memorizar aquela senha ou então deixar anotado em algum lugar que apenas ela tenha acesso até o momento em que não necessitará mais olhar para o papel e o jogará fora, mesmo senhas complexas tendem a serem memorizadas com seu uso constante
;-)
(a não ser que a pessoa seja uma mula hahahahahaha)
Kalib, mais uma vez, parabéns pelo excelente artigo, agora me diz uma coisa: quando tu vai escrever um sobre segurança propriamente dita? Se já escreveu me dá um toque =]
[26] Comentário enviado por kalib em 28/05/2008 - 08:46h
Obrigado a todos que comentaram até agora.. ;]
KelvinVicente...
O que exatamente você deseja ler sobre segurança em si? Conceitos de segurança da informação? É isso?
Sobre artigos voltados para a área de segurança temos sim vários aqui no vol... por exemplo o nosso amigo y2h4ck... ele possui vários artigos aqui voltados para a área de segurança.. vale a pena dar uma conferida...