Por que os sites devem espalhar sal em seus hashes para proteger suas senhas


Apesar de suas falhas, as senhas ainda são o padrão de fato para autenticação na web.

O ExpressVPN já escreveu sobre os benefícios de criar senhas seguras usando o Diceware, usar gerenciadores de senhas e criar outra camada de segurança em torno de suas contas com autenticação de dois fatores.

Mas o que acontece nos bastidores? Que medidas podem e devem ser tomadas pelo operador de um site para proteger suas senhas?

O nascimento de hackers

O primeiro sistema de computador que usou senhas foi o Sistema de Compartilhamento de Tempo Compatível no Massachusetts Institute of Technology, construído em 1960. O compartilhamento de tempo permitia que o computador fosse particionado e usado como várias estações de trabalho.

Ainda assim, havia mais pesquisadores do que estações de trabalho e os usuários tinham um tempo limitado no sistema (que alguns esgotaram muito rapidamente). Para garantir que os pesquisadores permanecessem dentro de seus limites, cada um recebeu uma senha exclusiva para fazer login..

Mas, é claro, com as primeiras senhas veio o primeiro hacker. Um pesquisador, Allan Scherr, fez uso de um sistema que permitia aos usuários imprimir arquivos via cartões perfurados (os computadores não tinham telas na década de 1960). Scherr localizou e imprimiu o arquivo que armazenava as senhas, permitindo que ele se conectasse como outros usuários e usasse o computador por mais tempo..

Hoje, é considerado extremamente negligente armazenar senhas em texto não criptografado em um sistema, embora o hack de 2016 do site de mídia social russo VK.com mostre que alguns sites grandes ainda o fazem. As senhas do VK.com de 100 milhões de usuários foram roubadas e agora estão à venda.

Por que as funções de hash são uma via de mão única

Uma função hash é uma criptografia unidirecional e atua como uma impressão digital. Cada arquivo, palavra ou sequência de texto é designada como “impressão digital” de hash, que identifica exclusivamente o conteúdo exato do arquivo original.

Hashes podem ser usados ​​para determinar informações, mas não o que os dados representam. Uma maneira simples de imaginar como os hashes funcionam com somas de dígitos (a soma de todos os dígitos de um número).

A soma dos dígitos de 9807347 é 9 + 8 + 0 + 7 + 3 + 4 + 7 = 38

Embora seja fácil ver a soma dos dígitos de 987347 é 38, é impossível calcular 987347 a partir do número 38.

Senhas seguras com hashesHash SHA-256 para várias seqüências de texto e um arquivo de imagem.

O SHA-256 oferece um universo de permutações

Incrivelmente, 256 bits é uma saída longa o suficiente para identificar exclusivamente cada átomo no universo observável (2 ^ 256 = 1,157920892 × 10⁷⁷).

Embora, em teoria, possa haver dois valores diferentes que tenham o mesmo hash SHA-256. Esse evento é chamado de colisão de hash, e a segurança de qualquer função de hash depende da impossibilidade de serem descobertas..

O antecessor do SHA-2 (do qual o SHA-256 é uma variante) – o popular algoritmo SHA-1 – é conhecido por ser vulnerável a colisões de hash. Embora valha a pena notar, ninguém nunca encontrou um.

Outro hash popular, o MD5, tinha tantas vulnerabilidades que não é uma defesa útil contra a violação maliciosa de arquivos.

Além da criptografia de senhas, as funções de hash também podem ser úteis para garantir que os arquivos não sejam violados, como as assinaturas criptográficas, pois uma sequência de texto alterada alterará a chave de hash.

O armazenamento de senhas como hashes, em vez de texto não criptografado, permite verificar se uma senha está correta sem deixar a senha vulnerável a hackers.

Salt and hash protege suas senhas

Se alguém fosse capaz de invadir um banco de dados que continha apenas senhas com hash, em teoria, não obteria informações úteis. Na realidade, no entanto, as pessoas reutilizam suas senhas em muitos sites ou usam palavras comuns neles, e há muitas coisas que um hacker pode fazer para quebrar os hashes.

Todo hash SHA-256 da palavra ExpressVPN é sempre o mesmo, em todos os sistemas. Portanto, se seu nome de usuário for Lexie e você usar ExpressVPN como senha (não), um hacker poderá procurar o hash “c9f45 … 3d185” entre as senhas para ver a senha de Lexie é ExpressVPN.

Embora isso não pareça particularmente útil por si só, existem listas das poucas milhares de senhas mais usadas (que sabemos de hacks anteriores).

Usando essa lista, um hacker pode procurar os hashes das senhas comuns e combiná-los com os nomes de usuário.

Esse tipo de ataque é chamado de tabela arco-íris, ou dicionário, ataque. Não há tempo suficiente no universo para que um invasor tente todas as combinações possíveis de hash / senha em um ataque de força bruta. Mas há tempo suficiente para experimentar as senhas mais usadas popularmente, o que provavelmente comprometeria uma parte significativa do banco de dados.

A salga protege as senhas, atribuindo-lhes números exclusivos

Para se proteger contra ataques de dicionário, um administrador de banco de dados pode usar um método chamado “salga”, em que cada senha recebe um número aleatório exclusivo. Um hash SHA-256 da combinação de salt e senha é então calculado, armazenado e verificado.

Como alternativa, a senha pode ser hash, combinada com o número salt, e o resultado hash novamente.

Hash salgados adicionam proteção extraExemplos de hashes “salgados”, hash novamente.

Devido à técnica de salga, criar uma mesa arco-íris não é mais atraente. Os números aleatórios tornariam cada hash exclusivo, mesmo que o usuário não escolhesse uma senha exclusiva..

Se um hacker quisesse segmentar usuários com a senha “Passw0rd!”, O número do salt manteria o banco de dados seguro.

O futuro dos sistemas de senhas

As senhas estão longe de ser ótimas para autenticação online. É difícil lembrar de uma boa, elas são difíceis de revogar e, uma vez vazadas, podem causar danos consideráveis.

Os gerenciadores de senhas podem tornar as senhas mais fáceis de usar e ajudar a criar senhas únicas. Eles também o incentivam a alterar suas credenciais de login regularmente, o que é necessário para uma boa segurança online.

Talvez no futuro, mudaremos para formas alternativas de autenticação, como pares de chaves públicas / privadas, possivelmente combinadas com chaves de hardware. Nesse modelo, você precisaria carregar sua chave pública apenas uma vez em um servidor ao se inscrever e nunca mais.

Embora as magnitudes não sejam necessariamente mais seguras do que uma solução de senha implementada adequadamente, é menos provável que os pares de chaves pública / privada sejam aplicados incorretamente pelo usuário e pelo serviço.

O que você pode fazer para proteger suas senhas

Esteja ciente de que muitos dos serviços que você está usando hoje já podem ter perdido o controle de suas senhas. Talvez eles ainda não saibam disso ou estejam se recusando a reconhecê-lo publicamente – protegendo sua imagem à custa da segurança de seus usuários.

Use um gerador de senhas aleatórias e altere suas senhas em longas seqüências aleatórias de letras e caracteres. Você também pode ativar a autenticação de dois fatores em alguns serviços para adicionar uma camada extra de segurança.

Também é uma boa idéia excluir as contas que você não está mais usando, na esperança de que o serviço exclua os dados do usuário junto com ele.

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map