Consegue guardar um segredo?

Este artigo mostra o básico sobre armazenamento de senhas, pois se há alguma coisa que não mudou em segurança de computadores, essa coisa é a autenticação de usuários.

[ Hits: 17.837 ]

Por: Perfil removido em 22/11/2010


Garantir autenticação



O outro lado da moeda é oferecer serviços de autenticação. A menos que seja um serviço público somente leitura, há a probabilidade de que os usuários tenham de se registrar de alguma forma e ser autenticados para prevenir abuso/spam/ataques/etc.

Em ordem do menos seguro para o mais seguro estão: armazenamento de senhas em formato de texto, armazenamento de hashes descartáveis de senhas salt junto com um valor e uso de um serviço externo (e esperamos, seguro) de autenticação como LDAP, Kerberos, OpenID etc.

Senhas em formato texto: inacreditavelmente, alguns programas ainda armazenam as senhas de usuários em um formato desprotegido. Um invasor que consiga acesso ao sistema pode copiar e usar essas credenciais, o que é particularmente perigoso, pois vários usuários adotam a mesma senha em vários sites e serviços. A única justificativa para as senhas em texto puro é que é possível informá-las aos usuários no caso de elas serem esquecidas. Então, se um provedor consegue recuperar sua senha, isso significa que um invasor também conseguiria.

Senhas com hashes descartáveis: uma hash descartável, mesmo uma poderosa como a SHA512, ainda permite que o invasor faça ataques contra a senha hashed. Toda senha mais fraca será descoberta, e, caso o invasor tenha acesso a um poder computacional suficiente (um botnet, por exemplo), um serviço de exame com valores pré-computados ou tabelas rainbow (hashes descartáveis parcialmente computadas), é relativamente fácil recuperar a senha.

No caso de discos de estado sólido, essas tabelas de exame podem ser acessadas mais rapidamente, facilitando a vida dos invasores. Hash descartável com Salt: esse é atualmente o padrão campeão para armazenamento de senhas. Pegue uma senha e transforme em hash usando a função descartável (como Crypt SHA512 etc) com um valor salt aleatório.

Repare que o comando de criptografia UNIX já faz isso desde os anos 70. Os três aspectos principais do valor salt são: sua extensão (quanto maior, melhor), onde o valor é armazenado (o mais longe possível do banco de dados de senhas e do modo mais seguro possível) e se o mesmo valor será usado para todas as senhas ou se novos serão gerados.

Apesar de ser possível usar mais de um valor salt, a menos que cada um deles esteja armazenado em um método separado, ainda será fácil para o invasor roubar alguns deles. Virtualmente todas as linguagens de programação que possuem a função hash() suportam um valor salt. Caso haja alguma que não suporte o valor salt, eu gostaria de saber.

Serviços de autenticação: um dos métodos de lidar com a segurança de autenticação é remover do seu aplicativo as funções de armazenamento das senhas e nomes dos usuários e usar um serviços de autenticação como o LDAP ou o Kerberos. Esses sistemas têm a vantagem de escalonar e oferecer serviços de autenticação a um grande número de aplicativos. A desvantagem é quando precisamos configurar e manter esses sitemas, que são bem mais complicados que a autenticação embarcada.

Página anterior     Próxima página

Páginas do artigo
   1. Autenticar alguma coisa
   2. Garantir autenticação
   3. Terceirizar a autenticação e conclusão
Outros artigos deste autor

Introduzindo um pouco mais a fundo o shell script (revisado)

Tutorial de instalação do H3270 (sources) com SSL no RHEL5 (s390x)

Um tour pelos programas de gravação de CD/DVD no Linux

Qual o melhor Linux para eu utilizar?

Checando vulnerabilidades com o Nikto

Leitura recomendada

CheckSecurity - Ferramenta para segurança simples e eficaz, com opção para plugins

Como recuperar a senha o root

Entendendo um pouco sobre os daemons

Elastic SIEM - Instalação e Configuração do LAB (Parte I)

Descobrindo chave WPA2 com Aircrack-ng

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts