Saltar para o conteúdoHisnLabs
← Criptografia em que pode confiar

Lição 1 de 4 · 9 min

Encriptação simétrica, encriptação assimétrica e hashing

Três ferramentas criptográficas diferentes garantem três coisas diferentes. Confundi-las é a fonte mais comum de falsa confiança.

As pessoas dizem muitas vezes "está encriptado" como se isso resolvesse uma questão de segurança. Não resolve, porque a encriptação não é uma coisa só. Esta lição aborda os três blocos de construção por trás de quase todas as afirmações de proteção digital: encriptação simétrica, encriptação assimétrica e hashing. Cada uma garante algo diferente, e saber qual está em jogo diz-lhe o que está realmente a ser protegido.

Encriptação simétrica: uma chave partilhada

O Centro de Aprendizagem da Cloudflare descreve a encriptação simétrica de forma simples: "há apenas uma chave, e todas as partes que comunicam usam a mesma chave (secreta) tanto para encriptar como para desencriptar." O Advanced Encryption Standard (AES) é hoje o exemplo padrão, tendo substituído o mais antigo Data Encryption Standard (DES) depois de o comprimento curto da chave do DES o ter tornado quebrável por força bruta. A encriptação simétrica é rápida e é o que de facto embaralha a maior parte dos seus dados, seja um ficheiro em disco ou o corpo de uma página web carregada por HTTPS. O seu problema central é a distribuição: ambos os lados precisam da mesma chave secreta, e fazer chegar essa chave à outra parte sem que mais ninguém a veja é exatamente o problema que a encriptação assimétrica resolve.

Encriptação assimétrica: duas chaves que funcionam como um par

Na encriptação assimétrica, ou de chave pública, há duas chaves ligadas matematicamente: "uma chave é usada para encriptar, e uma chave diferente é usada para desencriptar", segundo a Cloudflare. A chave de encriptação pode ser publicada para qualquer pessoa — daí "chave pública" — enquanto a chave de desencriptação correspondente permanece privada. Os dados fechados com a chave pública só podem ser abertos com a chave privada. É isto que permite que duas pessoas que nunca se conheceram cheguem a acordo sobre um segredo partilhado através de uma rede aberta, o que é exatamente o que acontece no início de cada ligação HTTPS (a próxima lição aborda este cumprimento em detalhe). O RSA e a criptografia de curva elítica são hoje os algoritmos comuns por trás disto.

Hashing: uma impressão digital, não uma fechadura

Uma função de hash não é nenhuma das anteriores: não fecha nada, e não há chave para a abrir. O NIST define-a como uma função que "transforma uma cadeia de bits de comprimento arbitrário numa cadeia de bits de comprimento fixo" — em termos simples, transforma qualquer ficheiro ou mensagem numa impressão digital curta e de tamanho fixo. O NIST especifica as propriedades que uma função de hash aprovada tem de ter: tem de ser computacionalmente inviável encontrar uma entrada que produza uma determinada saída (unidirecional), e inviável encontrar duas entradas diferentes que produzam a mesma saída (resistência a colisões). É por isso que o hashing verifica a integridade — este ficheiro mudou? — e protege as palavras-passe guardadas: um serviço pode verificar uma palavra-passe contra o seu hash guardado sem alguma vez manter a palavra-passe real. Funções de hash mais antigas, como o MD5 e o SHA-1, já não são consideradas seguras contra um atacante determinado, e é por isso que os sistemas modernos usam antes as famílias SHA-2 ou SHA-3.

O que cada uma realmente garante

FerramentaO que garanteO que não garante
Encriptação simétricaConfidencialidade, se a chave partilhada se mantiver secretaUma forma segura de trocar essa chave, à partida
Encriptação assimétricaUma forma de trocar um segredo, e de verificar a identidade (ver a próxima lição sobre assinaturas)Velocidade; é muito mais lenta do que a encriptação simétrica para grandes quantidades de dados
HashingIntegridade: prova de que os dados não foram alterados, e uma forma de verificar segredos sem os guardarConfidencialidade; um hash não foi concebido para ser revertido, mas também não foi concebido para esconder o tamanho ou a presença de dados

