Descrever criptografia e hash

Concluído

Uma maneira de mitigar ameaças comuns de segurança cibernética é criptografar dados confidenciais ou valiosos. A criptografia é o processo de tornar os dados ilegívels e inutilizáveis para visualizadores não autorizados. Para usar ou ler dados criptografados, ele deve ser descriptografado, o que requer o uso de uma chave secreta. Mesmo que um invasor intercepte ou obtenha acesso a dados criptografados, ele permanecerá inútil para eles sem a chave correspondente.

Tipos de criptografia

Há dois tipos principais de criptografia: simétrico e assimétrico.

Diagrama mostrando a criptografia simétrica usando uma única chave compartilhada para criptografia e descriptografia e criptografia assimétrica usando uma chave pública para criptografar e uma chave privada para descriptografar.

Criptografia simétrica

A criptografia simétrica usa a mesma chave para criptografar e descriptografar dados. Como apenas uma chave está envolvida, a criptografia simétrica é computacionalmente rápida e adequada para criptografar grandes quantidades de dados, por exemplo, arquivos armazenados em um disco rígido ou registros em um banco de dados.

O principal desafio com a criptografia simétrica é a distribuição de chave: ambas as partes precisam ter acesso à mesma chave secreta e compartilhar com segurança essa chave, especialmente em uma rede, pode ser difícil.

Criptografia assimétrica

A criptografia assimétrica usa um par de chaves: uma chave pública e uma chave privada. Essas chaves estão matematicamente relacionadas, mas você não pode derivar a chave privada da chave pública.

  • Os dados criptografados com a chave pública só podem ser descriptografados com a chave privada correspondente.
  • Os dados assinados com a chave privada podem ser verificados com a chave pública correspondente.

Como a chave pública pode ser compartilhada livremente, a criptografia assimétrica resolve o problema de distribuição de chave da criptografia simétrica. Qualquer pessoa pode criptografar dados usando sua chave pública, mas somente você , segurando a chave privada, pode descriptografá-los. A criptografia assimétrica é usada em muitos protocolos de segurança com os quais você interage diariamente, incluindo HTTPS, que protege sites e criptografia de email.

Assinaturas digitais

A criptografia assimétrica também permite assinaturas digitais, que verificam a autenticidade e a integridade dos dados. Quando um remetente assina dados com sua chave privada, qualquer pessoa com a chave pública do remetente pode verificar se:

  • Os dados vieram do remetente esperado (autenticidade).
  • Os dados não foram modificados depois que foram assinados (integridade).

As assinaturas digitais são usadas para verificar downloads de software, autenticar mensagens de email e proteger documentos eletrônicos e transações.

Criptografia por estado de dados

Criptografia para dados em repouso

Os dados em repouso são dados armazenados em um dispositivo físico, como um disco rígido do servidor, um banco de dados ou uma conta de armazenamento em nuvem. A criptografia de dados em repouso garante que os dados não sejam ilegível sem as chaves necessárias para descriptografá-los.

Se um invasor obtiver um disco rígido com os dados criptografados e não tiver acesso às chaves de criptografia, ele terá grande dificuldade para ler os dados. Essa proteção permanece mesmo se a mídia de armazenamento físico for roubada ou a conta de armazenamento for acessada sem autorização.

Criptografia para dados em trânsito

Os dados em trânsito são dados que se movem de um local para outro, como pela Internet, entre serviços ou por uma rede privada. Os dados em trânsito são vulneráveis à interceptação por qualquer pessoa que possa observar o tráfego de rede.

Criptografar dados em trânsito protege contra escuta e interceptação. HTTPS é o exemplo mais familiar: quando você acessa um site via HTTPS, a conexão é protegida usando o TLS (Transport Layer Security), que garante que os dados trocados entre seu navegador e o servidor não possam ser lidos por terceiros. O mesmo princípio se aplica à movimentação de dados entre os serviços de nuvem e às conexões VPN que protegem o tráfego em redes públicas.

Criptografia para dados em uso

Os dados em uso referem-se a dados sendo processados ativamente , por exemplo, dados carregados na memória (RAM) de um computador ou sendo trabalhados por uma CPU. A criptografia tradicional protege dados em repouso e em trânsito, mas os dados normalmente são descriptografados quando carregados na memória para processamento, criando uma janela de exposição potencial.

