Segurança de dispositivos Intel Agilex 7
Informações do produto
Especificações
- Número do modelo: UG-20335
- Data de lançamento: 2023.05.23
Instruções de uso do produto
1. Compromisso com a segurança do produto
A Intel está comprometida com a segurança dos produtos e recomenda que os usuários se familiarizem com os recursos de segurança dos produtos fornecidos. Esses recursos devem ser utilizados durante toda a vida útil do produto Intel.
2. Recursos de segurança planejados
Os seguintes recursos de segurança estão planejados para uma versão futura do software Intel Quartus Prime Pro Edition:
- Verificação de segurança de fluxo de bits de reconfiguração parcial: fornece garantia adicional de que os fluxos de bits de reconfiguração parcial (PR) não podem acessar ou interferir em outros fluxos de bits de persona PR.
- Auto-morte do dispositivo para anti-T físicoamper: Executa uma limpeza do dispositivo ou uma resposta de zeragem do dispositivo e programa eFuses para evitar que o dispositivo seja configurado novamente.
3. Documentação de segurança disponível
A tabela a seguir lista a documentação disponível para recursos de segurança de dispositivos em dispositivos Intel FPGA e ASIC estruturados:
Nome do documento | Propósito |
---|---|
Metodologia de segurança para usuários de FPGAs Intel e ASICs estruturados Guia |
Documento de nível superior que fornece descrições detalhadas de recursos e tecnologias de segurança nas soluções programáveis Intel Produtos. Ajuda os usuários a selecionar os recursos de segurança necessários para cumprir seus objetivos de segurança. |
Guia do usuário de segurança de dispositivos Intel Stratix 10 | Instruções para usuários de dispositivos Intel Stratix 10 implementarem os recursos de segurança identificados usando a Metodologia de Segurança Guia do usuário. |
Guia do usuário de segurança de dispositivos Intel Agilex 7 | Instruções para usuários de dispositivos Intel Agilex 7 implementarem os recursos de segurança identificados usando a Metodologia de Segurança Guia do usuário. |
Guia do usuário de segurança do dispositivo Intel eASIC N5X | Instruções para usuários de dispositivos Intel eASIC N5X implementarem os recursos de segurança identificados usando a Metodologia de Segurança Guia do usuário. |
Serviços criptográficos Intel Agilex 7 e Intel eASIC N5X HPS Guia do usuário |
Informações para engenheiros de software HPS sobre a implementação e uso de bibliotecas de software HPS para acessar serviços criptográficos fornecido pelo SDM. |
Guia de início rápido do serviço de provisionamento de chave preta AN-968 | Conjunto completo de etapas para configurar o Black Key Provisioning serviço. |
Perguntas frequentes
P: Qual é o objetivo do Guia do Usuário da Metodologia de Segurança?
R: O Guia do usuário da metodologia de segurança fornece descrições detalhadas dos recursos e tecnologias de segurança dos produtos de soluções programáveis Intel. Ajuda os usuários a selecionar os recursos de segurança necessários para atender aos seus objetivos de segurança.
P: Onde posso encontrar o Guia do usuário do Intel Agilex 7 Device Security?
R: O Guia do usuário do Intel Agilex 7 Device Security pode ser encontrado no Intel Resource and Design Center website.
P: O que é o serviço Black Key Provisioning?
R: O serviço Black Key Provisioning é um serviço que fornece um conjunto completo de etapas para configurar o provisionamento de chaves para operações seguras.
Guia do usuário de segurança de dispositivos Intel Agilex® 7
Atualizado para Intel® Quartus® Prime Design Suite: 23.1
Versão online Enviar comentários
UG-20335
683823 2023.05.23
Guia do usuário de segurança de dispositivos Intel Agilex® 7 2
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 3
683823 | 2023.05.23 Enviar comentários
1. Intel Agilex® 7
Segurança do dispositivo encerradaview
A Intel® projeta os dispositivos Intel Agilex® 7 com hardware e firmware de segurança dedicados e altamente configuráveis.
Este documento contém instruções para ajudá-lo a usar o software Intel Quartus® Prime Pro Edition para implementar recursos de segurança em seus dispositivos Intel Agilex 7.
Além disso, o Guia do usuário da metodologia de segurança para FPGAs Intel e ASICs estruturados está disponível no Intel Resource & Design Center. Este documento contém descrições detalhadas dos recursos e tecnologias de segurança disponíveis através dos produtos Intel Programmable Solutions para ajudá-lo a selecionar os recursos de segurança necessários para atender aos seus objetivos de segurança. Entre em contato com o suporte da Intel com o número de referência 14014613136 para acessar o Guia do usuário da metodologia de segurança para FPGAs Intel e ASICs estruturados.
O documento está organizado da seguinte forma: · Autenticação e Autorização: Fornece instruções para criar
chaves de autenticação e cadeias de assinatura, aplicar permissões e revogações, assinar objetos e programar recursos de autenticação em dispositivos Intel Agilex 7. · Criptografia de fluxo de bits AES: fornece instruções para criar uma chave raiz AES, criptografar fluxos de bits de configuração e provisionar a chave raiz AES para dispositivos Intel Agilex 7. · Provisionamento de dispositivos: fornece instruções para usar o firmware de provisionamento Intel Quartus Prime Programmer e Secure Device Manager (SDM) para programar recursos de segurança em dispositivos Intel Agilex 7. · Recursos avançados: fornece instruções para ativar recursos de segurança avançados, incluindo autorização de depuração segura, depuração do Hard Processor System (HPS) e atualização remota do sistema.
1.1. Compromisso com a segurança do produto
O compromisso duradouro da Intel com a segurança nunca foi tão forte. A Intel recomenda fortemente que você se familiarize com nossos recursos de segurança de produtos e planeje utilizá-los durante toda a vida útil do seu produto Intel.
Informações relacionadas · Segurança de produtos na Intel · Avisos do Intel Product Security Center
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
1. Segurança do dispositivo Intel Agilex® 7 encerradaview 683823 | 2023.05.23
1.2. Recursos de segurança planejados
Os recursos mencionados nesta seção estão planejados para uma versão futura do software Intel Quartus Prime Pro Edition.
Observação:
As informações nesta seção são preliminares.
1.2.1. Verificação de segurança de fluxo de bits de reconfiguração parcial
A validação de segurança de fluxo de bits de reconfiguração parcial (PR) ajuda a fornecer garantia adicional de que os fluxos de bits de persona PR não podem acessar ou interferir em outros fluxos de bits de persona PR.
1.2.2. Auto-morte do dispositivo para anti-T físicoamper
A auto-eliminação do dispositivo executa uma resposta de limpeza ou zeragem do dispositivo e, adicionalmente, programa eFuses para evitar que o dispositivo seja configurado novamente.
1.3. Documentação de segurança disponível
A tabela a seguir enumera a documentação disponível para recursos de segurança de dispositivos em dispositivos Intel FPGA e ASIC estruturados:
Tabela 1.
Documentação de segurança de dispositivo disponível
Nome do documento
Guia do usuário de metodologia de segurança para FPGAs Intel e ASICs estruturados
Propósito
Documento de nível superior que contém descrições detalhadas dos recursos e tecnologias de segurança dos produtos de soluções programáveis Intel. Destinado a ajudá-lo a selecionar os recursos de segurança necessários para atender aos seus objetivos de segurança.
Documento de identificação 721596
Guia do usuário de segurança de dispositivos Intel Stratix 10
Guia do usuário de segurança de dispositivos Intel Agilex 7
Para usuários de dispositivos Intel Stratix 10, este guia contém instruções para usar o software Intel Quartus Prime Pro Edition para implementar os recursos de segurança identificados usando o Guia do usuário da metodologia de segurança.
Para usuários de dispositivos Intel Agilex 7, este guia contém instruções para usar o software Intel Quartus Prime Pro Edition para implementar os recursos de segurança identificados usando o Guia do usuário da metodologia de segurança.
683642 683823
Guia do usuário de segurança do dispositivo Intel eASIC N5X
Para usuários de dispositivos Intel eASIC N5X, este guia contém instruções para usar o software Intel Quartus Prime Pro Edition para implementar os recursos de segurança identificados usando o Guia do usuário da metodologia de segurança.
626836
Guia do usuário dos serviços criptográficos Intel Agilex 7 e Intel eASIC N5X HPS
Este guia contém informações para auxiliar os engenheiros de software HPS na implementação e uso de bibliotecas de software HPS para acessar serviços criptográficos fornecidos pelo SDM.
713026
Guia de início rápido do serviço de provisionamento de chave preta AN-968
Este guia contém um conjunto completo de etapas para configurar o serviço Black Key Provisioning.
739071
Localização de recursos Intel e
Centro de Design
Intel.com
Intel.com
Centro de Recursos e Design da Intel
Centro de Recursos e Design da Intel
Centro de Recursos e Design da Intel
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 5
683823 | 2023.05.23 Enviar comentários
Para ativar os recursos de autenticação de um dispositivo Intel Agilex 7, comece usando o software Intel Quartus Prime Pro Edition e ferramentas associadas para criar uma cadeia de assinaturas. Uma cadeia de assinatura consiste em uma chave raiz, uma ou mais chaves de assinatura e autorizações aplicáveis. Você aplica a cadeia de assinaturas ao seu projeto Intel Quartus Prime Pro Edition e à programação compilada fileS. Use as instruções em Provisionamento de dispositivos para programar sua chave raiz em dispositivos Intel Agilex 7.
Informações relacionadas
Provisionamento de dispositivos na página 25
2.1. Criando uma cadeia de assinaturas
Você pode usar a ferramenta quartus_sign ou a implementação de referência ágilx_sign.py para realizar operações de cadeia de assinaturas. Este documento fornece examparquivos usando quartus_sign.
Para usar a implementação de referência, você substitui uma chamada ao interpretador Python incluído no software Intel Quartus Prime e omite a opção –family=agilex; todas as outras opções são equivalentes. Para example, o comando quartus_sign encontrado posteriormente nesta seção
quartus_sign –family=agilex –operation=make_root root_public.pem root.qky pode ser convertido na chamada equivalente para a implementação de referência como segue
pgm_py ágilx_sign.py –operação=make_root root_public.pem root.qky
O software Intel Quartus Prime Pro Edition inclui as ferramentas quartus_sign, pgm_py e ágilx_sign.py. Você pode usar a ferramenta shell de comando Nios® II, que define automaticamente as variáveis de ambiente apropriadas para acessar as ferramentas.
Siga estas instruções para abrir um shell de comando do Nios II. 1. Abra um shell de comando do Nios II.
Opção janelas
Linux
Descrição
No menu Iniciar, aponte para Programas Intel FPGA Nios II EDS e clique em Nios II Comando Shell.
Em um shell de comando, mude para o /nios2eds e execute o seguinte comando:
./nios2_command_shell.sh
O exampOs arquivos nesta seção assumem cadeia de assinatura e fluxo de bits de configuração files estão localizados no diretório de trabalho atual. Se você optar por seguir o examples onde chave files são mantidos no file sistema, aqueles exampvamos assumir a chave files são
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
2. Autenticação e Autorização 683823 | 2023.05.23
localizado no diretório de trabalho atual. Você pode escolher quais diretórios usar, e as ferramentas oferecem suporte relativo file caminhos. Se você optar por manter a chave fileestá no file sistema, você deve gerenciar cuidadosamente as permissões de acesso a esses files.
A Intel recomenda que um Módulo de Segurança de Hardware (HSM) disponível comercialmente seja usado para armazenar chaves criptográficas e executar operações criptográficas. A ferramenta quartus_sign e a implementação de referência incluem uma Interface de Programação de Aplicativo (API) do Padrão de Criptografia de Chave Pública #11 (PKCS #11) para interagir com um HSM enquanto executa operações de cadeia de assinatura. A implementação de referência ágilx_sign.py inclui um resumo da interface, bem como um exampinterface para SoftHSM.
Você pode usar esses examparquivo interfaces para implementar uma interface para seu HSM. Consulte a documentação do seu fornecedor de HSM para obter mais informações sobre como implementar uma interface e operar seu HSM.
SoftHSM é uma implementação de software de um dispositivo criptográfico genérico com interface PKCS #11 que é disponibilizado pelo projeto OpenDNSSEC®. Você pode encontrar mais informações, incluindo instruções sobre como baixar, construir e instalar o OpenHSM, no projeto OpenDNSSEC. O exampOs arquivos nesta seção utilizam SoftHSM versão 2.6.1. O exampOs arquivos nesta seção usam adicionalmente o utilitário pkcs11-tool do OpenSC para executar operações PKCS #11 adicionais com um token SoftHSM. Você pode encontrar mais informações, incluindo instruções sobre como baixar, construir e instalar o pkcs11tool do OpenSC.
Informações relacionadas
· O projeto OpenDNSSEC Assinante de zona baseado em políticas para automatizar o processo de rastreamento de chaves DNSSEC.
· SoftHSM Informações sobre a implementação de um armazenamento criptográfico acessível através de uma interface PKCS #11.
· OpenSC Fornece um conjunto de bibliotecas e utilitários capazes de trabalhar com cartões inteligentes.
2.1.1. Criando pares de chaves de autenticação no local File Sistema
Você usa a ferramenta quartus_sign para criar pares de chaves de autenticação no local file sistema usando as operações da ferramenta make_private_pem e make_public_pem. Primeiro você gera uma chave privada com a operação make_private_pem. Você especifica a curva elíptica a ser usada, a chave privada filenome e, opcionalmente, se deseja proteger a chave privada com uma senha. A Intel recomenda o uso da curva secp384r1 e seguir as práticas recomendadas do setor para criar uma senha forte e aleatória em todas as chaves privadas. fileS. A Intel também recomenda restringir o file permissões do sistema na chave privada .pem files para leitura apenas pelo proprietário. Você deriva a chave pública da chave privada com a operação make_public_pem. É útil nomear a chave .pem fileé descritivamente. Este documento usa a convenção _ .pem no seguinte examples.
1. No shell de comando do Nios II, execute o seguinte comando para criar uma chave privada. A chave privada, mostrada abaixo, é usada como chave raiz em ex.amparquivos que criam uma cadeia de assinaturas. Os dispositivos Intel Agilex 7 suportam múltiplas chaves raiz, então você
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 7
2. Autenticação e Autorização 683823 | 2023.05.23
repita esta etapa para criar o número necessário de chaves raiz. ExampTodos os arquivos neste documento se referem à primeira chave raiz, embora você possa construir cadeias de assinaturas de maneira semelhante com qualquer chave raiz.
Opção com senha
Descrição
quartus_sign –family=agilex –operation=make_private_pem –curve=secp384r1 root0_private.pem Insira a senha quando solicitado.
Sem senha
quartus_sign –family=agilex –operação=make_private_pem –curve=secp384r1 –no_passphrase root0_private.pem
2. Execute o seguinte comando para criar uma chave pública usando a chave privada gerada na etapa anterior. Você não precisa proteger a confidencialidade de uma chave pública.
quartus_sign –família=agilex –operação=make_public_pem root0_private.pem root0_public.pem
3. Execute os comandos novamente para criar um par de chaves usado como chave de assinatura de design na cadeia de assinaturas.
quartus_sign –family=agilex –operação=make_private_pem –curve=secp384r1 design0_sign_private.pem
quartus_sign –family=agilex –operação=make_public_pem design0_sign_private.pem design0_sign_public.pem
2.1.2. Criando pares de chaves de autenticação no SoftHSM
O ex do SoftHSMampOs arquivos deste capítulo são autoconsistentes. Certos parâmetros dependem da instalação do SoftHSM e da inicialização do token no SoftHSM.
A ferramenta quartus_sign depende da biblioteca API PKCS #11 do seu HSM.
O exampOs arquivos nesta seção assumem que a biblioteca SoftHSM está instalada em um dos seguintes locais: · /usr/local/lib/softhsm2.so no Linux · C:SoftHSM2libsofthsm2.dll na versão de 32 bits do Windows · C:SoftHSM2libsofthsm2-x64 .dll na versão de 64 bits do Windows.
Inicialize um token no SoftHSM usando a ferramenta softhsm2-util:
softhsm2-util –init-token –label agilix-token –pin agilx-token-pin –so-pin agilx-so-pin –free
Os parâmetros da opção, particularmente o rótulo do token e o pin do token, são exampusados ao longo deste capítulo. A Intel recomenda que você siga as instruções do seu fornecedor de HSM para criar e gerenciar tokens e chaves.
Você cria pares de chaves de autenticação usando o utilitário pkcs11-tool para interagir com o token no SoftHSM. Em vez de se referir explicitamente à chave privada e pública .pem fileestá no file sistema examparquivos, você se refere ao par de chaves pelo seu rótulo e a ferramenta seleciona a chave apropriada automaticamente.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 8
Enviar feedback
2. Autenticação e Autorização 683823 | 2023.05.23
Execute os seguintes comandos para criar um par de chaves usado como chave raiz posteriormenteamparquivos, bem como um par de chaves usado como chave de assinatura de design na cadeia de assinatura:
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label agilix-token –login –pin agilix-token-pin –keypairgen –mecanismo ECDSA-KEY-PAIR-GEN –tipo-chave EC :secp384r1 –sinal de uso –label root0 –id 0
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label agilix-token –login –pin agilix-token-pin –keypairgen –mecanismo ECDSA-KEY-PAIR-GEN –tipo-chave EC :secp384r1 –sinal de uso –design do rótulo0_sinal –id 1
Observação:
A opção ID nesta etapa deve ser exclusiva para cada chave, mas é usada apenas pelo HSM. Esta opção de ID não está relacionada ao ID de cancelamento de chave atribuído na cadeia de assinatura.
2.1.3. Criando a entrada raiz da cadeia de assinaturas
Converta a chave pública raiz em uma entrada raiz da cadeia de assinaturas, armazenada no local file sistema no formato Intel Quartus Prime key (.qky) file, com a operação make_root. Repita esta etapa para cada chave raiz gerada.
Execute o seguinte comando para criar uma cadeia de assinaturas com uma entrada raiz, usando uma chave pública raiz do file sistema:
quartus_sign –family=agilex –operação=make_root –key_type=proprietário root0_public.pem root0.qky
Execute o seguinte comando para criar uma cadeia de assinaturas com uma entrada raiz, usando a chave raiz do token SoftHSM estabelecido na seção anterior:
quartus_sign –family=agilex –operação=make_root –key_type=owner –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so ”root0 root0.qky
2.1.4. Criando uma entrada de chave pública de cadeia de assinatura
Crie uma nova entrada de chave pública para uma cadeia de assinaturas com a operação append_key. Você especifica a cadeia de assinaturas anterior, a chave privada para a última entrada na cadeia de assinaturas anterior, a chave pública do próximo nível, as permissões e o ID de cancelamento atribuídos à chave pública do próximo nível e a nova cadeia de assinaturas file.
Observe que a biblioteca softHSM não está disponível na instalação do Quartus e precisa ser instalada separadamente. Para obter mais informações sobre softHSM, consulte a seção Criando uma cadeia de assinaturas acima.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 9
2. Autenticação e Autorização 683823 | 2023.05.23
Dependendo do uso das teclas no file sistema ou em um HSM, você usa um dos seguintes example comandos para anexar a chave pública design0_sign à cadeia de assinatura raiz criada na seção anterior:
quartus_sign –family=agilex –operação=append_key –previous_pem=root0_private.pem –previous_qky=root0.qky –permission=6 –cancel=0 –input_pem=design0_sign_public.pem design0_sign_chain.qky
quartus_sign –family=agilex –operação=append_key –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –previous_keyname= root0 –previous_qky=root0.qky –permission=6 –cancel=0 –input_keyname=design0_sign design0_sign_chain.qky
Você pode repetir a operação append_key até mais duas vezes para um máximo de três entradas de chave pública entre a entrada raiz e a entrada do bloco de cabeçalho em qualquer cadeia de assinatura.
O seguinte example assume que você criou outra chave pública de autenticação com as mesmas permissões e ID de cancelamento atribuído 1 chamada design1_sign_public.pem, e está anexando esta chave à cadeia de assinatura do ex anteriorampem:
quartus_sign –family=agilex –operação=append_key –previous_pem=design0_sign_private.pem –previous_qky=design0_sign_chain.qky –permission=6 –cancel=1 –input_pem=design1_sign_public.pem design1_sign_chain.qky
quartus_sign –family=agilex –operação=append_key –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –previous_keyname= design0_sign –previous_qky=design0_sign_chain.qky –permission=6 –cancel=1 –input_keyname=design1_sign design1_sign_chain.qky
Os dispositivos Intel Agilex 7 incluem um contador adicional de cancelamento de chave para facilitar o uso de uma chave que pode mudar periodicamente durante a vida útil de um determinado dispositivo. Você pode selecionar este contador de cancelamento de chave alterando o argumento da opção –cancel para pts:pts_value.
2.2. Assinando um Bitstream de Configuração
Os dispositivos Intel Agilex 7 suportam contadores de número de versão de segurança (SVN), que permitem revogar a autorização de um objeto sem cancelar uma chave. Você atribui o contador SVN e o valor apropriado do contador SVN durante a assinatura de qualquer objeto, como uma seção de fluxo de bits, firmware .zip fileou certificado compacto. Você atribui o contador SVN e o valor SVN usando a opção –cancel e svn_counter:svn_value como argumento. Os valores válidos para svn_counter são svnA, svnB, svnC e svnD. O svn_value é um número inteiro dentro do intervalo [0,63].
Guia do usuário de segurança de dispositivos Intel Agilex® 7 10
Enviar feedback
2. Autenticação e Autorização 683823 | 2023.05.23
2.2.1. Chave Quartus File Atribuição
Você especifica uma cadeia de assinaturas em seu projeto de software Intel Quartus Prime para ativar o recurso de autenticação para esse design. No menu Atribuições, selecione Dispositivo Dispositivo e Opções de Pin Segurança Quartus Key Filee navegue até a cadeia de assinaturas .qky file você criou para assinar este design.
Figura 1. Habilitar configuração de fluxo de bits
Alternativamente, você pode adicionar a seguinte declaração de atribuição às configurações do Intel Quartus Prime file (.qsf):
set_global_assignment -nome QKY_FILE design0_sign_chain.qky
Para gerar um .sof file a partir de um projeto previamente compilado, que inclui esta configuração, no menu Processamento, selecione Iniciar Iniciar Assembler. A nova saída .sof file inclui as atribuições para permitir a autenticação com a cadeia de assinaturas fornecida.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 11
2. Autenticação e Autorização 683823 | 2023.05.23
2.2.2. Co-assinatura de firmware SDM
Você usa a ferramenta quartus_sign para extrair, assinar e instalar o firmware SDM aplicável .zip file. O firmware co-assinado é então incluído pela programação file ferramenta geradora quando você converte .sof file em um fluxo de bits de configuração .rbf file. Você usa os comandos a seguir para criar uma nova cadeia de assinaturas e assinar o firmware SDM.
1. Crie um novo par de chaves de assinatura.
a. Crie um novo par de chaves de assinatura no file sistema:
quartus_sign –family=agilex –operação=make_private_pem –curve=secp384r1 firmware1_private.pem
quartus_sign –família=agilex –operação=make_public_pem firmware1_private.pem firmware1_public.pem
b. Crie um novo par de chaves de assinatura no HSM:
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label ágil-token –login –pin agilx-token-pin –keypairgen -mecanismo ECDSA-KEY-PAIR-GEN –tipo-chave EC :secp384r1 –sinal de uso –rótulo firmware1 –id 1
2. Crie uma nova cadeia de assinaturas contendo a nova chave pública:
quartus_sign –family=agilex –operação=append_key –previous_pem=root0_private.pem –previous_qky=root0.qky –permission=0x1 –cancel=1 –input_pem=firmware1_public.pem firmware1_sign_chain.qky
quartus_sign –family=agilex –operação=append_key –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –previous_keyname= root0 –previous_qky=root0.qky –permission=1 –cancel=1 –input_keyname=firmware1 firmware1_sign_chain.qky
3. Copie o firmware .zip file do diretório de instalação do software Intel Quartus Prime Pro Edition ( /devices/programmer/firmware/agilex.zip) para o diretório de trabalho atual.
quartus_sign –family=agilex –get_firmware=.
4. Assine o firmware .zip file. A ferramenta descompacta automaticamente o .zip file e assina individualmente todo firmware .cmf files e, em seguida, reconstrói o .zip file para uso pelas ferramentas nas seguintes seções:
quartus_sign –família=agilex –operação=sinal –qky=firmware1_sign_chain.qky –cancel=svnA:0 –pem=firmware1_private.pem ágilx.zip assinado_agilex.zip
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so”
Guia do usuário de segurança de dispositivos Intel Agilex® 7 12
Enviar feedback
2. Autenticação e Autorização 683823 | 2023.05.23
–keyname=firmware1 –cancel=svnA:0 –qky=firmware1_sign_chain.qky ágilx.zip assinado_agilex.zip
2.2.3. Assinando Bitstream de configuração usando o comando quartus_sign
Para assinar um fluxo de bits de configuração usando o comando quartus_sign, primeiro você converte o .sof file para o binário bruto não assinado file (.rbf) formato. Opcionalmente, você pode especificar firmware co-assinado usando a opção fw_source durante a etapa de conversão.
Você pode gerar o fluxo de bits bruto não assinado no formato .rbf usando o seguinte comando:
quartus_pfg c o fw_source=signed_agilex.zip -o sign_later=ON design.sof unsigned_bitstream.rbf
Execute um dos seguintes comandos para assinar o bitstream usando a ferramenta quartus_sign dependendo da localização de suas chaves:
quartus_sign –family=agilex –operação=sinal –qky=design0_sign_chain.qky –pem=design0_sign_private.pem –cancel=svnA:0 unsigned_bitstream.rbf assinado_bitstream.rbf
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname= design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_bitstream.rbf assinado_bitstream.rbf
Você pode converter .rbf assinado files para outro fluxo de bits de configuração file formatos.
Por exemploamparquivo, se você estiver usando o reprodutor Jam* Standard Test and Programming Language (STAPL) para programar um fluxo de bits sobre JTAG, você usa o seguinte comando para converter um .rbf file para o formato .jam exigido pelo Jam STAPL Player:
quartus_pfg -c assinado_bitstream.rbf assinado_bitstream.jam
2.2.4. Suporte multiautoridade para reconfiguração parcial
Os dispositivos Intel Agilex 7 suportam autenticação de múltiplas autoridades de reconfiguração parcial, onde o proprietário do dispositivo cria e assina o fluxo de bits estático, e um proprietário de PR separado cria e assina fluxos de bits pessoais de PR. Os dispositivos Intel Agilex 7 implementam suporte multiautoridade atribuindo os primeiros slots de chave raiz de autenticação ao dispositivo ou proprietário do fluxo de bits estático e atribuindo o slot de chave raiz de autenticação final ao proprietário do fluxo de bits pessoal de reconfiguração parcial.
Se o recurso de autenticação estiver ativado, todas as imagens de persona de RP deverão ser assinadas, incluindo imagens de persona de RP aninhadas. As imagens da persona PR podem ser assinadas pelo proprietário do dispositivo ou pelo proprietário do PR; entretanto, os fluxos de bits da região estática devem ser assinados pelo proprietário do dispositivo.
Observação:
A criptografia de fluxo de bits estática e pessoal de reconfiguração parcial quando o suporte a múltiplas autoridades está habilitado está planejada para uma versão futura.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 13
2. Autenticação e Autorização 683823 | 2023.05.23
Figura 2.
A implementação do suporte multiautoridade à reconfiguração parcial requer várias etapas:
1. O dispositivo ou proprietário do fluxo de bits estático gera uma ou mais chaves raiz de autenticação conforme descrito em Criando pares de chaves de autenticação no SoftHSM na página 8, onde a opção –key_type tem o valor proprietário.
2. O proprietário do fluxo de bits de reconfiguração parcial gera uma chave raiz de autenticação, mas altera o valor da opção –key_type para secundário_proprietário.
3. Os proprietários do design de fluxo de bits estático e de reconfiguração parcial garantem que a caixa de seleção Habilitar suporte a múltiplas autoridades esteja habilitada na guia Segurança de opções de dispositivo e dispositivo de atribuições.
Intel Quartus Prime ativar configurações de opção de múltiplas autoridades
4. Os proprietários do design de fluxo de bits estático e de reconfiguração parcial criam cadeias de assinaturas com base em suas respectivas chaves raiz, conforme descrito em Criando uma cadeia de assinaturas na página 6.
5. Os proprietários do projeto de fluxo de bits estático e de reconfiguração parcial convertem seus projetos compilados para o formato .rbf files e assine o .rbf files.
6. O dispositivo ou proprietário do fluxo de bits estático gera e assina um certificado compacto de autorização do programa de chave pública PR.
quartus_pfg –ccert ou ccert_type=PR_PUBKEY_PROG_AUTH ou proprietário_qky_file=”root0.qky;root1.qky”unsigned_pr_pubkey_prog.ccert
quartus_sign –family=agilex –operação=sinal –qky=design0_sign_chain.qky –pem=design0_sign_private.pem –cancel=svnA:0 unsigned_pr_pubkey_prog.ccert assinado_pr_pubkey_prog.ccert
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=s10-token –user_pin=s10-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname= design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_pr_pubkey_prog.ccert assinado_pr_pubkey_prog.ccert
Guia do usuário de segurança de dispositivos Intel Agilex® 7 14
Enviar feedback
2. Autenticação e Autorização 683823 | 2023.05.23
7. O dispositivo ou proprietário do fluxo de bits estático provisiona seus hashes de chave raiz de autenticação para o dispositivo, depois programa o certificado compacto de autorização do programa de chave pública PR e, finalmente, provisiona a chave raiz do proprietário do fluxo de bits de reconfiguração parcial para o dispositivo. A seção Provisionamento de dispositivos descreve esse processo de provisionamento.
8. O dispositivo Intel Agilex 7 está configurado com a região estática .rbf file.
9. O dispositivo Intel Agilex 7 foi parcialmente reconfigurado com o design persona .rbf file.
Informações relacionadas
· Criando uma Cadeia de Assinaturas na página 6
· Criando pares de chaves de autenticação no SoftHSM na página 8
· Provisionamento de dispositivos na página 25
2.2.5. Verificando cadeias de assinatura Bitstream de configuração
Depois de criar cadeias de assinaturas e fluxos de bits assinados, você poderá verificar se um fluxo de bits assinado configura corretamente um dispositivo programado com uma determinada chave raiz. Você primeiro usa a operação fuse_info do comando quartus_sign para imprimir o hash da chave pública raiz em um texto file:
quartus_sign –família=agilex –operação=fuse_info root0.qky hash_fuse.txt
Em seguida, você usa a opção check_integrity do comando quartus_pfg para inspecionar a cadeia de assinaturas em cada seção de um fluxo de bits assinado no formato .rbf. A opção check_integrity imprime as seguintes informações:
· Status da verificação geral de integridade do fluxo de bits
· Conteúdo de cada entrada em cada cadeia de assinatura anexada a cada seção no bitstream .rbf file,
· Valor esperado do fusível para o hash da chave pública raiz para cada cadeia de assinatura.
O valor da saída fuse_info deve corresponder às linhas de fusível na saída check_integrity.
quartus_pfg –check_integridade assinado_bitstream.rbf
Aqui está um examparquivo da saída do comando check_integrity:
Informações: Comando: quartus_pfg –check_integrity Signed_bitstream.rbf Status de integridade: OK
Seção
Tipo: CMF
Descritor de assinatura…
Cadeia de assinatura #0 (entradas: -1, deslocamento: 96)
Entrada #0
Fuse: 34FD3B5F 7829001F DE2A24C7 3A7EAE29 C7786DB1 D6D5BC3C 52741C79
72978B22 0731B082 6F596899 40F32048 AD766A24
Gerar chave…
Curva: secp384r1
X
: 29C39C3064AE594A36DAA85602D6AF0B278CBB0B207C4D97CFB6967961E5F0ECA
456FF53F5DBB3A69E48A042C62AB6B0
Y
: 3E81D40CBBBEAC13601247A9D53F4A831308A24CA0BDFFA40351EE76438C7B5D2
2826F7E94A169023AFAE1D1DF4A31C2
Gerar chave…
Curva: secp384r1
X
: 29C39C3064AE594A36DAA85602D6AF0B278CBB0B207C4D97CFB6967961E5F0ECA
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 15
2. Autenticação e Autorização 683823 | 2023.05.23
456FF53F5DBB3A69E48A042C62AB6B0
Y
: 3E81D40CBBBEAC13601247A9D53F4A831308A24CA0BDFFA40351EE76438C7B5D2
2826F7E94A169023AFAE1D1DF4A31C2
Entrada #1
Gerar chave…
Curva: secp384r1
X
: 015290C556F1533E5631322953E2F9E91258472F43EC954E05D6A4B63D611E04B
C120C7E7A744C357346B424D52100A9
Y
: 68696DEAC4773FF3D5A16A4261975424AAB4248196CF5142858E016242FB82BC5
08A80F3FE7F156DEF0AE5FD95BDFE05
Entrada nº 2 Permissão de chaveiro: SIGN_CODE O chaveiro pode ser cancelado pelo ID: 3 Cadeia de assinatura nº 1 (entradas: -1, deslocamento: 648)
Entrada #0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Entrada #1
Gerar chave…
Curva: secp384r1
X
: 1E8FBEDC486C2F3161AFEB028D0C4B426258293058CD41358A164C1B1D60E5C1D
74D982BC20A4772ABCD0A1848E9DC96
Y
: 768F1BF95B37A3CC2FFCEEB071DD456D14B84F1B9BFF780FC5A72A0D3BE5EB51D
0DA7C6B53D83CF8A775A8340BD5A5DB
Entrada #2
Gerar chave…
Curva: secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
Entrada nº 3 Permissão de chaveiro: SIGN_CODE O chaveiro pode ser cancelado pelo ID: 15 Cadeia de assinatura nº 2 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 3 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 4 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 5 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 6 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 7 (entradas: -1, deslocamento: 0)
Tipo de seção: Descritor de assinatura IO… Cadeia de assinatura #0 (entradas: -1, deslocamento: 96)
Entrada #0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Guia do usuário de segurança de dispositivos Intel Agilex® 7 16
Enviar feedback
2. Autenticação e Autorização 683823 | 2023.05.23
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Entrada #1
Gerar chave…
Curva: secp384r1
X
: 646B51F668D8CC365D72B89BA8082FDE79B00CDB750DA0C984DC5891CDF57BD21
44758CA747B1A8315024A8247F12E51
Y
: 53513118E25E16151FD55D7ECDE8293AF6C98A74D52E0DA2527948A64FABDFE7C
F4EA8B8E229218D38A869EE15476750
Entrada #2
Gerar chave…
Curva: secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
Entrada nº 3 Permissão de chaveiro: SIGN_CORE O chaveiro pode ser cancelado pelo ID: 15 Cadeia de assinatura nº 1 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 2 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 3 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 4 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 5 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 6 (entradas: -1, deslocamento: 0) Assinatura cadeia #7 (entradas: -1, deslocamento: 0)
Seção
Tipo: HPS
Descritor de assinatura…
Cadeia de assinatura #0 (entradas: -1, deslocamento: 96)
Entrada #0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Entrada #1
Gerar chave…
Curva: secp384r1
X
: FAF423E08FB08D09F926AB66705EB1843C7C82A4391D3049A35E0C5F17ACB1A30
09CE3F486200940E81D02E2F385D150
Y
: 397C0DA2F8DD6447C52048CD0FF7D5CCA7F169C711367E9B81E1E6C1E8CD9134E
5AC33EE6D388B1A895AC07B86155E9D
Entrada #2
Gerar chave…
Curva: secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 17
2. Autenticação e Autorização 683823 | 2023.05.23
Entrada nº 3 Permissão de chaveiro: SIGN_HPS O chaveiro pode ser cancelado pelo ID: 15 Cadeia de assinatura nº 1 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 2 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 3 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 4 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 5 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 6 (entradas: -1, deslocamento: 0) Assinatura cadeia #7 (entradas: -1, deslocamento: 0)
Tipo de seção: Descritor de assinatura CORE… Cadeia de assinatura #0 (entradas: -1, deslocamento: 96)
Entrada #0
Fuse: FA6528BE 9281F2DB B787E805 6BF6EE0E 28983C56 D568B141 8EEE4BF6
DAC2D422 0A3A0F27 81EFC6CD 67E973BF AC286EAE
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Gerar chave…
Curva: secp384r1
X
: 47A453474A8D886AB058615EB1AB38A75BAC9F0C46E564CB5B5DCC1328244E765
0411C4592FAFFC71DE36A105B054781
Y
: 6087D3B4A5C8646B4DAC6B5C863CD0E705BD0C9D2C141DE4DE7BDDEB85C0410D8
6B7312EEE8241189474262629501FCD
Entrada #1
Gerar chave…
Curva: secp384r1
X
: 646B51F668D8CC365D72B89BA8082FDE79B00CDB750DA0C984DC5891CDF57BD21
44758CA747B1A8315024A8247F12E51
Y
: 53513118E25E16151FD55D7ECDE8293AF6C98A74D52E0DA2527948A64FABDFE7C
F4EA8B8E229218D38A869EE15476750
Entrada #2
Gerar chave…
Curva: secp384r1
X
: 13986DDECAB697A2EB26B8EBD25095A8CC2B1A0AB0C766D029CDF2AFE21BE3432
76896E771A9C6CA5A2D3C08CF4CB83C
Y
: 0A1384E9DD209238FF110D867B557414955354EE6681D553509A507A78CFC05A1
49F91CABA72F6A3A1C2D1990CDAEA3D
Entrada nº 3 Permissão de chaveiro: SIGN_CORE O chaveiro pode ser cancelado pelo ID: 15 Cadeia de assinatura nº 1 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 2 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 3 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 4 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 5 (entradas: -1, deslocamento: 0) Cadeia de assinatura nº 6 (entradas: -1, deslocamento: 0) Assinatura cadeia #7 (entradas: -1, deslocamento: 0)
Guia do usuário de segurança de dispositivos Intel Agilex® 7 18
Enviar feedback
683823 | 2023.05.23 Enviar comentários
Criptografia de fluxo de bits AES
A criptografia de fluxo de bits do Advanced Encryption Standard (AES) é um recurso que permite ao proprietário de um dispositivo proteger a confidencialidade da propriedade intelectual em um fluxo de bits de configuração.
Para ajudar a proteger a confidencialidade das chaves, a criptografia de fluxo de bits de configuração usa uma cadeia de chaves AES. Essas chaves são usadas para criptografar os dados do proprietário no fluxo de bits de configuração, onde a primeira chave intermediária é criptografada com a chave raiz AES.
3.1. Criando a chave raiz AES
Você pode usar a ferramenta quartus_encrypt ou a implementação de referência stratix10_encrypt.py para criar uma chave raiz AES no formato de chave de criptografia do software Intel Quartus Prime (.qek). file.
Observação:
O stratix10_encrypt.py file é usado para dispositivos Intel Stratix® 10 e Intel Agilex 7.
Opcionalmente, você pode especificar a chave base usada para derivar a chave raiz AES e a chave de derivação de chave, o valor da chave raiz AES diretamente, o número de chaves intermediárias e o uso máximo por chave intermediária.
Você deve especificar a família do dispositivo, saída .qek file localização e senha quando solicitado.
Execute o comando a seguir para gerar a chave raiz AES usando dados aleatórios para a chave base e valores padrão para o número de chaves intermediárias e uso máximo da chave.
Para usar a implementação de referência, você substitui uma chamada ao interpretador Python incluído no software Intel Quartus Prime e omite a opção –family=agilex; todas as outras opções são equivalentes. Para example, o comando quartus_encrypt encontrado posteriormente na seção
quartus_encrypt –family=agilex –operação=MAKE_AES_KEY aes_root.qek
pode ser convertido na chamada equivalente para a implementação de referência como segue pgm_py stratix10_encrypt.py –operation=MAKE_AES_KEY aes_root.qek
3.2. Configurações de criptografia Quartus
Para ativar a criptografia de fluxo de bits para um projeto, você deve especificar as opções apropriadas usando o painel Atribuições de Dispositivo e Opções de Pin Segurança. Você seleciona a caixa de seleção Habilitar criptografia de fluxo de bits de configuração e o local de armazenamento da chave de criptografia desejado no menu suspenso.
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
Figura 3. Configurações de criptografia do Intel Quartus Prime
3. Criptografia de fluxo de bits AES 683823 | 2023.05.23
Alternativamente, você pode adicionar a seguinte declaração de atribuição às configurações do Intel Quartus Prime file .qsf:
set_global_assignment -name ENCRYPT_PROGRAMMING_BITSTREAM em set_global_assignment -name PROGRAMMING_BITSTREAM_ENCRYPTION_KEY_SELECT eFuses
Se quiser habilitar mitigações adicionais contra vetores de ataque de canal lateral, você pode habilitar o menu suspenso Proporção de atualização de criptografia e a caixa de seleção Habilitar embaralhamento.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 20
Enviar feedback
3. Criptografia de fluxo de bits AES 683823 | 2023.05.23
As alterações correspondentes no .qsf são:
set_global_assignment -name PROGRAMMING_BITSTREAM_ENCRYPTION_CNOC_SCRAMBLING em set_global_assignment -name PROGRAMMING_BITSTREAM_ENCRYPTION_UPDATE_RATIO 31
3.3. Criptografando um fluxo de bits de configuração
Você criptografa um fluxo de bits de configuração antes de assiná-lo. A programação Intel Quartus Prime File A ferramenta geradora pode criptografar e assinar automaticamente um fluxo de bits de configuração usando a interface gráfica do usuário ou a linha de comando.
Opcionalmente, você pode criar um fluxo de bits parcialmente criptografado para uso com as ferramentas quartus_encrypt e quartus_sign ou equivalentes de implementação de referência.
3.3.1. Configuração da criptografia Bitstream usando a programação File Interface Gráfica do Gerador
Você pode usar a Programação File Gerador para criptografar e assinar a imagem do proprietário.
Figura 4.
1. No Intel Quartus Prime File menu selecione Programação File Gerador. 2. Na saída Files, especifique a saída file digite para sua configuração
esquema.
Saída File Especificação
Esquema de configuração Saída file aba
Saída file tipo
3. Na entrada Files, clique em Adicionar Bitstream e navegue até seu .sof. 4. Para especificar opções de criptografia e autenticação selecione .sof e clique
Propriedades. a. Ative Ativar ferramenta de assinatura. b. Para chave privada file selecione sua chave de assinatura privada .pem file. c. Ative Finalizar criptografia.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 21
3. Criptografia de fluxo de bits AES 683823 | 2023.05.23
Figura 5.
d. Para chave de criptografia file, selecione seu AES .qek file. Entrada (.sof) File Propriedades para autenticação e criptografia
Habilitar autenticação Especifique raiz privada .pem
Habilitar criptografia Especifique a chave de criptografia
5. Para gerar o fluxo de bits assinado e criptografado, na tela de entrada FileNa guia, clique em Gerar. Caixas de diálogo de senha aparecem para você inserir sua senha para sua chave AES .qek file e assinando a chave privada .pem file. A programação file gerador cria a saída criptografada e assinada_file.rbf.
3.3.2. Configuração da criptografia Bitstream usando a programação File Interface de linha de comando do gerador
Gere um fluxo de bits de configuração criptografado e assinado no formato .rbf com a interface de linha de comando quartus_pfg:
quartus_pfg -c criptografia_enabled.sof top.rbf -o finalize_encryption=ON -o qek_file=aes_root.qek -o assinatura=ON -o pem_file=design0_sign_privado.pem
Você pode converter um fluxo de bits de configuração criptografado e assinado no formato .rbf para outro fluxo de bits de configuração file formatos.
3.3.3. Geração de fluxo de bits de configuração parcialmente criptografada usando a interface de linha de comando
Você pode gerar uma programação parcialmente criptografada file para finalizar a criptografia e assinar a imagem posteriormente. Gere a programação parcialmente criptografada file no formato .rbf com a interface de linha de comando quartus_pfg: quartus_pfg -c -o finalize_encryption_later=ON -o sign_later=ON top.sof top.rbf
Guia do usuário de segurança de dispositivos Intel Agilex® 7 22
Enviar feedback
3. Criptografia de fluxo de bits AES 683823 | 2023.05.23
Você usa a ferramenta de linha de comando quartus_encrypt para finalizar a criptografia bitstream:
quartus_encrypt –família=agilex –operação=ENCRYPT –key=aes_root.qek top.rbf criptografado_top.rbf
Você usa a ferramenta de linha de comando quartus_sign para assinar o fluxo de bits da configuração criptografada:
quartus_sign –família=agilex –operação=SIGN –qky=design0_sign_chain.qky –pem=design0_sign_private.pem –cancel=svnA:0 criptografado_top.rbf assinado_encrypted_top.rbf
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname= design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 criptografado_top.rbf assinado_encrypted_top.rbf
3.3.4. Criptografia de fluxo de bits de reconfiguração parcial
Você pode ativar a criptografia de fluxo de bits em alguns designs de FPGA Intel Agilex 7 que usam reconfiguração parcial.
Projetos de reconfiguração parcial que utilizam a reconfiguração parcial hierárquica (HPR) ou a reconfiguração parcial de atualização estática (SUPR) não suportam a criptografia de fluxo de bits. Se o seu design contiver várias regiões de RP, você deverá criptografar todas as personas.
Para ativar a criptografia de fluxo de bits de reconfiguração parcial, siga o mesmo procedimento em todas as revisões de design. 1. No Intel Quartus Prime File menu, selecione Atribuições Dispositivo Dispositivo
e segurança de opções de pin. 2. Selecione o local de armazenamento da chave de criptografia desejado.
Figura 6. Configuração de criptografia de fluxo de bits de reconfiguração parcial
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 23
3. Criptografia de fluxo de bits AES 683823 | 2023.05.23
Alternativamente, você pode adicionar a seguinte instrução de atribuição nas configurações do Quartus Prime file .qsf:
set_global_assignment -name –ENABLE_PARTIAL_RECONFIGURATION_BITSTREAM_ENCRYPTION ativado
Depois de compilar seu projeto básico e revisões, o software gera um.soffile e um ou mais.pmsffiles, representando as personas. 3. Crie programação criptografada e assinada files de.sof e.pmsf files de maneira semelhante aos designs sem reconfiguração parcial habilitada. 4. Converta o persona.pmsf compilado file para um.rbf parcialmente criptografado file:
quartus_pfg -c -o finalize_encryption_later = ON -o sign_later = ON criptografia_enabled_persona1.pmsf persona1.rbf
5. Finalize a criptografia bitstream usando a ferramenta de linha de comando quartus_encrypt:
quartus_encrypt –família=agilex –operação=ENCRYPT –key=aes_root.qek persona1.rbf criptografado_persona1.rbf
6. Assine o fluxo de bits de configuração criptografado usando a ferramenta de linha de comando quartus_sign:
quartus_sign –família=agilex –operação=SIGN –qky=design0_sign_chain.qky –pem=design0_sign_private.pem criptografado_persona1.rbf assinado_encrypted_persona1.rbf
quartus_sign –family=agilex –operação=SIGN –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –qky= design0_sign_chain.qky –cancel=svnA:0 –keyname=design0_sign criptografado_persona1.rbf assinado_encrypted_persona1.rbf
Guia do usuário de segurança de dispositivos Intel Agilex® 7 24
Enviar feedback
683823 | 2023.05.23 Enviar comentários
Provisionamento de dispositivo
O provisionamento inicial do recurso de segurança só é suportado no firmware de provisionamento do SDM. Use o programador Intel Quartus Prime para carregar o firmware de provisionamento SDM e realizar operações de provisionamento.
Você pode usar qualquer tipo de JTAG baixe o cabo para conectar o Quartus Programmer a um dispositivo Intel Agilex 7 para realizar operações de provisionamento.
4.1. Usando firmware de provisionamento SDM
O programador Intel Quartus Prime cria e carrega automaticamente uma imagem auxiliar padrão de fábrica quando você seleciona a operação de inicialização e um comando para programar algo diferente de um fluxo de bits de configuração.
Dependendo do comando de programação especificado, a imagem auxiliar padrão de fábrica é de dois tipos:
· Imagem auxiliar de provisionamento – consiste em uma seção de fluxo de bits contendo o firmware de provisionamento do SDM.
· Imagem auxiliar QSPI – consiste em duas seções de fluxo de bits, uma contendo o firmware principal do SDM e uma seção de E/S.
Você pode criar uma imagem auxiliar padrão de fábrica file para carregar em seu dispositivo antes de executar qualquer comando de programação. Depois de programar um hash de chave raiz de autenticação, você deve criar e assinar uma imagem auxiliar padrão de fábrica QSPI devido à seção de E/S incluída. Se você programar adicionalmente a configuração de segurança do firmware co-assinado eFuse, deverá criar imagens auxiliares padrão de fábrica de provisionamento e QSPI com firmware co-assinado. Você pode usar uma imagem auxiliar padrão de fábrica coassinada em um dispositivo não provisionado, pois o dispositivo não provisionado ignora cadeias de assinatura não Intel em firmware SDM. Consulte Usando a imagem auxiliar padrão de fábrica QSPI em dispositivos próprios na página 26 para obter mais detalhes sobre como criar, assinar e usar a imagem auxiliar padrão de fábrica QSPI.
A imagem auxiliar padrão de fábrica de provisionamento executa uma ação de provisionamento, como programar o hash da chave raiz de autenticação, fusíveis de configuração de segurança, registro de PUF ou provisionamento de chave preta. Você usa a programação Intel Quartus Prime File Ferramenta de linha de comando do gerador para criar a imagem auxiliar de provisionamento, especificando a opção helper_image, seu nome helper_device, o subtipo de imagem auxiliar de provisionamento e, opcionalmente, um .zip de firmware co-assinado file:
quartus_pfg –helper_image -o helper_device=AGFB014R24A -o subtype=PROVISION -o fw_source=signed_agilex.zip assinado_provision_helper_image.rbf
Programe a imagem auxiliar usando a ferramenta Intel Quartus Prime Programmer:
quartus_pgm -c 1 -mjtag -o “p;signed_provision_helper_image.rbf” –force
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
4. Provisionamento de dispositivos 683823 | 2023.05.23
Observação:
Você pode omitir a operação de inicialização dos comandos, incluindo examparquivos fornecidos neste capítulo, após programar uma imagem auxiliar de provisionamento ou usar um comando que contém a operação de inicialização.
4.2. Usando imagem auxiliar padrão de fábrica QSPI em dispositivos próprios
O programador Intel Quartus Prime cria e carrega automaticamente uma imagem auxiliar padrão de fábrica QSPI quando você seleciona a operação de inicialização para uma programação flash QSPI file. Depois de programar um hash de chave raiz de autenticação, você deve criar e assinar a imagem auxiliar padrão de fábrica QSPI e programar a imagem auxiliar de fábrica QSPI assinada separadamente antes de programar o flash QSPI. 1. Você usa a programação Intel Quartus Prime File Ferramenta de linha de comando do gerador para
crie a imagem auxiliar QSPI, especificando a opção helper_image, seu tipo helper_device, o subtipo de imagem auxiliar QSPI e, opcionalmente, um .zip de firmware co-assinado file:
quartus_pfg –helper_image -o helper_device=AGFB014R24A -o subtype=QSPI -o fw_source=signed_agilex.zip qspi_helper_image.rbf
2. Você assina a imagem auxiliar padrão de fábrica do QSPI:
quartus_sign –família=agilex –operação=sinal –qky=design0_sign_chain.qky –pem=design0_sign_private.pem qspi_helper_image.rbf assinado_qspi_helper_image.rbf
3. Você pode usar qualquer programação flash QSPI file formatar. O seguinte exampeles usam um fluxo de bits de configuração convertido para o .jic file formatar:
quartus_pfg -c assinado_bitstream.rbf assinado_flash.jic -o dispositivo=MT25QU128 -o flash_loader=AGFB014R24A -o modo=ASX4
4. Você programa a imagem auxiliar assinada usando a ferramenta Intel Quartus Prime Programmer:
quartus_pgm -c 1 -mjtag -o “p;signed_qspi_helper_image.rbf” –force
5. Você programa a imagem .jic para flash usando a ferramenta Intel Quartus Prime Programmer:
quartus_pgm -c 1 -mjtag -o “p;signed_flash.jic”
4.3. Provisionamento de chave raiz de autenticação
Para programar os hashes da chave raiz do proprietário para fusíveis físicos, primeiro você deve carregar o firmware de provisionamento, em seguida programar os hashes da chave raiz do proprietário e, em seguida, executar imediatamente uma redefinição de inicialização. Uma redefinição de inicialização não é necessária se estiver programando hashes de chave raiz para fusíveis virtuais.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 26
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Para programar hashes de chave raiz de autenticação, você programa a imagem auxiliar de firmware de provisionamento e executa um dos seguintes comandos para programar a chave raiz .qky files.
// Para eFuses físicos (não voláteis) quartus_pgm -c 1 -mjtag -o “p;root0.qky;root1.qky;root2.qky” –non_volatile_key
// Para eFuses virtuais (voláteis) quartus_pgm -c 1 -mjtag -o “p;root0.qky;root1.qky;root2.qky”
4.3.1. Programação de chave raiz multiautoridade de reconfiguração parcial
Depois de provisionar as chaves raiz do proprietário do fluxo de bits do dispositivo ou da região estática, você carrega novamente a imagem auxiliar de fornecimento do dispositivo, programa o certificado compacto de autorização do programa de chave pública PR assinado e, em seguida, provisiona a chave raiz do proprietário do fluxo de bits da persona PR.
// Para eFuses físicos (não voláteis) quartus_pgm -c 1 -mjtag -o “p;root_pr.qky” –pr_pubkey –non_volatile_key
// Para eFuses virtuais (voláteis) quartus_pgm -c 1 -mjtag -o “p;p;root_pr.qky” –pr_pubkey
4.4. Programação de fusíveis de identificação de cancelamento de chave
A partir do software Intel Quartus Prime Pro Edition versão 21.1, a programação dos fusíveis de ID de cancelamento da chave Intel e do proprietário requer o uso de um certificado compacto assinado. Você pode assinar o certificado compacto de ID de cancelamento de chave com uma cadeia de assinatura que tenha permissões de assinatura de seção FPGA. Você cria o certificado compacto com a programação file ferramenta de linha de comando do gerador. Você assina o certificado não assinado usando a ferramenta quartus_sign ou implementação de referência.
Os dispositivos Intel Agilex 7 suportam bancos separados de IDs de cancelamento de chave de proprietário para cada chave raiz. Quando um certificado compacto de ID de cancelamento de chave de proprietário é programado em um FPGA Intel Agilex 7, o SDM determina qual chave raiz assinou o certificado compacto e queima o fusível de ID de cancelamento de chave que corresponde a essa chave raiz.
O seguinte exampVocê pode criar um certificado de cancelamento de chave Intel para o ID de chave Intel 7. Você pode substituir 7 pelo ID de cancelamento de chave Intel aplicável de 0 a 31.
Execute o seguinte comando para criar um certificado compacto de ID de cancelamento de chave Intel não assinado:
quartus_pfg –ccert -o ccert_type=CANCEL_INTEL_KEY -o cancel_key=7 unsigned_cancel_intel7.ccert
Execute um dos seguintes comandos para assinar o certificado compacto de ID de cancelamento de chave Intel não assinado:
quartus_sign –family=agilex –operação=SIGN –qky=design0_sign_chain.qky –pem=design0_private.pem –cancel=svnA:0 unsigned_cancel_intel7.ccert assinado_cancel_intel7.ccert
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so”
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 27
4. Provisionamento de dispositivos 683823 | 2023.05.23
–keyname=design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_cancel_intel7.ccert assinado_cancel_intel7.ccert
Execute o seguinte comando para criar um certificado compacto de ID de cancelamento de chave de proprietário não assinado:
quartus_pfg –ccert -o ccert_type=CANCEL_OWNER_KEY -o cancel_key=2 unsigned_cancel_owner2.ccert
Execute um dos seguintes comandos para assinar o certificado compacto de ID de cancelamento de chave de proprietário não assinado:
quartus_sign –family=agilex –operação=SIGN –qky=design0_sign_chain.qky –pem=design0_private.pem –cancel=svnA:0 unsigned_cancel_owner2.ccert assinado_cancel_owner2.ccert
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname= design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_cancel_owner2.ccert assinado_cancel_owner2.ccert
Depois de criar um certificado compacto de ID de cancelamento de chave assinado, você usa o Intel Quartus Prime Programmer para programar o certificado compacto para o dispositivo via JTAG.
//Para eFuses físicos (não voláteis) quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_intel7.ccert” –non_volatile_key quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_owner2.ccert” –non_volatile_key
//Para eFuses virtuais (voláteis) quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_intel7.ccert” quartus_pgm -c 1 -mjtag -o “pi;signed_cancel_owner2.ccert”
Além disso, você pode enviar o certificado compacto para o SDM usando a interface de caixa de correio FPGA ou HPS.
4.5. Cancelando chaves raiz
Os dispositivos Intel Agilex 7 permitem cancelar os hashes de chave raiz quando outro hash de chave raiz não cancelado estiver presente. Você cancela um hash de chave raiz configurando primeiro o dispositivo com um design cuja cadeia de assinatura está enraizada em um hash de chave raiz diferente e, em seguida, programa um certificado compacto de cancelamento de hash de chave raiz assinado. Você deve assinar o certificado compacto de cancelamento de hash da chave raiz com uma cadeia de assinatura enraizada na chave raiz a ser cancelada.
Execute o seguinte comando para gerar um certificado compacto de cancelamento de hash de chave raiz não assinado:
quartus_pfg –ccert -o –ccert_type=CANCEL_KEY_HASH unsigned_root_cancel.ccert
Guia do usuário de segurança de dispositivos Intel Agilex® 7 28
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Execute um dos seguintes comandos para assinar o certificado compacto de cancelamento de hash de chave raiz não assinado:
quartus_sign –family=agilex –operação=SIGN –qky=design0_sign_chain.qky –pem=design0_private.pem –cancel=svnA:0 unsigned_root_cancel.ccert assinado_root_cancel.ccert
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –keyname= design0_sign –qky=design0_sign_chain.qky –cancel=svnA:0 unsigned_root_cancel.ccert assinado_root_cancel.ccert
Você pode programar um certificado compacto de cancelamento de hash de chave raiz via JTAG, FPGA ou caixas de correio HPS.
4.6. Programação de fusíveis de contador
Você atualiza o Número da Versão de Segurança (SVN) e o Pseudo Time Stamp (PTS) contra fusíveis usando certificados compactos assinados.
Observação:
O SDM monitora o valor mínimo do contador visto durante uma determinada configuração e não aceita certificados de incremento de contador quando o valor do contador é menor que o valor mínimo. Você deve atualizar todos os objetos atribuídos a um contador e reconfigurar o dispositivo antes de programar um certificado compacto de incremento de contador.
Execute um dos comandos a seguir que corresponde ao certificado de incremento de contador que você deseja gerar.
quartus_pfg –ccert -o ccert_type=PTS_COUNTER -o contador=<-1:495> unsigned_pts.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_A -o contador=<-1:63> unsigned_svnA.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_B -o contador=<-1:63> unsigned_svnB.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_C -o contador=<-1:63> unsigned_svnC.ccert
quartus_pfg –ccert -o ccert_type=SVN_COUNTER_D -o contador=<-1:63> unsigned_svnD.ccert
Um valor de contador 1 cria um certificado de autorização de incremento de contador. A programação de um certificado compacto de autorização de incremento de contador permite programar outros certificados de incremento de contador não assinados para atualizar o respectivo contador. Você usa a ferramenta quartus_sign para assinar os certificados compactos de contador de maneira semelhante aos certificados compactos de ID de cancelamento de chave.
Você pode programar um certificado compacto de cancelamento de hash de chave raiz via JTAG, FPGA ou caixas de correio HPS.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 29
4. Provisionamento de dispositivos 683823 | 2023.05.23
4.7. Provisionamento seguro de chave raiz do serviço de objeto de dados
Você usa o Intel Quartus Prime Programmer para provisionar a chave raiz do Secure Data Object Service (SDOS). O Programador carrega automaticamente a imagem auxiliar de firmware de provisionamento para provisionar a chave raiz SDOS.
quartus_pgm c 1mjtag –service_root_key –non_volatile_key
4.8. Configuração de segurança Provisionamento de fusíveis
Use o programador Intel Quartus Prime para examinar os fusíveis de configuração de segurança do dispositivo e gravá-los em um .fuse baseado em texto file do seguinte modo:
quartus_pgm -c 1 -mjtag -o “ei;programação_file.fusível;AGFB014R24B”
Opções · i: O Programador carrega a imagem auxiliar do firmware provisionado no dispositivo. · e: O Programador lê o fusível do dispositivo e o armazena em um .fuse file.
O fuso file contém uma lista de pares nome-valor de fusíveis. O valor especifica se um fusível queimou ou o conteúdo do campo do fusível.
O seguinte example mostra o formato do .fuse file:
# Firmware co-assinado
= “Não estourado”
# Permissão de dispositivo para matar
= “Não estourado”
# Dispositivo não seguro
= “Não estourado”
# Desabilitar depuração HPS
= “Não estourado”
# Desativar registro PUF de ID intrínseco
= “Não estourado”
# Desative JTAG
= “Não estourado”
# Desativa a chave de criptografia encapsulada em PUF
= “Não estourado”
# Desativar chave de criptografia do proprietário em BBRAM = “Não estourado”
# Desativar chave de criptografia do proprietário em eFuses = “Não estourado”
# Desativa o hash da chave pública raiz do proprietário 0
= “Não estourado”
# Desativa o hash da chave pública raiz do proprietário 1
= “Não estourado”
# Desativa o hash da chave pública raiz do proprietário 2
= “Não estourado”
# Desativar eFuses virtuais
= “Não estourado”
# Força o clock SDM para o oscilador interno = “Não estourado”
#Força atualização da chave de criptografia
= “Não estourado”
# Cancelamento de chave explícita da Intel
= “0”
# Bloquear eFuses de segurança
= “Não estourado”
# Programa de chave de criptografia do proprietário concluído
= “Não estourado”
# Início do programa de chave de criptografia do proprietário
= “Não estourado”
# Cancelamento explícito da chave do proprietário 0
= “”
# Cancelamento explícito da chave do proprietário 1
= “”
# Cancelamento explícito da chave do proprietário 2
= “”
# Proprietário fusíveis
=
“0x00000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000
0000000000000000000000”
# Hash de chave pública raiz do proprietário 0
=
“0x00000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000”
# Hash de chave pública raiz do proprietário 1
=
“0x00000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000”
# Hash de chave pública raiz do proprietário 2
=
“0x00000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000”
# Tamanho da chave pública raiz do proprietário
= “Nenhum”
# contador PTS
= “0”
#Base do contador PTS
= “0”
Guia do usuário de segurança de dispositivos Intel Agilex® 7 30
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
# Atraso na inicialização do QSPI # Contador RMA # SDMIO0 é I2C # Contador SVN A # Contador SVN B # Contador SVN C # Contador SVN D
= “10ms” = “0” = “Não soprado” = “0” = “0” = “0” = “0”
Modifique o .fuse file para definir os fusíveis de configuração de segurança desejados. Uma linha que começa com # é tratada como uma linha de comentário. Para programar um fusível de configuração de segurança, remova o # inicial e defina o valor como Queimado. Para examparquivo, para ativar o fusível de configuração de segurança do firmware co-assinado, modifique a primeira linha do fusível file para o seguinte:
Firmware co-assinado = “Queimado”
Você também pode alocar e programar os fusíveis do proprietário com base em suas necessidades.
Você pode usar o seguinte comando para realizar uma verificação em branco, programar e verificar a chave pública raiz do proprietário:
quartus_pgm -c 1 -mjtag -o “ibpv;root0.qky”
Opções · i: Carrega a imagem auxiliar de firmware de provisionamento no dispositivo. · b: Executa uma verificação em branco para verificar se os fusíveis de configuração de segurança desejados não estão
já explodiu. · p: Programa o fusível. · v: Verifica a chave programada no dispositivo.
Depois de programar o .qky file, você pode examinar as informações do fusível verificando-as novamente para garantir que tanto o hash da chave pública do proprietário quanto o tamanho da chave pública do proprietário tenham valores diferentes de zero.
Embora os campos a seguir não possam ser gravados por meio do .fuse file método, eles são incluídos durante a saída da operação de exame para verificação: · Dispositivo não seguro · Eliminação de permissão do dispositivo · Desativar hash de chave pública raiz do proprietário 0 · Desativar hash de chave pública raiz do proprietário 1 · Desativar hash de chave pública raiz do proprietário 2 · Cancelamento de chave Intel · Início do programa de chave de criptografia do proprietário · Programa de chave de criptografia do proprietário concluído · Cancelamento da chave do proprietário · Hash de chave pública do proprietário · Tamanho da chave pública do proprietário · Hash de chave pública raiz do proprietário 0 · Hash de chave pública raiz do proprietário 1 · Hash de chave pública raiz do proprietário 2
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 31
4. Provisionamento de dispositivos 683823 | 2023.05.23
· Contador PTS · Base do contador PTS · Atraso na inicialização do QSPI · Contador RMA · SDMIO0 é I2C · Contador SVN A · Contador SVN B · Contador SVN C · Contador SVN D
Use o programador Intel Quartus Prime para programar o .fuse file de volta ao dispositivo. Se você adicionar a opção i, o Programador carrega automaticamente o firmware de provisionamento para programar os fusíveis de configuração de segurança.
//Para eFuses físicos (não voláteis) quartus_pgm -c 1 -mjtag -o “pi;programação_file.fusível” –non_volatile_key
//Para eFuses virtuais (voláteis) quartus_pgm -c 1 -mjtag -o “pi;programação_file.fusível"
Você pode usar o seguinte comando para verificar se o hash da chave raiz do dispositivo é igual ao .qky fornecido no comando:
quartus_pgm -c 1 -mjtag -o “v;root0_another.qky”
Se as chaves não corresponderem, o Programador falhará com uma mensagem de erro Operação falhou.
4.9. Provisionamento de chave raiz AES
Você deve usar um certificado compacto de chave raiz AES assinado para programar uma chave raiz AES para um dispositivo Intel Agilex 7.
4.9.1. Certificado compacto de chave raiz AES
Você usa a ferramenta de linha de comando quartus_pfg para converter sua chave raiz AES .qek file no formato .ccert do certificado compacto. Você especifica o local de armazenamento de chaves ao criar o certificado compacto. Você pode usar a ferramenta quartus_pfg para criar um certificado não assinado para assinatura posterior. Você deve usar uma cadeia de assinatura com a permissão de assinatura de certificado de chave raiz AES, bit de permissão 6, habilitada para assinar com êxito um certificado compacto de chave raiz AES.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 32
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
1. Crie um par de chaves adicional usado para assinar o certificado compacto de chave AES usando um dos seguintes comandos exampos:
quartus_sign –family=agilex –operação=make_private_pem –curve=secp384r1 aesccert1_private.pem
quartus_sign –family=agilex –operação=make_public_pem aesccert1_private.pem aesccert1_public.pem
pkcs11-tool –module=/usr/local/lib/softhsm/libsofthsm2.so –token-label agilix-token –login –pin agilix-token-pin –mecanismo keypairgen ECDSA-KEY-PAIR-GEN –tipo-chave EC: secp384r1 –sinal de uso –label aesccert1 –id 2
2. Crie uma cadeia de assinatura com o bit de permissão correto definido usando um dos seguintes comandos:
quartus_sign –family=agilex –operação=append_key –previous_pem=root0_private.pem –previous_qky=root0.qky –permission=0x40 –cancel=1 –input_pem=aesccert1_public.pem aesccert1_sign_chain.qky
quartus_sign –family=agilex –operação=append_key –module=softHSM -module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so” –previous_keyname= root0 –previous_qky=root0.qky –permission=0x40 –cancel=1 –input_keyname=aesccert1 aesccert1_sign_chain.qky
3. Crie um certificado compacto AES não assinado para o local de armazenamento de chave raiz AES desejado. As seguintes opções de armazenamento de chave raiz AES estão disponíveis:
· EFUSE_WRAPPED_AES_KEY
· IID_PUF_WRAPPED_AES_KEY
· UDS_IID_PUF_WRAPPED_AES_KEY
· BBRAM_WRAPPED_AES_KEY
· BBRAM_IID_PUF_WRAPPED_AES_KEY
· BBRAM_UDS_IID_PUF_WRAPPED_AES_KEY
//Criar certificado não assinado de chave raiz eFuse AES quartus_pfg –ccert -o ccert_type=EFUSE_WRAPPED_AES_KEY -o qek_file=aes.qek não assinado_efuse1.ccert
4. Assine o certificado compacto com o comando quartus_sign ou implementação de referência.
quartus_sign –family=agilex –operação=sinal –pem=aesccert1_private.pem –qky=aesccert1_sign_chain.qky unsigned_ 1.certificado assinado_ 1.certificado
quartus_sign –family=agilex –operação=sinal –module=softHSM –module_args=”–token_label=agilex-token –user_pin=agilex-token-pin –hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so”
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 33
4. Provisionamento de dispositivos 683823 | 2023.05.23
–keyname=aesccert1 –qky=aesccert1_sign_chain.qky não assinado_ 1.certificado assinado_ 1.certificado
5. Use o Intel Quartus Prime Programmer para programar o certificado compacto de chave raiz AES para o dispositivo Intel Agilex 7 via JTAG. O padrão do programador Intel Quartus Prime é programar eFuses virtuais ao usar o tipo de certificado compacto EFUSE_WRAPPED_AES_KEY.
Você adiciona a opção –non_volatile_key para especificar fusíveis físicos de programação.
//Para chave raiz eFuse AES física (não volátil) quartus_pgm -c 1 -mjtag -o “pi;signed_efuse1.ccert” –non_volatile_key
//Para chave raiz eFuse AES virtual (volátil) quartus_pgm -c 1 -mjtag -o “pi;signed_efuse1.ccert”
//Para chave raiz BBRAM AES quartus_pgm -c 1 -mjtag -o “pi;signed_bbram1.ccert”
O firmware de provisão SDM e o firmware principal suportam a programação de certificado de chave raiz AES. Você também pode usar a interface de caixa de correio SDM da estrutura FPGA ou HPS para programar um certificado de chave raiz AES.
Observação:
O comando quartus_pgm não suporta as opções b e v para certificados compactos (.ccert).
4.9.2. Provisionamento de chave raiz Intrinsic ID® PUF AES
A implementação da chave AES empacotada com PUF de ID intrínseco inclui as seguintes etapas: 1. Inscrever o PUF de ID intrínseco via JTAG. 2. Quebrando a chave raiz AES. 3. Programar os dados auxiliares e a chave encapsulada na memória flash quad SPI. 4. Consultando o status de ativação do Intrinsic ID PUF.
O uso da tecnologia Intrinsic ID requer um contrato de licença separado com a Intrinsic ID. O software Intel Quartus Prime Pro Edition restringe as operações PUF sem a licença apropriada, como registro, agrupamento de chaves e programação de dados PUF para flash QSPI.
4.9.2.1. Inscrição PUF de ID intrínseca
Para registrar o PUF, você deve usar o firmware de fornecimento do SDM. O firmware de provisionamento deve ser o primeiro firmware carregado após um ciclo de energia e você deve emitir o comando de registro PUF antes de qualquer outro comando. O firmware de provisionamento oferece suporte a outros comandos após o registro do PUF, incluindo encapsulamento de chave raiz AES e programação quad SPI; no entanto, você deve desligar e ligar o dispositivo para carregar um fluxo de bits de configuração.
Você usa o Intel Quartus Prime Programmer para acionar o registro do PUF e gerar os dados auxiliares do PUF .puf file.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 34
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Figura 7.
Inscrição PUF de ID intrínseca
Inscrição PUF quartus_pgm
Dados auxiliares de inscrição PUF
Gerenciador de dispositivos seguros (SDM)
Dados auxiliares wrapper.puf
O Programador carrega automaticamente uma imagem auxiliar de firmware de provisionamento quando você especifica a operação i e um argumento .puf.
quartus_pgm -c 1 -mjtag -o “ei;help_data.puf;AGFB014R24A”
Se você estiver usando firmware co-assinado, programe a imagem auxiliar do firmware co-assinado antes de usar o comando de registro PUF.
quartus_pgm -c 1 -mjtag -o “p;signed_provision_helper_image.rbf” –force quartus_pgm -c 1 -mjtag -o “e;help_data.puf;AGFB014R24A”
O UDS IID PUF é registrado durante a fabricação do dispositivo e não está disponível para novo registro. Em vez disso, você usa o Programador para determinar a localização dos dados auxiliares UDS PUF no IPCS, baixe o .puf file diretamente e, em seguida, use o UDS .puf file da mesma forma que o .puf file extraído de um dispositivo Intel Agilex 7.
Use o seguinte comando do programador para gerar um texto file contendo uma lista de URLestá apontando para dispositivos específicos fileestá no IPCS:
quartus_pgm -c 1 -mjtag -o “e;ipcs_urls.txt;AGFB014R24B” –ipcs_urls
4.9.2.2. Envolvendo a chave raiz AES
Você gera a chave raiz AES encapsulada em IID PUF .wkey file enviando um certificado assinado ao SDM.
Você pode usar o Intel Quartus Prime Programmer para gerar, assinar e enviar automaticamente o certificado para agrupar sua chave raiz AES ou pode usar o Intel Quartus Prime Programming File Gerador para gerar um certificado não assinado. Você assina o certificado não assinado usando suas próprias ferramentas ou a ferramenta de assinatura Quartus. Em seguida, você usa o Programador para enviar o certificado assinado e encapsular sua chave raiz AES. O certificado assinado pode ser usado para programar todos os dispositivos que podem validar a cadeia de assinaturas.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 35
4. Provisionamento de dispositivos 683823 | 2023.05.23
Figura 8.
Envolvendo a chave AES usando o programador Intel Quartus Prime
.pem Privado
Chave
.qky
quartus_pgm
Embrulhar chave AES
Chave AES.QSKigYnature RootCPhuabilnic
Gerar chave empacotada PUF
Chave AES embrulhada
SDM
Criptografia .qek
Chave
.wkey embrulhado em PUF
Chave AES
1. Você pode gerar a chave raiz AES encapsulada em IID PUF (.wkey) com o Programador usando os seguintes argumentos:
· O .qky file contendo uma cadeia de assinatura com permissão de certificado de chave raiz AES
· O .pem privado file para a última chave na cadeia de assinaturas
· O .qek file segurando a chave raiz AES
· O vetor de inicialização de 16 bytes (iv).
quartus_pgm -c 1 -mjtag –qky_file=aes0_sign_chain.qky –pem_file=aes0_sign_private.pem –qek_file=aes.qek –iv=1234567890ABCDEF1234567890ABCDEF -o “ei;aes.wkey;AGFB014R24A”
2. Alternativamente, você pode gerar um certificado de chave raiz AES de encapsulamento IID PUF não assinado com o programador File Gerador usando os seguintes argumentos:
quartus_pfg –ccert -o ccert_type=IID_PUF_WRAPPED_AES_KEY -o qek_file=aes.qek –iv=1234567890ABCDEF1234567890ABCDEF unsigned_aes.ccert
3. Você assina o certificado não assinado com suas próprias ferramentas de assinatura ou com a ferramenta quartus_sign usando o seguinte comando:
quartus_sign –família=agilex –operação=sinal –qky=aes0_sign_chain.qky –pem=aes0_sign_private.pem unsigned_aes.ccert assinado_aes.ccert
4. Em seguida, você usa o Programador para enviar o certificado AES assinado e retornar a chave empacotada (.wkey) file:
quartos_pgm -c 1 -mjtag –ccert_file=signed_aes.ccert -o “ei;aes.wkey;AGFB014R24A”
Nota: A operação i não é necessária se você carregou anteriormente a imagem auxiliar de firmware de provisionamento, por exemploample, para inscrever o PUF.
4.9.2.3. Programando dados auxiliares e chave empacotada para memória flash QSPI
Você usa a programação Quartus File Interface gráfica do gerador para construir uma imagem flash QSPI inicial contendo uma partição PUF. Você deve gerar e programar uma imagem de programação flash inteira para adicionar uma partição PUF ao flash QSPI. Criação do PUF
Guia do usuário de segurança de dispositivos Intel Agilex® 7 36
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Figura 9.
partição de dados e uso dos dados auxiliares PUF e chave encapsulada files para geração de imagens flash não são suportados pela Programação File Interface de linha de comando do gerador.
As etapas a seguir demonstram a construção de uma imagem de programação flash com os dados auxiliares PUF e a chave encapsulada:
1. No File menu, clique em Programação File Gerador. Na saída Files faça as seguintes seleções:
a. Para Família de Dispositivos selecione Agilex 7.
b. Para o modo de configuração, selecione Active Serial x4.
c. Para o diretório de saída, navegue até sua saída file diretório. Este example usa output_files.
d. Para Nome, especifique um nome para a programação file a ser gerado. Este example usa output_file.
e. Em Descrição selecione a programação files para gerar. Este example gera o JTAG Configuração indireta File (.jic) para configuração do dispositivo e o binário bruto File de imagem auxiliar de programação (.rbf) para imagem auxiliar do dispositivo. Este example também seleciona o mapa de memória opcional File (.map) e dados brutos de programação File (.rpd). Os dados brutos de programação file é necessário apenas se você planeja usar um programador terceirizado no futuro.
Programação File Gerador – Saída FileGuia s – Selecione JTAG Configuração indireta
Modo de configuração da família de dispositivos
Saída file aba
Diretório de saída
JTAG Mapa de memória indireto (.jic) File Dados brutos de programação do auxiliar de programação
Na entrada Files, faça as seguintes seleções: 1. Clique em Add Bitstream e navegue até seu .sof. 2. Selecione seu .sof file e clique em Propriedades.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 37
4. Provisionamento de dispositivos 683823 | 2023.05.23
a. Ative Ativar ferramenta de assinatura. b. Para chave privada file selecione seu .pem file. c. Ative Finalizar criptografia. d. Para chave de criptografia file selecione seu .qek file. e. Clique em OK para retornar à janela anterior. 3. Para especificar seus dados auxiliares PUF file, clique em Adicionar dados brutos. Mudar o Files do menu suspenso tipo Quartus Physical Unclonable Function File (*.puf). Navegue até seu .puf file. Se você estiver usando o IID PUF e o UDS IID PUF, repita esta etapa para que .puf files para cada PUF são adicionados como entrada fileS. 4. Para especificar sua chave AES encapsulada file, clique em Adicionar dados brutos. Mudar o Files do menu suspenso tipo Quartus Wrapped Key File (*.wkey). Navegue até seu .wkey file. Se você envolveu chaves AES usando IID PUF e UDS IID PUF, repita esta etapa para que .wkey files para cada PUF são adicionados como entrada files.
Figura 10. Especifique a entrada Files para configuração, autenticação e criptografia
Adicionar Bitstream Adicionar dados brutos
Propriedades
Chave privada file
Finalizar criptografia Chave de criptografia
Na guia Dispositivo de configuração, faça as seguintes seleções: 1. Clique em Adicionar dispositivo e selecione seu dispositivo flash na lista de dispositivos flash disponíveis.
dispositivos. 2. Selecione o dispositivo de configuração que você acabou de adicionar e clique em Adicionar Partição. 3. Na caixa de diálogo Editar Partição para a Entrada file e selecione seu .sof no
lista suspensa. Você pode manter os padrões ou editar os outros parâmetros na caixa de diálogo Editar partição.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 38
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Figura 11. Especificando sua partição Bitstream de configuração .sof
Dispositivo de configuração
Editar partição Adicionar .sof file
Adicionar partição
4. Quando você adiciona .puf e .wkey como entrada files, a Programação File O Generator cria automaticamente uma partição PUF no seu dispositivo de configuração. Para armazenar .puf e .wkey na partição PUF, selecione a partição PUF e clique em Editar. Na caixa de diálogo Editar partição, selecione .puf e .wkey files nas listas suspensas. Se você remover a partição PUF, deverá remover e adicionar novamente o dispositivo de configuração para a Programação File Gerador para criar outra partição PUF. Você deve garantir que selecionou os .puf e .wkey corretos file para o IID PUF e UDS IID PUF, respectivamente.
Figura 12. Adicione .puf e .wkey files para a partição PUF
Partição PUF
Editar
Editar partição
Carregador Flash
Selecione Gerar
5. Para o parâmetro Flash Loader, selecione a família de dispositivos Intel Agilex 7 e o nome do dispositivo que corresponde ao seu OPN Intel Agilex 7.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 39
4. Provisionamento de dispositivos 683823 | 2023.05.23
6. Clique em Gerar para gerar a saída files que você especificou na saída Filepunhalada.
7. A Programação File O gerador lê seu .qek file e solicita sua senha. Digite sua senha em resposta ao prompt Insira a senha QEK. Clique na tecla Enter.
8. Clique em OK quando a Programação File O gerador relata a geração bem-sucedida.
Você usa o Intel Quartus Prime Programmer para gravar a imagem de programação QSPI na memória flash QSPI. 1. No menu Intel Quartus Prime Tools selecione Programador. 2. No Programador, clique em Configuração de Hardware e selecione um Intel conectado
Cabo de download FPGA. 3. Clique em Adicionar File e navegue até seu .jic file.
Figura 13. Programa .jic
Programação file
Programar/Configurar
JTAG cadeia de varredura
4. Desmarque a caixa associada à imagem auxiliar. 5. Selecione Programar/Configurar para a saída .jic file. 6. Ative o botão Iniciar para programar sua memória flash quad SPI. 7. Desligue e ligue sua placa. O design programado para a memória flash quad SPI
o dispositivo posteriormente é carregado no FPGA de destino.
Você deve gerar e programar uma imagem de programação flash inteira para adicionar uma partição PUF ao flash quad SPI.
Quando uma partição PUF já existe no flash, é possível usar o Intel Quartus Prime Programmer para acessar diretamente os dados auxiliares PUF e a chave encapsulada files. Por exemploampPor exemplo, se a ativação não for bem-sucedida, é possível registrar novamente o PUF, reenvolver a chave AES e, subsequentemente, apenas programar o PUF files sem ter que substituir todo o flash.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 40
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
O programador Intel Quartus Prime suporta o seguinte argumento de operação para PUF files em uma partição PUF pré-existente:
· p: programa
· v: verificar
· r: apagar
· b: cheque em branco
Você deve seguir as mesmas restrições para inscrição no PUF, mesmo que exista uma partição PUF.
1. Use o argumento da operação i para carregar a imagem auxiliar de firmware de provisionamento para a primeira operação. Para example, a sequência de comando a seguir registra novamente o PUF, reorganiza a chave raiz AES, apaga os dados auxiliares PUF antigos e a chave agrupada e, em seguida, programa e verifica os novos dados auxiliares PUF e a chave raiz AES.
quartus_pgm -c 1 -mjtag -o “ei;new.puf;AGFB014R24A” quartus_pgm -c 1 -mjtag –ccert_file=signed_aes.ccert -o “e;new.wkey;AGFB014R24A” quartus_pgm -c 1 -mjtag -o “r;old.puf” quartus_pgm -c 1 -mjtag -o “r;old.wkey” quartus_pgm -c 1 -mjtag -o “p;new.puf” quartus_pgm -c 1 -mjtag -o “p;new.wkey” quartus_pgm -c 1 -mjtag -o “v;new.puf” quartus_pgm -c 1 -mjtag -o “v;new.wkey”
4.9.2.4. Consultando o status de ativação do PUF de ID intrínseco
Depois de registrar o PUF de ID intrínseco, envolva uma chave AES, gere a programação flash files e atualizar o flash quad SPI, você desliga e liga o dispositivo para acionar a ativação e configuração do PUF a partir do fluxo de bits criptografado. O SDM relata o status de ativação do PUF juntamente com o status de configuração. Se a ativação do PUF falhar, o SDM reportará o status de erro do PUF. Use o comando quartus_pgm para consultar o status da configuração.
1. Use o seguinte comando para consultar o status de ativação:
quartus_pgm -c 1 -mjtag –status –status_type=”CONFIG”
Aqui estáamparquivo de saída de uma ativação bem-sucedida:
Informações (21597): Resposta de CONFIG_STATUS O dispositivo está sendo executado no modo de usuário 00006000 RESPONSE_CODE=OK, LENGTH=6 00000000 STATE=IDLE 00160300 Versão C000007B MSEL=QSPI_NORMAL, nSTATUS=1, nCONFIG=1, VID=1,
CLOCK_SOURCE=INTERNAL_PLL 0000000B CONF_DONE=1, INIT_DONE=1, CVP_DONE=0, SEU_ERROR=1 00000000 Localização do erro 00000000 Detalhes do erro Resposta de PUF_STATUS 00002000 RESPONSE_CODE=OK, LENGTH=2 00000500 USER_I ID STATUS=PUF_ACTIVATION_SUCCESS,
RELIABILITY_DIAGNOSTIC_SCORE=5, TEST_MODE=0 00000500 UDS_IID STATUS=PUF_ACTIVATION_SUCCESS,
RELIABILITY_DIAGNOSTIC_SCORE=5, TEST_MODE=0
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 41
4. Provisionamento de dispositivos 683823 | 2023.05.23
Se você estiver usando apenas o IID PUF ou o UDS IID PUF e não tiver programado um arquivo de dados auxiliar .puf file para PUF no flash QSPI, esse PUF não é ativado e o status do PUF reflete que os dados auxiliares do PUF não são válidos. O seguinte examparquivo mostra o status do PUF quando os dados auxiliares do PUF não foram programados para nenhum dos PUF:
Resposta de PUF_STATUS 00002000 RESPONSE_CODE=OK, LENGTH=2 00000002 USER_IID STATUS=PUF_DATA_CORRUPTED,
RELIABILITY_DIAGNOSTIC_SCORE=0, TEST_MODE=0 00000002 UDS_IID STATUS=PUF_DATA_CORRUPTED,
RELIABILITY_DIAGNOSTIC_SCORE=0, TEST_MODE=0
4.9.2.5. Localização do PUF na memória Flash
A localização do PUF file é diferente para projetos que suportam RSU e projetos que não suportam o recurso RSU.
Para designs que não suportam RSU, você deve incluir .puf e .wkey fileÉ quando você cria imagens flash atualizadas. Para projetos que suportam RSU, o SDM não substitui as seções de dados PUF durante atualizações de imagem de fábrica ou de aplicativo.
Tabela 2.
Layout de subpartições Flash sem suporte RSU
Deslocamento do Flash (em bytes)
Tamanho (em bytes)
Conteúdo
Descrição
0K 256K
256K 256K
Firmware de gerenciamento de configuração Firmware de gerenciamento de configuração
Firmware que roda em SDM.
512 mil
256 mil
Firmware de gerenciamento de configuração
768 mil
256 mil
Firmware de gerenciamento de configuração
1M
32 mil
Cópia de dados PUF 0
Estrutura de dados para armazenar dados auxiliares PUF e cópia da chave raiz AES encapsulada em PUF 0
1M+32K
32 mil
Cópia de dados PUF 1
Estrutura de dados para armazenar dados auxiliares PUF e cópia da chave raiz AES encapsulada em PUF 1
Tabela 3.
Layout de subpartições Flash com suporte RSU
Deslocamento do Flash (em bytes)
Tamanho (em bytes)
Conteúdo
Descrição
0K 512K
512K 512K
Firmware de decisão Firmware de decisão
Firmware para identificar e carregar a imagem de maior prioridade.
1M 1.5M
512K 512K
Firmware de decisão Firmware de decisão
2M
8K + 24K
Dados de firmware de decisão
Preenchimento
Reservado para uso de firmware de decisão.
2M + 32K
32 mil
Reservado para SDM
Reservado para SDM.
2M + 64K
Variável
Imagem de fábrica
Uma imagem simples que você cria como backup se todas as outras imagens do aplicativo falharem ao carregar. Esta imagem inclui o CMF executado no SDM.
Próximo
32 mil
Cópia de dados PUF 0
Estrutura de dados para armazenar dados auxiliares PUF e cópia da chave raiz AES encapsulada em PUF 0
continuou…
Guia do usuário de segurança de dispositivos Intel Agilex® 7 42
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Deslocamento do Flash (em bytes)
Tamanho (em bytes)
Próximo +32K 32K
Conteúdo cópia de dados PUF 1
Próximo + 256K 4K Próximo +32K 4K Próximo +32K 4K
Cópia da tabela de subpartição 0 Cópia da tabela de subpartição 1 Cópia do bloco de ponteiro CMF 0
Próximo +32K _
Cópia 1 do bloco de ponteiro CMF
Variável Variável
Variável Variável
Imagem do aplicativo 1 Imagem do aplicativo 2
4.9.3. Provisionamento de chave preta
Descrição
Estrutura de dados para armazenar dados auxiliares PUF e cópia da chave raiz AES encapsulada em PUF 1
Estrutura de dados para facilitar o gerenciamento do armazenamento flash.
Uma lista de ponteiros para imagens de aplicativos em ordem de prioridade. Quando você adiciona uma imagem, essa imagem se torna a mais alta.
Uma segunda cópia da lista de ponteiros para imagens de aplicativos.
Sua primeira imagem de aplicativo.
Sua segunda imagem de aplicativo.
Observação:
O programador Intel Quartus Prime auxilia no estabelecimento de uma conexão segura mutuamente autenticada entre o dispositivo Intel Agilex 7 e o serviço de provisionamento de chave preta. A conexão segura é estabelecida via https e requer vários certificados identificados por meio de um texto file.
Ao usar o Black Key Provisioning, a Intel recomenda que você evite conectar externamente o pino TCK para puxar para cima ou para baixo um resistor enquanto ainda o usa para JTAG. Entretanto, você pode conectar o pino TCK à fonte de alimentação VCCIO SDM usando um resistor de 10 k. A orientação existente nas Diretrizes de conexão de pinos para conectar o TCK a um resistor pull-down de 1 k está incluída para supressão de ruído. A mudança na orientação para um resistor pull-up de 10 k não afeta a funcionalidade do dispositivo. Para obter mais informações sobre como conectar o pino TCK, consulte Diretrizes de conexão de 7 pinos do Intel Agilex.
Obkp_tls_ca_certcertificate autentica sua instância de serviço de provisionamento de chave preta para sua instância de programador de provisionamento de chave preta. Os certificados bkp_tls_* autenticam sua instância de programador de provisionamento de chave preta para sua instância de serviço de provisionamento de chave preta.
Você cria um texto file contendo as informações necessárias para que o Programador Intel Quartus Prime se conecte ao serviço de provisionamento de chave preta. Para iniciar o provisionamento de chave preta, use a interface da linha de comandos do programador para especificar o texto das opções de provisionamento de chave preta file. O provisionamento da chave preta prossegue automaticamente. Para acessar o serviço de provisionamento de chave preta e a documentação associada, entre em contato com o suporte da Intel.
Você pode ativar o provisionamento da chave preta usando o comando quartus_pgm:
quartus_pgm -c -m -dispositivo –bkp_options=bkp_options.txt
Os argumentos do comando especificam as seguintes informações:
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 43
4. Provisionamento de dispositivos 683823 | 2023.05.23
· -c: número do cabo · -m: especifica o modo de programação como JTAG · –device: especifica um índice de dispositivo no JTAG corrente. O valor padrão é 1. · –bkp_options: especifica um texto file contendo opções de provisionamento de chave preta.
Informações relacionadas Diretrizes de conexão de pinos da família de dispositivos Intel Agilex 7
4.9.3.1. Opções de provisionamento de chave preta
As opções de provisionamento da chave preta são um texto file passado ao Programador através do comando quartus_pgm. O file contém as informações necessárias para acionar o provisionamento da chave preta.
O seguinte é um examparquivo do bkp_options.txt file:
bkp_cfg_id = 1 bkp_ip = 192.167.1.1 bkp_port = 10034 bkp_tls_ca_cert = root.cert bkp_tls_prog_cert = prog.cert bkp_tls_prog_key = prog_key.pem bkp_tls_prog_key_pass = 1234 bkp_proxy_address = https ://192.167.5.5:5000 bkp_proxy_user = proxy_user bkp_proxy_password = proxy_password
Tabela 4.
Opções de provisionamento de chave preta
Esta tabela exibe as opções necessárias para acionar o provisionamento de chave preta.
Nome da opção
Tipo
Descrição
bkp_ip
Obrigatório
Especifica o endereço IP do servidor que executa o serviço de provisionamento de chave preta.
bkp_port
Obrigatório
Especifica a porta do serviço de provisionamento de chave preta necessária para conexão com o servidor.
bkp_cfg_id
Obrigatório
Identifica o ID do fluxo de configuração de provisionamento de chave preta.
O serviço de provisionamento de chave preta cria os fluxos de configuração de provisionamento de chave preta, incluindo uma chave raiz AES, configurações desejadas do eFuse e outras opções de autorização de provisionamento de chave preta. O número atribuído durante a configuração do serviço de provisionamento de chave preta identifica os fluxos de configuração de provisionamento de chave preta.
Nota: Vários dispositivos podem referir-se ao mesmo fluxo de configuração do serviço de provisionamento de chave preta.
bkp_tls_ca_cert
Obrigatório
O certificado TLS raiz usado para identificar os serviços de provisionamento de chave preta para o Intel Quartus Prime Programmer (Programmer). Uma autoridade de certificação confiável para a instância do serviço de provisionamento de chave preta emite esse certificado.
Se você executar o Programador em um computador com sistema operacional Microsoft® Windows® (Windows), deverá instalar este certificado no armazenamento de certificados do Windows.
bkp_tls_prog_cert
Obrigatório
Um certificado criado para a instância do Programador de provisionamento de chave preta (Programador BKP). Este é o certificado de cliente https usado para identificar esta instância do programador BKP
continuou…
Guia do usuário de segurança de dispositivos Intel Agilex® 7 44
Enviar feedback
4. Provisionamento de dispositivos 683823 | 2023.05.23
Nome da opção
Tipo
bkp_tls_prog_key
Obrigatório
bkp_tls_prog_key_pass Opcional
bkp_proxy_address bkp_proxy_user bkp_proxy_password
Opcional Opcional Opcional
Descrição
para o serviço de provisionamento de chave preta. Você deve instalar e autorizar este certificado no serviço de fornecimento de chave preta antes de iniciar uma sessão de fornecimento de chave preta. Se você executar o Programador no Windows, esta opção não estará disponível. Neste caso, o bkp_tls_prog_key já inclui este certificado.
A chave privada correspondente ao certificado BKP Programmer. A chave valida a identidade da instância do Programador BKP para o serviço de provisionamento de chave preta. Se você executar o Programador no Windows, o .pfx file combina o certificado bkp_tls_prog_cert e a chave privada. A opção bkp_tlx_prog_key passa o .pfx file no bkp_options.txt file.
A senha da chave privada bkp_tls_prog_key. Não é obrigatório no texto das opções de configuração de provisionamento da chave preta (bkp_options.txt) file.
Especifica o servidor proxy URL endereço.
Especifica o nome de usuário do servidor proxy.
Especifica a senha de autenticação do proxy.
4.10. Convertendo chave raiz do proprietário, certificados de chave raiz AES e fusível files para Jam STAPL File Formatos
Você pode usar o comando de linha de comando quartus_pfg para converter .qky, chave raiz AES .ccert e .fuse files para formato Jam STAPL File (.jam) e formato de código de byte Jam File (.jbc). Você pode usar estes files para programar FPGAs Intel usando o Jam STAPL Player e o Jam STAPL Byte-Code Player, respectivamente.
Um único .jam ou .jbc contém várias funções, incluindo configuração e programa de imagem auxiliar de firmware, verificação em branco e verificação de programação de chave e fusível.
Cuidado:
Ao converter a chave raiz AES .ccert file para o formato .jam, o .jam file contém a chave AES em texto simples, mas de forma ofuscada. Conseqüentemente, você deve proteger o .jam file ao armazenar a chave AES. Você pode fazer isso provisionando a chave AES em um ambiente seguro.
Aqui estão os examparquivos de comandos de conversão quartus_pfg:
quartus_pfg -c -o helper_device=AGFB014R24A “root0.qky;root1.qky;root2.qky” RootKey.jam quartus_pfg -c -o helper_device=AGFB014R24A “root0.qky;root1.qky;root2.qky” RootKey.jbc quartus_pfg - c -o helper_device=AGFB014R24A aes.ccert aes_ccert.jam quartus_pfg -c -o helper_device=AGFB014R24A aes.ccert aes_ccert.jbc quartus_pfg -c -o helper_device=AGFB014R24A settings.fuse settings_fuse.jam quartus_pfg -c -o helper_device= Configurações AGFB014R24A. fusível configurações_fuse.jbc
Para obter mais informações sobre o uso do Jam STAPL Player para programação de dispositivos, consulte AN 425: Usando a solução Jam STAPL de linha de comando para programação de dispositivos.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 45
4. Provisionamento de dispositivos 683823 | 2023.05.23
Execute os seguintes comandos para programar a chave pública raiz do proprietário e a chave de criptografia AES:
//Para carregar o bitstream auxiliar no FPGA. // O fluxo de bits auxiliar inclui firmware de provisionamento quartus_jli -c 1 -a CONFIGURE RootKey.jam
//Para programar a chave pública raiz do proprietário em eFuses virtuais quartus_jli -c 1 -a PUBKEY_PROGRAM RootKey.jam
//Para programar a chave pública raiz do proprietário em eFuses físicos quartus_jli -c 1 -a PUBKEY_PROGRAM -e DO_UNI_ACT_DO_EFUSES_FLAG RootKey.jam
//Para programar a chave pública raiz do proprietário do PR em eFuses virtuais quartus_jli -c 1 -a PUBKEY_PROGRAM -e DO_UNI_ACT_DO_PR_PUBKEY_FLAG pr_rootkey.jam
//Para programar a chave pública raiz do proprietário do PR em eFuses físicos quartus_jli -c 1 -a PUBKEY_PROGRAM -e DO_UNI_ACT_DO_PR_PUBKEY_FLAG -e DO_UNI_ACT_DO_EFUSES_FLAG pr_rootkey.jam
//Para programar a chave de criptografia AES CCERT em BBRAM quartus_jli -c 1 -a CCERT_PROGRAM EncKeyBBRAM.jam
//Para programar a chave de criptografia AES CCERT em eFuses físicos quartus_jli -c 1 -a CCERT_PROGRAM -e DO_UNI_ACT_DO_EFUSES_FLAG EncKeyEFuse.jam
Informações relacionadas AN 425: Usando a solução Jam STAPL de linha de comando para programação de dispositivos
Guia do usuário de segurança de dispositivos Intel Agilex® 7 46
Enviar feedback
683823 | 2023.05.23 Enviar comentários
Recursos avançados
5.1. Autorização de depuração segura
Para habilitar a autorização de depuração segura, o proprietário da depuração precisa gerar um par de chaves de autenticação e usar o programador Intel Quartus Prime Pro para gerar informações do dispositivo file para o dispositivo que executa a imagem de depuração:
quartus_pgm -c 1 -mjtag -o “ei;device_info.txt;AGFB014R24A” –dev_info
O proprietário do dispositivo usa a ferramenta quartus_sign ou a implementação de referência para anexar uma entrada de chave pública condicional a uma cadeia de assinatura destinada a operações de depuração usando a chave pública do proprietário da depuração, as autorizações necessárias, o texto de informações do dispositivo file, e outras restrições aplicáveis:
quartus_sign –family=agilex –operação=append_key –previous_pem=debug_chain_private.pem –previous_qky=debug_chain.qky –permission=0x6 –cancel=1 –dev_info=device_info.txt –restriction=”1,2,17,18″ –input_pem= debug_authorization_public_key.pem secure_debug_auth_chain.qky
O proprietário do dispositivo envia a cadeia completa de assinaturas de volta ao proprietário da depuração, que usa a cadeia de assinaturas e sua chave privada para assinar a imagem de depuração:
quartus_sign –family=agilex –operação=sinal –qky=secure_debug_auth_chain.qky –pem=debug_authorization_private_key.pem unsigned_debug_design.rbf autorizado_debug_design.rbf
Você pode usar o comando quartus_pfg para inspecionar a cadeia de assinaturas de cada seção deste fluxo de bits de depuração seguro assinado da seguinte maneira:
quartus_pfg –check_integrity autorizado_debug_design.rbf
A saída deste comando imprime os valores de restrição 1,2,17,18 da chave pública condicional que foi usada para gerar o fluxo de bits assinado.
O proprietário da depuração pode então programar o design de depuração autorizado com segurança:
quartus_pgm -c 1 -mjtag -o “p;autorizado_debug_design.rbf”
O proprietário do dispositivo pode revogar a autorização de depuração segura cancelando o ID de cancelamento de chave explícito atribuído na cadeia de assinatura de autorização de depuração segura.
5.2. Certificados de depuração HPS
Habilitando apenas o acesso autorizado à porta de acesso de depuração (DAP) do HPS via JTAG interface requer várias etapas:
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
5. Recursos avançados 683823 | 2023.05.23
1. Clique no menu Atribuições do software Intel Quartus Prime e selecione a guia Configuração de opções de dispositivo e pino.
2. Na guia Configuração, ative a porta de acesso de depuração HPS (DAP) selecionando Pinos HPS ou Pinos SDM no menu suspenso e garantindo que a caixa de seleção Permitir depuração HPS sem certificados não esteja marcada.
Figura 14. Especifique os pinos HPS ou SDM para o HPS DAP
Porta de acesso de depuração HPS (DAP)
Alternativamente, você pode definir a atribuição abaixo nas configurações do Quartus Prime .qsf file:
set_global_assignment -name HPS_DAP_SPLIT_MODE “PINS SDM”
3. Compile e carregue o projeto com essas configurações. 4. Crie uma cadeia de assinaturas com as permissões apropriadas para assinar uma depuração HPS
certificado:
quartus_sign –family=agilex –operação=append_key –previous_pem=root_private.pem –previous_qky=root.qky –permission=0x8 –cancel=1 –input_pem=hps_debug_cert_public_key.pem hps_debug_cert_sign_chain.qky
5. Solicite um certificado de depuração HPS não assinado do dispositivo onde o design de depuração está carregado:
quartus_pgm -c 1 -mjtag -o “e;unsigned_hps_debug.cert;AGFB014R24A”
6. Assine o certificado de depuração HPS não assinado usando a ferramenta quartus_sign ou implementação de referência e a cadeia de assinatura de depuração HPS:
quartus_sign –family=agilex –operação=sinal –qky=hps_debug_cert_sign_chain.qky –pem=hps_debug_cert_private_key.pem unsigned_hps_debug.cert assinado_hps_debug.cert
Guia do usuário de segurança de dispositivos Intel Agilex® 7 48
Enviar feedback
5. Recursos avançados 683823 | 2023.05.23
7. Envie o certificado de depuração HPS assinado de volta ao dispositivo para permitir o acesso à porta de acesso de depuração (DAP) HPS:
quartus_pgm -c 1 -mjtag -o “p;signed_hps_debug.cert”
O certificado de depuração HPS só é válido a partir do momento em que foi gerado até o próximo ciclo de energia do dispositivo ou até que um tipo ou versão diferente de firmware SDM seja carregado. Você deve gerar, assinar e programar o certificado de depuração HPS assinado e executar todas as operações de depuração antes de desligar e ligar o dispositivo. Você pode invalidar o certificado de depuração HPS assinado desligando e ligando o dispositivo.
5.3. Atestado de plataforma
Você pode gerar um manifesto de integridade de referência (.rim) file usando a programação file ferramenta geradora:
quartus_pfg -c assinado_encrypted_top.rbf top_rim.rim
Siga estas etapas para garantir a certificação da plataforma em seu projeto: 1. Use o programador Intel Quartus Prime Pro para configurar seu dispositivo com o
design para o qual você criou um manifesto de integridade de referência. 2. Use um verificador de atestado de plataforma para registrar o dispositivo emitindo comandos para o
SDM através da caixa de correio SDM para criar o certificado de ID do dispositivo e o certificado de firmware ao recarregar. 3. Use o programador Intel Quartus Prime Pro para reconfigurar seu dispositivo com o design. 4. Use o verificador de atestado de plataforma para emitir comandos ao SDM para obter o ID do dispositivo de atestado, o firmware e os certificados de alias. 5. Use o verificador de atestado para emitir o comando de caixa de correio SDM para obter a evidência de atestado e o verificador verifica a evidência retornada.
Você pode implementar seu próprio serviço de verificação usando os comandos de caixa de correio SDM ou usar o serviço de verificação de atestado da plataforma Intel. Para obter mais informações sobre software, disponibilidade e documentação do serviço de verificação de atestado de plataforma Intel, entre em contato com o suporte Intel.
Informações relacionadas Diretrizes de conexão de pinos da família de dispositivos Intel Agilex 7
5.4. Anti-T Físicoamper
Você habilita o anti-t físicoamprecursos usando as seguintes etapas: 1. Selecionar a resposta desejada para um t detectadoamper evento 2. Configurando o t desejadoampmétodos e parâmetros de detecção 3. Incluindo o anti-tamper IP em sua lógica de design para ajudar a gerenciar anti-tamper
eventos
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 49
5. Recursos avançados 683823 | 2023.05.23
5.4.1. Anti-Tamper Respostas
Você ativa o anti-t físicoamper selecionando uma resposta do Anti-tampresposta: lista suspensa em Atribuições Dispositivo Dispositivo e Opções de Pin Segurança Anti-Tampsua guia. Por padrão, o anti-tampSua resposta está desativada. Cinco categorias de anti-tampresposta estão disponíveis. Ao selecionar a resposta desejada, as opções para ativar um ou mais métodos de detecção são ativadas.
Figura 15. Anti-T disponívelampopções de resposta
A atribuição correspondente nas configurações do Quartus Prime .gsf file é o seguinte:
set_global_assignment -nome ANTI_TAMPER_RESPONSE “NOTIFICAÇÃO DO DISPOSITIVO DE LIMPEZA DO DISPOSITIVO BLOQUEIO E ZEROIZAÇÃO”
Quando você ativa um anti-tampresposta, você pode escolher dois pinos de E/S dedicados SDM disponíveis para emitir o tamper detecção de eventos e status de resposta usando a janela Atribuições Dispositivo Dispositivo e Opções de Pin Configuração Configuração de Opções de Pin janela.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 50
Enviar feedback
5. Recursos avançados 683823 | 2023.05.23
Figura 16. Pinos de E/S dedicados SDM disponíveis para Tamper Detecção de Eventos
Você também pode fazer as seguintes atribuições de pinos nas configurações file: set_global_assignment -nome USE_TAMPER_DETECT SDM_IO15 set_global_assignment -nome ANTI_TAMPER_RESPONSE_FAILED SDM_IO16
5.4.2. Anti-Tamper Detecção
Você pode ativar individualmente a frequência, temperatura e volumetage recursos de detecção do SDM. A detecção de FPGA depende da inclusão do Anti-Tamper Lite Intel FPGA IP em seu projeto.
Observação:
Frequência SDM e volumetageampMelhores métodos de detecção dependem de referências internas e hardware de medição que podem variar entre dispositivos. A Intel recomenda que você caracterize o comportamento de tampconfigurações de detecção.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 51
5. Recursos avançados 683823 | 2023.05.23
Frequência tampA detecção de er opera na fonte do relógio de configuração. Para ativar a frequência tampdetecção de alarme, você deve especificar uma opção diferente de Oscilador Interno na lista suspensa Fonte de relógio de configuração na guia Geral Atribuições de Dispositivo e Opções de Pino. Você deve garantir que a caixa de seleção Executar configuração da CPU a partir do oscilador interno esteja habilitada antes de habilitar a frequência tampsua detecção. Figura 17. Configurando o SDM para oscilador interno
Para ativar a frequência tampdetecção de detecção, selecione Habilitar frequência tampcaixa de seleção de detecção e selecione a frequência desejadaampfaixa de detecção no menu suspenso. Figura 18. Habilitando Frequência Tamper Detecção
Guia do usuário de segurança de dispositivos Intel Agilex® 7 52
Enviar feedback
5. Recursos avançados 683823 | 2023.05.23
Alternativamente, você pode ativar a Frequência Tamper Detection fazendo as seguintes alterações nas configurações do Quartus Prime .qsf file:
set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF set_global_assignment -name DEVICE_INITIALIZATION_CLOCK OSC_CLK_1_100MHZ set_global_assignment -name RUN_CONFIG_CPU_FROM_INT_OSC ON set_global_assignment -name ENABLE_FREQUENCY_TAMPER_DETECTION ON set_global_assignment -nome FREQUENCY_TAMPER_DETECTION_RANGE 35
Para ativar a temperatura tampdetecção de temperatura, selecione Ativar temperatura tampcaixa de seleção de detecção de temperatura e selecione os limites superior e inferior da temperatura desejada nos campos correspondentes. Os limites superior e inferior são preenchidos por padrão com a faixa de temperatura relacionada ao dispositivo selecionado no projeto.
Para ativar voltageampdetecção de erro, você seleciona uma ou ambas as opções Ativar volume VCCL.tageampdetecção de erro ou ativar VCCL_SDM voltageampcaixas de seleção de detecção e selecione o Vol desejadotageampporcentagem de acionamento de detecçãotage no campo correspondente.
Figura 19. Habilitando Voltageamper Detecção
Alternativamente, você pode ativar Voltageamper Detection especificando as seguintes atribuições no .qsf file:
set_global_assignment -nome ENABLE_TEMPERATURE_TAMPER_DETECTION ON set_global_assignment -nome TEMPERATURE_TAMPER_UPPER_BOUND 100 set_global_assignment -nome ENABLE_VCCL_VOLTAGE_TAMPER_DETECTION ON set_global_assignment -nome ENABLE_VCCL_SDM_VOLTAGE_TAMPER_DETECÇÃO ATIVADA
5.4.3. Anti-Tampé Lite Intel FPGA IP
O Anti-Tamper Lite Intel FPGA IP, disponível no catálogo IP no software Intel Quartus Prime Pro Edition, facilita a comunicação bidirecional entre seu projeto e o SDM para tampeis eventos.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 53
Figura 20. Anti-Tampé Lite Intel FPGA IP
5. Recursos avançados 683823 | 2023.05.23
O IP fornece os seguintes sinais que você conecta ao seu projeto conforme necessário:
Tabela 5.
Anti-TampSinais de E/S IP Lite Intel FPGA
Nome do sinal
Direção
Descrição
gpo_sdm_at_event gpi_fpga_at_event
Saída entrada
Sinal SDM para lógica de malha FPGA que um SDM detectou emampei evento. A lógica do FPGA possui aproximadamente 5ms para realizar qualquer limpeza desejada e responder ao SDM via gpi_fpga_at_response_done e gpi_fpga_at_zeroization_done. O SDM prossegue com o tampações de resposta quando gpi_fpga_at_response_done é afirmado ou depois que nenhuma resposta é recebida no tempo alocado.
Interrupção FPGA para SDM que seu anti-t projetadoampO circuito de detecção detectou emampevento er e o SDM tampSua resposta deve ser acionada.
gpi_fpga_at_response_done
Entrada
O FPGA interrompe o SDM informando que a lógica do FPGA realizou a limpeza desejada.
gpi_fpga_at_zeroization_d um
Entrada
O FPGA sinaliza ao SDM que a lógica do FPGA concluiu qualquer zeragem desejada dos dados de projeto. Este sinal éampliderado quando gpi_fpga_at_response_done é afirmado.
5.4.3.1. Informações de lançamento
O número do esquema de versionamento IP (XYZ) muda de uma versão de software para outra. Uma mudança em:
· X indica uma revisão importante do IP. Se você atualizar o software Intel Quartus Prime, deverá regenerar o IP.
· Y indica que o IP inclui novos recursos. Regenere seu IP para incluir esses novos recursos.
· Z indica que o IP inclui pequenas alterações. Regenere seu IP para incluir essas alterações.
Tabela 6.
Anti-TampInformações de lançamento do Lite Intel FPGA IP
Versão IP
Item
Descrição 20.1.0
Versão Intel Quartus Prime
21.2
Data de lançamento
2021.06.21
Guia do usuário de segurança de dispositivos Intel Agilex® 7 54
Enviar feedback
5. Recursos avançados 683823 | 2023.05.23
5.5. Usando recursos de segurança de design com atualização remota do sistema
A Atualização Remota do Sistema (RSU) é um recurso dos FPGAs Intel Agilex 7 que auxilia na atualização da configuração files de uma forma robusta. A RSU é compatível com recursos de segurança de design, como autenticação, co-assinatura de firmware e criptografia de fluxo de bits, pois a RSU não depende do conteúdo de design dos fluxos de bits de configuração.
Construindo imagens RSU com .sof Files
Se você estiver armazenando chaves privadas em seu local filesistema, você pode gerar imagens RSU com recursos de segurança de design usando um fluxo simplificado com .sof files como entradas. Para gerar imagens RSU com o .sof file, você pode seguir as instruções na seção Gerando imagem de atualização remota do sistema Files Usando a programação File Gerador do Guia do usuário de configuração do Intel Agilex 7. Para cada .sof file especificado na entrada FileNa guia, clique no botão Propriedades… e especifique as configurações e chaves apropriadas para as ferramentas de assinatura e criptografia. A programação file a ferramenta geradora assina e criptografa automaticamente imagens de fábrica e de aplicativos ao criar a programação RSU files.
Alternativamente, se você estiver armazenando chaves privadas em um HSM, você deve usar a ferramenta quartus_sign e, portanto, usar .rbf fileS. O restante desta seção detalha as alterações no fluxo para gerar imagens RSU com .rbf files como entradas. Você deve criptografar e assinar o formato .rbf files antes de selecioná-los como entrada files para imagens RSU; no entanto, as informações de inicialização do RSU file não deve ser criptografado e, em vez disso, apenas assinado. A programação File O Generator não suporta a modificação de propriedades do formato .rbf files.
O seguinte exampOs arquivos demonstram as modificações necessárias nos comandos na Seção Gerando Imagem de Atualização Remota do Sistema Files Usando a programação File Gerador do Guia do usuário de configuração do Intel Agilex 7.
Gerando a imagem RSU inicial usando .rbf Files: Modificação de comando
Da geração da imagem RSU inicial usando .rbf FileNa seção , modifique os comandos na Etapa 1. para ativar os recursos de segurança do projeto conforme desejado, usando as instruções das seções anteriores deste documento.
Por exemploamparquivo, você especificaria um firmware assinado file se você estava usando assinatura de firmware, use a ferramenta de criptografia Quartus para criptografar cada .rbf filee, finalmente, use a ferramenta quartus_sign para assinar cada file.
Na etapa 2, se você tiver habilitado a co-assinatura de firmware, deverá usar uma opção adicional na criação do boot .rbf a partir da imagem de fábrica file:
quartus_pfg -c factory.sof boot.rbf -o rsu_boot=ON -o fw_source=signed_agilex.zip
Depois de criar as informações de inicialização .rbf file, use a ferramenta quartus_sign para assinar o .rbf file. Você não deve criptografar as informações de inicialização .rbf file.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 55
5. Recursos avançados 683823 | 2023.05.23
Gerando uma imagem de aplicativo: modificação de comando
Para gerar uma imagem de aplicativo com recursos de segurança de design, modifique o comando em Gerando uma imagem de aplicativo para usar um .rbf com recursos de segurança de design ativados, incluindo firmware co-assinado, se necessário, em vez do .sof do aplicativo original file:
quartus_pfg -c cosigned_fw_signed_encrypted_application.rbf secure_rsu_application.rpd -o mode=ASX4 -o bitswap=ON
Gerando uma imagem de atualização de fábrica: modificação de comando
Depois de criar as informações de inicialização .rbf file, você usa a ferramenta quartus_sign para assinar o .rbf file. Você não deve criptografar as informações de inicialização .rbf file.
Para gerar uma imagem de atualização de fábrica RSU, modifique o comando em Gerando uma imagem de atualização de fábrica para usar um .rbf file com recursos de segurança de design habilitados e adicione a opção para indicar o uso de firmware co-assinado:
quartus_pfg -c cosigned_fw_signed_encrypted_factory.rbf secure_rsu_factory_update.rpd -o mode=ASX4 -o bitswap=ON -o rsu_upgrade=ON -o fw_source=signed_agilex.zip
Informações relacionadas Guia do usuário de configuração do Intel Agilex 7
5.6. Serviços criptográficos SDM
O SDM em dispositivos Intel Agilex 7 fornece serviços criptográficos que a lógica de malha FPGA ou o HPS podem solicitar por meio da respectiva interface de caixa de correio SDM. Para obter mais informações sobre os comandos de caixa de correio e formatos de dados para todos os serviços criptográficos SDM, consulte o Apêndice B no Guia do usuário da metodologia de segurança para FPGAs Intel e ASICs estruturados.
Para acessar a interface da caixa de correio SDM para a lógica de malha FPGA para serviços criptográficos SDM, você deve instanciar o IP do Mailbox Client Intel FPGA em seu design.
O código de referência para acessar a interface da caixa de correio SDM do HPS está incluído no código ATF e Linux fornecido pela Intel.
Informações relacionadas Guia do usuário do cliente de caixa de correio Intel FPGA IP
5.6.1. Inicialização autorizada pelo fornecedor
A Intel fornece uma implementação de referência para software HPS que utiliza o recurso de inicialização autorizado pelo fornecedor para autenticar o software de inicialização HPS desde o primeiro momento.tage carregador de inicialização até o kernel do Linux.
Informações relacionadas Design de demonstração de inicialização segura do Intel Agilex 7 SoC
Guia do usuário de segurança de dispositivos Intel Agilex® 7 56
Enviar feedback
5. Recursos avançados 683823 | 2023.05.23
5.6.2. Serviço de objeto de dados seguro
Você envia os comandos por meio da caixa de correio SDM para executar a criptografia e descriptografia de objetos SDOS. Você pode usar o recurso SDOS após provisionar a chave raiz SDOS.
Informações relacionadas Provisionamento de chave raiz do Secure Data Object Service na página 30
5.6.3. Serviços Primitivos Criptográficos SDM
Você envia os comandos por meio da caixa de correio SDM para iniciar operações de serviço primitivo criptográfico SDM. Alguns serviços criptográficos primitivos exigem que mais dados sejam transferidos de e para o SDM do que a interface da caixa de correio pode aceitar. Nestes casos, o comando do formato muda para fornecer ponteiros para dados na memória. Além disso, você deve alterar a instanciação do IP Intel FPGA do Mailbox Client para usar serviços primitivos criptográficos SDM da lógica de malha do FPGA. Além disso, você deve definir o parâmetro Enable Crypto Service como 1 e conectar a interface do iniciador AXI recém-exposta a uma memória em seu design.
Figura 21. Habilitando serviços criptográficos SDM no Mailbox Client Intel FPGA IP
5.7. Configurações de segurança de fluxo de bits (FM/S10)
As opções FPGA Bitstream Security são uma coleção de políticas que restringem o recurso ou modo de operação especificado dentro de um período definido.
As opções de segurança Bitstream consistem em sinalizadores definidos no software Intel Quartus Prime Pro Edition. Esses sinalizadores são copiados automaticamente nos fluxos de bits de configuração.
Você pode impor permanentemente opções de segurança em um dispositivo através do uso da configuração de segurança correspondente eFuse.
Para usar quaisquer configurações de segurança no fluxo de bits de configuração ou nos eFuses do dispositivo, você deve ativar o recurso de autenticação.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 57
5. Recursos avançados 683823 | 2023.05.23
5.7.1. Selecionando e habilitando opções de segurança
Para selecionar e ativar opções de segurança, faça o seguinte: No menu Atribuições, selecione Dispositivo Opções de dispositivo e PIN Segurança Mais opções... Figura 22. Selecionando e habilitando opções de segurança
E, em seguida, selecione os valores nas listas suspensas para as opções de segurança que você deseja ativar, conforme mostrado no exemplo a seguirampem:
Figura 23. Seleção de valores para opções de segurança
Guia do usuário de segurança de dispositivos Intel Agilex® 7 58
Enviar feedback
5. Recursos avançados 683823 | 2023.05.23
A seguir estão as alterações correspondentes nas configurações do Quartus Prime .qsf file:
set_global_assignment -nome SECU_OPTION_DISABLE_JTAG “ON CHECK” set_global_assignment -name SECU_OPTION_FORCE_ENCRYPTION_KEY_UPDATE “ON STICKY” set_global_assignment -name SECU_OPTION_FORCE_SDM_CLOCK_TO_INT_OSC ON set_global_assignment -name SECU_OPTION_DISABLE_VIRTUAL_EFUSES ON set_global_assignment -name SECU_OPTION_LOCK_SECURITY_ EFUSES ON set_global_assignment -name SECU_OPTION_DISABLE_HPS_DEBUG ON set_global_assignment -name SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES ON set_global_assignment -name SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES ON set_global_assignment -name SECU_OPTION_DISABLE_ENCRYPTION_ KEY_IN_EFUSES ON set_global_assignment -nome SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_EFUSES ON set_global_assignment -nome SECU_OPTION_DISABLE_ENCRYPTION_KEY_IN_BBRAM ON set_global_assignment -name SECU_OPTION_DISABLE_PUF_WRAPPED_ENCRYPTION_KEY ON
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 59
683823 | 2023.05.23 Enviar comentários
Solução de problemas
Este capítulo descreve erros comuns e mensagens de aviso que você pode encontrar ao tentar usar recursos de segurança do dispositivo e medidas para resolvê-los.
6.1. Usando comandos Quartus em um erro de ambiente Windows
Erro quartus_pgm: comando não encontrado Descrição Este erro é exibido ao tentar usar comandos Quartus em um Shell NIOS II em um ambiente Windows usando WSL. Resolução Este comando funciona em ambiente Linux; Para hosts Windows, use o seguinte comando: quartus_pgm.exe -h Da mesma forma, aplique a mesma sintaxe a outros comandos do Quartus Prime, como quartus_pfg, quartus_sign, quartus_encrypt entre outros comandos.
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
6. Solução de problemas 683823 | 2023.05.23
6.2. Gerando um aviso de chave privada
Aviso:
A senha especificada é considerada insegura. A Intel recomenda que sejam usados pelo menos 13 caracteres de senha. Recomenda-se alterar a senha usando o executável OpenSSL.
openssl ec-in -fora -aes256
Descrição
Este aviso está relacionado à força da senha e é exibido ao tentar gerar uma chave privada emitindo os seguintes comandos:
quartus_sign –family=agilex –operação=make_private_pem –curve=secp3841 root.pem
Resolução Use o executável openssl para especificar uma senha mais longa e, portanto, mais forte.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 61
6. Solução de problemas 683823 | 2023.05.23
6.3. Adicionando uma chave de assinatura ao erro do projeto Quartus
Erro…File contém informações da chave raiz…
Descrição
Depois de adicionar uma chave de assinatura .qky file para o projeto Quartus, você precisa remontar o .sof file. Quando você adiciona este .sof regenerado file ao dispositivo selecionado usando o Quartus Programmer, a seguinte mensagem de erro indica que o file contém informações da chave raiz:
Falha ao adicionarfile-path-name> para o programador. O file contém informações da chave raiz (.qky). No entanto, o Programmer não oferece suporte ao recurso de assinatura de fluxo de bits. Você pode usar Programação File Gerador para converter o file para o binário bruto assinado file (.rbf) para configuração.
Resolução
Use a programação Quartus file gerador para converter o file em um binário bruto assinado File .rbf para configuração.
Informações relacionadas Configuração de assinatura Bitstream usando o comando quartus_sign na página 13
Guia do usuário de segurança de dispositivos Intel Agilex® 7 62
Enviar feedback
6. Solução de problemas 683823 | 2023.05.23
6.4. Gerando Programação Quartus Prime File não teve sucesso
Erro
Erro (20353): X da chave pública do QKY não corresponde à chave privada do PEM file.
Erro (20352): Falha ao assinar o fluxo de bits por meio do script python ágilx_sign.py.
Erro: Programação Quartus Prime File O gerador não teve sucesso.
Descrição Se você tentar assinar um fluxo de bits de configuração usando uma chave privada .pem incorreta file ou um .pem file que não corresponde ao .qky adicionado ao projeto, os erros comuns acima são exibidos. Resolução Certifique-se de usar a chave privada .pem correta para assinar o fluxo de bits.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 63
6. Solução de problemas 683823 | 2023.05.23
6.5. Erros de argumento desconhecidos
Erro
Erro (23028): Argumento desconhecido “ûc”. Consulte –help para argumentos jurídicos.
Erro (213008): A sequência de opções de programação “ûp” é ilegal. Consulte –help para formatos de opções de programação legais.
Descrição Se você copiar e colar opções de linha de comando de um arquivo .pdf file no Windows NIOS II Shell, você pode encontrar erros de argumentos desconhecidos, conforme mostrado acima. Resolução Nesses casos, você pode inserir manualmente os comandos em vez de colar da área de transferência.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 64
Enviar feedback
6. Solução de problemas 683823 | 2023.05.23
6.6. Erro de opção de criptografia Bitstream desativada
Erro
Não é possível finalizar a criptografia para o file design .sof porque foi compilado com a opção de criptografia bitstream desabilitada.
Descrição Se você tentar criptografar o fluxo de bits via GUI ou linha de comando depois de compilar o projeto com a opção de criptografia de fluxo de bits desabilitada, o Quartus rejeitará o comando conforme mostrado acima.
Resolução Certifique-se de compilar o projeto com a opção de criptografia de fluxo de bits habilitada via GUI ou linha de comando. Para habilitar esta opção na GUI, você deve marcar a caixa de seleção desta opção.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 65
6. Solução de problemas 683823 | 2023.05.23
6.7. Especificando o caminho correto para a chave
Erro
Erro (19516): Programação Detectada File Erro nas configurações do gerador: não é possível encontrar 'key_file'. Certifique-se de que file está localizado no local esperado ou atualize a configuração.sec
Erro (19516): Programação Detectada File Erro nas configurações do gerador: não é possível encontrar 'key_file'. Certifique-se de que file está localizado no local esperado ou atualize a configuração.
Descrição
Se você estiver usando chaves armazenadas no file sistema, você precisa garantir que eles especifiquem o caminho correto para as chaves usadas para criptografia e assinatura de fluxo de bits. Se a Programação File O gerador não consegue detectar o caminho correto, as mensagens de erro acima são exibidas.
Resolução
Consulte as configurações do Quartus Prime .qsf file para localizar os caminhos corretos para as chaves. Certifique-se de usar caminhos relativos em vez de caminhos absolutos.
Guia do usuário de segurança de dispositivos Intel Agilex® 7 66
Enviar feedback
6. Solução de problemas 683823 | 2023.05.23
6.8. Usando saída não suportada File Tipo
Erro
quartus_pfg -c design.sof saída_file.ebf -o finalize_operação=ON -o qek_file=ae.qek -o assinatura=ON -o pem_file=sinal_privado.pem
Erro (19511): Saída não suportada file tipo (ebf). Use a opção “-l” ou “–list” para exibir suporte file digite informações.
Descrição Ao usar a programação Quartus File Gerador para gerar o fluxo de bits de configuração criptografado e assinado, você poderá ver o erro acima se uma saída não for suportada file tipo é especificado. Resolução Use a opção -l ou –list para ver a lista de suportes file tipos.
Enviar feedback
Guia do usuário de segurança de dispositivos Intel Agilex® 7 67
683823 | 2023.05.23 Enviar comentários
7. Arquivos do guia do usuário de segurança do dispositivo Intel Agilex 7
Para obter as versões mais recentes e anteriores deste guia do usuário, consulte Guia do usuário do Intel Agilex 7 Device Security. Se um IP ou versão de software não estiver listado, o guia do usuário do IP ou versão de software anterior será aplicado.
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
ISO 9001: 2015 registrado
683823 | 2023.05.23 Enviar comentários
8. Histórico de revisões do Guia do usuário de segurança de dispositivos Intel Agilex 7
Versão do documento 2023.05.23
2022.11.22 2022.04.04 2022.01.20
2021.11.09
Documentos / Recursos
![]() |
Segurança de dispositivos Intel Agilex 7 [pdf] Manual do Usuário Segurança de dispositivos Agilex 7, Agilex 7, Segurança de dispositivos, Segurança |