Como se combinam na prática

Quase nada usa apenas uma destas. Uma ligação segura típica usa a encriptação assimétrica brevemente, para chegar a acordo sobre um segredo partilhado, e depois muda para a encriptação simétrica rápida para os dados propriamente ditos, enquanto o hashing corre ao longo de todo o processo para garantir que nada do que foi enviado foi alterado pelo caminho. Reconhecer estes três papéis é o que faz o resto deste curso — assinaturas, certificados, TLS e encriptação de ponta a ponta — fazer sentido como combinações do mesmo pequeno conjunto de ferramentas, em vez de magia separada.

A reter

  • A encriptação simétrica usa uma chave partilhada tanto para encriptar como para desencriptar; é rápida mas exige uma forma de partilhar a chave em segurança.
  • A encriptação assimétrica usa uma chave pública e uma chave privada como par, resolvendo o problema de distribuição de chaves que a encriptação simétrica tem.
  • O hashing produz uma impressão digital de tamanho fixo dos dados; protege a integridade e os segredos guardados, não a confidencialidade — não há chave para abrir um hash.
  • Os sistemas reais combinam as três: encriptação assimétrica para acordar um segredo, encriptação simétrica pela velocidade, hashing para detetar alterações.
  • Algoritmos mais antigos (DES, MD5, SHA-1) têm fraquezas conhecidas; o AES e as famílias SHA-2/SHA-3 são as normas atuais.

Teste-se

  1. 1. Qual é a característica que define a encriptação simétrica?

    • Usa uma chave pública e uma chave privada
    • Usa uma única chave secreta partilhada tanto para encriptar como para desencriptar — Certo.
    • Não pode ser usada para grandes quantidades de dados
    • Nunca exige nenhuma chave

    A encriptação simétrica baseia-se numa única chave partilhada que ambas as partes já têm; o desafio é distribuir essa chave em segurança.

  2. 2. Que problema resolve a encriptação assimétrica que a encriptação simétrica não consegue resolver sozinha?

    • Tornar a encriptação mais rápida
    • Permitir que duas partes cheguem a acordo sobre um segredo partilhado sem se terem conhecido antes — Certo.
    • Tornar as palavras-passe mais fáceis de memorizar
    • Impedir que os dados sejam alguma vez eliminados

    A criptografia de chave pública permite que uma chave pública seja partilhada abertamente enquanto só a chave privada correspondente consegue desencriptar, possibilitando uma troca de chaves segura numa rede aberta.

  3. 3. Porque é que uma função de hash não pode ser usada para manter uma mensagem em segredo?

    • Os hashes são sempre demasiado curtos para conter uma mensagem
    • Um hash é unidirecional por conceção; não há chave para o reverter aos dados originais — Certo.
    • As funções de hash são ilegais para uso em encriptação
    • Os hashes só funcionam em imagens, não em texto

    As funções de hash são construídas de forma a que recuperar a entrada original a partir da saída seja computacionalmente inviável — essa propriedade (unidirecionalidade) torna-as úteis para verificações de integridade e armazenamento de palavras-passe, não para confidencialidade.

  4. 4. Que par de algoritmos é considerado desatualizado devido a fraquezas conhecidas?

    • AES e RSA
    • DES e MD5 — Certo.
    • SHA-2 e criptografia de curva elítica
    • TLS e HTTPS

    O comprimento curto da chave do DES e as fraquezas de colisão do MD5 significam que os sistemas modernos usam antes o AES e as famílias SHA-2/SHA-3.

Praticar com o FireAI

Ponha esta lição em prática no seu próprio Mac.

Fontes

Ponha em prática no seu Mac

Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.

Transferir para Mac Docs