Página inicial da Proton

O que é a encriptação AES?

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

Devido à sua força e fiabilidade, o AES é um dos tipos de encriptação mais populares e comuns utilizados na segurança de redes sem fios, encriptação de dados e encriptação de disco, sistemas de pagamentos online, armazenamento na nuvem, gestão de palavras-passe e até aplicações governamentais e militares. O governo dos EUA utiliza a encriptação AES para proteger a sua informação classificada, o que tem contribuído para a 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) iria substituir o DES como o seu recomendado(nova janela) “algoritmo de encriptação não classificado, publicamente divulgado e capaz de proteger informações governamentais sensíveis até ao próximo século”.

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

Ataques de força bruta

A forma mais básica de ataque possível a qualquer cifra de encriptação é um ataque de força bruta, que consiste em tentar todas as combinações de chaves possíveis até encontrar a correta. 

O Frontier(nova janela) é o supercomputador publicamente conhecido mais potente do mundo. Se dedicasse toda a sua capacidade a tentar quebrar por força bruta o AES-128, ainda assim precisaria de cerca de 10 a 12 biliões de anos para esgotar todas as combinações possíveis para o AES-128. Isto é muito mais tempo do que a idade do universo. Portanto, mesmo nos seus tamanhos de bits mais baixos, o AES é altamente resistente a ataques de força bruta de computadores convencionais. 

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

Embora o algoritmo de Grover(nova janela) reduza teoricamente a segurança das chaves simétricas para metade contra ameaças quânticas, estas ainda são relativamente resistentes a ataques quânticos, especialmente quando se utiliza uma chave de 256 bits.

Ataques a chaves

Ao longo dos anos, os 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 rondas (ver abaixo). 

A tentativa mais bem-sucedida foi o ataque biclique(nova janela) teórico 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 milhares de milhões de anos para quebrar o AES por força bruta em qualquer hardware de computador atual ou previsível. 

Nenhum ataque conhecido a chaves é prático contra o AES-128 ou superior quando corretamente implementado. 

Ataques por canal lateral

Um ataque por 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 encriptação. Os indícios podem ser obtidos examinando:

  • Temporização - quanto tempo um computador demora a executar uma operação
  • Fugas eletromagnéticas
  • Pistas sonoras
  • Pistas visuais (captadas com uma câmara de alta resolução).

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

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

  • O AES corretamente implementado pode impedir formas de fuga de dados.
  • O hardware que integra o conjunto de instruções AES reduz ainda mais a superfície de ataque por canal lateral do AES.
  • Podem ser usadas técnicas de aleatorização para perturbar a relação entre os dados protegidos por AES e quaisquer dados em fuga que possam ser recolhidos através de um ataque por canal lateral. 

Em muitos casos, os ataques por canal lateral exigem que o atacante tenha proximidade física ou acesso físico ao dispositivo enquanto este desencripta os dados, embora ataques remotos sejam possíveis se software malicioso estiver instalado num dispositivo, particularmente no caso de ataques de temporização.

Como funciona o AES

O AES é uma cifra por blocos que encripta e desencripta dados em blocos de 128 bits usando chaves de 128, 192 ou 256 bits. Como referido anteriormente, a mesma chave é usada para encriptar e desencriptar dados. O AES que usa uma chave de 128 bits é frequentemente designado por AES-128, e de forma semelhante para AES-192 e AES-256.

Os dados são encriptados utilizando várias rondas, cada uma das quais consiste numa série de operações matemáticas. 

O processo começa com a utilização do algoritmo de escalonamento de chaves de Rijndael para derivar uma série de novas chaves de ronda a partir da chave secreta original. Isto é conhecido como expansão de chave.

Cada ronda consiste, então, numa ou mais (ou numa combinação) das seguintes operações:

1. Add Round Key: É realizada uma operação XOR(nova janela) para combinar os dados a encriptar (o texto cifrado) com cada chave de ronda.