A criptografia de dados em uso é obtida por meio de tecnologias de computação confidenciais que criam ambientes de execução protegidos, às vezes chamados de enclaves seguros, em que os dados podem ser processados sem serem expostos nem mesmo ao sistema operacional ou ao hipervisor. Isso é especialmente importante em ambientes multilocatários em que clientes diferentes podem compartilhar o mesmo hardware físico.

Gerenciamento de chaves criptográficas

A criptografia é tão segura quanto as chaves usadas para criptografar dados. Uma chave de criptografia roubada ou exposta torna os dados criptografados acessíveis aos invasores, derrotando a finalidade da criptografia. O gerenciamento de chaves aborda como as chaves de criptografia são geradas, armazenadas, protegidas, giradas e eventualmente desativadas.

As práticas recomendadas de gerenciamento de chaves incluem:

  • Armazenando chaves separadamente dos dados protegidos: se as chaves forem armazenadas juntamente com dados criptografados, um invasor que obtém acesso a um tem ambos automaticamente.
  • Usando hardware dedicado para armazenamento de chaves: os HSMs (módulos de segurança de hardware) são dispositivos especializados e resistentes a adulterações projetados especificamente para armazenar e proteger chaves criptográficas.
  • Girar chaves regularmente: alterar chaves de criptografia periodicamente limita a quantidade de dados expostos se uma chave for comprometida.
  • Controlando o acesso às chaves com força: somente usuários e sistemas autorizados devem ser capazes de acessar chaves de descriptografia, impostas por meio de autenticação forte e princípios de acesso de privilégios mínimos.

Os serviços de gerenciamento de chaves de nuvem, como o Azure Key Vault, fornecem um serviço centralizado e gerenciado para armazenar e gerenciar chaves de criptografia, certificados e segredos. Esses serviços reduzem o risco de exposição de chaves, dão suporte a fluxos de trabalho de rotação de chaves e integram-se a outros serviços de nuvem para fornecer criptografia sem expor o material de chave ao código do aplicativo ou aos administradores.

Hash

O hash usa um algoritmo para converter qualquer entrada em uma cadeia de caracteres de comprimento fixo chamada hash (ou digest). Ao contrário da criptografia, o hash é um processo unidirecional: você não pode reverter um hash para recuperar a entrada original. Cada vez que a mesma entrada é submetida a hash usando o mesmo algoritmo, o mesmo valor de hash é produzido, fazendo do hash uma impressão digital única e confiável para os dados.

O hash é diferente da criptografia, pois ele não usa chaves e o valor de hash não pode ser revertido de volta para os dados originais. Isso torna o hash útil para cenários em que você precisa verificar dados sem precisar armazenar ou ler o valor original.

Diagrama mostrando o texto original passando por um algoritmo de hash para produzir um valor de hash de comprimento fixo.

Como a técnica de hash protege senhas

O hash é amplamente usado para proteger senhas armazenadas. Em vez de armazenar a senha real de um usuário, um sistema armazena apenas o hash dessa senha. Quando um usuário faz login, o sistema aplica um hashing na senha que ele insere e a compara com o hash armazenado. Se os hashes corresponderem, a autenticação terá êxito sem que o sistema armazene ou transmite a senha real em texto sem formatação.

Isso é mais seguro do que armazenar senhas de texto sem formatação porque, mesmo que o banco de dados de senha seja roubado, o invasor obtém apenas hashes. No entanto, o hash básico tem uma vulnerabilidade conhecida: como as funções de hash são determinísticas, os invasores podem pré-computar hashes para milhões de senhas comuns e pesquisá-las em tabelas, chamadas tabelas arco-íris ou ataques de dicionário, para encontrar correspondências.

Distribuir

Para se defender contra ataques computados previamente, as senhas normalmente são distribuídas antes do hashing. Um sal é um valor único gerado aleatoriamente para cada senha individual e adicionado a ela antes de fazer o hash. Como cada senha recebe um "salt" diferente, dois usuários com a mesma senha produzem hashes diferentes no banco de dados. Isso torna as tabelas de arco-íris pré-computadas ineficazes, pois o invasor precisaria de uma tabela de pesquisa separada para cada valor de sal possível.

A distribuição é uma prática padrão recomendada para o armazenamento seguro de senhas e é essencial para qualquer sistema de autenticação devidamente implementado.