Funções físicas não clonáveis: proteção de eletrônicos contra cópia ilegal


Fonte: A economia falsificada on-line : eletrônicos de consumo, um relatório feito pela CSC em 2017

Nos últimos 10 anos, o número de produtos falsificados no mundo dobrou. Esses dados foram publicados na última revisão de direitos de propriedade intelectual no final do ano, realizada pelo Departamento de Segurança Interna dos EUA em 2016 (o ano mais atual registrado). Grande parte da falsificação vem da China (56%), Hong Kong (36%) e Cingapura (2%). Os fabricantes de bens originais sofrem sérias perdas, algumas das quais ocorrem no mercado de eletrônicos.

Muitos produtos modernos contêm componentes eletrônicos: roupas, sapatos, relógios, jóias, carros.
No ano passado, as perdas diretas com a cópia ilegal de eletrônicos de consumo e componentes eletrônicos na composição de outros bens foram de cerca de US $ 0,5 trilhão.

Como resolver este problema?

Esse problema pode ser resolvido por vários métodos de proteção de eletrônicos digitais contra cópia ilegal, modificação e engenharia reversa: criptografia de hardware (AES, RSA etc.), hash (por exemplo, SHA-256, MD-5), a introdução de digital marcas d'água e impressões digitais na descrição do projeto, ofuscação lexical e funcional, verificação formal e outros.

Neste artigo, falaremos sobre um dos métodos de proteção mais econômicos em termos de custos de hardware - funções físicas não clonáveis ​​(PUF).

A desvantagem da maioria dos métodos mencionados acima são os custos significativos de hardware e, como resultado, o alto consumo de energia.

Com o surgimento do conceito de Internet das Coisas (IoT), os requisitos para a área ocupada por um dispositivo digital em um chip de um circuito integrado, bem como para o consumo de energia, tornam-se mais rigorosos à medida que o tamanho dos dispositivos diminui drasticamente. de ano para ano.

Funções físicas não clonáveis ​​(PUF)


Uma maneira de identificar e autenticar dispositivos digitais são funções físicas não clonáveis, que são muito mais econômicas de implementar do que os métodos de proteção acima.

O que é o PUF? É difícil encontrar dois objetos absolutamente idênticos entre os objetos materiais ao nosso redor. Mesmo na produção em massa, cada objeto é único devido a imprecisões e acidentes. Esses recursos de cada objeto individual podem ser registrados e usados ​​como um identificador exclusivo, uma espécie de "impressão digital".

Um bom exemplo é o PUF óptico . Pegue um pedaço de vidro derretido, adicione bolhas de ar, esfrie essa massa e corte-a em barras iguais. A chance de obter duas barras absolutamente idênticas é insignificante; as bolhas de ar no interior serão distribuídas de maneira desigual. Podemos corrigir essas diferenças enviando um feixe de laser para a barra (solicitação) e recebendo na saída um padrão de interferência exclusivo dos feixes de radiação após a refração (resposta). Como resultado, obtemos uma função física não clonável que determinará a dependência da resposta na solicitação de entrada. Obviamente, essa função não é analítica; portanto, nem o proprietário legal do objeto nem o atacante podem descobrir com antecedência. Você só pode testar um lote de produtos e criar uma tabela de valores de entrada e saída, que servirá como critério para determinar a autenticidade dos objetos.

O PUF para proteção de componentes eletrônicos baseia-se no uso de variações do processo de fabricação durante a fabricação de circuitos integrados: por exemplo, valores precisos para tensões limiares, atrasos na propagação do sinal, frequência de operação do componente etc. No processo de projeto padrão, os engenheiros de projeto de eletrônicos procuram reduzir o impacto das variações no produto final. Para o PUF, pelo contrário, esse fenômeno não controlado é usado para extrair a aleatoriedade e a exclusividade de um dispositivo digital.

Na verdade, o PUF é semelhante às implementações de hardware das funções de hash, a única diferença é que a singularidade do valor de saída do PUF se baseia na singularidade de um determinado circuito integrado e não em um algoritmo matemático.

