Proton

O que é criptografia AES?

AES em criptografia se refere a Advanced Encryption Standard, um algoritmo de criptografia rápido, eficiente e seguro certificado pelo Instituto Nacional de Padrões e Tecnologia dos EUA (NIST). É uma cifra de chave simétrica que usa a mesma chave para criptografar e descriptografar dados. Isso é relativamente rápido, tornando-o ideal para criptografar grandes quantidades de dados em repouso.

Devido à sua força e confiabilidade, o AES é um dos tipos de criptografia mais populares e comuns usados na segurança de redes wireless, na criptografia de dados e criptografia de disco, em sistemas de pagamento on-line, armazenamento em nuvem, gerenciamento de senhas e até mesmo em aplicativos governamentais e militares. O governo dos EUA usa criptografia AES para proteger suas informações confidenciais, o que contribuiu para sua popularidade.

O algoritmo AES é seguro?

Sim. Em 2000, após um processo de seleção muito minucioso(nova janela) e aberto, o NIST anunciou que o AES (conhecido até então como o algoritmo Rijndael, criado por Vincent Rijmen e Joan Daemen) substituiria o DES como seu recomendado(nova janela) “algoritmo de criptografia não classificado e divulgado publicamente, capaz de proteger informações governamentais sensíveis até o próximo século”.

De acordo com o NIST, todos os comprimentos de chave do algoritmo AES são considerados "suficientes" para proteger informações confidenciais até o nível "Secreto". Para informações "Ultrassecretas", o AES-192 ou AES-256 é necessário.

Ataques de força bruta

A forma mais básica de ataque possível contra qualquer cifra de criptografia é um ataque de força bruta, que envolve tentar todas as combinações de chave possíveis até encontrar a correta. 

Frontier(nova janela) é o supercomputador de conhecimento público mais poderoso do mundo. Se dedicasse toda a sua capacidade à força bruta contra o AES-128, ainda seriam necessários cerca de 10–12 trilhões de anos para esgotar todas as combinações possíveis do AES-128. Isso é muito mais do que a idade do universo. Portanto, mesmo com tamanhos de bit menores, o AES é altamente resistente a ataques de força bruta de computadores convencionais. 

O AES-256 é 340 bilhões de bilhões de bilhões de bilhões (2¹²⁸) de vezes mais difícil de quebrar por força bruta do que o AES-128.

Embora o algoritmo de Grover(nova janela) reduza teoricamente pela metade a segurança das chaves simétricas contra ameaças quânticas(nova janela), elas ainda são relativamente resistentes à computação quântica, especialmente ao usar uma chave de 256 bits.

Ataques a chaves

Ao longo dos anos, criptógrafos publicaram vários ataques teóricos às chaves AES, mas todos eles são impraticáveis na prática ou só são eficazes em implementações de AES que usam um número reduzido de rodadas (veja abaixo). 

A tentativa mais bem-sucedida foi o teórico ataque biclique(nova janela), publicado em 2011, que pode reduzir em quatro vezes o tempo necessário para quebrar o AES por força bruta. No entanto, ainda seriam necessários bilhões de anos para quebrar o AES por força bruta em qualquer hardware de computador atual ou previsível. 

Nenhum ataque de chave conhecido é prático contra AES-128 ou superior quando implementado corretamente. 

Ataques de canal lateral

Um ataque de canal lateral tenta reduzir o número de combinações necessárias para realizar um ataque de força bruta bem-sucedido procurando indícios no computador que executa os cálculos de criptografia. Os indícios podem ser obtidos examinando:

  • Tempo — quanto tempo um computador leva para realizar uma operação
  • Vazamentos eletromagnéticos
  • Pistas de áudio
  • Pistas visuais (captadas com uma câmera de alta resolução).

Ataques de temporização de cache, em particular, provaram ser bastante eficazes para quebrar o AES com sucesso. No exemplo mais notável, pesquisadores em 2016 conseguiram recuperar(nova janela) uma chave AES-128 usando “apenas cerca de 6 a 7 blocos de texto simples ou texto cifrado (teoricamente, até mesmo um único bloco seria suficiente)”.

No entanto, várias coisas podem ser feitas para mitigar a ameaça de ataques de canal lateral:

  • O AES implementado corretamente pode impedir formas de vazamento de dados.
  • O hardware que integra o conjunto de instruções AES reduz ainda mais a superfície de ataque de canal lateral do AES.
  • Técnicas de aleatorização podem ser usadas para interromper a relação entre os dados protegidos pelo AES e quaisquer dados vazados que possam ser coletados usando um ataque de canal lateral. 

Em muitos casos, ataques de canal lateral exigem que o invasor esteja próximo ou tenha acesso físico ao dispositivo enquanto ele descriptografa dados, embora ataques remotos sejam possíveis se um software malicioso for instalado em um dispositivo, principalmente no caso de ataques de temporização.

Como o AES funciona

AES é uma cifra de bloco que criptografa e descriptografa dados em blocos de 128 bits usando chaves de 128 bits, 192 bits ou 256 bits. Como observado anteriormente, a mesma chave é usada para criptografar e descriptografar dados. O AES que usa uma chave de 128 bits costuma ser chamado de AES-128, e o mesmo vale para AES-192 e AES-256.

Os dados são criptografados usando várias rodadas, cada uma consistindo em uma série de operações matemáticas. 

O processo começa usando o algoritmo de agendamento de chaves de Rijndael para derivar uma série de novas chaves de rodada a partir da chave secreta original. Isso é conhecido como expansão de chave.

Cada rodada então consiste em uma ou mais (ou uma combinação) das seguintes operações:

