📬 Toda semana, um resumo de segurança, Clean Code e IA no seu e-mail Inscreva-se →

FPGA em segurança: as vantagens que fazem valer a pena reconfigurar

Já publiquei aqui no blog um artigo inteiro sobre vulnerabilidades de FPGA — bitstream que pode ser extraído e clonado, hardware trojan inserido via IP de terceiro, side-channel, replay attack na reconfiguração. Tudo isso é real e sério. Mas se você só ler aquele artigo, fica com a impressão de que FPGA é uma escolha arriscada para segurança, e essa não é a história completa. A mesma característica que abre essas vulnerabilidades — reconfigurabilidade — é o que torna FPGA uma das plataformas mais interessantes para implementar sistemas de segurança em primeiro lugar. Este artigo é sobre esse outro lado.

Por que FPGA é diferente de ASIC e de software puro

Um FPGA é um dispositivo semicondutor reprogramável que permite implementar circuitos digitais personalizados. A arquitetura básica tem três peças:

  • Blocos lógicos: unidades que executam operações booleanas e implementam funções lógicas diversas.
  • Blocos de roteamento: conectam os blocos lógicos entre si através de canais configuráveis.
  • Buffers de I/O: gerenciam entrada e saída de dados do dispositivo.

Essa estrutura dá ao FPGA a flexibilidade de ser reconfigurado para funções diferentes, sem precisar fabricar um novo chip a cada mudança de projeto — o que é exatamente onde ele se diferencia de ASIC.

Vantagem 1: tempo de desenvolvimento e custo

Um ASIC (Application-Specific Integrated Circuit) exige um processo de fabricação específico e caro para cada projeto — e qualquer erro de design descoberto depois do tape-out custa uma nova rodada inteira de fabricação. FPGA reconfigura quantas vezes for necessário sem depender de fundição de silício a cada iteração. Na prática, isso significa custo unitário menor em baixo/médio volume e velocidade de lançamento maior, porque ajustar a especificação não implica esperar semanas ou meses por um novo lote de silício.

Vantagem 2: flexibilidade e reconfigurabilidade

Esta é a vantagem que mais importa especificamente para segurança. Um único dispositivo FPGA pode suportar múltiplos protocolos de segurança ou algoritmos criptográficos diferentes, e trocar entre eles sem trocar hardware:

  • Substituição de algoritmo comprometido: se um algoritmo criptográfico implementado no FPGA é quebrado ou tem uma vulnerabilidade descoberta, você reconfigura o dispositivo para outro, sem precisar substituir a placa inteira.
  • Adoção rápida de novos padrões: quando um novo padrão de segurança surge, ele pode ser integrado via reconfiguração, mantendo o sistema atualizado sem novo ciclo de fabricação.

Compare isso com um ASIC dedicado, onde o algoritmo está fisicamente fixado no silício: se ele é comprometido, a única saída é substituir a peça inteira, o que em campo — pensando em dispositivos já instalados — costuma ser inviável ou caríssimo.

Vantagem 3: desempenho e eficiência energética

Comparado com implementação em software rodando sobre um processador de propósito geral, um sistema baseado em FPGA entrega:

  • Velocidade superior: operações de baixo nível, como manipulação de bits feita diretamente pelos blocos lógicos, executam muito mais rápido do que o mesmo processamento em software.
  • Consumo de energia menor: arquitetura customizada para cada função específica tende a operar de forma mais eficiente do que hardware genérico rodando código genérico — relevante para dispositivo embarcado com orçamento de energia apertado.
  • Alto throughput: aplicações criptográficas em FPGA conseguem desempenho comparável a CPUs de alta performance, sem o custo adicional de hardware de propósito geral que você não usa por completo.

Onde isso se aplica na prática, em segurança de hardware

Implementação de sistemas criptográficos. FPGA é amplamente usado para implementar algoritmos de criptografia justamente pela combinação de flexibilidade e desempenho: adaptação rápida a diferentes protocolos, e processamento paralelo — múltiplas operações criptográficas executando simultaneamente, o que acelera o throughput geral do sistema.

Primitivas de segurança de hardware. FPGA também é uma escolha natural para implementar primitivas como:

  • Physically Unclonable Functions (PUFs): usam as variações físicas inerentes ao próprio dispositivo para gerar identificadores únicos e difíceis de replicar. Se você leu o artigo aqui no blog sobre confiabilidade em PUFs de Ring Oscillator, viu que a arquitetura configurável de inversores que melhora a confiabilidade do PUF depende diretamente da reconfigurabilidade que só um FPGA (ou tecnologia equivalente) oferece.
  • Geradores de números verdadeiramente aleatórios (TRNGs): aproveitando incertezas físicas — como jitter de rede de clock e atraso de propagação — o FPGA consegue gerar números aleatórios com alta entropia. Isso importa porque a qualidade da aleatoriedade impacta diretamente a robustez de qualquer protocolo criptográfico que dependa dela.

Além disso, FPGA permite testar e ajustar o bitstream gerado (a configuração que define o comportamento do dispositivo), o que dá controle fino sobre a imprevisibilidade e a resistência a ataque externo dos números gerados.

A outra metade da história, sem rodeio

Reconfigurabilidade é vantagem e é risco ao mesmo tempo, e isso não é contradição — é a mesma propriedade vista por dois ângulos. Poder trocar o algoritmo criptográfico é ótimo até o momento em que alguém consegue extrair o bitstream e entender (ou alterar) o que está configurado ali. Se você está avaliando FPGA para um projeto de segurança, a decisão não é “FPGA é seguro” ou “FPGA é arriscado” — é entender que as mesmas características que tornam o FPGA atraente (reconfiguração, flexibilidade de algoritmo) exigem contramedidas específicas, que é exatamente o assunto do artigo sobre vulnerabilidades e contramedidas em FPGA aqui no blog.

Se você está decidindo entre FPGA, ASIC e software para um sistema de segurança, minha recomendação prática: FPGA compensa quando volume de produção é baixo/médio, o algoritmo pode precisar mudar ao longo da vida do produto, e o desempenho de software puro não é suficiente. Se nenhuma dessas três condições se aplica ao seu caso, vale considerar as alternativas antes de assumir que reconfigurável é sempre a escolha certa.

Leandro Rosendo Candido

Leandro Rosendo Candido

Engenheiro de Computação, mestre pela USP, 10+ anos com Embedded Linux. Escreve e grava sobre segurança, Clean Code e IA aplicada à programação.

Rolar para cima