Proton

O que é a encriptação AES?

AES em criptografia refere-se a Advanced Encryption Standard, um algoritmo de encriptação rápido, eficiente e seguro certificado pelo US National Institute of Standards and Technology (NIST). É uma cifra de chave simétrica que usa 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 robustez e fiabilidade, o AES é um dos tipos de encriptação mais populares e comuns utilizados na segurança de redes sem fios, em dados e na encriptação de disco, em sistemas de pagamento online, no armazenamento na nuvem, na gestão de palavras-passe e até em aplicações governamentais e militares. O governo dos EUA usa a encriptação AES para proteger as suas informações classificadas, o que contribuiu para a sua popularidade.

O algoritmo AES é seguro?

Sim. Em 2000, após um processo de seleção muito rigoroso(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 o seu algoritmo de encriptação recomendado(nova janela) “não classificado, divulgado publicamente 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ções classificadas até ao nível "Secret". Para informações "Top Secret", é necessário o AES-192 ou AES-256.

Ataques de força bruta

A forma mais básica de ataque possível contra 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 poderoso do mundo. Se dedicasse toda a sua capacidade a forçar por força bruta o AES-128, ainda seriam necessários cerca de 10–12 biliões de anos para esgotar todas as combinações possíveis para o AES-128. Isto é muito mais do que a idade do universo. Assim, mesmo com os seus tamanhos de bits mais baixos, o AES é altamente resistente a ataques de força bruta de computadores convencionais. 

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

Embora o algoritmo de Grover(nova janela) reduza teoricamente para metade a segurança das chaves simétricas face a ameaças quânticas(nova janela), estas continuam a ser relativamente resistentes à computação quântica, especialmente quando se usa 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 usando múltiplas rondas, cada uma das quais consiste numa série de operações matemáticas. 

O processo começa por usar o algoritmo de expansão de chave 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 RoundKey: É executada 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. MixColumns: É executada 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 com a tecnologia atual e previsível. O lendário criptógrafo Bruce Schneier chegou mesmo a argumentar(nova janela) que o AES-128 pode ser mais forte do que o AES-256 graças a ter uma expansão de chave mais forte — o algoritmo que calcula todas as chaves de ronda a partir da chave secreta original.

Ainda assim, o AES-256 tornou-se o padrão de facto de excelência para a encriptação de chave simétrica. É frequentemente visto (ainda que de forma algo controversa) como a escolha mais forte porque o seu maior tamanho de chave indica uma margem de segurança adicional, para que os dados encriptados permaneçam seguros mesmo que se descubra 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 CPUs modernas inclui 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 por canal lateral baseados em temporização, porque as operações acontecem dentro das unidades de execução seguras do processador, pelo que existem menos variações de temporização 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 o seu elo mais fraco, que normalmente é a sua palavra-passe. Isto significa que esquemas de engenharia social, ataques de phishing e keyloggers(nova janela) também representam uma ameaça para dados encriptados com AES. Assim, mesmo quando o AES é usado, 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