FILE G2 / CRIPTOGRAFIA EXPLICADA
AES-256-GCM: O Padrão de Criptografia Autenticada que Protege Seus Arquivos no iPhone
AES-256-GCM é o algoritmo de criptografia autenticada que protege conexões TLS 1.3, túneis WireGuard, mensagens do Signal e os arquivos criptografados do seu iPhone. Ele combina o Advanced Encryption Standard com uma chave de 256 bits no Modo Galois/Contador, fornecendo confidencialidade e verificação de integridade em uma única passada. Este artigo explica como o AES-256-GCM funciona, onde é usado e como o AppVault o implementa com nonces por arquivo e encapsulamento de chaves no Secure Enclave.
ATUALIZADO · 2026-05-16 · REVISADO PELA APPVAULT
TL;DR
AES-256-GCM é um algoritmo de criptografia autenticada que criptografa dados e verifica sua integridade usando uma única chave e um nonce único por mensagem. É definido por padrões NIST, acelerado por hardware em iPhones modernos e usado pelo TLS 1.3, WireGuard e Signal. O AppVault aplica AES-256-GCM com um nonce de 96 bits único por arquivo, uma chave derivada via PBKDF2 e encapsulada pelo Secure Enclave, sem nenhuma chamada de rede.
AES-256-GCM não é um único algoritmo. É a combinação de dois padrões: o Advanced Encryption Standard (AES) com uma chave de 256 bits e o Modo Galois/Contador (GCM) de operação. Juntos, eles formam um esquema de criptografia autenticada que fornece confidencialidade e verificação de integridade em uma única passada. É a cifra padrão no TLS 1.3, WireGuard, Signal e na criptografia em nível de arquivo do iOS. Entender como funciona é importante porque a maioria das falhas de segurança no AES-256-GCM vem de erros de implementação, não de quebra da cifra.
Para uma introdução não técnica à cifra de bloco subjacente — o que significa “chave de 256 bits”, por que o espaço de chaves é impossível de quebrar por força bruta, como o AES foi selecionado pelo NIST em 2001 — leia primeiro a visão geral em linguagem simples O que é Criptografia AES-256?. Este artigo se aprofunda especificamente no modo GCM.
A Cifra de Bloco: AES-256
AES é uma cifra de bloco simétrica padronizada pelo NIST no FIPS 197. Opera em blocos de 128 bits e suporta tamanhos de chave de 128, 192 e 256 bits. AES-256 usa uma chave de 256 bits e realiza 14 rodadas de operações de substituição-permutação. Cada rodada aplica quatro transformações: SubBytes (substituição não linear via S-box), ShiftRows (transposição de bytes), MixColumns (multiplicação de matrizes em GF(2^8)) e AddRoundKey (XOR com a chave da rodada derivada da chave mestre).
A margem de segurança do AES-256 é alta. Os melhores ataques criptanalíticos conhecidos são em variantes de rodadas reduzidas (por exemplo, AES-128 de 7 rodadas) ou em modelos de chave relacionada que não se aplicam ao uso real. Para o AES-256 completo de 14 rodadas, não existe ataque prático que reduza o tamanho efetivo da chave abaixo de 256 bits. É por isso que o AES-256 é aprovado para dados de nível “Top Secret” pela Agência de Segurança Nacional dos EUA (NSA).
AES-256 é acelerado por hardware em praticamente todas as CPUs modernas. Processadores Intel e AMD incluem instruções AES-NI. O Apple Silicon (chips das séries M e A) inclui Extensões Criptográficas ARM que aceleram operações AES, SHA e GCM. Em um iPhone, a criptografia AES-256 de um arquivo de 10 MB é concluída em milissegundos.
O Modo: Galois/Counter Mode (GCM)
Uma cifra de bloco criptografa apenas um bloco por vez. Para criptografar mensagens maiores que 128 bits, é necessário um modo de operação. GCM, especificado no NIST SP 800-38D, é um modo de criptografia autenticada que combina uma variante do modo contador para criptografia com uma função hash universal (GHASH) para autenticação. A mesma construção é registrada como um primitivo AEAD no IETF RFC 5116.
GCM funciona em duas fases. Primeiro, o texto simples é criptografado usando AES no modo contador: um contador de 128 bits é incrementado para cada bloco, criptografado com AES e aplicado com XOR ao texto simples para produzir o texto cifrado. O valor inicial do contador é derivado de um nonce (número usado uma vez) mais um contador começando em 1. Em segundo lugar, o texto cifrado e os dados associados (metadados que devem ser autenticados mas não criptografados) são alimentados no GHASH, uma avaliação polinomial em GF(2^128). A saída do GHASH é então criptografada com AES para produzir a tag de autenticação.
O resultado é uma única saída: texto cifrado mais uma tag de autenticação de 128 bits (tamanho padrão, pode ser truncada). O receptor descriptografa recalculando a tag e comparando-a. Se a tag corresponder, os dados são autênticos. Se não corresponder, o receptor deve rejeitar os dados.
GCM é paralelizável. O modo contador permite criptografar vários blocos simultaneamente, razão pela qual a aceleração por hardware pode atingir alta taxa de transferência. Em um iPhone com Extensões Criptográficas ARM, o AES-256-GCM pode criptografar a vários gigabits por segundo.
Disciplina do Nonce: O Ponto de Falha Mais Comum
AES-256-GCM exige um nonce. O padrão especifica um nonce de 96 bits. O nonce deve ser único para cada criptografia realizada com a mesma chave. Reutilizar um nonce com a mesma chave permite que um invasor recupere a chave de autenticação GHASH (H) e então forje mensagens arbitrárias.
A matemática é implacável: se dois textos cifrados compartilharem o mesmo nonce e chave, o XOR das duas saídas do GHASH revela o XOR dos textos simples. A partir daí, um invasor pode recuperar H e produzir tags válidas para qualquer texto cifrado. Isso não é um ataque teórico. Já foi explorado na prática, mais famosamente no artigo de 2015 “Nonce-Disrespecting Adversaries”, que encontrou vulnerabilidades de reutilização de nonce em várias implementações de TLS.
A mitigação correta é nunca reutilizar um nonce sob a mesma chave. Na prática, isso significa gerar um nonce aleatório (96 bits oferecem 2^96 possibilidades, mas o limite de aniversário significa que você não deve criptografar mais de 2^32 mensagens com nonces aleatórios para manter a probabilidade de colisão desprezível) ou usar um contador determinístico que seja garantido único por mensagem.
O AppVault usa um nonce de 96 bits único por arquivo. O nonce é gerado usando um gerador de números aleatórios criptograficamente seguro (SecRandomCopyBytes no iOS) e armazenado junto com o texto cifrado. Como cada arquivo tem seu próprio nonce e a chave é derivada por instalação e encapsulada pelo Secure Enclave, o risco de reutilização de nonce é eliminado.
Aceleração por Hardware: Por Que Isso Importa
AES-256-GCM é computacionalmente intensivo em software. A multiplicação GHASH em GF(2^128) é particularmente cara sem suporte de hardware. CPUs modernas incluem instruções dedicadas que executam rodadas AES e operações GHASH em um único ciclo.
Em um iPhone, as Extensões Criptográficas ARM incluem:
- Instruções AES (AESE, AESD, AESMC, AESIMC) que executam uma rodada de criptografia ou descriptografia AES.
- Instruções GHASH (PMULL/PMULL2 para multiplicação polinomial) que aceleram o cálculo do GHASH.
O Secure Enclave no Apple Silicon inclui um motor AES dedicado que pode criptografar dados sem expor a chave à CPU principal. O AppVault usa o Secure Enclave para encapsular a chave de criptografia do arquivo, garantindo que, mesmo que a CPU principal seja comprometida, a chave permaneça protegida.
Sem aceleração por hardware, o AES-256-GCM seria muito lento para aplicações em tempo real, como handshakes TLS ou streaming de vídeo. Com ela, a sobrecarga é insignificante.
Onde o AES-256-GCM É Usado
AES-256-GCM é o conjunto de cifras padrão no TLS 1.3 (TLS_AES_256_GCM_SHA384). Toda conexão HTTPS que usa TLS 1.3 depende dele. WireGuard, o protocolo VPN moderno, usa AES-256-GCM (ou ChaCha20-Poly1305 em dispositivos sem AES por hardware). Signal, o aplicativo de mensagens criptografadas, usa AES-256-GCM para criptografia de arquivos de mídia. O iOS usa AES-256-GCM para criptografia em nível de arquivo (Data Protection).
A ubiquidade do AES-256-GCM não é acidental. É um padrão NIST, acelerado por hardware e bem compreendido pela comunidade criptográfica. É o padrão seguro para qualquer aplicação que precise de criptografia autenticada.
Comparação com Outros Modos de Criptografia Autenticada
AES-256-GCM não é o único modo AEAD. ChaCha20-Poly1305 é uma alternativa popular, especialmente em dispositivos sem aceleração AES por hardware. ChaCha20 é uma cifra de fluxo, não de bloco, e Poly1305 é um hash polinomial semelhante ao GHASH. ChaCha20-Poly1305 é mais rápido em software que o AES-256-GCM em software, mas em hardware com AES-NI, o AES-256-GCM é mais rápido.
AES-256-CCM (Counter with CBC-MAC) é outro modo AEAD padronizado pelo NIST, mas não é paralelizável e é mais lento que o GCM. CCM é usado em alguns protocolos IoT e sem fio, mas o TLS e a maioria das aplicações modernas preferem GCM.
AES-256-GCM-SIV é uma variante resistente ao uso indevido de nonce que degrada graciosamente se um nonce for reutilizado (revela apenas que duas mensagens são iguais, não o texto simples). É mais lento que o GCM padrão e menos amplamente implantado.
Para a maioria das aplicações, AES-256-GCM é a escolha certa. É rápido, padrão e seguro quando implementado corretamente.
Como o AppVault Implementa AES-256-GCM
O AppVault usa AES-256-GCM para cada arquivo armazenado no cofre. A implementação segue estas etapas:
- Derivação de chave. O bloqueio de padrão do usuário é transformado em uma chave mestre de 256 bits usando PBKDF2-SHA256 com 600.000 iterações e um salt de 128 bits por instalação. Essa chave nunca é usada diretamente para criptografia.
- Encapsulamento no Secure Enclave. A chave mestre é enviada ao Secure Enclave, que gera uma nova chave (a “chave de encapsulamento”) que nunca sai do chip. O Enclave criptografa a chave mestre com a chave de encapsulamento e retorna a chave encapsulada para a CPU principal. A chave mestre em texto simples é então zerada da memória.
- Criptografia do arquivo. Para cada arquivo, um novo nonce de 96 bits é gerado usando SecRandomCopyBytes. A chave encapsulada é desencapsulada dentro do Secure Enclave e usada para criptografar o arquivo com AES-256-GCM. O texto cifrado e o nonce são gravados no armazenamento. A tag de autenticação é anexada ao texto cifrado.
- Criptografia do catálogo. Até a lista de arquivos (nomes, datas, tamanhos) é criptografada com AES-256-GCM sob uma chave separada derivada da mesma chave mestre. Isso significa que um invasor com acesso bruto ao dispositivo não pode determinar quantos arquivos existem.
O resultado é que dois arquivos nunca produzem o mesmo texto cifrado, mesmo que contenham texto simples idêntico. O Secure Enclave garante que a chave de criptografia nunca seja exposta ao sistema operacional principal. E como o AppVault não faz nenhuma chamada de rede, não há servidor que possa ser comprometido para vazar chaves ou textos cifrados.
Limitações do AES-256-GCM
AES-256-GCM não protege contra tudo. É vulnerável a ataques de canal lateral se a implementação vazar tempo ou consumo de energia. O cálculo GHASH é particularmente sensível a ataques de tempo; implementações de tempo constante são necessárias. A biblioteca CoreCrypto da Apple fornece uma implementação de AES-256-GCM de tempo constante, e o AppVault a utiliza.
AES-256-GCM não oferece sigilo de encaminhamento (forward secrecy). Se a chave for comprometida, todos os textos cifrados passados podem ser descriptografados. O sigilo de encaminhamento é alcançado em nível de protocolo (por exemplo, TLS 1.3 usa troca de chaves Diffie-Hellman efêmera) e não é uma propriedade da cifra em si. O AppVault mitiga isso mantendo a chave no dispositivo e nunca a transmitindo.
AES-256-GCM não é resistente a ataques quânticos. O algoritmo de Grover reduz o tamanho efetivo da chave do AES-256 de 256 bits para 128 bits. Um computador quântico grande o suficiente poderia quebrá-lo. No entanto, esse computador quântico não existe e não é esperado para a próxima década. Para segredos de longo prazo, cifras pós-quânticas como CRYSTALS-Kyber estão sendo padronizadas.
AES-256-GCM não protege contra coerção física (rubber-hose cryptanalysis) ou apreensão física do dispositivo. Se um invasor tiver acesso físico ao seu iPhone e puder obrigá-lo a desbloqueá-lo, nenhuma criptografia pode proteger seus arquivos. O modelo de ameaça do AppVault assume que o dispositivo está sob seu controle.
Por Que o AppVault Escolheu AES-256-GCM
O AppVault escolheu AES-256-GCM porque é o algoritmo de criptografia autenticada mais amplamente implantado com aceleração de hardware em todo iPhone moderno. É padronizado, revisado por pares e confiado pelos maiores protocolos de segurança do mundo. Permite que o AppVault criptografe arquivos rapidamente sem drenar a bateria, e sua verificação de integridade garante que os arquivos armazenados não foram adulterados.
A alternativa, ChaCha20-Poly1305, também é segura e é usada pelo AppVault para certas operações onde o AES por hardware não está disponível (por exemplo, em dispositivos mais antigos). Mas para criptografia de arquivos no iOS, AES-256-GCM é a escolha natural.
Cada arquivo no AppVault é criptografado com AES-256-GCM, um nonce único e uma chave derivada do seu bloqueio de padrão e encapsulada pelo Secure Enclave. A pilha criptográfica completa está documentada na página Criptografia AES-256-GCM, com citações do NIST FIPS 197, NIST SP 800-38D e do Guia de Segurança da Plataforma Apple. O modelo de ameaça explica contra o que essa arquitetura defende e contra o que não defende. A página arquitetura de conhecimento zero explica por que o AppVault nunca vê seus dados.
DIAGRAM · 02
DOSSIER
QUESTIONS
10 sharp answers.
-
01 O que é AES-256-GCM?
AES-256-GCM é um algoritmo de criptografia autenticada que criptografa dados usando o Advanced Encryption Standard com uma chave de 256 bits no Modo Galois/Contador e, simultaneamente, verifica sua integridade com uma tag de autenticação. -
02 Como o AES-256-GCM difere do AES-256-CBC?
AES-256-CBC fornece apenas confidencialidade e requer um HMAC separado para integridade. AES-256-GCM fornece ambos em uma passada, é paralelizável e não requer padding, tornando-o mais rápido e seguro em protocolos modernos. -
03 Por que o GCM é preferido ao CBC no TLS 1.3?
GCM é criptografia autenticada, o que impede adulteração sem uma camada MAC adicional. Também evita ataques de padding oracle que afetam o CBC, e é mais rápido em hardware com AES-NI ou Extensões Criptográficas ARM. -
04 O que é um nonce no AES-GCM?
Um nonce é um número de 96 bits que deve ser único para cada criptografia realizada com a mesma chave. Reutilizar um nonce permite que um invasor recupere a chave de autenticação GHASH e forje mensagens. -
05 O que é a tag de autenticação no AES-GCM?
A tag de autenticação é uma saída de 128 bits (padrão) que prova que o texto cifrado não foi modificado. O receptor recalcula a tag e a compara; se não corresponder, os dados são rejeitados. -
06 O AES-256-GCM pode ser quebrado?
Não existe ataque prático contra o AES-256-GCM quando implementado corretamente com um nonce único por mensagem. Os melhores ataques conhecidos são em variantes de rodadas reduzidas ou implementações que reutilizam nonces. -
07 O AES-256-GCM é resistente a ataques quânticos?
Não. AES-256 oferece segurança de 128 bits contra ataques clássicos, mas apenas 64 bits de segurança contra o algoritmo de Grover em um computador quântico. No entanto, o algoritmo de Grover requer um computador quântico tolerante a falhas grande o suficiente para executar o circuito completo do AES-256, o que não é esperado para a próxima década. -
08 O AES-256-GCM requer suporte de hardware?
Pode funcionar em software, mas a aceleração por hardware (AES-NI em Intel/AMD, Extensões Criptográficas ARM no Apple Silicon) o torna cerca de 10x mais rápido e reduz o consumo de energia. Todos os iPhones modernos incluem aceleração AES por hardware. -
09 Como o AppVault usa o AES-256-GCM?
O AppVault criptografa cada arquivo com AES-256-GCM usando um nonce de 96 bits único. A chave de criptografia é derivada via PBKDF2-SHA256 (600.000 iterações) e depois encapsulada por uma chave gerada dentro do Secure Enclave. O nonce é armazenado junto com o texto cifrado. Isso garante que, mesmo que dois arquivos tenham texto simples idêntico, seus textos cifrados sejam diferentes. -
10 Qual é a derivação de chave para AES-256-GCM no AppVault?
O bloqueio de padrão do usuário é transformado em uma chave mestre usando PBKDF2-SHA256 com um salt de 128 bits por instalação e 600.000 iterações. Essa chave mestre é então encapsulada pelo Secure Enclave antes de ser usada para criptografia AES-256-GCM. A chave encapsulada nunca sai do Secure Enclave em texto simples.
DOSSIÊS RELACIONADOS
Continue lendo.
6 ENTRIES
- LINK / 01 · PILHA DE CRIPTOGRAFIA
Criptografia AES-256-GCM
Como o AppVault implementa AES-256-GCM com nonces por arquivo, PBKDF2 e encapsulamento de chaves no Secure Enclave.
- LINK / 02 · MODELO DE AMEAÇA
Segurança e Modelo de Ameaça do AppVault
Contra o que o AppVault defende e contra o que não defende.
- LINK / 03 · ARQUITETURA
Arquitetura de Conhecimento Zero
O AppVault não faz nenhuma chamada de rede. Nenhum servidor jamais vê seu texto simples ou suas chaves de criptografia.
- LINK / 04 · AUTENTICAÇÃO
Bloqueio de Padrão e Derivação de Chave
Como o bloqueio de padrão 5×5 gera uma chave criptográfica usando PBKDF2 e Secure Enclave.
- LINK / 05 · COMPARAÇÃO
AppVault vs Vaultaire
Comparação recurso por recurso entre AppVault e Vaultaire.
- LINK / 06 · COMPARAÇÃO
AppVault vs Keepsafe
Como a arquitetura do AppVault difere do líder da categoria.
COMEÇAR
Lacre o cofre.
Grátis para baixar. O primeiro cofre é gratuito, para sempre. Atualize apenas quando você superá-lo.