BR112017011624B1 - Método para proteger uma chave de dispositivo em um dispositivo, e dispositivo - Google Patents
Método para proteger uma chave de dispositivo em um dispositivo, e dispositivo Download PDFInfo
- Publication number
- BR112017011624B1 BR112017011624B1 BR112017011624-3A BR112017011624A BR112017011624B1 BR 112017011624 B1 BR112017011624 B1 BR 112017011624B1 BR 112017011624 A BR112017011624 A BR 112017011624A BR 112017011624 B1 BR112017011624 B1 BR 112017011624B1
- Authority
- BR
- Brazil
- Prior art keywords
- key
- global
- value
- bits
- protected element
- Prior art date
Links
Images
Abstract
MÉTODO PARA PROTEGER UMA CHAVE DE DISPOSITIVO EM UM DISPOSITIVO, E DISPOSITIVO. Trata-se de um método para proteger uma chave de dispositivo em um dispositivo que compreende ao menos um elemento protegido conectado localmente a ao menos uma memória programável uma única vez, a qual armazena um valor global na forma de uma sequência de bis que inclui bits bloqueados e bits desbloqueados. Os bits bloqueados são pré-programados de maneira irreversível na memória programável uma única vez durante a fase de inicialização do dispositivo, ao passo que os bits desbloqueados, que permanecem em um estado inicial, podem ser programáveis pelo elemento protegido. O elemento protegido é configurado para gerar, quando da inicialização do dispositivo, um valor específico ao dispositivo usando o valor global, programar o valor específico ao dispositivo previamente obtido na memória programável uma única vez e apagar o valor global programando os bits desbloqueados da sequência de bits correspondente. Outro objetivo da invenção inclui um dispositivo configurado para praticar o método.
Description
[001] A presente invenção refere-se ao campo da transmissão de dados digitais entre dispositivos confiáveis e entidades de processamento de dados fora do ambiente confiável usando autenticação de dados.
[002] Um dispositivo confiável refere-se a um dispositivo seguro incorporado a um computador pessoal, equipamento móvel ou qualquer outra entidade de processamento de dados para oferecer mecanismos de segurança integrados que depositam um mínimo de dependência sobre o usuário ou administrador para manter a entidade e seus dispositivos periféricos protegidos. Dispositivos de computação pessoais confiáveis foram desenvolvidos para maximizar a segurança dos computadores individuais por meio de mecanismos à base de hardware ou sistema operacional em vez de por meio de programas e políticas complementares. Para tanto, mecanismos de segurança podem ser implementados em chips, chipsets, sistemas em chip e placas mãe, entre outros módulos; porque os versados na técnica sabem bem que mecanismos à base de hardware são intrinsecamente mais confiáveis do que os criados com software.
[003] Com o intuito de garantir a autenticidade dos dados transmitidos por um dispositivo confiável, assinaturas digitais podem ser aplicadas aos dados. Logo, o dispositivo confiável precisa de acesso a um par de chaves que inclui uma chave privada e uma chave pública. Na verdade, se vários dispositivos confiáveis enviam dados a uma mesma entidade e, para evitar que haja muitas chaves públicas para autenticar os dados, o par de chaves nos dispositivos confiáveis deve ser global. Do ponto de vista da segurança, se a chave privada for comprometida em um dispositivo, o sistema inteiro é enfraquecido porque um hacker pode, assim, forjar seus próprios dados autênticos. Isso gera um único ponto de falha que é catastrófico em um sistema de segurança.
[004] O hacker pode usar vários tipos de ataques não invasivos ou invasivos para recuperar a chave privada global tais como, por exemplo: ataques por software, abrir o dispositivo para tentar ler a chave diretamente dentro dele, ataques por Análise Diferencial de Potência (DPA) ou Análise de Potência Simples (SPA), ataques por injeção de falha etc.
[005] Um dispositivo seguro pode ser atacado de várias maneiras para recuperar a chave privada global. Alguns ataques são conhecidos como ataques não invasivos uma vez que visam a observar o consumo de energia, a emanação eletromagnética ou o tempo de processamento do dispositivo. Outros ataques são chamados de ataques invasivos, uma vez que envolvem modificar o dispositivo, em especial seu comportamento durante um breve espaço de tempo. Nessa última categoria, a Análise Diferencial de Falha (DFA) é reconhecida como grave ameaça contra qualquer sistema de criptografia/descriptografia. A DFA baseia-se na observação e comparação das saídas emitidas por um dispositivo criptográfico em dois estados diferentes. Um desses estados corresponde à operação normal do dispositivo, ao passo que o outro é obtido injetando voluntariamente uma falha com vistas a alterar um ou mais bits trocando 0 por 1 ou vice-versa. Essa inversão física dos bits pode ser executada, por exemplo, varrendo a superfície de um circuito integrado com um feixe de laser. Ao localizar áreas sensíveis dentro do dispositivo criptográfico, disparos de laser permitem abalar o comportamento do dispositivo de uma maneira precisa e fácil, uma vez que podem ser implementados sob controle de um computador, enquanto com uma ótima resolução espacial e temporal. Quando várias falhas são injetadas durante o processamento de um algoritmo criptográfico, a análise de saídas errôneas permite determinar a chave global privada observando propagações de falhas dentro do algoritmo.
[006] Diferentes técnicas para proteger a integridade de programas, chaves criptográficas ou parâmetros usados para produzi-las são usadas na técnica anterior como, por exemplo:
[007] o documento US2011/225409A1, que revela um chipset que compreende uma memória programável uma única vez (OTP), a qual armazena uma identificação de boot por software (CCID), em que a CCIC compreende um valor multibit com duas ou mais identificações CCID do cliente (CIDs) contidas em posições de índice específicas do cliente dentro do valor multibit. O chipset compreende ainda um ou mais circuitos de processamento configurados para obter um certificado e um valor de índice de certificado a partir de um certificado do cliente; ler uma OTP CID a partir da CCID indexando na CCID de acordo com o valor de índice do certificado; determinar se o certificado do cliente foi ou não revogado com base em avaliar a OTP CID com o certificado; e proibir o booting por software do chipset, se for determinado que o certificado do cliente foi revogado. Os valores da OTP CID são programados na memória OTP de tal modo que bits individuais possam ser trocados de 0 para 1, mas não de volta para 0. Neste caso, os bits 1 são bloqueados e os bits 0 são desbloqueados. Os valores OTP CID para cada cliente podem ser geridos pela fabricante do chipset.
[008] O documento EP2506176A1 revela métodos e sistemas referentes à produção de chips com a propriedade exclusiva. Um vetor de bits aleatórios é gerado usando um gerador de números aleatórios em hardware no chip ou dinamicamente enquanto um componente de hardware é produzido. O vetor de bits aleatórios gerado é armazenado em uma memória programável uma única vez do chip. Um valor é derivado no chip com base no vetor de bits aleatórios programado na memória programável uma única vez do chip. O valor derivado é exportado a um módulo receptor externo conectado comunicativamente ao chip para permitir que um provedor de aplicação de segurança criptografe uma mensagem que pode ser descriptografada pelo chip usando uma chave com base no vetor de bits aleatórios programado na memória programável uma única vez do chip. O vetor de bits aleatórios é programado em uma PROM (Memória Programável Somente para Leitura) onde todos os bits são bloqueados de tal modo que toda a sequência de bits programada do vetor não possa ser modificada por um processador. A única maneira de modificar valores armazenados em uma PROM é substituir fisicamente a PROM por outra contendo valores atualizados.
[009] O documento US2010/166182A1 revela um método para prover transmissões de voz em pacotes protegidas. Uma chave pública correspondente a um dispositivo de destino é recuperada. Um sinal de entrada é digitalizado para transmissão através de uma conexão de voz em pacotes com o dispositivo de destino. O sinal digitalizado é criptografado usando uma chave pública do dispositivo de destino. Esse sinal de entrada criptografado quando recebido no dispositivo de destino é descriptografado usando uma chave privada protegida no dispositivo de destino. De acordo com uma concretização, o dispositivo de chamada pode ser associado a um adaptador terminal analógico munido de um conector USB para inserir um dispositivo de armazenamento flash, que pode conter uma chave privada de um par de chaves pública/privada assimétricas e um apontador para onde a chave pública está localizada. Em seguida, durante a iniciação da sessão no início da chamada, o encriptador/descriptador do dispositivo de chamada de destino pode recuperar a chave pública do dispositivo de chamada de origem, e utilizar a chave pública para criptografar dados sendo enviados ao dispositivo de chamada de origem. A chave privada pode ser armazenada em uma memória fixa do dispositivo de chamada ou em uma memória flash removível onde todos os bits da sequência de bits na chave privada podem ser modificados de 0 para 1 e vice-versa sem nenhuma restrição.
[010] O documento WO2008/057156A2 revela uma técnica de programação segura aprimorada que envolve reduzir o tamanho de bits programados em uma memória não volátil secreta no chip, ao mesmo tempo em que permite os aplicativos seguros típicos suportados por dispositivos de segurança. Uma técnica de programação segura envolve destituir a fabricante do chip do processo final de conectar-se a servidores de bilhetes eletrônicos para obter bilhetes eletrônicos. Um método de acordo com a técnica pode envolver enviar um certificado assinado pelo servidor (da fabricante) a partir do dispositivo antes de qualquer comunicação para receber bilhetes eletrônicos. Um dispositivo de acordo com a técnica pode incluir memória não volátil dentro do chip para armazenar o certificado junto com a chave privada no processo de fabricação. O sistema compreende um processador protegido, um sistema operacional, serviços de bilhetes eletrônicos, um aplicativo de chamada e uma memória protegida. O sistema operacional inclui um kernel de segurança, que, por sua vez, inclui um armazenamento de chaves, um motor de criptografia/descriptografia e um aplicativo de segurança.
[011] Logo, existe a necessidade de propor uma solução eficiente para impedir que hackers determinem uma chave privada por meio de qualquer análise diferencial de falha ou, de maneira mais abrangente, adivinhar essa chave por meio de informações extraídas por qualquer tipo de análise.
[012] Com o intuito de superar as desvantagens dos sistemas e métodos da técnica anterior para proteger chaves criptográficas, seria benéfico propor um dispositivo e método para proteger, com eficiência, pares de chaves criptográficas assimétricas e que evitasse, ao mesmo tempo, entre outros, ter que gerir vários pares de chaves para autenticar vários dispositivos.
[013] Uma concretização da invenção propõe um método para proteger uma chave de dispositivo em um dispositivo que compreende ao menos um elemento protegido localmente conectado a ao menos uma memória programável uma única vez de acordo com a reivindicação 1.
[014] Outra concretização propõe um dispositivo que compreende ao menos um elemento protegido conectado localmente a ao menos uma memória programável uma única vez configurada para armazenar um valor global de acordo com a reivindicação 9.
[015] O elemento protegido do dispositivo pode compreender um gerador de chaves configurado para gerar um valor exclusivo específico ao dispositivo, tal como, por exemplo, um par de chaves assimétricas, usando o valor global armazenado na memória programável uma única vez. Essa operação é realizada em geral na inicialização ou boot do dispositivo. O par de chaves de dispositivo exclusivas específicas ao dispositivo compreende uma chave de dispositivo privada e uma chave de dispositivo pública.
[016] Como valor global, o par de chaves de dispositivo geradas é armazenado de preferência na memória programável uma única vez. Em uma concretização preferida, o valor global representa um par de chaves globais que inclui uma chave global privada e uma chave global pública que são programadas na memória programável uma única vez de maneira irreversível em geral quando da fabricação do dispositivo.
[017] De acordo com outra concretização, a chave de dispositivo pública é assinada pela chave global privada e a chave global privada é apagada da memória programável uma única vez programando todos ou parte dos bits desbloqueados de tal modo que o elemento protegido reconheça a exclusão da chave global privada.
[018] Com o intuito de melhorar a segurança do dispositivo, uma solução preferida só permite usar a chave global privada uma única vez, uma vez que usar e manter uma mesma chave global privada é arriscado porque ela pode ser exposta a falsificação e reutilização para comunicação com qualquer outro dispositivo.
[019] De acordo com outra concretização, o valor global armazenado na memória programável uma única vez pode ser usado pelo elemento protegido para proteger o par de chaves específicas ao dispositivo geradas por ofuscamento ou criptografia.
[020] A invenção será mais bem entendida mediante a leitura da descrição detalhada a seguir com referência às figuras anexas, dadas como exemplos não exaustivos.
[021] A figura 1 ilustra uma visão geral do dispositivo da invenção, que compreende um elemento protegido conectado localmente a uma memória programável uma única vez.
[022] A figura 2 ilustra uma concretização do dispositivo em que um par de chaves globais assimétricas é escrito na memória programável uma única vez usando uma via externa diferente do elemento protegido.
[023] A figura 3 ilustra uma concretização do dispositivo em que um par de chaves de dispositivo aleatórias é gerado pelo elemento protegido.
[024] A figura 4 ilustra uma concretização do dispositivo em que a chave de dispositivo pública gerada é assinada usando o par de chaves globais.
[025] A figura 5 ilustra uma concretização do dispositivo em que o par de chaves de dispositivo e a assinatura da chave de dispositivo pública são escritos e bloqueados na memória programável uma única vez.
[026] A figura 6 ilustra uma concretização do dispositivo em que o elemento protegido programa bits desbloqueados das chaves globais privada e/ou pública a fim de apagá-las da memória programável uma única vez.
[027] A figura 7 ilustra uma concretização do dispositivo em que a chave global privada gerada pelo elemento protegido é ofuscada por um valor de ofuscamento programado na memória programável uma única vez a fim de prover um valor "real" da chave global privada.
[028] A figura 8 ilustra uma concretização do dispositivo em que a chave global privada gerada pelo elemento protegido é criptografada por uma chave codificada de forma rígida (hard coded) na memória programável uma única vez a fim de prover um valor "real" da chave global privada.
[029] O dispositivo descrito DEV compreende um elemento protegido SE conectado localmente a uma memória persistente ou memória programável uma única vez OTP conforme representa esquematicamente a figura 1. Essa memória OTP contém parâmetros específicos ao dispositivo em geral que são introduzidos quando da fabricação ou personalização ou quando da primeira inicialização do dispositivo. Os parâmetros específicos ao dispositivo podem compreender um valor global GV usado pelo elemento protegido SE para gerar um valor específico ao dispositivo DV incluindo chaves criptográficas.
[030] O dispositivo DEV, também chamado de dispositivo seguro, pode ser integrado a um computador pessoal, equipamento móvel, decodificador de TV paga ou qualquer outra unidade de processamento de dados a fim de prover mecanismos de segurança integrados que sejam transparentes ao usuário do dispositivo. Esses mecanismos de segurança, geralmente embutidos no código e combinados a programas de software, podem ser instalados em chips, chipsets, sistemas em chip, smartcards, placas mãe ou outros módulos dedicados.
[031] O elemento protegido SE pode incluir uma plataforma na qual aplicativos podem ser instalados, personalizados e geridos. Ele é composto por hardware, software, interfaces e protocolos que permitem o armazenamento seguro de certificados e a execução de aplicativos para pagamento, autenticação e outros serviços. Aplicativos de segurança crítica, tais como os que envolvem pagamento e certificados de conta, requerem armazenamento em hardware seguro e um ambiente de execução seguro. Nos dispositivos móveis, isso geralmente é delegado ao elemento protegido.
[032] Um elemento protegido SE pode ser implementado em diferentes formatos, tais como um Cartão de Circuito Integrado Universal (UICC), um elemento protegido embutido ou recursos NFC (Comunicação por Campo de Curta Distância), tais como um chip ou dispositivo seguro distinto, que pode ser inserido em um slot no dispositivo móvel ou usado de maneira sem contato. Tipicamente, um UICC é na forma de um módulo de identificação do assinante (SIM), que é controlado pelos operadores da rede móvel. Um elemento protegido embutido dá aos provedores de serviços a opção de embutir o elemento protegido no próprio telefone móvel. Um elemento protegido SE pode incluir um ou mais domínios de segurança, cada um dos quais inclui uma coletânea de dados, tais como pacotes, applets, aplicativos e seus semelhantes, que confiam em uma entidade em comum, o que significa que os domínios de segurança podem ser autenticados ou geridos usando uma chave ou símbolo criptográfico global ou em comum. Domínios de segurança podem ser associados a provedores de serviços e podem incluir applets ou aplicativos de provedores de serviços, tais como aplicativos ou applets de fidelidade, distribuição de cupons e cartão de crédito e aplicativos ou applets de trânsito.
[033] De acordo com uma concretização, o elemento protegido SE compreende um gerador de chaves KG configurado para gerar um valor específico ao dispositivo DV incluindo um par de chaves de dispositivo assimétricas usando o valor global GV, que inclui um par de chaves globais assimétricas armazenado na memória programável uma única vez OTP. O par de chaves assimétricas gerado é exclusivo e específico do dispositivo DEV e inclui uma chave de dispositivo privada DKpri e uma chave de dispositivo pública DKpub que são armazenadas em uma memória não volátil do elemento protegido SE.
[034] A figure 2 ilustra um exemplo em que o par de chaves globais assimétricas, que inclui uma chave global privada GKpri e uma chave global pública GKpub, é programado na memória programável uma única vez OTP por uma via específica disponível somente quando da fabricação do dispositivo DEV. Essa via, na forma de uma ou mais linhas de dados, é preferencialmente desabilitada por meio de hardware, tal como desativando a via ao queimar os fusíveis relacionados depois de programar o par de chaves globais assimétricas na memória programável uma única vez OTP.
[035] Quando as linhas de dados não podem ser desfeitas fisicamente, a via pode ser desabilitada permanentemente programando bits na memória OTP para que o acesso à memória OTP de fora deixe de ser possível.
[036] Em uma fase de inicialização, quando o dispositivo DEV é fabricado ou personalizado, o valor global GV na forma de sequências de bits, tais como um par de chaves, é programado na memória programável uma única vez OTP de tal modo que vários bits sejam bloqueados ou queimados de maneira irreversível para que os bits em questão não possam ser restabelecidos ao valor inicial e os bits remanescentes da sequência sejam mantidos desbloqueados para que possam ser bloqueados mais tarde durante a operação do dispositivo DEV. De acordo com um exemplo, todos os bits 1 podem ser bloqueados ao passo que todos os 0 são desbloqueados ou vice-versa. O estado inicial da memória OTP é de todos os bits definidos em 0, caso um bit queimado seja definido em 1, ou vice-versa.
[037] De acordo com uma configuração específica, bits queimados podem ser definidos em 0 ou 1 em uma mesma memória OTP dependendo de seu endereço de memória, por exemplo, o elemento protegido SE sendo configurado para reconhecer bits bloqueados e bits desbloqueados, o que pode ser indicado por um índice apropriado.
[038] Além dos módulos de processamento de fabricação ou personalização, o elemento protegido SE é o único módulo alternativo capaz de programar os bits na memória OTP. De acordo com outra concretização, quando de uma primeira inicialização, o elemento protegido SE gera um par de chaves de dispositivo assimétricas aleatórias usando um gerador TRNG (Gerador de Números Reais Aleatórios) para garantir a exclusividade do par de chaves. Essas chaves são então assinadas pelo elemento protegido SE usando o par de chaves globais assimétricas. Nos exemplos ilustrados nas figuras 3 e 4, a chave de dispositivo pública DKpub é assinada, de preferência, pela chave global privada GKpri. A chave global pública GKpub é, portanto, usada para verificar a assinatura.
[039] Deve-se ter em mente que os algoritmos de assinatura conhecidos utilizam uma chave privada para gerar a assinatura, a chave pública sendo utilizada para verificá-la.
[040] A assinatura Sig DKpub pode compreender, portanto, uma compilação da chave de dispositivo pública DKpub assinada pela chave global privada GKpri, a compilação sendo calculada aplicando uma função de hash unidirecional sem colisão do tipo SHA-2, SHA-3, BLAKE ou de qualquer outro tipo proprietário à chave de dispositivo pública DKpub.
[041] O par de chaves assimétricas específicas ao dispositivo gerado e a assinatura associada podem ser programados na memória OTP por um processador incluído no elemento protegido SE de tal modo que vários bits de seus valores sejam bloqueados para impedir qualquer modificação realizada por intervenção externa, vide a figura 5.
[042] Com o intuito de melhorar a proteção das chaves globais, a chave global privada GKpri pode ser apagada da memória OTP pelo processador do elemento protegido SE, que programa todos os bits desbloqueados de seu valor conforme ilustra a figura 6. Se a chave global privada GKpri tiver sido usada para assinar a chave de dispositivo pública DKpub, uma modificação da chave de dispositivo resultará em uma verificação mal sucedida de sua assinatura, que não pode ser reproduzida em função da ausência da chave global privada GKpri.
[043] De acordo com outra concretização, o processador do elemento protegido SE pode apagar a chave global pública GKpub ou todo o par de chaves globais assimétricas armazenado na memória programável uma única vez OTP programando os bits desbloqueados da sequência de bits correspondente.
[044] Com o intuito de impedir a exclusão do valor global GV ou do par de chaves globais por engano, um mecanismo de teste pode ser implementado na memória OTP. Por exemplo, um contador pode acrescer ou subtrair um valor predeterminado após cada teste de exclusão e, quando o contador atingir um valor máximo predeterminado ou for restabelecido a zero, a exclusão de ao menos uma ou ambas as chaves do par de chaves globais é realizada de um jeito ou de outro.
[045] Se a provisão de um par de chaves globais não for possível quando da fabricação ou personalização do dispositivo DEV, por exemplo, por motivos econômicos; duas soluções opcionais são contempladas:
[046] A) Durante a fase de inicialização do dispositivo DEV, a chave global privada GKpri1 pode ser embutida no código do elemento protegido SE e ofuscada por um valor global BV armazenado na memória OTP, conforme ilustra a figura 7. Neste documento, o sintagma "codificada de forma rígida" significa que a chave global privada GKpri1 é embutida no hardware e/ou software do elemento protegido SE de uma maneira tal que não possa ser modificada.
[047] Uma operação de ofuscamento BL pode consistir na aplicação, pelo processador do elemento protegido SE, de uma função matemática ou algoritmo predeterminado, usando o valor global BV como parâmetro, ao valor da chave global privada GKpri1 codificada de forma rígida. O resultado assim obtido representa o valor GKpri2 efetivo ou "real" da chave global privada usado pelo elemento protegido SE do dispositivo DEV para gerar o par de chaves de dispositivo (DKpri, DKpub) e calcular a assinatura Sig DKpub da chave de dispositivo pública DKpub.
[048] B) A chave global privada GKpri1 pode ser codificada de forma rígida no elemento protegido SE e criptografada usando um valor global que representa uma chave global K programada na memória OTP, conforme ilustra a figura 8. A operação de criptografia utiliza, de preferência, um algoritmo proprietário em vez de um algoritmo de criptografia conhecido, tal como Padrão de Criptografia de Dados (DES) ou Padrão de Criptografia Avançada (AES), para produzir um valor efetivo ou "real" da chave global privada GKpri. Esse valor "real" é então usado pelo elemento protegido SE para calcular a assinatura Sig DKpub da chave de dispositivo pública DKpub.
[049] Nesses exemplos, uma modificação ou exclusão das sequências de bits correspondentes ao valor de ofuscamento BV ou à chave global K programando bits desbloqueados é suficiente para impedir a reutilização da chave global privada GKpri1. De preferência, a chave privada ou chave global privada GKpri2 "real" usada depende diretamente do valor de ofuscamento BV ou da chave global K.
[050] Além disso, nas concretizações reveladas, a assinatura pode ser determinada à semelhança de quando a chave global privada é armazenada na memória OTP, conforme ilustra a figura 4.
[051] Um hacker fica assim impossibilitado de "brincar com" os valores globais na memória OTP para executar ataques por Análise Diferencial de Potência (DPA) ou Análise de Potência Simples (SPA). Até mesmo um ataque por destampamento desmontando o elemento protegido SE ou a memória OTP para observar e analisar a estrutura das sequências de bits inseridas no código fica impossibilitado porque o valor global é substancialmente apagado após a primeira inicialização ou boot do dispositivo.
[052] Outra possibilidade para um hacker seria tentar atacar o dispositivo antes da inicialização ou boot, quando o valor global foi previamente escrito na memória OTP quando da fabricação do dispositivo. Esse ataque pode ser superado em concretizações combináveis às outras concretizações reveladas neste documento ao proteger a memória OTP ou a área específica onde os valores globais são armazenados usando alguns mecanismos de segurança, tais como técnicas de obscurecimento ou blindagem contra ataques por destampamento.
Claims (15)
1. Método para proteger uma chave de dispositivo em um dispositivo (DEV) compreendendo pelo menos um elemento protegido (SE) conectado localmente a pelo menos uma memória programável pelo menos uma vez (OTP), armazenando um valor global (GV) na forma de uma sequência de bits compreendendo bits bloqueados e bits desbloqueados, os bits bloqueados sendo pré-programados de maneira irreversível na memória programável uma vez (OTP) durante uma fase de inicialização do dispositivo (DEV) e os bits desbloqueados permanecendo em um estado inicial que permite que os referidos bits desbloqueados sejam programáveis pelo elemento protegido (SE), o método é CARACTERIZADO pelo fato de compreender as etapas de: na inicialização do dispositivo (DEV), gerar, pelo elemento protegido (SE), um valor específico de dispositivo (DV) usando o valor global (GV), programar, pelo elemento protegido (SE), o valor específico de dispositivo (DV) previamente obtido na memória programável uma vez (OTP), e apagar, pelo elemento protegido (SE), o valor global (GV) programando os bits desbloqueados da sequência de bits correspondente.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o valor global (GV) compreende um par de chaves privadas globais assimétricas que inclui uma chave global privada (GKpri) e uma chave global pública (GKpub) e pelo fato de que o valor específico de dispositivo (DV) compreende um par de chaves de dispositivo assimétricas que inclui uma chave de dispositivo privada (DKpri) e uma chave de dispositivo pública (DKpub).
3. Método, de acordo com a reivindicação 2, CARACTERIZADO por compreender uma etapa adicional de calcular, pelo elemento protegido (SE), uma assinatura (SigDKpub) da chave de dispositivo pública (DKpub) assinando uma compilação decorrente de uma aplicação de uma função de hash à chave de dispositivo pública (DKpub) com a chave global privada (GKpri), a chave global pública (GKpub) sendo usada para verificar a assinatura (SigDKpub).
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a chave de dispositivo privada (DKpri), a chave de dispositivo pública (DKpub) e a assinatura (SigDKpub) previamente obtidas são programadas pelo elemento protegido (SE) na memória programável uma vez (OTP), a chave global privada (GKpri) ou todo o par de chaves globais armazenado na memória programável uma vez (OTP) sendo apagado programando os bits desbloqueados da sequência de bits correspondente.
5. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a chave global privada (GKpri) é codificada de forma rígida (hard coded), durante uma fase de inicialização do dispositivo (DEV), no elemento protegido (SE) e ofuscada por um valor global (BV) armazenado na memória programável uma vez (OTP).
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o elemento protegido (SE) exerce uma operação de ofuscamento (BL), incluindo uma função matemática ou algoritmo predeterminado usando o valor de ofuscamento (BV) como parâmetro, no valor da chave global privada (GKpri) codificada de forma rígida, o resultado obtido representando o valor efetivo da chave global privada (GLpri) usado pelo dispositivo (DEV) para gerar o par de chaves de dispositivo e calcular a assinatura (SigDKpub) da chave de dispositivo pública (DKpub).
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o valor global (GV) inclui uma chave global (K) a ser usada para determinar o valor efetivo de uma chave global privada (GKpri) de um par de chaves globais assimétricas exclusivas codificado de forma rígida no elemento protegido (SE) durante uma fase de inicialização do dispositivo (DEV).
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o elemento protegido (SE) criptografa a chave global privada codificada de forma rígida (GKpri) com a chave global (K) usando um algoritmo proprietário, o resultado obtido representando o valor efetivo da chave global privada (GLpri) usado pelo dispositivo (DEV) para gerar o par de chaves de dispositivo e calcular a assinatura (SigDKpub) da chave de dispositivo pública (DKpub).
9. Dispositivo (DEV) que compreende pelo menos um elemento protegido (SE) conectado localmente a uma memória programável pelo menos uma vez (OTP) configurada para armazenar um valor global (GV) na forma de uma sequência de bits compreendendo bits bloqueados e bits desbloqueados, os bits bloqueados sendo pré-programados de maneira irreversível na memória programável uma vez (OTP) durante uma fase de inicialização do dispositivo (DEV), os bits desbloqueados permanecendo em um estado inicial que permite que os referidos bits desbloqueados sejam programáveis pelo elemento protegido (SE), o dispositivo sendo CARACTERIZADO pelo fato de que o elemento protegido (SE) compreende: um gerador configurado para gerar, na inicialização do dispositivo (DEV), um valor específico de dispositivo (DV) usando o valor global (GV), um processador configurado para programar o valor específico de dispositivo (DV) previamente obtido na memória programável uma vez (OTP), e apagar o valor global (GV) programando os bits desbloqueados da sequência de bits correspondente.
10. Dispositivo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o valor global (GV) compreende um par de chaves privadas globais assimétricas que inclui uma chave global privada (GKpri) e uma chave global pública (GKpub) e pelo fato de que o valor específico de dispositivo (DV) compreende um par de chaves de dispositivo assimétricas que inclui uma chave de dispositivo privada (DKpri) e uma chave de dispositivo pública (DKpub).
11. Dispositivo, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o processador é configurado ainda para calcular uma assinatura (SigDKpub) da chave de dispositivo pública (DKpub) assinando uma compilação decorrente de uma aplicação de uma função de hash na chave de dispositivo pública (DKpub) com a chave global privada (GKpri).
12. Dispositivo, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o processador é configurado ainda para programar a chave de dispositivo privada (DKpri), a chave de dispositivo pública (DKpub) e a assinatura (SigDKpub) previamente obtidas na memória programável uma vez (OTP), e para apagar a chave global privada (GKpri) ou todo o par de chaves globais armazenado na memória programável uma vez (OTP) programando os bits desbloqueados da sequência de bits correspondente.
13. Dispositivo, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a chave global privada (GKpri) é codificada de forma rígida (hard coded), durante a fase de inicialização do dispositivo (DEV), no elemento protegido (SE) e ofuscada por um valor global (BV) armazenado na memória programável uma vez (OTP).
14. Dispositivo, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o elemento protegido (SE) é configurado ainda para aplicar uma operação de ofuscamento (BL), incluindo uma função matemática ou algoritmo predeterminado usando o valor de ofuscamento (BV) como parâmetro, no valor da chave global privada (GKpri) codificada de forma rígida, o gerador de chaves sendo configurado para usar o resultado obtido, que representa o valor efetivo da chave global privada (GLpri), para gerar o par de chaves de dispositivo (DKpri, DKpub).
15. Dispositivo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o valor global (GV) inclui uma chave global (K), o gerador de chaves sendo configurado para usar a chave global (K) para determinar o valor efetivo de uma chave global privada (GKpri) de um par de chaves globais assimétricas exclusivas codificado de forma rígida no elemento protegido (SE) durante uma fase de inicialização do dispositivo (DEV), o elemento protegido (SE) sendo configurado ainda para criptografar a chave global privada (GKpri) codificada de forma rígida com a chave global (K) usando um algoritmo proprietário, o resultado obtido representando o valor efetivo da chave global privada (GKpri).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14197711 | 2014-12-12 | ||
EP14197711.6 | 2014-12-12 | ||
PCT/EP2015/078896 WO2016091837A1 (en) | 2014-12-12 | 2015-12-08 | Device keys protection |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112017011624A2 BR112017011624A2 (pt) | 2017-12-26 |
BR112017011624B1 true BR112017011624B1 (pt) | 2023-05-23 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11018847B2 (en) | Device keys protection | |
ES2917183T3 (es) | Dispositivo móvil que tiene un entorno de ejecución seguro | |
CA2838763C (en) | Credential authentication methods and systems | |
CN105144626B (zh) | 提供安全性的方法和设备 | |
KR101795457B1 (ko) | 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법 | |
US10482252B2 (en) | Method for protecting the confidentiality and integrity of firmware for an Internet of Things device | |
BR112019013584A2 (pt) | Endereçamento de um ambiente de execução confiável usando a chave de assinatura | |
BR112016001608B1 (pt) | Método através do qual um dispositivo de cliente comprova sua autenticidade para um cliente de mídia a ser instalado por usuário no dispositivo de cliente e dispositivo de cliente | |
TWI631462B (zh) | 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體 | |
NO335189B1 (no) | Sikkert databehandlingssystem | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
US20060075254A1 (en) | Smart card functionality from a security co-processor and symmetric key in ROM | |
CN108270767B (zh) | 数据验证方法 | |
BRPI1103067A2 (pt) | mÉtodo, sistema e processador de seguranÇa destinados À execuÇço de um aplicativo de software | |
US11783027B2 (en) | Systems and methods for managing state | |
Unterstein et al. | SCA secure and updatable crypto engines for FPGA soc bitstream decryption | |
BR112017011624B1 (pt) | Método para proteger uma chave de dispositivo em um dispositivo, e dispositivo | |
CN115221535A (zh) | 使用可信平台模块管理敏感信息 | |
CN114024702A (zh) | 信息安全保护的方法以及计算设备 | |
Molcut et al. | Cybersecurity for embedded systems: a review | |
JP7476131B2 (ja) | 効率的なデータアイテム認証 | |
CN112528269B (zh) | 一种实现内核密码机的方法、装置和电子设备 | |
KR101839699B1 (ko) | 인증정보가 노출되지 않는 안전한 보안 usb 시스템 및 방법 | |
JP2022124424A5 (pt) | ||
Feller et al. | Requirements for Trustworthiness |