Pular para o conteúdo

Criptografia AES-256 explicada em palavras simples

Quase todo app diz AES-256. A pergunta que importa é onde fica a chave.

3 min de leituraÚltima revisão

Em resumo

O AES é o padrão de criptografia publicado pelo NIST, e o AES-256 é a versão com chaves de 256 bits: possibilidades demais para testar todas. O GCM é um modo de usar o AES que também detecta adulterações. Como o algoritmo é muito forte, a segurança real de um app depende da gestão das chaves: quem tem a chave, onde ela fica guardada e o que a desbloqueia.

O essencial

  • AES-256: um padrão do NIST, blocos de 128 bits, chaves de 256 bits.
  • O GCM acrescenta uma verificação de integridade: dados alterados não se descriptografam.
  • Uma cifra forte com uma chave mal guardada não protege nada.

O que é o AES

O AES, Advanced Encryption Standard, é uma cifra de bloco escolhida pelo Instituto Nacional de Padrões e Tecnologia dos Estados Unidos (NIST) em 2000 e especificada na FIPS 197. Ele transforma os dados em blocos de 128 bits usando uma chave secreta. O padrão define três versões (AES-128, AES-192 e AES-256), e o número é o tamanho da chave em bits.

Ele está em todo lugar, inclusive no seu iPhone: definir um código ativa a proteção de dados, que criptografa os dados do iPhone com AES de 256 bits.

Por que 256 bits é mais que suficiente

Uma chave de 256 bits pode ter 2²⁵⁶ valores diferentes. Testar todos não é uma questão de computadores mais rápidos: está muito além de qualquer coisa que dê para fazer de fato. É por isso que os ataques reais a sistemas bem construídos contornam a cifra em vez de atravessá-la: vão atrás da chave, da senha que a desbloqueia ou dos dados enquanto estão descriptografados.

O que o GCM acrescenta

Uma cifra sozinha esconde os dados, mas não consegue dizer se alguém os alterou. O GCM, Galois/Counter Mode, especificado pelo NIST na SP 800-38D, é uma criptografia autenticada: junto com os dados criptografados, ele produz uma etiqueta, e, se os dados ou a etiqueta tiverem sido alterados, a descriptografia falha em vez de devolver um conteúdo corrompido ou manipulado.

O GCM tem uma regra rígida: o valor usado para iniciar cada criptografia, chamado nonce ou IV, nunca pode se repetir com a mesma chave. Implementações cuidadosas geram um novo a cada vez.

A gestão das chaves é a pergunta de verdade

“AES-256” diz que a fechadura é forte. Não diz nada sobre onde a chave fica guardada. Estas perguntas dizem muito mais sobre um app:

  • Quem tem a chave? Se a empresa consegue redefinir o seu acesso por e-mail, ela (ou quem a invadir) consegue chegar aos seus dados.
  • Onde ela fica guardada? Uma chave salva ao lado dos dados, ou derivada de um PIN curto, vira o ponto fraco.
  • O que a desbloqueia? Uma chave protegida pelo hardware de segurança do aparelho e por um segredo que só você sabe é muito mais difícil de atacar.
  • E se você esquecer o segredo? Uma resposta honesta envolve uma chave de recuperação guardada por você, não um chamado no suporte.

Cada arquivo

a própria chave AES-256-GCM

Chave do cofre

envolve cada chave de arquivo

Secure Enclave

aberto pelo seu padrão

Cada arquivo tem a própria chave. A chave do cofre envolve todas elas e só pode ser destravada dentro do Secure Enclave, com o seu padrão.

Como o Latent aplica isso

O Latent criptografa cada arquivo com uma chave AES-256-GCM própria. Essas chaves são envolvidas por uma chave do cofre, que por sua vez é protegida por uma chave no Secure Enclave do iPhone e desbloqueada pelo seu padrão ou senha. As chaves são apagadas da memória quando o cofre se bloqueia. Ninguém mais tem uma cópia: a frase de recuperação de nove palavras é a única reserva, e só você a tem.

Fontes

  1. NIST — FIPS 197, Advanced Encryption Standard (AES)
  2. NIST — SP 800-38D, Galois/Counter Mode (GCM) and GMAC
  3. Apple — Set a passcode on iPhone

O que é seu continua seu.

Livre para experimentar, livre para sair.