Segurança de senha e hash do WordPress

Publicados: 2017-11-10

As senhas são uma forma de autenticação vinculada a usuários ou processos. Eles são usados ​​para validar a identidade de um usuário ou processo em relação a um sistema ou recursos de computador. Na web moderna de ultraconectividade de hoje, de dispositivos IoT e dispositivos móveis, a segurança de senha é um tópico mais sério do que nunca. Vazamentos de banco de dados de senha acontecem o tempo todo, com grandes empresas como LinkedIn, Tumblr e Yahoo sendo afetadas. Bob Diachenko, do MacKeeper Security, escreveu no início deste ano sobre uma lista gigante de 560 milhões de e-mails/senhas que foi encontrada flutuando livremente pela Internet!

Então, neste artigo, falaremos sobre três coisas relacionadas a senhas e WordPress:

  1. Geração e gerenciamento de senha forte.
  2. Como o WordPress faz hash de senha.
  3. Implementando seu próprio hash de senha.

Senhas fracas e fortes

A força da senha, em termos de complexidade de força bruta, é um tópico de muito debate, e a noção de quão forte é uma senha foi amplamente redefinida ao longo das décadas, à medida que recursos de computação mais poderosos se tornam prontamente disponíveis para o indivíduo. O especialista em segurança de renome mundial Bruce Schneier escreveu um excelente post discutindo a segurança de senhas e como escolher senhas seguras.

Ao falar sobre a força da senha, é preciso incluir o contexto e o nível de ameaça:

É diferente e muito mais difícil quando o invasor tenta adivinhar sua senha do WordPress do que se ele ou ela comprometeu sua segurança e tem acesso a toda a lista de senhas com hash.

Na primeira situação, o invasor será rapidamente bloqueado pelo serviço de autenticação devido a muitas tentativas de login em um curto período de tempo. Normalmente, os invasores descobrem as senhas por outros meios, diferentes da força bruta, como phishing, malware e outros. No entanto, se o alvo escolheu uma senha usando informações relativamente públicas, como data, nome/sobrenome, etc., fica mais fácil para o invasor adivinhá-la.

Na segunda situação, se o invasor tiver acesso ao arquivo de senhas, pode ser apenas uma questão de tempo, principalmente se a função de hash usada for MD5. Foi quebrado e provado inseguro há muito tempo. O invasor pode usar hardware moderno (como placas de GPU) combinado com tabelas “arco-íris” pré-computadas para descriptografar todo o arquivo de senha em muito pouco tempo. Além disso, em alguns casos extremos, as senhas de todos os usuários são armazenadas em 'texto simples' no banco de dados. Em ambos os casos, a “força” da sua senha é anulada.

Como gerar e armazenar senhas fortes

É melhor deixar a geração e o gerenciamento de senhas para um computador em que você confia, em vez de tentar pensar em senhas fortes regularmente. Você é humano e inevitavelmente errará e escolherá algo que um computador considera uma escolha fraca.

Usar um gerenciador de senhas para gerar e armazenar senhas para cada serviço é eficiente e com a menor quantidade de ameaças. Embora a ideia de manter todas as suas senhas em um só lugar possa ser enervante, na verdade é uma vantagem: sabendo que todas as suas senhas estão em um só lugar, você pode protegê-las mais facilmente. Chega de usar pedaços de papel aleatórios ou permutações de senhas fracas que você pode lembrar facilmente, mas que podem ser facilmente adivinhadas. Além disso, um gerenciador de senhas pode ajudá-lo a gerar senhas fortes sem problemas.

A escolha mais popular (e cara) é o 1Password, mas você pode tentar usar o fornecido em seu sistema operacional (como o iCloud KeyChain da Apple) ou usar uma solução multiplataforma de código aberto, como o KeePass.

Hospede seu site com a Pressidium

GARANTIA DE DEVOLUÇÃO DO DINHEIRO DE 60 DIAS

VEJA NOSSOS PLANOS

Hash de senha do WordPress

O hash de senha é uma técnica pela qual a senha de texto simples é passada para uma função de hash e convertida em um valor alfanumérico longo. O WordPress usa isso para armazená-los no banco de dados, evitando que olhos indiscretos leiam as senhas do WordPress diretamente. Quando você faz login no WordPress e envia sua senha, ele calcula o hash e o compara com o do banco de dados. Se for o mesmo, você terá acesso, caso contrário, será negado. Esse método funciona porque uma string de texto específica (uma senha do WordPress neste caso) sempre gerará o mesmo valor de hash. Como um valor de hash não pode ser convertido de volta para o texto original, o WordPress só pode saber que você digitou o valor correto, se o valor de hash da senha que você forneceu e o que está armazenado no banco de dados forem idênticos.

Por padrão, a função wp_hash_password() do WordPress usa um algoritmo MD5 de 8 passagens para gerar hashes. No entanto , o MD5 foi quebrado com sucesso usando uma combinação de hardware moderno e uma técnica chamada rainbow tables que contém uma enorme quantidade de valores pré-computados. Isso ajuda um invasor a tentar bilhões de combinações por segundo, em apenas uma GPU moderna.

Implemente seu próprio hash de senha do WordPress

Você pode (e deve) selecionar uma implementação diferente, como Bcrypt, passando a tupla (16, FALSE) para o objeto PasswordHash na instanciação. Ambas as funções wp_hash_password() e wp_set_password() são conectáveis, então você pode fornecer sua própria implementação. Eles podem ser encontrados em wp-includes/pluggable.php.

Roots.io (as pessoas por trás do sistema WordPress padrão Trellis, Bedrock e Sage) também lançou um plugin WordPress que implementa a funcionalidade bcrypt para as funções de hash padrão do WordPress.

Conclusão

Para garantir que você use senhas fortes e as altere com frequência, é melhor usar um gerenciador de senhas. Isso pode ajudar a manter todas as suas senhas organizadas em um só lugar e lembrá-lo quando for a hora de alterá-las. Quando se trata de hash de senha, é melhor usar um algoritmo criptograficamente seguro como SHA-2 ou Bcrypt em vez de voltar ao padrão do WordPress. É melhor evitar rolar sua própria função de hash, pois um erro pode introduzir problemas de segurança.