O argumento de entrada PUF (solicitação) é chamado de desafio (CH) e o valor de saída é a resposta ®. Dessa maneira, para alguns circuitos integrados - ICk, o conjunto de desafios - {CH 0 , ..., CH N-1 } - será mapeado exclusivamente para o conjunto de respostas {R 0 , ..., R N-1 } com PUF :

Ri=PUF(CHi)



Um conjunto de pares de desafio-resposta (CRP) {(CH 0 , R0), ..., (CH N-1 , R N-1 )} caracteriza exclusivamente o circuito integrado ICk e não pode ser copiado, mesmo para uma descrição de projeto absolutamente idêntica ( veja o diagrama abaixo).


Exclusividade entre chips e por chip de circuitos integrados (IC)

Como mostrado no diagrama, ao implementar uma descrição de projeto idêntica do PUF em diferentes circuitos integrados, as respostas (Ri) aos mesmos desafios (CHi) serão únicas (significativamente diferentes uma da outra) para cada cópia. Esse fenômeno é chamado de exclusividade entre chips, ou seja, a capacidade de distinguir circuitos integrados entre si usando PUF. Ao usar realizações idênticas de PUF em um único chip para identificar, por exemplo, vários componentes de propriedade intelectual (IP), o fenômeno de exclusividade por chip é observado. Como as realizações do PUF dentro de um chip são diferentes, pelo menos em seu arranjo mútuo, a exclusividade por chip ou assinaturas exclusivas de chip são, em regra, mais pronunciadas que a inter-chip.

Implementações existentes do PUF e seu uso


Atualmente, existem muitas implementações de PUF baseadas em:

  1. Atrasos na propagação do sinal . Usando o valor binário dos desafios, é definida a configuração de caminhos simétricos, ao longo dos quais várias cópias de um sinal são distribuídas. A resposta do PUF é o resultado da comparação dos atrasos no sinal de propagação.
  2. Frequências dos componentes . A base deste PUF é uma comparação de pares de componentes idênticos com uma frequência única. Desafios são todos os tipos de pares de índices de vários componentes, e as respostas são o resultado da comparação da frequência de seu trabalho.
  3. Status de memória . Como resultado da inicialização e / ou redefinição do estado dos dispositivos de armazenamento estático (SRAM), o valor originalmente armazenado em cada um dos elementos de memória (0 ou 1) é único e aleatório. O desafio desse PUF é ligar / desligar a energia e a resposta é o estado observado de cada um dos elementos de memória que caracteriza exclusivamente o circuito integrado no qual o PUF é implementado.
  4. Sensor de imagem CMOS . Cada imagem criada com a ajuda de uma matriz fotossensível (Sensor de imagem) possui um componente de ruído constante que caracteriza a exclusividade da matriz implementada. O princípio de operação deste PUF é semelhante ao PUF com base na comparação de frequências, com a única diferença: a comparação é feita de acordo com os valores da tensão limiar de cada um dos elementos da matriz.
  5. Tensão limite do transistor . Este tipo de PUF só pode ser implementado como analógico, pois um engenheiro tem acesso aos valores de tensão limite neste caso. A base para este PUF, como o PUF com base em frequências, é a comparação das características de vários transistores usados ​​no circuito integrado.
  6. Espelho atual . Essa classe de PUF é baseada na implementação de uma matriz de espelhos atuais. Os valores de tensão nos nós desta matriz caracterizam exclusivamente o circuito integrado. O desafio, neste caso, são os números das colunas e linhas dos elementos, quais valores de tensão você deseja comparar. Consequentemente, a resposta é o resultado da comparação das diferenças de tensão em um par de nós com um valor limite.
  7. Pressão externa na tela do smartphone . Nesta implementação, o desafio do PUF é uma ação do usuário que desliza o dedo na tela de acordo com um determinado padrão (como uma chave gráfica em smartphones). Com base nos valores de pressão de um usuário na tela do smartphone, é calculado um valor de resposta exclusivo que caracteriza o usuário e o smartphone e, portanto, pode ser usado para autenticação.
  8. Estrutura de papel . Essa implementação do PUF é baseada na singularidade da estrutura do papel devido às variações durante o processo de fabricação. Consequentemente, um determinado meio de papel pode ser usado como uma fonte de chaves criptográficas exclusivas.

