Junto com o uso de redes abertas ou do WEP e de protocolos não encriptados, o uso de senhas fracas ou de repetição das mesmas senhas entre vários serviços está entre os problemas mais graves de segurança.
Tradicionalmente, senhas com 8 caracteres são consideradas como o mínimo para garantir a segurança de uma conta qualquer já que embora não seja inviolável, uma senha de 8 caracteres demoraria tempo suficiente para quebrar em um ataque de força bruta que com exceção dos atacantes mais obstinados, todos os outros malfeitores logo desistiriam e partiriam em busca de alvos mais fáceis. Entretanto, a evolução no processamento das CPUs e GPUs tem feito com que as senhas de 8 caracteres passem a ser tão vulneráveis quanto as senhas de 5 ou 6 caracteres eram no passado.
O principal risco vem das GPUs, que devido à arquitetura massivamente paralela são bem mais eficientes que as CPUs na quebra de senhas através de ataques de força-bruta. Usando uma simples Radeon HD 5770 em conjunto com o IghashGPU (http://www.golubev.com/hashgpu.htm), é possível quebrar uma senha NTLM do Windows (que usa o algoritmo MD5) de 6 caracteres, contendo letras e números, maiúsculas e minúsculas como “
C6te4Z
” em apenas 17 minutos, contra quase uma semana usando uma CPU mid-range.Senhas de 8 caracteres podem ser quebradas em apenas um ou dois dias e mesmo mesmo uma senha para 9 caracteres, mantendo o uso de maiúsculas, minúsculas e números (mais segura do que a maioria das senhas que se costuma utilizar) demora apenas 48 dias para ser quebrada usando a Radeon HD 5770. Migrando para um par de placas high-end em CrossFire seria possível reduzir o tempo drasticamente, colocando em risco até mesmo senhas com caracteres especiais e espaços.
Com GPUs com esse tipo de poder de processamento no mercado, o padrão mínimo para senhas seguras passou a ser usar senhas com pelo menos 12 caracteres (preferencialmente 16) misturando letras, números e caracteres especiais. Qualquer coisa abaixo disso pode ser quebrado no devido tempo por um atacante suficientemente determinado.
Naturalmente, este tipo de ataque de força bruta é executável apenas quando o atacante tem a posse dos hashes das senhas, que são tipicamente armazenados em um arquivo, ou em uma tabela do banco de dados (no caso de aplicações web). O hash é obtido ao processar a senha original usando um algoritmo de mão única, complexo o bastante para não poder ser revertido. Uma senha como “
dft#d3W6&8()d
” resultaria em um hash como “$6$LAlv13Dd$nZJ2TMsL6YoKpKAX1uWk4du9SK3QnhUW79ft76kvs1ovRQojGuE6GkY8uK0SWP.3LnPiZabEVr1OubNIrMiaj0
“. Sempre que a mesma senha é reprocessada usando o algoritmo, o mesmo resultado é gerado, o que permite ao sistema verificar a senha sem que ela precise ficar armazenada em lugar algum: apenas o hash é armazenado.Com isso, quando as coisas dão errado e um atacante obtém acesso à base de dados de um grande provedor de conteúdo (o que não é tão raro, veja por exemplo o ataque à PlayStation Network de 2011) cabe unicamente aos hashes garantir a privacidade das senhas. O mesmo se aplica a casos onde se tem acesso físico à sua máquina, o que torna possível copiar o arquivo de senhas do sistema operacional.
Isso nos leva a outro problema, que é o reuso de senhas. Se você usa a mesma senha no serviço A, B e C, significa que um atacante que consiga obter sia senha no serviço A, vai automaticamente ter acesso também às suas contas nos serviços B e C, principalmente considerando que hoje em dia a maioria dos serviços usa o endereço de e-mail como login.
Um exemplo prático da aplicação disso foi o ataque à PlayStation Network, onde os logins e senhas dos usuários do serviço vazaram na rede e foram rapidamente testadas por vários grupos em outros serviços, ganhando acesso às contas dos usuários que usavam as mesmas senhas em vários deles.
Isso nos leva a um terceiro problema: senhas longas, com letras números e caracteres especiais são difíceis de lembrar e usando uma diferente em cada serviço, você vai rapidamente esgotar sua capacidade de memorização.
A solução mais comum para lidar com o problema é criar variações de uma senha-mestra, alterando alguns dos caracteres em cada utilização. Presumindo que a senha original seja uma boa senha, com 12 ou 16 letras, números e caracteres especiais e as variações sejam suficientemente diferentes da senha inicial, essa pode ser uma solução suficientemente segura, embora não seja ideal.
Outra opção é usar um gerenciador de senhas. Existem inúmeras opções para Windows, Linux, Android, iOS e Symbian, que geralmente oferecem uma segurança satisfatória, usando uma senha mestra para encriptar o arquivo onde as senhas são salvas e oferecendo alguma interface para visualizá-las. Uma boa opção para armazenar as senhas no desktop é o Keepass (http://keepass.info/), um gerenciador open-source, bastante seguro e com bons recursos (permite dividir as senhas em categorias, gerar senhas randômicas, criar diferentes chaves de acesso, exportar o arquivo de senhas em diversos formatos, etc.). Ele roda nativamente sobre o Windows, mas é possível usá-lo também no Linux ou OSX através do Mono:
Os gerenciadores móveis são em geral menos seguros (especialmente se você rodá-los sobre um Android com acesso de root ou iPhone desengaiolado), por isso o ideal é não rodá-los no seu smartphone principal (que pode ser perdido ou roubado) mas sim em algum aparelho antigo que você possa dedicar a esta tarefa, mantendo-o guardado em um local seguro. Uma boa opção são as versões do Keepass para o Android, iPhone e outras plataformas móveis, também disponíveis na página de download. Além de moderadamente seguras, elas são capazes de sincronizar em relação ao PC.
Uma terceira opção é utilizar um serviço de gerenciamento de senhas, como o LastPass (http://lastpass.com). A vantagem dele é que além de armazenar as senhas ele oferece extensões para os principais navegadores que permitem completar os campos de senhas automaticamente, transmitindo-as de forma segura. Ele é um meio-termo entre praticidade e segurança, já que por um lado você coloca suas senhas sob a guarda de uma empresa externa (muito embora a chave de encriptação para suas senhas seja armazenada apenas em seu próprio PC e não nos servidores remotos), mas por outro é bem mais seguro do que usar o armazenador e senhas do Firefox ou ficar reutilizando indefinidamente a mesma senha.
Por Carlos E. Morimoto
Fonte: Guia do Hardware
0 comentários:
Postar um comentário