Criptografia e Hash: Conceitos Essenciais de Segurança
Classificado em Computação
Escrito em em português com um tamanho de 4 KB
Criptografia Simétrica
- Algoritmos de chaves simétricas utilizam somente uma chave secreta.
- Chaves simétricas possuem comprimento, em geral, de 56 a 256 bits.
- A chave secreta é escolhida aleatoriamente.
- Quanto maior for a aleatoriedade da chave, maior será a sua segurança.
Desvantagens da Criptografia Simétrica:
- Todos os pontos em comunicação precisam conhecer a chave secreta.
- Surge o problema do gerenciamento e distribuição das chaves.
Exemplos de Algoritmos Simétricos:
- DES (Data Encryption Standard): Proteção de arquivos de usuários e senhas.
- 3DES (Triple DES): Utilizado em sistemas de pagamento eletrônico.
- AES (Advanced Encryption Standard): Usado em sistemas de arquivos criptografados, como NTFS.
- RC4 (Rivest Cipher 4): Encontrado no WEP.
- IDEA (International Data Encryption Algorithm): Presente no PGP.
Criptografia Assimétrica (Chave Pública)
- Usa um par de chaves: uma para criptografia (pública) e outra para descriptografia (privada).
- Tamanho usual da chave varia de 512 a 4096 bits.
- Emissor e receptor precisam ter, cada um, uma chave do par (não a mesma).
- Os algoritmos são relativamente mais lentos, pois são baseados em algoritmos computacionais mais complexos.
Exemplos de Algoritmos Assimétricos:
- RSA
- ElGamal
- Criptografia de Curva Elíptica
- Diffie-Hellman
Integridade de Dados
A integridade de dados refere-se à garantia de que um dado (qualquer tipo de arquivo ou fluxo de dados) não foi alterado. Isso é alcançado produzindo um resultado hash único. Uma das maneiras de verificar se um arquivo baixado é idêntico ao disponibilizado é conhecer o hash do arquivo original e compará-lo com o hash do arquivo baixado.
Segurança de Senhas
Para a segurança de senhas, é comum armazenar os resultados hash das senhas em vez das próprias senhas. Quando um usuário digita sua senha, o sistema calcula o hash da senha fornecida e o compara com o valor hash armazenado, tornando o processo rápido e seguro.
Salting
O salting é uma técnica que adiciona um valor aleatório (o "sal") à senha antes de calcular o hash. Isso evita que um atacante use ataques de dicionário, lookup tables e rainbow tables para quebrar o hash. Se dois usuários tiverem a mesma senha, o salting garante que eles terão hashes de senha diferentes, tornando o processo mais seguro. Um banco de dados armazena tanto o hash quanto o salting.
Assinaturas Digitais
Para obter uma assinatura digital válida, são necessárias duas etapas:
- Criação do Hash: Primeiro, cria-se um hash do documento. Este hash identifica única e inequivocamente o documento do qual ele se originou.
- Assinatura Criptográfica: Em seguida, o assinante submete o hash a um método criptográfico usando sua chave privada. Como o hash criptografado só pode ser recuperado usando a chave pública do assinante, isso comprova a identidade da pessoa que assinou – é a chamada assinatura digital. E como o hash recuperado identifica o documento, a assinatura está associada unicamente a este documento.
HMACs (Hash-based Message Authentication Codes)
HMACs fortalecem os algoritmos de hash usando uma chave secreta adicional como entrada para a função hash. O uso do HMAC garante, além da integridade, também a autenticação.
Aplicações: Usado em VPNs (autentica a origem do pacote e garante a integridade dos dados) e equipamentos de rede.