Como mostrado acima, existe uma grande variedade de tipos de PUFs que podem ser implementados em dispositivos digitais e usando outras tecnologias (óptica, magnética, papel, etc.).

A primeira implementação comercial do PUF em 2008 foi identificadores de radiofrequência fabricados pela Verayo Company. Além disso, atualmente, muitos fabricantes de FPGA - por exemplo, Xilinx e Altera (Intel) - usam PUFs como o identificador FPGA não clonado incorporado.

Como os PUFs são usados ​​como primitivos criptográficos (geradores de números aleatórios, identificadores exclusivos, funções de hash de hardware), muitos fabricantes não divulgam o uso de PUFs para manter em segredo os detalhes da implementação de seus protocolos de segurança dos invasores.

Exemplo de memória baseada em PUF (SRAM)


Como exemplo de PUF, usaremos a implementação do PUF com base na memória usando o Xilinx Spartan 3E FPGA, que faz parte da placa de desenvolvimento Digilent Nexys-2. A emulação de elemento de memória foi implementada como um elemento biestável, e a energia de ligar / desligar foi modelada reprogramando o FPGA usando o mesmo arquivo de configuração.

A figura abaixo mostra os identificadores de dois FPGAs idênticos, obtidos como resultado de sua programação com o mesmo arquivo de bits. A cor preta indica "elementos de memória" que retêm o valor 0 como resultado de 100 reprogramações, a cor branca indica o valor 1. Os tons de cinza são aqueles que alteram o valor de lançamento para lançamento. Assim, quanto mais preto na cor "elemento", mais valores de 0 foram gerados como resultado da reprogramação.


Os identificadores de 64 bits de dois FPGAs idênticos

Como pode ser visto na figura, o método dos “cartões de memória” difere significativamente: a distância de Hamming para identificadores de 64 bits é de aproximadamente 20. Consequentemente, a probabilidade de o identificador ser o mesmo em diferentes FPGAs é muito pequena, menor que 0,01. Os "cartões de memória" acima mencionados podem ser utilizados de duas maneiras: para identificar o FPGA e como fonte de aleatoriedade devido à presença de elementos não permanentes.

A identificação confiável exigirá o uso de códigos de correção de erros (ECC) para estabilizar os “cartões de memória” observados. Neste artigo, usamos o método de seleção majoritária . Implementar um gerador de números aleatórios, pelo contrário, requer a "reprodução" da aleatoriedade daqueles "elementos de memória" cujos valores são instáveis. Para esse fim, usamos a análise de assinatura como um algoritmo de compactação de dados de perda. Algoritmos de hash padrão (por exemplo, SHA-256) também podem ser usados ​​se as restrições de custo de hardware não forem muito rígidas.

Problemas e perspectivas existentes para PUF


Apesar da relativa novidade deste conceito, este ano o termo PUF está comemorando 17 anos.
Durante esse período, a comunidade científica já conseguiu estudar os problemas e as possíveis aplicações do PUF.

Um dos principais problemas, demonstrado pelo exemplo do PUF com base na memória, é a instabilidade de alguns dos valores, o que, por sua vez, força um engenheiro a usar códigos de correção de erros e arquiteturas PUF mais confiáveis.

Por outro lado, a estabilidade muito alta coloca o PUF em risco de ataque criptográfico usando métodos de aprendizado de máquina, ou seja, a construção é suficientemente precisa - mais de 95% -, um modelo matemático do PUF, inicialmente considerado (até 2010) impossível em a comunidade científica.
No entanto, o uso do PUF em aplicações comerciais modernas como primitivo criptográfico comprova a promessa de pesquisas nesse campo em busca de novas arquiteturas PUF, além de melhorar as características das implementações existentes.

Source: https://habr.com/ru/post/pt446304/


All Articles