1. Add RoundKey: uma operação XOR(nova janela) é realizada para combinar os dados a serem criptografados (o texto cifrado) com cada chave de rodada.

2. Sub Bytes: uma tabela de substituição é usada para embaralhar ainda mais os dados. Pense, em princípio, nas cifras de substituição simples que você usava quando criança, em que substituía cada letra de uma mensagem por outra algumas posições adiante no alfabeto.

3. Shift Rows: cada bloco de dados de 128 bits consiste em um bloco 4x4 de 16 bits. Essa operação desloca cada byte em uma linha do bloco por um determinado deslocamento para a esquerda.

4. MixColumns: uma transformação linear invertível adicional é realizada em cada coluna do bloco.

Essa série de transformações constitui uma rodada, que então é repetida nos dados por um número específico de rodadas, dependendo do tamanho da chave:

  • AES-128 — 10 rodadas
  • AES-192 — 12 rodadas
  • AES 256 — 14 rodadas

Para descriptografar dados, todas as etapas usadas para criptografá-los são simplesmente realizadas na ordem inversa. Isso exige a chave secreta original para reverter o processo usando cada chave de rodada inversa.

Por que o AES-256 é preferido ao AES-192 ou AES-128?

Levaria mais tempo do que a idade do universo para quebrar o AES-128 por força bruta com a tecnologia atual e previsível. O lendário criptógrafo Bruce Schneier chegou até mesmo a argumentar(nova janela) que o AES-128 pode ser mais forte que o AES-256 graças ao seu agendamento de chaves mais forte — o algoritmo que calcula todas as chaves de rodada a partir da chave secreta original.

Ainda assim, o AES-256 se tornou o padrão ouro de facto para criptografia de chave simétrica. Ele costuma ser visto (embora de forma um tanto controversa) como a escolha mais forte, porque seu maior tamanho de chave indica uma margem adicional de segurança, de modo que os dados criptografados permaneçam seguros mesmo que seja encontrada alguma forma de enfraquecer drasticamente o algoritmo. Esse argumento se fortaleceu à medida que a necessidade de resistência pós-quântica se torna mais urgente. 

AES-CBC vs. AES-GCM

Até pouco tempo atrás, o AES geralmente era usado no modo cipher block chaining (CBC), em que cada bloco de texto simples é submetido a XOR com o bloco anterior de texto cifrado antes de ser criptografado. Quando usado no modo CBC, é necessário um algoritmo de hash HMAC(nova janela), como o HMAC-SHA256, para verificar os dados.

No entanto, é cada vez mais comum que o AES seja usado no modo Galois/counter (GCM), que usa o modo contador(nova janela) de criptografia. A principal vantagem é que ele usa o campo de Galois(nova janela) para verificar os dados sem a necessidade de um algoritmo externo. Portanto, ele é mais eficiente do que usar um algoritmo de autenticação separado, que pode ter uma alta sobrecarga computacional.

Embora o AES-CBC com autenticação HMAC seja geralmente considerado seguro, o CBC é potencialmente vulnerável a ataques de padding(nova janela), como o POODLE(nova janela). O GCM não é.

AES com aceleração por hardware

A maioria das CPUs modernas inclui Advanced Encryption Standard New Instructions (AES-NI(nova janela)), um conjunto de instruções de hardware que realiza operações AES diretamente no processador. Isso torna o AES muito mais rápido e também ajuda a evitar ataques de canal lateral baseados em temporização, porque as operações acontecem dentro das unidades seguras de execução do processador, então há menos variações observáveis de tempo para um invasor explorar.

Proton e AES

Usamos amplamente o AES para proteger produtos Proton:

Eventos e contatos são protegidos usando AES-256 combinado com ECC para a troca de chaves, a fim de garantir sua privacidade por meio de criptografia de ponta a ponta.

O Proton VPN se concentra principalmente no protocolo VPN WireGuard® rápido e eficiente (que usa ChaCha20), mas as conexões OpenVPN usam AES-256.

O Proton Pass armazena senhas, notas, identidades e outros itens dentro do seu cofre seguro usando AES-256.

O Proton Drive criptografa todos os arquivos enviados de ponta a ponta com AES-256 usando ECC para a troca de chaves. O Proton Docs e o Proton Sheets também usam AES-256 com troca de chaves baseada em ECC, embora a implementação de criptografia deles seja diferente do esquema geral de criptografia de arquivos do Proton Drive.

O Proton Mail armazena e-mails e anexos usando AES-256 por meio do padrão OpenPGP. Até mesmo sua chave privada, que desbloqueia seus e-mails, é criptografada com AES-256 antes de ser armazenada no servidor.

O Proton Meet usa Messaging Layer Security (MLS) para criptografar áudio, vídeo e mensagens de chat, garantindo sigilo de encaminhamento (PFS) e segurança pós-comprometimento (PCS) para todas as comunicações. Todos os dados da reunião são criptografados de ponta a ponta usando AES-256-GCM.

Mitigação de ataques à criptografia AES

A segurança é tão forte quanto seu elo mais fraco, que geralmente é sua senha. Isso significa que esquemas de engenharia social, ataques de phishing e keyloggers(nova janela) também representam uma ameaça aos dados criptografados com AES. Portanto, mesmo quando o AES é usado, você deve tomar as seguintes precauções:

Proton

Assuma o controle dos seus dados

A Proton foi criada para proteger os seus dados desde o início. Com criptografia de ponta a ponta, aplicativos de código aberto e auditorias independentes, as suas informações continuam sendo suas.

Perguntas frequentes sobre criptografia AES

O que é melhor: AES vs. DES?
O que é melhor: AES vs. RSA?
Quão forte é a segurança do AES?

Saiba mais sobre criptografia