Como as redes armazenam suas senhas e outras informações de login?

Goutyne
By Goutyne
Como as redes armazenam suas senhas e outras informacoes de login scaled

Anos atrás, senhas aleatórias de oito caracteres, consistindo em letras, símbolos e números maiúsculos e minúsculos, eram realmente difíceis de decifrar. Em alguns casos, essa senha levou anos para ser quebrada.

Graças à tecnologia em mudança e às máquinas alugáveis de hoje, esse tempo foi reduzido para horas. Mas como essas senhas são armazenadas em primeiro lugar?

Como as senhas são armazenadas on-line

Os sistemas não armazenam senhas de usuários diretamente em arquivos ou bancos de dados, porque os invasores podem assumir o banco de dados onde os sistemas mantêm as senhas. Em vez disso, os sistemas criptografam senhas de usuários e os invasores encontram uma versão criptografada de cada senha.

Existem alguns algoritmos que os sistemas usam para criptografar senhas. Um desses algoritmos é o algoritmo simétrico. O algoritmo simétrico é um tipo de criptografia onde você pode usar a mesma chave para criptografia e descriptografia. A chave que você usará para criptografar os dados é a mesma para criptografia e descriptografia. A segurança dos algoritmos simétricos traz alguns riscos, pois há apenas uma chave para descriptografia. Por esse motivo, os sistemas geralmente não usam algoritmos simétricos para criptografia de senha.

Geralmente, o método usado pelos sistemas para criptografia é algoritmos de hash. Os algoritmos de hash são para verificar e representar a integridade dos dados, não para criptografar dados. Algoritmos de hash convertem dados em um hash de tamanho fixo. Esses hashes geralmente representam um hash exclusivo de dados.

Graças ao algoritmo de hash, se um invasor assumiu o banco de dados de senhas, o invasor não pode acessar a senha para trás a partir daqui. Há uma nuance muito importante à qual você deve prestar atenção aqui. Teoricamente, um invasor que compromete um sistema que usa o mesmo algoritmo de hash para todas as combinações de senhas pode comparar os resultados obtidos. Se o invasor produzir o mesmo valor como resultado dessas comparações, o invasor descobriu qual é a versão aberta da senha. Este método tem tudo a ver com tentativa e erro, e essa forma de ataque é geralmente chamado de ataque de força bruta.

No início dos anos 2000, pode levar centenas de anos para tentar todas as combinações de senhas de 8 caracteres criptografadas com algoritmos de hash populares. Obviamente, isso não inclui combinações muito simples, como “123456” ou “minha senha” neste conjunto. Com o desenvolvimento das tecnologias atuais de software e hardware, o método de quebrar senhas também mudou muito.

O impacto das GPUs emergentes

Os recursos paralelos de processamento de dados dos processadores gráficos ( GPUs ) melhoraram ao longo do tempo. As GPUs não são capazes de executar operações versáteis, como CPUs de uso geral. Portanto, mesmo que haja tantos núcleos e poder de processamento paralelo, não faz sentido usá-los para quase todos os problemas, como a CPU.

No entanto, é possível executar alguns algoritmos de hash usados para senhas com bastante eficiência na GPU. Os hashes computáveis por segundo que você pode obter com as CPUs tradicionais cresceram tremendamente com as novas plataformas de GPU.

Para ter uma idéia, examine os números de hash por segundo de algoritmos de hash, como NTLM, MD5 e SHA1, na tabela abaixo. Por enquanto, basta saber que esses algoritmos são apenas um algoritmo de hash. Para criar esta tabela, usei um sistema de cluster composto por 25 GPUs AMD Radeon.

AlgoritmoHashings Per Second
NTLM350.000.000.000
MD5180.000.000.000
SHA163.000.000.000
SHA512Crypt364.000
Bcrypt71.000
Scrypt33.000

Como você pode ver, com esse sistema, você pode gerar hashes NTLM 350 bilhões de vezes por segundo. Isso significa que você pode tentar todas as combinações de uma senha de 8 caracteres em menos de 6 horas. Além disso, o hardware neste exemplo pertence a anos atrás. Imagine o poder de quebrar a senha de hoje.

