Criptografia AES-256 explicada em palavras simples
Quase todo app diz AES-256. A pergunta que importa é onde fica a chave.
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
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.