2. Sub Bytes: É usada uma tabela de substituição para misturar ainda mais os dados. Pense, em princípio, nas cifras de substituição simples que usava em criança, em que substituía cada letra de uma mensagem por outra um número definido de posições mais à frente no alfabeto.

3. Shift Rows: Cada bloco de dados de 128 bits consiste num bloco 4x4 de 16 bytes. Esta operação desloca cada byte numa linha do bloco por um determinado desvio para a esquerda.

4. Mix Columns: É realizada uma transformação linear invertível adicional em cada coluna do bloco.

Esta série de transformações constitui uma ronda, que depois é repetida nos dados por um número específico de rondas, dependendo do tamanho da chave:

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

Para desencriptar dados, todos os passos usados para os encriptar são simplesmente executados em sentido inverso. Isto requer a chave secreta original para inverter o processo usando cada chave de ronda inversa.

Por que se prefere o AES-256 ao AES-192 ou ao AES-128?

Seria necessário mais tempo do que a idade do universo para quebrar o AES-128 por força bruta, tendo em conta a tecnologia atual e previsível. O lendário criptógrafo Bruce Schneier chegou mesmo a argumentar(nova janela) que o AES-128 poderá ser mais forte do que o AES-256 graças ao facto de ter um escalonamento de chaves mais forte — o algoritmo que calcula todas as chaves de ronda a partir da chave secreta original.

No entanto, o AES-256 tornou-se o padrão de ouro de facto para a encriptação de chave simétrica. É frequentemente (embora de forma algo controversa) visto como a escolha mais forte porque o seu tamanho de chave maior sinaliza uma margem de segurança acrescida para que os dados encriptados permaneçam seguros mesmo que se encontre alguma forma de enfraquecer drasticamente o algoritmo. Este argumento tornou-se mais forte à medida que a necessidade de resistência pós-quântica se torna mais premente. 

AES-CBC vs. AES-GCM

Até há relativamente pouco tempo, o AES era normalmente usado no modo cipher block chaining (CBC), em que cada bloco de texto simples é sujeito a XOR com o bloco anterior de texto cifrado antes de ser encriptado. 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 utiliza o modo contador(nova janela) de encriptação. A principal vantagem é que usa o campo de Galois(nova janela) para verificar dados sem necessidade de um algoritmo externo. É, por isso, mais eficiente do que usar um algoritmo de autenticação separado, que pode ter uma elevada 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 acelerado por hardware

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

Proton e AES

Usamos extensivamente o AES para proteger os produtos Proton:

Os eventos e os contactos são protegidos com AES-256 combinado com ECC para a troca de chaves, garantindo a sua privacidade através de encriptação ponto a ponto.

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

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

O Proton Drive encripta todos os ficheiros carregados de ponto a ponto 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 sua implementação de encriptação difira do esquema geral de encriptação de ficheiros do Proton Drive.

O Proton Mail armazena e-mails e anexos usando AES-256 através do padrão OpenPGP. Até a sua chave privada, que desbloqueia os seus e-mails, é encriptada com AES-256 antes de ser armazenada no servidor.

O Proton Meet usa Messaging Layer Security (MLS) para encriptar áudio, vídeo e mensagens de chat, garantindo forward secrecy (PFS) e segurança pós-compromisso (PCS) para todas as comunicações. Todos os dados das reuniões são encriptados de ponto a ponto usando AES-256-GCM.

Mitigar ataques à encriptação AES

A segurança é tão forte quanto a sua ligação mais fraca, que é normalmente a sua palavra-passe. Isto significa que esquemas de engenharia social, ataques de phishing e keyloggers(nova janela) são também uma ameaça aos dados encriptados com AES. Portanto, mesmo quando o AES é utilizado, deve tomar as seguintes precauções:

Proton

Assuma o controlo dos seus dados

A Proton foi criada para proteger os seus dados desde o início. Com a encriptação ponto a ponto, aplicações de código aberto e auditorias independentes, a sua informação continua a ser sua.

Perguntas frequentes sobre a encriptação AES

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

Saiba mais sobre encriptação