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

Watermarking Digital em Hardware: como provar autoria do seu design

Alice desenvolveu um bloco de IP. Bob conseguiu uma cópia — licenciada ou não — e resolveu explorar esse design ilegalmente, seja reproduzindo diretamente, seja embutindo dentro do produto dele. Sem nenhuma marca de identificação no design original, Alice não tem como provar, de forma técnica e verificável, que aquele design é dela. É esse buraco específico que watermarking digital resolve: embutir uma assinatura no próprio design, de um jeito que sobrevive a tentativas de remoção e serve como prova de origem.

Vale já deixar claro o que watermarking não faz: ele não distingue entre cópias distribuídas pra clientes diferentes — se você vendeu o mesmo IP pra dez empresas, watermarking prova que o design é seu, mas não diz qual das dez vazou. Isso é problema de digital fingerprinting, que eu cubro em outro artigo aqui no blog. Este aqui é especificamente sobre prova de autoria.

O que é, tecnicamente, um watermark digital

É informação — uma assinatura ou código — inserida de forma imperceptível no conteúdo original. A técnica nasceu pra texto, imagem, áudio e vídeo, mas evoluiu pra proteger também designs de hardware e circuitos digitais. A lógica de um bom watermark tem duas propriedades que precisam coexistir, e isso é mais difícil do que parece: precisa ser difícil de remover ou modificar sem quebrar o design, e ao mesmo tempo precisa ser verificável de forma confiável quando o dono precisar provar autoria.

Como o watermark funciona como dissuasão

Prova de autoria. Se Bob tenta vender uma versão modificada do IP, a presença do watermark permite que Alice prove a autoria de forma técnica — o que torna a defesa de Bob muito mais fraca numa disputa.

Dificuldade de remoção. Um watermark bem projetado está integrado diretamente na estrutura ou no código do design, não é um campo de metadado que dá pra apagar. Isso força quem quer remover a marca a alterar a própria estrutura funcional — o que, se malfeito, quebra a performance ou a funcionalidade do produto que o atacante está tentando roubar.

Aplicações práticas

Watermarking em projeto de hardware

Em circuitos aritméticos ou unidades lógicas, o watermark pode ser embutido através de mudanças sutis na implementação — reorganizando o arranjo de portas lógicas específicas de um jeito que embute uma mensagem digital sem afetar a funcionalidade geral. Depois, essa marca pode ser detectada, provando que o design derivou do trabalho original.

Otimização de expressões booleanas

No contexto de otimização de expressões booleanas, watermarking se aplica atribuindo valores específicos às condições “don’t care” — pontos de indeterminação que não afetam o resultado lógico final. Controlando deliberadamente essas escolhas, você embute bits de informação no resultado otimizado. Cada solução com watermark fica única, permitindo verificar autoria pela configuração específica escolhida.

Marcação em problemas NP-completos

Outro exemplo interessante: aplicar watermarking em problemas de coloração de grafos, que são NP-completos e computacionalmente caros de resolver do zero. Modificando a estrutura do grafo — adicionando arestas extras que representam bits de informação — uma mensagem digital fica embutida na própria solução do problema. Resolver o grafo marcado não só demonstra capacidade de resolver o problema, como também carrega a assinatura única do projetista.

Duas técnicas avançadas que vale entender

Watermarking baseado em restrições (constraint-based)

A abordagem consiste em adicionar restrições extras que não conflitam com os requisitos originais do design. O projetista de IP cria esse conjunto de restrições adicionais, que combinadas com as restrições do problema original formam o que a literatura chama de stego-problem. A solução desse problema modificado é única e carrega a assinatura digital do autor. É especialmente útil pra proteger designs de hardware, onde funcionalidade e performance não podem ser comprometidas — a marca precisa nascer dentro das restrições que o circuito já teria que satisfazer de qualquer forma.

Watermarking público

Aqui a estratégia é diferente: partes específicas do watermark são deliberadamente tornadas públicas, pra facilitar a verificação de autoria por terceiros. A assinatura digital é dividida em duas partes — um cabeçalho público (a assinatura em ASCII simples) e um corpo criptografado. Isso torna alteração não autorizada da marca mais difícil, porque mudar a parte pública exigiria também modificar uma porção criptografada muito maior, aumentando a segurança contra tentativas de forjar ou remover a marca.

Os trade-offs que ninguém deveria esconder de você

Watermarking não é gratuito, e finjo de dizer que sim seria vender bala de prata:

  • Overhead de design: embutir um watermark pode aumentar a complexidade do design e afetar performance ou uso de recursos — em projetos de FPGA, por exemplo, isso é medido diretamente em área e timing.
  • Justiça (fairness): nem toda solução com watermark é equivalente. Algumas introduzem mais overhead que outras, o que complica comparação e otimização entre designs concorrentes marcados de formas diferentes.
  • Detectabilidade vs. resiliência: essa é a tensão central da técnica inteira — o watermark precisa ser fácil de detectar pra fins de verificação, mas difícil o suficiente de remover ou modificar pra resistir a um atacante motivado. Otimizar demais pra um lado geralmente enfraquece o outro.

O ponto prático

Watermarking digital é a ferramenta certa quando a pergunta que você precisa responder é “esse design é meu?” — não “qual cliente vazou minha cópia?”. Se seu cenário é licenciamento pra múltiplos clientes e você precisa rastrear individualmente quem recebeu o quê, watermarking sozinho não resolve; é aí que fingerprinting entra como complemento, não substituto. E se seu objetivo é uma estratégia de proteção de IP mais ampla — que inclui também metering e ofuscação — vale a leitura do artigo geral sobre proteção de propriedade intelectual em hardware aqui no blog, que amarra essas técnicas dentro do quadro maior de decisão custo-segurança-performance.

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