O que os desenvolvedores de software devem fazer?

A maneira como os programadores devem seguir é bastante simples: eles devem preferir algoritmos que demorem mais para calcular valores de hash ao criptografar senhas. Os desenvolvedores precisam aprender não apenas sobre o desempenho do algoritmo que estão usando na CPU, mas também sobre o quão resiliente é contra o mundo da GPU.

Se os desenvolvedores estiverem trabalhando com uma estrutura de software que também atenda a processos de criptografia de senha, como Django, Ruby on Rails e Spring Security, eles devem verificar se as decisões corretas foram tomadas dentro da estrutura em termos de segurança.

Por exemplo, Disparar, uma das bibliotecas mais usadas para operações do usuário no Ruby on Rails, usa o Bcrypt como o algoritmo de hash padrão. Ele também permite que você use outro método como o algoritmo de hash. O algoritmo Bcrypt é confiável, pois ainda leva muito tempo para a GPU quebrar.

Em resumo, quanto mais tempo o cálculo do valor do hash demorar, mais seguro você estará.

Quantos caracteres sua senha deve ter?

Cada caractere extra usado aumentará geometricamente o número de tentativas e erros necessários para decifrar sua senha e tornar sua senha mais segura.

Vamos considerar essa situação através de dois cenários diferentes. Considere os valores na tabela acima para o algoritmo de hash NTLM e imagine que você tentará decifrar a senha. Imagine segmentar senhas de oito caracteres ou mais.

Número de caracteresLetras e números superiores / minúsculasLetras, números e símbolos especiais superiores / minúsculos
8menos de 1 minuto2 minutos
92 minutos2 horas
102 horas1 semana
116 dias2 anos
121 ano200 anos
13mais de 100 anosmais de 1000 anos

Ao examinar a tabela, você pode ver que o uso de uma senha mínima de 12 caracteres é seguro quando você usa todas as combinações de letras maiúsculas / minúsculas, números e símbolos especiais. Se você não estiver usando símbolos especiais, será necessário usar 13 caracteres como o comprimento da senha segura. Se você usasse o método de hash Bcrypt em vez de hash NTLM neste sistema, 8 caracteres seriam suficientes. No entanto, você não tem a oportunidade de saber com qual método de hash um sistema digitado pela Web mantém sua senha. É por isso que você deve considerar todas as possibilidades.

O principal problema para os desenvolvedores de software é que é quase impossível convencer os usuários a ter uma senha mínima de 12 caracteres. Hoje, é possível dizer que a taxa de uso de senha desse tamanho é baixa. Portanto, de acordo com o cenário de uso do sistema desenvolvido, será necessário encontrar um meio termo que será aceito pelos usuários para melhorar sua segurança de senha.

uma última sugestão para os desenvolvedores é verificar não apenas o comprimento mínimo, mas também o comprimento máximo das entradas que vêm pelos formulários que você apresentou ao usuário. Especialmente quando você permite o uso de um algoritmo de hash lento para calcular, como o Bcrypt, para fins de segurança, você pode encontrar alguns riscos se não controlar o comprimento máximo da senha inserida pelo usuário. Por exemplo, os atacantes podem realizar ataques tentando dezenas de senhas de 100 mil caracteres ao mesmo tempo com alguns pedidos especialmente preparados. Nesse caso, é altamente provável que seu sistema não responda a outros usuários.

Conselho para usuários finais

Faça com que seu comprimento de senha seja de no mínimo 12 caracteres e inclua combinações, números e símbolos de letras maiúsculas e minúsculas. Nunca esqueça que os sistemas que armazenam sua senha podem ser invadidos e suas informações podem ser abusadas. Você não pode saber quais algoritmos um sistema usa para criptografar sua senha, portanto, cabe a você tomar precauções e criar senhas fortes.

Compartilhe Este Post
By Goutyne
Follow:
Bem-vindo ao nosso site dedicado ao entretenimento e cultura! Aqui, você encontrará uma variedade de conteúdos envolventes sobre filmes, séries, resenhas de livros e ofertas imperdíveis.