BR112020000220A2 - geração de declaração de atestado de chave proporcionando anonimato de dispositivo - Google Patents
geração de declaração de atestado de chave proporcionando anonimato de dispositivo Download PDFInfo
- Publication number
- BR112020000220A2 BR112020000220A2 BR112020000220-8A BR112020000220A BR112020000220A2 BR 112020000220 A2 BR112020000220 A2 BR 112020000220A2 BR 112020000220 A BR112020000220 A BR 112020000220A BR 112020000220 A2 BR112020000220 A2 BR 112020000220A2
- Authority
- BR
- Brazil
- Prior art keywords
- computing device
- attestation
- public
- private key
- certificate
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000003860 storage Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 15
- 238000012795 verification Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000036541 health Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0827—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Um dispositivo de computação envia uma solicitação para um certificado de atestado para um serviço de atestado junto com informação com respeito ao hardware e/ou ao software do dispositivo. O serviço de atestado processa a solicitação e verifica a informação recebida a partir do dispositivo. Após verificar a informação, o serviço de atestado seleciona um par de chaves pública/privada a partir de uma coleção de pares de chaves pública/privada reutilizáveis e gera um certificado de atestado para o dispositivo e a chave pública do par de chaves pública/privada. Este certificado de atestado é digitalmente assinado pelo serviço de atestado e retornado para o dispositivo. A chave privada do par de chaves pública/privada selecionado também é criptografada para um componente seguro confiável do dispositivo, garantindo que a chave não pode ser roubada por software malicioso e reutilizada em outro dispositivo, e é retornada para o dispositivo. O dispositivo utiliza este certificado de atestado para acessar partes confiáveis, e opcionalmente gera pares de chaves pública/privada e certificados de atestado adicionais.
Description
Relatório Descritivo da Patente de Invenção para "GERA- ÇÃO DE DECLARAÇÃO DE ATESTADO DE CHAVE PROPORCIO- NANDO ANONIMATO DE DISPOSITIVO". Antecedentes
[001] Dispositivos de computação têm se tornado crescentemen- te interconectados, resultando em serviços ficando disponíveis para estes dispositivos que proporcionam uma grande quantidade de infor- mações e/ou funcionalidade para os usuários desses dispositivos. À disponibilidade dessas informações e da funcionalidade é de grande auxílio para os usuários, mas não deixa de apresentar seus proble- mas. Um problema é que os usuários também com frequência dese- jam manter sua privacidade. Entretanto, acessar esses serviços pode envolver pelo menos alguma identificação do usuário e/ou do dispositi- vo do usuário, o que se difundido ou compartilhado com outros dispo- sitivos reduziria a privacidade que os usuários possuem. Isto pode le- var ao descontentamento do usuário com seus dispositivos e/ou servi- ços que eles acessam. Sumário
[002] Este sumário é proporcionado para introduzir uma seleção de conceitos em uma forma simplificada, os quais são ainda descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para identificar aspectos chave ou aspectos essenciais do assunto reivindi- cado, nem é pretendido para ser utilizado para limitar o escopo do as- sunto reivindicado.
[003] De acordo com um ou mais aspectos, em um serviço de atestado, uma solicitação de um certificado de atestado para um dis- positivo de computador é recebida a partir do dispositivo de computa- ção. A solicitação inclui informação descrevendo o hardware e/ou o software do dispositivo de computação. A informação recebida é verifi- cada, e um par de chaves assimétricas a partir de uma coleção de pa-
res de chaves assimétricas é selecionado, o par de chaves seleciona- do também sendo selecionado para vários dispositivos de computação adicionais. O certificado de atestado para o dispositivo de computação é gerado associando a chave pública do par de chaves selecionado com o certificado de atestado. A chave privada do par de chaves sele- cionado é criptografada para o primeiro dispositivo de computação. À chave privada criptografada do par selecionado e o certificado de ates- tado são retornados para o primeiro dispositivo de computação.
[004] De acordo com um ou mais aspectos, em um dispositivo de computação, uma solicitação por um certificado de atestado para o dispositivo de computação é enviada para um serviço de atestado, a solicitação incluindo informação descrevendo o hardware e/ou o sof- tware do dispositivo de computação. Um par de chaves pública/privada e o certificado de atestado que associa o par de chaves públi- ca/privada com um componente seguro confiável do dispositivo de computação são recebidos a partir do serviço de atestado. A chave privada do par de chaves pública/privada é armazenada em um arma- zenamento seguro do componente seguro confiável. Um ou mais pa- res de chaves pública/privada adicionais e um ou mais certificados de atestado adicionais são gerados sem acessar o serviço de atestado, cada um dos certificados de atestado adicionais amarrados com o ser- viço de atestado. Breve Descrição dos Desenhos
[005] A descrição detalhada é descrita com referência às figuras acompanhantes. Nas figuras, o(s) dígito(s) mais à esquerda de um número de referência identifica(m) a figura na qual o número de refe- rência primeiro aparece. O uso dos mesmos números de referência em diferentes casos na descrição e nas figuras pode indicar itens simi- lares ou idênticos. Entidades representadas nas figuras podem ser in- dicativas de uma ou mais entidades e assim, pode ser feita referência de forma intercambiável às formas no singular ou no plural das entida- des na discussão.
[006] A Figura 1 ilustra um sistema ilustrativo implementando a geração de declaração de atestado de chave proporcionando anoni- mato de dispositivo de acordo com uma ou mais modalidades.
[007] A Figura 2 ilustra um serviço de atestado ilustrativo de acordo com uma ou mais modalidades.
[008] A Figura 3 ilustra um componente seguro confiável ilustrati- vo de acordo com uma ou mais modalidades.
[009] A Figura 4 é um fluxograma ilustrando um processo ilustra- tivo para implementar a geração de declaração de atestado de chave proporcionando anonimato de dispositivo de acordo com uma ou mais modalidades.
[0010] A Figura 5 é um fluxograma ilustrando outro processo ilus- trativo para implementar a geração de declaração de atestado de cha- ve proporcionando anonimato de dispositivo de acordo com uma ou mais modalidades.
[0011] A Figura 6 ilustra um sistema ilustrativo que inclui um dis- positivo de computação ilustrativo que é representativo de um ou mais sistemas e/ou dispositivos que podem implementar as várias técnicas descritas neste documento.
Descrição Detalhada
[0012] A geração de declaração de atestado proporcionando ano- nimato de dispositivo é discutida neste documento. De modo que um dispositivo de computação acesse um sistema que requer prova de que o dispositivo de computação é o dispositivo que ele reivindica ser, o dispositivo de computação obtém um certificado de atestado a partir de uma terceira parte confiável. A terceira parte confiável também é referida como um serviço de atestado ou autoridade de certificação. O dispositivo de computação envia uma solicitação de um certificado de atestado para o serviço de atestado junto com informação com respei- to ao hardware do dispositivo de computação e opcionalmente sobre o software executando no dispositivo de computação. Esta informação provém de um componente seguro confiável do dispositivo de compu- tação e assim, pode ser acreditado pelo serviço de atestado. O dispo- sitivo de computação também envia uma chave pública de uma chave de criptografia para o serviço de atestado. Esta chave de criptografia é um par de chaves assimétricas que residem no componente seguro confiável do dispositivo de computação, as quais garantem que a cha- ve privada da chave de criptografia não pode ser obtida por software malicioso a partir do dispositivo de computação e utilizada em qual- quer outro lugar.
[0013] O serviço de atestado processa a solicitação de certificado de atestado e verifica a informação recebida a partir do dispositivo de computação. Esta verificação pode incluir várias ações, tais como veri- ficar que o dispositivo de computação inclui hardware particular, verifi- car que o software particular está executando no dispositivo de compu- tação, e assim por diante. Após o serviço de atestado verificar as pro- priedades do hardware e/ou do software da solicitação de certificado de atestado, o serviço de atestado tem a garantia de que as proprie- dades são genuínas e, por consequência, ele pode verificar por indu- ção que se as propriedades genuínas atestam a presença da chave de criptografia pertencendo ao componente seguro confiável, então qual- quer coisa criptografada com a chave pública da chave de criptografia somente pode ser descriptografada pelo componente seguro confiável.
[0014] O serviço de atestado mantém uma coleção de pares de chave pública/privada que podem ser novamente utilizados. Após veri- ficar a informação recebida a partir do dispositivo de computação, o serviço de atestado seleciona um par de chaves pública/privada a par- tir da coleção de pares de chave pública/privada que podem ser no-
vamente utilizados e gera um certificado de atestado para o dispositivo de computação e a chave pública do par de chaves pública/privada. Este certificado de atestado é digitalmente assinado pelo serviço de atestado, certificando que a chave pública do par de chaves públi- ca/privada selecionado está associada com o componente seguro con- fiável do dispositivo de computação. Este certificado de atestado tam- bém é referido como declaração de atestado ou declaração de atesta- do de chave.
[0015] O serviço de atestado retorna o certificado de atestado para o dispositivo de computação junto com a chave privada do par de cha- ves pública/privada selecionado. A chave privada é criptografada com uma chave ligada com o componente seguro confiável do dispositivo de computação, permitindo que a chave privada seja transmitida de forma segura para o componente seguro confiável do dispositivo de computação. O componente seguro confiável recebe e armazena o certificado de atestado bem como o par de chaves pública/privada.
[0016] Quando subsequentemente se comunicando com uma par- te confiável que deseja prova de que o dispositivo de computação é a entidade que ela reivindica ser, o componente seguro confiável pro- porciona para a parte confiável prova de posse do certificado de ates- tado e o par de chaves pública/privada. Esta prova pode ser proporci- onada de várias maneiras, tal como por digitalmente assinar, utilizando a chave privada do par de chaves pública/privada, um valor de dados (por exemplo, variável gerada para uma ocasião) proporcionado para o componente seguro confiável pela parte confiável.
[0017] O serviço de atestado pode e seleciona o mesmo par de chaves pública/privada a partir da coleção de pares de chaves públi- ca/privada para diferentes dispositivos de computação solicitando um certificado de atestado. Por consequência, vários diferentes dispositi- vos de computação irão utilizar o mesmo par de chaves públi-
ca/privada ao mesmo tempo. Permitir que vários dispositivos de com- putação diferentes possuam o mesmo par de chaves pública/privada impede diferentes partes confiáveis de conspirar e determinar a identi- dade de um dispositivo de computação particular. Por exemplo, se du- as partes confiáveis diferentes forem acessadas por um ou mais dis- positivos de computação utilizando o mesmo par de chaves públi- ca/privada e certificados de atestado, as duas diferentes partes confiá- veis não podem saber se é o mesmo dispositivo de computação aces- sando ambas as mesmas ou dois diferentes dispositivos de computa- ção que receberam o mesmo par de chaves pública/privada. Isto pro- porciona anonimato para os dispositivos de computação devido às par- tes confiáveis não poderem conspirar e compartilhar informações com respeito a um dispositivo de computação particular devido às partes confiáveis não poderem estar certas de que elas estão se comunican- do com o mesmo dispositivo de computação.
[0018] Adicionalmente, o componente seguro confiável pode opci- onalmente utilizar o par de chaves pública/privada recebido a partir do serviço de atestado para gerar seus próprios pares de chaves pública lprivada e certificados de atestado que se ligam ao serviço de atesta- do. Isto permite que o componente seguro confiável gere novos pares de chaves pública/privada e certificados de atestado para uso com di- ferentes partes confiáveis. Além disso, cada um destes novos pares de chaves pública/privada liga-se com uma chave do serviço de atestado que foi proporcionada para vários diferentes dispositivos de computa- ção, assim permitindo que o componente seguro confiável rapidamen- te gere novos pares de chaves pública/privada (sem ter que acessar o serviço de atestado) enquanto ainda proporcionando o anonimato dos mesmos pares de chaves pública/privada sendo selecionados para diferentes dispositivos de computação.
[0019] Neste documento são feitas referências à criptografia de chave simétrica, à criptografia de chave pública e aos pares de chaves pública/privada. Apesar de tal criptografia de chave ser bem conhecida pelos versados na técnica, uma breve vista geral de tal criptografia es- tá incluída aqui para auxiliar o leitor. Na criptografia de chave pública (também referida como criptografia de par de chaves pública/privada), uma entidade (tal como um usuário, componente de hardware ou sof- tware, um dispositivo, um domínio, e assim por diante) tem associado com o mesmo um par de chaves pública/privada. Este par de chaves pública/privada também é referido como um par de chaves assimétri- cas. A chave pública pode ser tornada públicamente disponível, mas a entidade mantém a chave privada secreta. Sem a chave privada, é computacionalmente muito difícil descriptografar dados que são cripto- grafados utilizando a chave pública. Assim, dados podem ser cripto- grafados por qualquer entidade com a chave pública e somente des- criptografados por uma entidade com a chave privada correspondente. Adicionalmente, uma assinatura digital para os dados pode ser gerada pela utilização dos dados e da chave privada. Sem a chave privada, é computacionalmente muito difícil criar uma assinatura que possa ser verificada utilizando a chave pública. Qualquer entidade com a chave pública pode utilizar a chave pública para verificar a assinatura digital por executar um algoritmo adequado de verificação de assinatura digi- tal em relação à chave pública, à assinatura e aos dados que foram assinados.
[0020] Na criptografia de chave simétrica, por outro lado, uma chave compartilhada (também referida como chave simétrica) é co- nhecida e mantida secreta pelas duas entidades. Qualquer entidade possuindo a chave compartilhada tipicamente está apta a descripto- grafar dados criptografados com esta chave compartilhada. Sem a chave compartilhada é computacionalmente muito difícil descriptogra- far dados que são criptografados com a chave compartilhada. Assim,
se duas entidades conhecerem a chave compartilhada, cada uma po- de criptografar dados que podem ser descriptografados pela outra, mas outras entidades não podem descriptografar os dados se as ou- tras entidades não conhecerem a chave compartilhada. De forma simi- lar, uma entidade com uma chave compartilhada pode criptografar da- dos que podem ser descriptografados pela mesma entidade, mas ou- tras entidades não podem descriptografar dados se as outras entida- des não conhecerem a chave compartilhada. Adicionalmente, assina- turas digitais podem ser geradas baseadas na criptografia de chave simétrica, tal como utilizando um mecanismo de código de autentica- ção de mensagem com hash com chave. Qualquer entidade com a chave compartilhada pode gerar e verificar a assinatura digital. Por exemplo, uma terceira parte confiável pode gerar uma chave simétrica baseada em uma identidade de uma entidade particular, e então am- bas podem gerar e verificar assinaturas digitais para essa entidade particular (por exemplo, por criptografar ou descriptografar os dados utilizando a chave simétrica).
[0021] A Figura 1 ilustra um sistema ilustrativo 100 implementando a geração de declaração de atestado de chave proporcionando ano- nimato de dispositivo de acordo com uma ou mais modalidades. O sis- tema 100 inclui um dispositivo de computação 102 que pode se comu- nicar com um serviço de atestado 104 e com um sistema de parte con- fiável 106 via uma rede 108. A rede 108 pode ser uma variedade de diferentes redes, incluindo a Internet, uma rede de área local (LAN), uma rede telefônica, uma intranet, outras redes públicas e/ou proprie- tárias, combinações das mesmas, e assim por diante.
[0022] O dispositivo de computação 102 pode ser uma variedade de diferentes tipos de dispositivos. Por exemplo, o dispositivo de computação 102 pode ser um computador de mesa, um computador servidor, um computador laptop ou netbook, um dispositivo móvel (por exemplo, um dispositivo tablet ou phablet, um telefone celular ou outro telefone sem uso de fios (por exemplo, um smartphone), um computa- dor notepad, uma estação móvel), um dispositivo vestível (por exem- plo, óculos, vídeo montado na cabeça, relógio, pulseira, dispositivos de realidade aumentada (AR), dispositivos de realidade virtual (VR), um dispositivo de entretenimento (por exemplo, aparelho de entretenimen- to, uma caixa decodificadora de sinais comunicativamente acoplada com um dispositivo de vídeo, um console de jogo), dispositivos Internet das Coisas (loT) (por exemplo, objetos ou coisas com software, fir- mware, e/ou hardware para permitir comunicação com outros disposi- tivos), uma televisão ou dispositivo de vídeo, um computador automo- tivo, dentre outros. Assim, o dispositivo de computação 102 pode vari- ar de um dispositivo com recursos plenos com recursos substanciais de memória e processador (por exemplo, computadores pessoais, consoles de jogo) até uma dispositivo com pouco recursos com recur- sos limitados de memória e/ou de processamento (por exemplo, caixas decodificadoras de sinais tradicionais, consoles de jogo portáteis).
[0023] O serviço de atestado 104 é um serviço ou sistema imple- mentado por um ou mais dispositivos de computação do mesmo tipo ou de tipos diferentes. Similar à discussão do dispositivo de computa- ção 102, o serviço de atestado 104 pode ser implementado por vários diferentes tipos de dispositivos, variando de dispositivos com recursos plenos com recursos substanciais de memória e processador até dis- positivos com poucos recursos com recursos limitados de memória e/ou de processamento.
[0024] O sistema de parte confiável 106 é implementado por um ou mais dispositivos de computação do mesmo ou de tipos diferentes. Similar à discussão do dispositivo de computação 102, o sistema de parte confiável 106 pode ser implementado por vários diferentes tipos de dispositivos, variando de dispositivos com recursos plenos com substanciais recursos de memória e de processador até dispositivos com poucos recursos com recursos limitados de memória e/ou de pro- cessamento.
[0025] A Figura 1 ilustra um sistema ilustrativo 100 com um único dispositivo de computação 102, um único dispositivo de atestado 104, e um único sistema de parte confiável 106. Deve ser observado, entre- tanto, que o sistema 100 pode incluir vários dispositivos de computa- ção 102, vários serviços de atestado 104 e/ou vários sistemas de parte confiável 106.
[0026] O dispositivo de computação 102 inclui um componente se- guro confiável 112, um ou mais aplicativos 114, e um sistema operaci- onal 116. O componente seguro confiável 112 é um componente que é julgado confiável pelo serviço de atestado 104. O componente seguro confiável 112 é discutido abaixo em maiores detalhes, e pode incluir componentes de hardware particulares, componentes de software par- ticulares, carregamento ou inicialização do dispositivo de computação 102 de uma maneira ou sequência particular, e assim por diante.
[0027] O sistema operacional 116 inclui um ou mais programas que proporcionam várias funcionalidades para o dispositivo de compu- tação 102, incluindo facilitar comunicação com componentes de hardware do dispositivo de computação 102. Um ou mais aplicativos 114 podem ser executados no sistema operacional 116, tais como aplicativos de entretenimento, aplicativos educacionais, aplicativos de produtividade, e assim por diante. Programas do sistema operacional 116 e/ou dos aplicativos 114 podem acessar o sistema da parte confi- ável 106. Apesar de ilustrado como separado do componente seguro confiável 112, um ou mais aplicativos 114 podem estar incluídos no componente seguro confiável 112 e/ou pelo menos parte do sistema operacional 116 pode estar incluída no componente seguro confiável
112.
[0028] O sistema da parte confiável 106 pode ser qualquer um dentre vários diferentes sistemas que proporcionam informação ou funcionalidade para o dispositivo de computação 102. Estes podem ser, por exemplo, sistemas que permitem o dispositivo de computação 102 acessar vários tipos de conteúdo de entretenimento (por exemplo, conteúdo de áudio e/ou de vídeo), sistemas que permitem o dispositivo de computação 102 executar vários aplicativos educacionais ou de produtividade, sistemas que permitem o dispositivo de computação 102 acessar informação segura ou confidencial, e assim por diante.
[0029] De modo a acessar o sistema da parte confiável 106, o componente seguro confiável 112 obtém um certificado de atestado a partir do serviço de atestado 104. Em uma ou mais modalidades, os certificados de atestado discutidos neste documento são certificados X.509 de acordo com qualquer um dos padrões de certificado X.509 (por exemplo, o Network Working Group Request for Comments 1422 (fevereiro de 1993)). O componente seguro confiável 112 envia uma solicitação de certificado de atestado para o serviço de atestado 104 que inclui informação descrevendo o dispositivo de computação 102 incluindo informação descrevendo o componente seguro confiável 112.
[0030] O serviço de atestado 104 inclui um sistema de certificado de atestado suportando anonimato de cliente 122 e a coleção de cha- ves 124. A coleção de chaves 124 é uma coleção de vários pares de chaves pública/privada. A coleção de chaves 124 pode ser mantida de várias maneiras diferentes, tal como em um dispositivo de armazena- mento (por exemplo, uma unidade de disco magnético, uma unidade de estado sólido) ou em outra memória (por exemplo, memória de acesso aleatório (RAM)). O sistema de certificado de atestado supor- tando anonimato de cliente 122 recebe a solicitação de certificado de atestado a partir do componente seguro confiável 112 e verifica a in- formação recebida como parte da solicitação de certificado de atesta-
do. Esta verificação é discutida abaixo em maiores detalhes, e pode incluir várias ações tais como verificar que o dispositivo de computa- ção inclui hardware particular, verificar que o software particular está executando no dispositivo de computação, e assim por diante. A ma- neira na qual a verificação é executada pode variar baseado na manei- ra na qual o componente seguro confiável 112 é implementado.
[0031] Se o sistema de certificado de atestado suportando anoni- mato de cliente 122 não puder verificar a informação recebida como parte da solicitação de certificado de atestado, então o sistema de cer- tificado de atestado suportando anonimato de cliente 122 não emite um certificado de atestado para o dispositivo de computação 102. En- tretanto, se o sistema de certificado de atestado suportando anonimato de cliente 122 verificar a informação recebida como parte da solicita- ção de certificado de atestado, então o sistema de certificado de ates- tado suportando anonimato de cliente 122 seleciona um par de chaves pública/privada a partir da coleção de chaves 124 e gera um certifica- do de atestado para o dispositivo de computação 102. Este certificado de atestado associa o componente seguro confiável 112 com o par de chaves pública/privada, e é digitalmente assinado pelo sistema de cer- tificado de atestado suportando anonimato de cliente 122.
[0032] O sistema de certificado de atestado suportando anonimato de cliente 122 retorna o certificado de atestado para o dispositivo de computação 102 junto com a chave privada do par de chaves públi- ca/privada selecionado. O sistema de certificado de atestado supor- tando anonimato de cliente 122 criptografa a chave privada com uma chave ligada com o componente seguro confiável 112, tal como uma chave pública de um par de chaves pública/privada do componente seguro confiável 112, permitindo que a chave privada do par de cha- ves pública/privada seja transmitida de forma segura para o compo- nente seguro confiável 112. O componente seguro confiável 112 rece-
be e armazena o certificado de atestado bem como o par de chaves pública/privada no armazenamento de chave 126.
[0033] O dispositivo de computação 102 pode utilizar o sistema da parte confiável 106 por proporcionar prova para o sistema da parte confiável 106 de que foi emitido para o para o componente seguro confiável 112 um certificado de atestado pelo serviço de atestado 104. Dados o certificado de atestado e o par de chaves pública/privada se- lecionados para o dispositivo de computação 102, esta prova pode ser proporcionada para o sistema da parte confiável 106 de várias manei- ras. Por exemplo, o sistema de parte confiável 106 pode proporcionar uma variável com validade para uma vez para o componente seguro confiável 112 e o componente seguro confiável 112 digitalmente assi- na a variável com validade para uma vez utilizando a chave privada do par de chaves pública/privada recebido a partir do serviço de atestado
104. A assinatura digital do serviço de atestado 104 em relação ao cer- tificado de atestado pode ser verificada pelo sistema da parte confiável 106 utilizando a chave pública do serviço de atestado 104. A assinatu- ra digital em relação à variável com validade para uma vez também pode ser verificada pelo sistema da parte confiável 106 utilizando a chave pública incluída no certificado de atestado, desse modo propor- cionando para o sistema da parte confiável 106 que o certificado de atestado (e a chave pública referenciada pelo certificado de atestado) foi proporcionado para o dispositivo de computação 102 pelo serviço de atestado 104.
[0034] O sistema da parte confiável 106 opcionalmente inclui vá- rias verificações ou checagens adicionais de modo a permitir que o dispositivo de computação 102 utilize o sistema da parte confiável 106. Por exemplo, o sistema da parte confiável 106 pode impor uma restri- ção de que o componente seguro confiável 112 do dispositivo de com- putação 102 deva ser pelo menos um número de versão particular.
[0035] A Figura 2 ilustra um serviço de atestado ilustrativo 104 de acordo com uma ou mais modalidades. O serviço de atestado 104 in- clui o sistema de certificado de atestado suportando anonimato de cli- ente 122 e a coleção de chaves 124. O sistema de certificado de ates- tado suportando anonimato de cliente 122 inclui um módulo de comu- nicação 202, um módulo de verificação 204, um módulo de seleção de chave 206, e um módulo de geração de certificado de atestado 208.
[0036] O módulo de comunicação 202 recebe a solicitação por um certificado de atestado a partir do dispositivo de computação 102 da Figura 1. Apesar de discutido com referência ao dispositivo de compu- tação 102 da Figura 1, deve ser observado que o serviço de atestado 104 pode, e tipicamente recebe, solicitações por certificados de ates- tação a partir de vários diferentes dispositivos de computação 102. À solicitação inclui informação descrevendo o dispositivo de computação 102, como discutido acima.
[0037] O módulo de verificação 204 verifica a informação descre- vendo o dispositivo de computação 102. A informação específica que é recebida a partir do dispositivo de computação 102 pode variar, e a maneira na qual o módulo de verificação 204 verifica a informação descrevendo o dispositivo de computação 102 também varia pelo me- nos em parte baseado na maneira na qual o componente seguro con- fiável 112 é implementado.
[0038] Retornando para a Figura 1, geralmente, o componente se- guro confiável 112 é implementado de modo que o componente segu- ro confiável 112 inclua hardware e/ou software que permita ao disposi- tivo de computação 102 executar em um estado que é confiável pelo serviço de atestado 104. Um estado que é confiável pelo serviço de atestado 104 é um estado que, por exemplo, seja protegido contra sof- tware malicioso que possa atacar o dispositivo de computação 102, que permita ao serviço de atestado 104 ficar seguro de que o serviço de atestado 104 está se comunicando com o dispositivo de computa- ção 102 (ou com o componente seguro confiável 112 do dispositivo de computação 102) ao invés do que com outro dispositivo se passando pelo dispositivo de computação 102 e/ou pelo componente seguro confiável 112, e assim por diante.
[0039] Em uma ou mais modalidades, o componente seguro confi- ável 112 inclui um criptoprocessador seguro que é um módulo de pla- taforma confiável (TPM). O TPM inclui várias funcionalidades, tal como geração de chave, criptografia, descriptografia, armazenamento segu- ro (por exemplo, registradores de configuração da plataforma), e assim por diante. Em uma ou mais modalidades, o TPM está de acordo com a especificação versão 2.0 do Trusted Computing Group Trusted Plat- form Module, públicado como a especificação Trusted Platform Module Library, Family "2.0", Level 00, Revision 01.16 (30 de outubro de 2014), Parts 1 — 4. Apesar de ser feita referência neste documento a um TPM, o componente seguro confiável 112 pode alternativamente utilizar um ou mais outros criptoprocessadores que proporcionam fun- cionalidade similar ao TPM.
[0040] O componente seguro confiável 112 possui um par de cha- ves pública/privada associado. Isto permite que outros dispositivos ou componentes descriptografem dados utilizando a chave pública do par de chaves pública/privada do componente seguro confiável de modo que somente o componente seguro confiável 112 possa descriptogra- far os dados. Em uma ou mais modalidades, o componente seguro confiável 112 pode recuperar seu par de chaves pública/privada a par- tir de um TPM somente se o dispositivo de computação 102 tiver sido inicializado em um modo particular ou inicializado carregando software em uma ordem particular. Isto proporciona proteção adicional para o componente seguro confiável 112, permitindo que o componente segu- ro confiável 112 acesse seu par de chaves pública/privada somente se o dispositivo de computação tiver inicializado em um modo conhecido particular (por exemplo, um modo seguro ou confiável) ou com softwa- re particular (por exemplo, sem software malicioso).
[0041] Em uma ou mais modalidades, a informação descrevendo o dispositivo de computação 102 que acompanha a solicitação pelo cer- tificado de atestado indica a saúde (ou atestado de saúde) do disposi- tivo de computação 102. A saúde do dispositivo de computação 102 pode ser especificada de várias maneiras diferentes, tal como uma in- dicação de quais módulos foram carregados quando inicializando o dispositivo de computação 102, uma indicação de se um módulo ou funcionalidade particular foi carregado quando inicializando o dispositi- vo de computação 102, uma indicação de se o dispositivo de compu- tação 102 foi inicializado em um modo particular (por exemplo,em um modo de inicialização segura), uma indicação de se aspectos particu- lares de segurança estão ativados ou desativados, uma indicação de se um modo seguro virtual (VSM) está executando no dispositivo de computação 102 (por exemplo, como parte do componente seguro confiável 112), e assim por diante.
[0042] Adicionalmente ou alternativamente, a informação descre- vendo o dispositivo de computação 102 que acompanha a solicitação por certificado de atestado indica que o componente seguro confiável 112 é um componente (por exemplo, um componente de hardware) que é confiável pelo serviço de atestado 104 (também referido como atestado de chave). O componente seguro confiável 112 pode possuir um par de chaves pública/privada, e a chave pública deste par de cha- ves pública/privada pode ser conhecida pelo serviço de atestado 104. Assim, o componente seguro confiável 112 pode proporcionar uma indicação de que ele é na verdade o componente seguro confiável 112 por digitalmente assinar um valor (por exemplo, uma variável com vali- dade para uma vez) utilizando a chave privada do par de chaves públi-
ca/privada do componente seguro confiável 112.
[0043] Retornando para a Figura 2, o módulo de verificação 204 verifica a informação descrevendo o dispositivo de computação 102 que acompanha a solicitação para o certificado de atestado. Por exemplo, para um atestado de saúde, o módulo de verificação 204 po- de verificar que a informação recebida a partir do dispositivo de com- putação 102 indica que módulos particulares foram carregados quando inicializando o dispositivo de computação 102, que o dispositivo de computação 102 foi inicializado em um modo particular (por exemplo, em um modo de inicialização segura), que aspectos de segurança par- ticulares estão ativados ou desativados, e assim por diante. A título de outro exemplo, para atestado de chave, o módulo de verificação 204 pode verificar a assinatura digital em relação a um valor (por exemplo, uma variável com validade de uma vez) digitalmente assinado pelo componente seguro confiável 112.
[0044] Se o módulo de verificação 204 não verificar a informação recebida a partir do dispositivo de computação 102, então nenhuma chave é selecionada para o dispositivo de computação 102 e um certi- ficado de atestado não é gerado para o dispositivo de computação
102. Entretanto, se o módulo de verificação 204 verificar a informação recebida a partir do dispositivo de computação 102, então o módulo de seleção de chave 206 seleciona um par de chaves assimétricas (um par de chaves pública/privada) a partir da coleção de chaves 124. À seleção pode ser executada aleatoriamente, pseudo-aleatoriamente, ou de acordo com várias outras regras ou critérios.
[0045] A coleção de chaves 124 pode possuir qualquer número de pares de chaves assimétricas, tal como dezenas, centenas, milhares ou mais. Os pares de chaves assimétricas na coleção de chaves 124 podem ser anteriormente gerados (por exemplo, pelo módulo de sele- ção e chave 206 ou por outro módulo do serviço de atestado 104 antes da recepção da solicitação por certificado de atestado a partir do dis- positivo de computação 102) e mantidos na coleção de chaves 124, então selecionados a partir de quando desejado pelo módulo de sele- ção de chave 206. O número de pares de chaves assimétricas incluí- dos na coleção de chaves 124 pode variar baseado em vários fatores diferentes. Em uma ou mais modalidades, o número de pares de cha- ves assimétricas incluídos na coleção de chaves 124 é determinado por equilibrar o anonimato dos dispositivos de computação em relação à necessidade de invalidar certificados de atestado no evento de que uma chave esteja compreendida (por exemplo, descoberta ou potenci- almente descoberta por software malicioso). Por exemplo, menos pa- res de chaves assimétricas resultam em anonimato aumentado para os dispositivos de computação devido mais dispositivos de computa- ção obterem o mesmo par de chaves assimétricas, mas também resul- tam na necessidade de invalidar um grande número de certificados de atestado no caso em que um par de chaves assimétricas está com- prometido devido a um grande número de dispositivos de computação receberem o par de chaves assimétricas comprometido.
[0046] Também deve ser observado que os pares de chaves as- simétricas incluídos na coleção de chaves 124 podem alterar com o passar do tempo. Por exemplo, o módulo de seleção de chave 206 pode gerar novos pares de chaves assimétricas para adicionar para a coleção de chaves 124 em intervalos regulares ou irregulares, e pode apagar pares de chaves assimétricas a partir da coleção de chaves 124 em intervalos regulares ou irregulares.
[0047] O módulo de geração de certificado de atestado 208 gera um certificado que associa o certificado com a chave pública do par de chaves pública/privada selecionado. O certificado de atestado também associa o componente seguro confiável 112 (e/ou o dispositivo de computação 102) com a chave pública do par de chaves públi-
ca/privada selecionado. Esta associação é executada, por exemplo, pelo certificado incluindo a chave pública do par de chaves públi- ca/privada selecionado e a chave privada do par de chaves públi- ca/privada selecionado sendo seguramente proporcionadas para O componente seguro confiável 112 (por exemplo, criptografadas utili- zando uma chave do componente seguro confiável 112). De modo a manter anonimato do componente seguro confiável 112 (e/ou do dis- positivo de computação 102), um nome ou outro identificador do com- ponente seguro confiável 112 e/ou do dispositivo de computação 102 não precisa estar incluído no certificado gerado. O módulo de geração de certificado de atestado 208 digitalmente assina o certificado utili- zando uma chave pública do par de chaves pública/privada do serviço de atestado 104, criando o certificado de atestado que permite que uma parte confiável saiba que o serviço de atestado 104 verificou o componente seguro confiável 112 e forneceu para o componente se- guro confiável 112 o par de chaves pública/privada selecionado.
[0048] O módulo de comunicação 202 retorna para o componente seguro confiável 112 o certificado de atestado bem como a chave pri- vada do par de chaves pública/privada selecionado pelo módulo de seleção de chave 206. A chave privada do par de chaves públi- ca/privada selecionado é criptografada (por exemplo, utilizando a cha- ve pública do par de chaves pública/privada do componente seguro confiável 112) de modo que a chave privada é seguramente transmiti- da para o componente seguro confiável 112 e não pode ser lida por qualquer dispositivo clandestino ou outro dispositivo intermediário. O certificado de atestado também pode ser, mas não precisa ser, cripto- grafado de modo a ser seguramente transmitido para o componente seguro confiável 112.
[0049] Assim, o certificado de atestado gerado pelo módulo de ge- ração de certificado de atestado 208 inclui a chave pública do par de chaves pública/privada selecionado.
O certificado de atestado é digi- talmente assinado pelo módulo de geração de certificado de atestado 208, proporcionando que a chave pública do par de chaves públi- ca/privada selecionado foi distribuída com este certificado de atestado.
A chave privada do par de chaves pública/privada selecionado é então seguramente proporcionada para o componente seguro confiável 112. Quando o dispositivo de computação 102 subsequentemente deseja acessar uma parte confiável 104, a parte confiável 104 pode proporci- onar uma variável com validade de uma vez para o componente segu- ro confiável 112 do dispositivo de computação.
O componente seguro confiável 112 digitalmente assina a variável com validade para uma vez utilizando a chave privada do par de chaves pública/privada sele- cionado, e envia a variável com validade para uma vez assinada bem como o certificado de atestado para a parte confiável 104. A parte con- fiável 104 utiliza a chave pública do serviço de atestado 104 para veri- ficar que o módulo de geração de certificado de atestado 208 realmen- te assinou (e assim, distribuiu) o certificado de atestado.
Além disso, a parte confiável 104 pode utilizar a chave pública no certificado de ates- tado para verificar que a variável com validade para uma vez foi digi- talmente assinada por um componente seguro confiável que foi acredi- tado pelo serviço de atestado 104 (devido ao fato de que o componen- te seguro confiável 112 somente teria a chave privada que é parte do mesmo par de chaves pública/privada que a chave pública no certifi- cado se o serviço de atestado 104 acreditou no componente seguro confiável 112 e forneceu para o componente seguro confiável 112 a chave privada). A parte confiável 104 assim pode verificar que o com- ponente seguro confiável 112 é acreditado pelo serviço de atestado 104, mas o certificado confiado pela parte confiável 104 não precisa ter o mesmo ou outro identificador do componente seguro confiável particular ou do dispositivo de computação 102.
[0050] A Figura 3 ilustra um componente seguro confiável 112 de acordo com uma ou mais modalidades. O componente seguro confiá- vel 112 inclui o depósito de chave 126, um módulo de recuperação de certificado de atestado 302, um módulo de geração de certificado de atestado 304, um módulo de geração de chave 306 e um depósito de certificado 308.
[0051] O módulo de recuperação de certificado de atestado 302 se comunica com o serviço de atestado 104, enviando uma solicitação para um certificado de atestado e recebendo o certificado de atestado e a chave privada criptografada a partir do serviço de atestado 104. O par de chaves pública/privada (ou pelo menos a chave privada do par de chaves pública/privada) recebido a partir do serviço de atestado 104 é armazenado no depósito de chave 126. O certificado de atesta- do recebido a partir do serviço de atestado 104 também é armazenado em um depósito de certificado 308. O depósito de chave 126 é um de- pósito seguro, acessível somente pelos módulos do componente segu- ro confiável 112. O depósito de certificado 308 pode ser, mas não pre- cisa ser, um depósito seguro. Adicionalmente ou alternativamente, o certificado de atestado pode ser armazenado externo ao componente seguro confiável 112.
[0052] O componente seguro confiável 112 é acreditado pelo ser- viço de atestado 104, e assim, o módulo de geração de certificado de atestado 304 também pode gerar certificados de atestado. O módulo de geração de chave 306 gera pares de chaves públicas/privadas utili- zando qualquer uma dentre várias técnicas públicas ou proprietárias. O módulo de geração de certificado de atestado 304 gera um certifica- do que associa o certificado com a chave pública do par de chaves pública/privada recentemente gerado. O certificado de atestado tam- bém associa o componente seguro confiável 112 (e/ou o dispositivo de computação 102) com a chave pública do par de chaves públi-
ca/privada recentemente gerado pelo módulo de geração de chave
306. Esta associação é executada, por exemplo, pelo certificado inclu- indo a chave pública do par de chaves pública/privada recentemente gerado sendo mantida de forma segura pelo componente seguro con- fiável 112 (por exemplo, armazenado no depósito de chave 126). De modo a manter anonimato do componente seguro confiável 112 (e/ou do dispositivo de computação 102), um nome ou outro identificador do componente seguro confiável 112 e/ou do dispositivo de computação 102 não precisa estar incluído no certificado recém gerado. O módulo de geração de certificado de atestado 304 digitalmente assina o certifi- cado utilizando a chave pública do par de chaves pública/privada re- cebido a partir do serviço de atestado 104, criando um certificado de atestado que se liga com o serviço de atestado 104 e assim, permite que uma parte confiável saiba que o serviço de atestado 104 verificou o componente seguro confiável 112. Além disso, devido aos certifica- dos de atestado gerados pelo módulo de geração de certificado de atestado 304 serem digitalmente assinados utilizando a chave pública do par de chaves pública/privada recebido a partir do serviço de ates- tado 104 e ligado com o serviço de atestado 104 baseado na chave pública, e que vários dispositivos de computação diferentes irão rece- ber esta mesma chave pública e gerar certificados de atestado basea- do na mesma chave pública, o anonimato do dispositivo de computa- ção 102 é mantido independente do dispositivo de computação 102 gerar seus próprios certificados de atestado.
[0053] O par de chaves pública/privada (ou pelo menos a chave privada do par de chaves pública/privada) gerado pelo módulo de ge- ração de chave 306 é armazenado no depósito de chave 126. O certi- ficado de atestado gerado pelo módulo de geração de certificado de atestado 304 é armazenado no depósito de certificado 308.
[0054] O módulo de geração de certificado de atestado 304 e o módulo de geração de chave 306 podem gerar novas chaves e certifi- cados de atestado como desejado. Isto permite que novas chaves e certificados de atestado sejam gerados sem acessar a rede 108 e o serviço de atestado 104 para cada nova chave e certificado de atesta- do, reduzindo a quantidade de tempo necessária para obter uma nova chave e certificado de atestado. A título de exemplo, um novo par de chaves pública/privada e certificado de atestado podem ser gerados para cada novo sistema de parte confiável 106 que é acessado pelo dispositivo de computação 102, para cada novo site da rede que é acessado por um navegador da rede executando no dispositivo de computação 102, e assim por diante.
[0055] A Figura 4 é um fluxograma ilustrando um processo ilustra- tivo 400 para implementar a geração de declaração de atestado de chave proporcionando anonimato de dispositivo de acordo com uma ou mais modalidades. O processo 400 é realizado por um dispositivo de atestado, tal como o serviço de atestado 104 da Figura 1 ou da Fi- gura 2, e pode ser implementado em software, firmware, hardware, ou em combinações dos mesmos. O processo 400 é apresentado como um conjunto de atos e não está limitado à ordem apresentada para execução das operações dos vários atos. O processo 400 é um pro- cesso ilustrativo para implementar a geração de declaração de atesta- do de chave proporcionando anonimato de dispositivo; discussões adi- cionais para implementação da geração de declaração de atestado de chave proporcionando anonimato de dispositivo estão incluídas neste documento com referência às diferentes figuras.
[0056] No processo 400, uma solicitação para um certificado de atestado para um dispositivo de computação é recebida (ato 402). A solicitação inclui informação descrevendo o software e/ou o hardware do dispositivo de computação. A informação pode indicar a saúde do dispositivo de computação e/ou que o componente seguro confiável é um componente que é acreditado pelo serviço de atestado como dis- cutido acima.
[0057] A informação recebida é verificada (ato 404). A maneira na qual o serviço de atestado verifica a informação varia baseado pelo menos em parte na informação que é recebida como discutido acima.
[0058] Um par de chaves assimétricas é selecionado a partir de uma coleção de chaves assimétricas (ato 406). Cada uma das chaves assimétricas na coleção de chaves é um par de chaves pública/pri- vada, e um dos pares de chaves é selecionado de várias maneiras como discutido acima, tal como aleatoriamente ou pseudoaleatoria- mente.
[0059] O certificado de atestado para o dispositivo de computação e o par de chaves selecionado são gerados (ato 408). O certificado de atestado associa a chave pública do par de chaves selecionado com o certificado de atestado.
[0060] A chave privada do par de chaves selecionado também é criptografada para o dispositivo de computação (ato 410). O par de chaves assimétricas selecionado pode ser criptografado, ou apenas a chave privada do par de chaves assimétricas selecionado pode ser criptografada. A chave privada do par de chaves selecionado é cripto- grafada utilizando uma chave pública de um par de chaves públi- ca/privada de um componente seguro confiável do dispositivo de com- putação. A chave pública do componente seguro confiável pode ser incluída na informação descrevendo o dispositivo de computação re- cebida no ato 402 ou pode ser obtida de outro modo.
[0061] A chave privada criptografada do par de chaves seleciona- do e o certificado de atestado são retornados para o dispositivo de computação (ato 412). A chave privada criptografada do par de chaves selecionado e o certificado de atestado podem ser retornados de vá- rias maneiras, tal como transmitidos para o dispositivo de computação via uma rede.
[0062] A Figura 5 é um fluxograma ilustrando um processo ilustra- tivo 500 para implementar a geração de declaração de atestado de chave proporcionando anonimato de dispositivo de acordo com uma ou mais modalidades. O processo 500 é realizado por um dispositivo de computação, tal como o dispositivo de computação 102 da Figura 1, e pode ser implementado em software, firmware, hardware, ou em combinações dos mesmos. O processo 500 é apresentado como um conjunto de atos e não está limitado à ordem apresentada para execu- ção das operações dos vários atos. O processo 500 é um processo ilustrativo para implementar a geração de declaração de atestado de chave proporcionando anonimato de dispositivo; discussões adicionais da implementação da geração de declaração de atestado de chave proporcionando anonimato de dispositivo estão incluídas neste docu- mento com referência às diferentes figuras.
[0063] No processo 500, uma solicitação para um certificado de atestado para o dispositivo de computação é enviada para o serviço de atestado (ato 502). A solicitação inclui informação descrevendo o sof- tware e/ou o hardware do dispositivo de computação. A informação pode indicar a saúde do dispositivo de computação e/ou que um com- ponente seguro confiável é um componente que é acreditado pelo ser- viço de atestado como discutido acima.
[0064] Em resposta à solicitação, um par de chaves pública/priva- da e o certificado de atestado são recebidos a partir do serviço de atestado (ato 504). O par de chaves pública/privada e o certificado de atestado são recebidos se a informação para o dispositivo de compu- tação enviada para o serviço de atestado no ato 502 for verificada pelo serviço de atestado. O certificado de atestado associa a chave pública do par de chaves pública/privada recebido com o dispositivo de com- putação (e/ou com o componente seguro confiável do dispositivo de computação). Esta associação é feita, por exemplo, pelo certificado de atestado incluindo a chave pública do par de chaves pública/privada recebido e a chave privada do par de chaves pública/privada sendo de forma segura proporcionada para o dispositivo de computação (por exemplo, criptografada utilizando uma chave de um componente segu- ro confiável do dispositivo de computação).
[0065] O par de chaves pública/privada e o certificado de atestado recebidos são armazenados (ato 506). A chave privada do par de cha- ves pública/privada recebido é armazenada em um depósito seguro do componente seguro confiável do dispositivo de computação. A chave pública do par de chaves pública/privada e o certificado de atestado recebidos podem ser armazenados no depósito seguro ou alternativa- mente em qualquer outro lugar.
[0066] Um ou mais pares de chaves pública/privada e certificados de atestado que se ligam com o serviço de atestado são gerados (ato 508). Estes pares de chaves pública/privada e certificados de atesta- do adicionais são gerados pelo componente seguro confiável sem acessar o serviço de atestado.
[0067] Apesar de funcionalidade particular ser discutida neste do- cumento com referência aos módulos particulares, deve ser observado que a funcionalidade de módulos individuais discutidos neste docu- mento pode ser separada em vários módulos, e/ou pelo menos algu- mas funcionalidades de vários módulos podem ser combinadas em um único módulo. Adicionalmente, um módulo particular discutido neste documento como executando uma ação inclui este próprio módulo par- ticular executando a ação, ou alternativamente que o módulo particular invocando ou de outro modo acessando outro componente ou módulo que executa a ação (ou executa a ação em conjunto com este módulo particular). Assim, um módulo particular executando uma ação inclui este próprio módulo particular executando a ação e/ou outro módulo invocado ou de outro modo acessado por este módulo particular exe- cutando a ação.
[0068] A Figura 6 ilustra um sistema ilustrativo geralmente em 600 que inclui um dispositivo de computação ilustrativo 602 que é repre- sentativo de um ou mais sistemas e/ou dispositivos que podem imple- mentar as várias técnicas descritas neste documento. O dispositivo de computação 602 pode ser, por exemplo, um servidor de um provedor de serviço, um dispositivo associado com um cliente (por exemplo, um dispositivo cliente), um sistema no chip, e/ou qualquer outro dispositivo de computação ou sistema de computação adequado.
[0069] O dispositivo de computação ilustrativo 602 como ilustrado inclui um sistema de processamento 604, uma ou mais mídias legíveis por computador 606, e uma ou mais interfaces de E/S 608 que são comunicativamente acopladas umas com as outras. Apesar de não apresentado, o dispositivo de computação 602 pode ainda incluir um barramento do sistema ou outro sistema de transferência de dados e comandos que acoplam os vários componentes uns com os outros. Um sistema de barramento pode incluir qualquer uma ou combinações de diferentes estruturas de barramento, tais como um barramento de memória ou controlador de memória, um barramento periférico, um barramento serial universal, e/ou um processador ou barramento local que utiliza qualquer uma dentre várias estruturas de barramento. Vá- rios outros exemplos também são contemplados, tal como linhas de controle e de dados.
[0070] O sistema de processamento 604 é representativo de fun- cionalidade para executar uma ou mais operações utilizando hardwa- re. Por consequência, o sistema de processamento 604 é ilustrado como incluindo elementos de hardware 610 que podem ser configura- dos como processadores, blocos funcionais, e assim por diante. Isto pode incluir implementação em hardware como um circuito integrado de aplicação específica ou outro dispositivo lógico formado utilizando um ou mais semicondutores. Os elementos de hardware 610 não são limitados pelos materiais a partir dos quais eles são formados ou pelos mecanismos de processamento empregados nos mesmos. Por exem- plo, processadores podem ser compreendidos de semicondutores e/ou transistores (por exemplo, circuitos integrados (ICs) eletrônicos). Em tal contexto, instruções executáveis por processador podem ser instru- ções eletronicamente executáveis.
[0071] A mídia legível por computador 606 é ilustrada como inclu- indo memória/armazenamento 612. A memória/armazenamento 612 representa capacidade de memória/armazenamento associada com uma ou mais mídias legíveis por computador." A memó- ria/armazenamento 612 pode incluir mídia volátil (tal como memória de acesso aleatório (RAM)) e/ou mídia não volátil (tal como memória so- mente para leitura (ROM), RAM Resistiva (ReERAM), memória Flash, discos óticos, discos magnéticos, e assim por diante). A memó- ria/armazenamento 612 pode incluir mídia fixa (por exemplo, RAM, ROM, uma unidade de disco rígido fixo, e assim por diante) bem como mídia removível (por exemplo, memória Flash, uma unidade de disco rígido removível, um disco ótico, e assim por diante). A memó- ria/armazenamento 612 pode incluir memória de classe de armazena- mento (SCM) tal como memória 3D Xpoint disponível a partir da Intel Corporation of Santa Clara, California ou Micron Technology, Inc. of Boise, Idaho. A mídia legível por computador 606 pode ser configurada de vários outros modos como ainda descrito abaixo.
[0072] A uma ou mais interfaces de entrada/saída 608 são repre- sentativas de funcionalidade para permitir a um usuário informar co- mandos e informação para o dispositivo de computação 602, e tam- bém permitir que informações sejam apresentadas para o usuário e/ou para outros componentes ou dispositivos utilizando vários dispositivos de entrada/saída. Exemplos de dispositivos de entrada incluem um teclado, um dispositivo de controle de cursor (por exemplo, mouse), um microfone (por exemplo, para entradas de voz), um scanner, funci- onalidade de toque (por exemplo, sensores capacitivos ou outros sen- sores que são configurados para detectar toque físico), uma câmera (por exemplo, a qual pode empregar comprimentos de onda visíveis ou não visíveis tais como frequências de infravermelho para detectar mo- vimento que não envolve toque como gestos), e assim por diante. Exemplos de dispositivos de saída incluem um dispositivo de vídeo (por exemplo, um monitor ou projetor), alto-falantes, uma impressora, uma placa de rede, dispositivo de resposta táctil, e assim por diante. Assim, o dispositivo de computação 602 pode ser configurado de vá- rios modos como ainda descrito abaixo para suportar interação com o usuário.
[0073] Em uma ou mais modalidades, o dispositivo de computação 602 é um dispositivo de computação 102 da Figura 1, e inclui um com- ponente seguro confiável 614. O componente seguro confiável 614 obtém um certificado de atestado a partir de um serviço de atestado e também gera pares de chaves pública/privada e certificados de atestado adicionais que se ligam com o serviço de atestado como discutido acima. O componente seguro confiável 614 pode implementar, por exemplo, o componente seguro confiável 112 da Figura 1 ou da Figura 3.
[0074] Alternativamente, o dispositivo de computação 602 é um dispositivo de computação que implementa pelo menos parte do servi- ço de atestado 104 da Figura 1 ou da Figura 2. Em tais situações, o dispositivo de computação 602 não precisa incluir o componente segu- ro confiável 614. Ao invés disso, o dispositivo de computação 602 in- clui um sistema de certificado de atestado suportando anonimato de cliente, tal como o sistema de certificado de atestado suportando ano- nimato de cliente 122 da Figura 1 ou da Figura 2.
[0075] Várias técnicas podem ser descritas neste documento no contexto geral de software, de elementos de hardware, ou de módulo de programa. Geralmente, tais módulos incluem rotinas, programas, objetos, elementos, componentes, estruturas de dados, e assim por diante, que executam tarefas particulares ou implementam tipos parti- culares de dados abstratos. Os termos "módulo", "funcionalidade", e "componente" como utilizados neste documento geralmente represen- tam software, firmware, hardware, ou uma combinação dos mesmos. Os aspectos das técnicas descritas neste documento são independen- tes da plataforma, significando que as técnicas podem ser implemen- tadas em varias plataformas de computação possuindo vários proces- sadores.
[0076] Uma implementação dos módulos e técnicas descritos pode ser armazenada ou transmitida através de alguma forma de mídia le- gível por computador. A mídia legível por computador pode incluir vá- rias mídias que podem ser acessadas pelo dispositivo de computação
602. A título de exemplo e não de limitação, a mídia legível por compu- tador pode incluir "mídia de armazenamento legível por computador" e "mídia de sinal legível por computador".
[0077] "Mídia de armazenamento legível por computador" se refe- re à mídia e/ou aos dispositivos que permitem armazenamento persis- tente de informação e/ou armazenamento que é tangível, em contraste com mera transmissão de sinal, ondas portadoras ou sinais por si. As- sim, mídia de armazenamento legível por computador se refere à míi- dia de suporte que não seja de sinal. A mídia de armazenamento legí- vel por computador inclui hardware tal como mídia volátil e não volátil, removível e não removível e/ou dispositivos de armazenamento im- plementados em um método ou tecnologia adequado para armazena- mento de informações tais como instruções legíveis por computador, estruturas de dados, módulos de programa, elementos/circuitos lógi-
cos, ou outros dados. Exemplos de mídia de armazenamento legível por computador podem incluir, mas não estão limitados à RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento ótico, discos rígidos, cassetes magnéticos, fita magnética, armazenamento em dis- co magnético ou outros dispositivos de armazenamento magnético ou outro dispositivo de armazenamento, mídia tangível, ou artigo de ma- nufatura adequado para armazenar as informações desejadas e que possa ser acessado por um computador.
[0078] "Mídia de sinal legível por computador" se refere a um meio de suporte de sinal que é configurado para transmitir instruções para o hardware do dispositivo de computação 602, tal como via uma rede. À mídia de sinal tipicamente pode incorporar instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados em um sinal de dados modulado, tais como ondas portadoras, sinais de dados, ou outro mecanismo de transporte. A mídia de sinal também inclui qualquer mídia de distribuição de informação. O termo "sinal de dados modulado" significa um sinal que possui uma ou mais de suas características estabelecidas ou alteradas de uma maneira tal a codificar informação no sinal. A título de exemplo e não de limitação, a mídia de comunicação inclui mídia com uso de fios tal como uma re- de com uso de fios ou conexão direta com fios, e mídia sem uso de fios tal como mídia acústica, RF, infravermelha, e outras mídias sem uso de fios.
[0079] Como anteriormente descrito, os elementos de hardware 610 e a mídia legível por computador 606 são representativos de ins- truções, módulos, lógica de dispositivo programável e/ou lógica de dis- positivo fixa implementados em uma forma de hardware que pode ser empregada em algumas modalidades para implementar pelo menos alguns aspectos das técnicas descritas neste documento. Elementos de hardware podem incluir componentes de um circuito integrado ou de sistema no chip, um circuito integrado de aplicação específica (ASIC), um arranjo de portas programáveis em campo (FPGA), um dispositivo de lógica complexa programável (CPLD), e outras imple- mentações em silício ou outros dispositivos de hardware. Neste con- texto, um elemento de hardware pode operar como um dispositivo de processamento que executa tarefas de programa definidas por instru- ções, módulos, e/ou lógica incorporada pelo elemento de hardware bem como um dispositivo de hardware utilizado para armazenar ins- truções para execução, por exemplo, a mídia de armazenamento legí- vel por computador descrita anteriormente.
[0080] Combinações do dito anteriormente também podem ser empregadas para implementar várias técnicas e módulos descritos neste documento. Por consequência, software, hardware, ou módulos de programa e outros módulos de programa podem ser implementa- dos como uma ou mais instruções e/ou lógica incorporada em alguma forma de mídia de armazenamento legível por computador e/ou por um ou mais elementos de hardware 610. O dispositivo de computação 602 pode ser configurado para implementar instruções e/ou funções particulares correspondendo aos módulos de software e/ou de hardwa- re. Por consequência, a implementação de módulos como um módulo que é executável pelo dispositivo de computação 602 como software pode ser realizada pelo menos parcialmente em hardware, por exem- plo, através do uso de mídia de armazenamento legível por computa- dor e/ou dos elementos de hardware 610 do sistema de processamento. As instruções e/ou funções podem ser executáveis/operáveis por um ou mais artigos de manufatura (por exemplo, um ou mais dispositivos de computação 602 e/ou sistemas de processamento 604) para imple- mentar técnicas, módulos e exemplos descritos neste documento.
[0081] Como ainda ilustrado na Figura 6, o sistema ilustrativo 600 permite ambientes ubíquos para uma experiência direta do usuário quando executando aplicativos em um computador pessoal (PC), um dispositivo de televisão, e/ou em um dispositivo móvel. Serviços e apli- cativos executam substancialmente de forma similar em todos os três ambientes para uma experiência comum do usuário quando alterando de um dispositivo para o próximo enquanto utilizando um aplicativo, repro- duzindo um jogo de vídeo, assistindo um vídeo, e assim por diante.
[0082] No sistema ilustrativo 600, vários dispositivos são interco- nectados através de um dispositivo de computação central. O disposi- tivo de computação central pode ser local aos vários dispositivos ou pode estar remotamente localizado a partir dos vários dispositivos. Em uma ou mais modalidades, o dispositivo de computação central pode ser uma nuvem de um ou mais computadores servidores que estão conectados com os vários dispositivos através de uma rede, da Inter- net, ou de outra ligação de comunicação de dados.
[0083] Em uma ou mais modalidades, esta arquitetura de interco- nexão permite que a funcionalidade seja distribuída através de vários dispositivos para proporcionar uma experiência comum e direta para um usuário dos vários dispositivos. Cada um dos vários dispositivos pode possuir diferentes requerimentos e capacidades físicas, e o dis- positivo de computação central utiliza uma plataforma para permitir a distribuição de uma experiência para o dispositivo que é tanto ajustada para o dispositivo como ainda comum para todos os dispositivos. Em uma ou mais modalidades, uma classe de dispositivos alvo é criada e experiências são ajustadas para a classe genérica de dispositivos. Uma classe de dispositivos pode ser definida pelos aspectos físicos, tipos de utilização, ou outras características comuns dos dispositivos.
[0084] Em várias implementações, o dispositivo de computação 602 pode assumir várias diferentes configurações, tal como para os usos do computador 616, do móvel 618, e da televisão 620. Cada uma destas configurações inclui dispositivos que podem possuir constru- ções e capacidades geralmente diferentes, e assim, o dispositivo de computação 602 pode ser configurado de acordo com uma ou mais das diferentes classes de dispositivo. Por exemplo, o dispositivo de computação 602 pode ser implementado como a classe de computa- dor 616 de um dispositivo que inclui um computador pessoal, compu- tador de mesa, um computador multitela, computador laptop, netbook, dentre outros.
[0085] O dispositivo de computação 602 também pode ser imple- mentado como a classe de dispositivo móvel 618 que inclui dispositi- vos móveis, tal como um telefone móvel, reprodutor de música portátil, dispositivo de jogo portátil, um computador tablet, um computador mul- titela, dentre outros. O dispositivo de computação 602 também pode ser implementado como a classe de dispositivo televisão 620 que in- clui dispositivos possuindo ou conectados com telas geralmente maio- res em ambientes de visualização casuais. Estes dispositivos incluem televisões, decodificadores de sinal, consoles de jogo, dentre outros.
[0086] As técnicas descritas neste documento podem ser suporta- das por estas várias configurações do dispositivo de computação 602 e não estão limitadas aos exemplos específicos das técnicas descritas neste documento. Esta funcionalidade também pode ser implementada toda ou em parte através do uso de um sistema distribuído, tal como através de uma "nuvem 622 via uma plataforma 624 como descrita abaixo.
[0087] A nuvem 622 inclui e/ou é representativa de uma platafor- ma 624 para recursos 626. A plataforma 624 abstrai funcionalidade subjacente de hardware (por exemplo, servidores) e de recursos de software da nuvem 622. Os recursos 626 podem incluir aplicativos e/ou dados que podem ser utilizados enquanto o processamento do computador é executado nos servidores que são remotos a partir do dispositivo de computação 602. Os recursos 626 também podem inclu- ir serviços proporcionados através da Internet e/ou através de uma re- de do assinante, tal como uma rede celular ou Wi-Fi.
[0088] A plataforma 624 pode abstrair recursos e funções para co- nectar o dispositivo de computação 602 com outros dispositivos de computação. A plataforma 624 também pode servir para abstrair di- mensionamento de recursos para proporcionar um nível de escala cor- respondente para a demanda encontrada para os recursos 626 que são implementados via a plataforma 624. Por consequência, em uma modalidade de dispositivo interconectado, a implementação de funcio- nalidade descrita neste documento pode ser distribuída através do sis- tema 600. Por exemplo, a funcionalidade pode ser implementada em parte no dispositivo de computação 602 bem como via a plataforma 624 que abstrai a funcionalidade da nuvem 622.
[0089] Nas discussões neste documento, várias diferentes modali- dades são descritas. É para ser apreciado e entendido que cada mo- dalidade descrita neste documento pode ser utilizada por si própria ou em conexão com uma ou mais outras modalidades descritas neste do- cumento. Aspectos adicionais das técnicas discutidas neste documen- to se relacionam com uma ou mais das modalidades seguintes.
[0090] Um método implementado em um serviço de atestado, o método compreendendo: receber, a partir de um primeiro dispositivo de computação, uma primeira solicitação para um certificado de ates- tado para o primeiro dispositivo de computação, a solicitação incluindo informação descrevendo o hardware e/ou o software do primeiro dis- positivo de computação; verificar a informação recebida; selecionar um par de chaves assimétricas a partir de uma coleção de pares de cha- ves assimétricas, o par de chaves selecionado também sendo selecio- nado para vários dispositivos de computação adicionais; gerar o certi- ficado de atestado para o primeiro dispositivo de computação associ-
ando a chave pública do par de chaves selecionado com o certificado de atestado; criptografar a chave privada do par de chaves seleciona- do para o primeiro dispositivo de computação; e retornar a chave pri- vada criptografada do par de chaves selecionado e o certificado de atestado para o primeiro dispositivo de computação.
[0091] Alternativamente ou em adição a qualquer um dos méto- dos, sistemas, ou dispositivos de computação descritos neste docu- mento, qualquer um ou combinação de: em que criptografar a chave privada do par de chaves selecionado para o primeiro dispositivo de computação compreende criptografar a chave privada do par de cha- ves selecionado utilizando uma chave pública de um par de chaves pública/privada de um componente seguro confiável do primeiro dispo- sitivo de computação; em que selecionar o par de chaves assimétricas compreende aleatoriamente ou pseudo-aleatoriamente selecionar o par de chaves assimétricas a partir da coleção de pares de chaves as- simétricas; ainda compreendendo gerar, antes da recepção da primei- ra solicitação, os pares de chaves assimétricas na coleção de pares de chaves assimétricas; ainda compreendendo alterar os pares de chaves assimétricas na coleção de pares de chaves assimétricas em um ou mais intervalos; ainda compreendendo receber, a partir de um segun- do dispositivo de computação, uma segunda solicitação para um certi- ficado de atestado para o segundo dispositivo de computação, a se- gunda solicitação incluindo informação descrevendo o hardware e/ou o software do segundo dispositivo de computação, verificar a informação recebida descrevendo o hardware e/ou o software do segundo disposi- tivo de computação, selecionar, a partir da coleção de pares de chaves assimétricas, o mesmo par de chaves que foi selecionado para o pri- meiro dispositivo de computação, gerar o certificado de atestado para o segundo dispositivo de computação associando a chave pública do par de chaves selecionado com o certificado de atestado para o se-
gundo dispositivo de computação, criptografar a chave privada do par de chaves selecionado para o segundo dispositivo de computação, e retornar a chave privada criptografada do par de chaves selecionado e o certificado de atestado para o segundo dispositivo de computação para o segundo dispositivo de computação; o certificado de atestado não possuindo nome ou identificador do primeiro dispositivo de compu- tação.
[0092] Um método implementado em um dispositivo de computa- ção, o método compreendendo: enviar, para um serviço de atestado, uma solicitação para um certificado de atestado para o dispositivo de computação, a solicitação incluindo informação descrevendo o hardware e/ou o software do dispositivo de computação; receber, a partir do serviço de atestado, um par de chaves pública/privada e o certificado de atestado que associa o par de chaves pública/privada com um componente seguro confiável do dispositivo de computação; armazenar, em um depósito seguro do componente seguro confiável, a chave privada do par de chaves pública/privada; e gerar, sem aces- sar o serviço de atestado, um ou mais pares de chaves pública/privada adicionais e um ou mais certificados de atestado adicionais, cada um dos certificados de atestado adicionais ligando com o serviço de ates- tado.
[0093] Alternativamente ou em adição a qualquer um dos méto- dos, sistemas ou dispositivos de computação descritos neste docu- mento, qualquer um ou combinação de: o par de chaves públi- ca/privada recebido sendo um mesmo par de chaves pública/privada que é proporcionado pelo serviço de atestado para vários outros dis- positivos de computação; ainda compreendendo gerar um dos um ou mais pares de chaves pública/privada adicionais e um ou mais certifi- cados de atestado adicionais para cada site da rede acessado por um navegador da rede do dispositivo de computação; ainda compreen-
dendo gerar um dos um ou mais pares de chaves pública/privada adi- cionais e um ou mais certificados de atestado adicionais para cada um dos vários diferentes sistemas de parte confiável acessados pelo dis- positivo de computação; ainda compreendendo descriptografar o par de chaves pública/privada recebido a partir do serviço de atestado uti- lizando uma chave privada do componente seguro confiável, o compo- nente seguro confiável compreendendo um módulo de plataforma con- fiável.
[0094] Um sistema compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador tendo armazena- das no mesmo várias instruções que, em resposta à execução pelo um ou mais processadores, causam que o um ou mais processadores: recebam, a partir de um primeiro dispositivo de computação, uma pri- meira solicitação para um certificado de atestado para o primeiro dis- positivo de computação, a solicitação incluindo informação descreven- do o hardware e/ou o software do primeiro dispositivo de computação; verifiquem a informação recebida; selecionem um par de chaves assi- métricas a partir de uma coleção de pares de chaves assimétricas, o par de chaves assimétricas também sendo selecionado para vários dispositivos de computação adicionais; gerem o certificado de atestado para o primeiro dispositivo de computação associando a chave pública do par de chaves selecionado com o certificado de atestado; criptogra- fem a chave privada do par de chaves selecionado para o primeiro dispositivo de computação; e retornem a chave privada criptografada do par de chaves selecionado e o certificado de atestado para o pri- meiro dispositivo de computação.
[0095] Alternativamente ou em adição a qualquer um dos méto- dos, sistemas, ou dispositivos de computação descritos neste docu- mento, qualquer um ou combinação de: em que criptografar a chave privada do par de chaves selecionado para o primeiro dispositivo de computação é criptografar a chave privada do par de chaves selecio- nado utilizando uma chave pública de um par de chaves pública/priva- da de um componente seguro confiável do primeiro dispositivo de computação; o componente seguro confiável compreendendo um mó- dulo de plataforma confiável; em que selecionar o par de chaves assi- métricas é aleatoriamente ou pseudo-aleatoriamente selecionar o par de chaves assimétricas a partir da coleção de pares de chaves assi- métricas; as várias instruções ainda causando que o um ou mais pro- cessadores alterem chaves na coleção de pares de chaves assimétri- cas em um ou mais intervalos; as várias instruções ainda causando que o um ou mais processadores recebam, a partir de um segundo dispositivo de computação, uma segunda solicitação para um certifica- do de atestado para o segundo dispositivo de computação, a segunda solicitação incluindo informação descrevendo o hardware e/ou o sof- tware do segundo dispositivo de computação, verifiquem a informação recebida descrevendo o hardware e/ou o software do segundo disposi- tivo de computação, selecionem, a partir da coleção de pares de cha- ves assimétricas, o mesmo par de chaves que foi selecionado para o primeiro dispositivo de computação, gerem o certificado de atestado para o segundo dispositivo de computação associando a chave pública do par de chaves selecionado com o certificado de atestado para o segundo dispositivo de computação, criptografem a chave privada do par de chaves selecionado para o segundo dispositivo de computação, e retornem a chave privada criptografada do par de chaves seleciona- do e o certificado de atestado para o segundo dispositivo de computa- ção para o segundo dispositivo de computação; o certificado de ates- tado não possuindo nome ou identificador do primeiro dispositivo de computação.
[0096] Um dispositivo de computação compreendendo: um ou mais processadores, e um meio de armazenamento legível por compu-
tador tendo armazenadas no mesmo várias instruções que, em res- posta à execução pelo um ou mais processadores, causam que o um ou mais processadores executem atos compreendendo: enviar, para um serviço de atestado, uma solicitação para um certificado de atesta- do para o dispositivo de computação, a solicitação incluindo informa- ção descrevendo o hardware e/ou o software do dispositivo de compu- tação; receber, a partir do serviço de atestado, um par de chaves pú- blica/privada e o certificado de atestado que associa o par de chaves pública/privada com um componente seguro confiável do dispositivo de computação; armazenar, em um depósito seguro do componente seguro confiável, a chave privada do par de chaves pública/privada; e gerar, sem acessar o serviço de atestado, um ou mais pares de cha- ves pública/privada adicionais e um ou mais certificados de atestado adicionais, cada um dos certificados de atestado adicionais ligando-se com o serviço de atestado.
[0097] Apesar do assunto ter sido descrito em linguagem especiífi- ca para aspectos estruturais e/ou atos metodológicos, é para ser en- tendido que o assunto definido nas reivindicações anexas não está necessariamente limitado aos aspectos ou atos específicos descritos acima. Ao invés disso, os aspectos e atos específicos descritos acima são revelados como formas ilustrativas para implementar as reivindi- cações.
Claims (15)
1. Método implementado em um serviço de atestado, o mé- todo caracterizado pelo fato de que compreende: receber, a partir de um primeiro dispositivo de computação, uma primeira solicitação para um certificado de atestado para o primei- ro dispositivo de computação, a solicitação incluindo informação des- crevendo o hardware e/ou o software do primeiro dispositivo de com- putação; verificar a informação recebida; selecionar um par de chaves assimétricas a partir de uma coleção de pares de chaves assimétricas, o par de chaves selecionado também sendo selecionado para vários dispositivos de computação adicionais; gerar o certificado de atestado para o primeiro dispositivo de computação associando a chave pública do par de chaves selecio- nado com o certificado de atestado; criptografar a chave privada do par de chaves selecionado para o primeiro dispositivo de computação; e retornar a chave privada criptografada do par de chaves se- lecionado e o certificado de atestado para o primeiro dispositivo de computação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que criptografar a chave privada do par de chaves seleci- onado para o primeiro dispositivo de computação compreende cripto- grafar a chave privada do par de chaves selecionado utilizando uma chave pública de um par de chaves pública/privada de um componente seguro confiável do primeiro dispositivo de computação.
3. Método, de acordo com a reivindicação 1 ou 2, caracteri- zado pelo fato de que selecionar o par de chaves assimétricas com- preende aleatoriamente ou pseudo-aleatoriamente selecionar o par de chaves assimétricas a partir da coleção de pares de chaves assimétri- cas.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que ainda compreende gerar, antes da recepção da primeira solicitação, os pares de chaves assimétricas na coleção de pares de chaves assimétricas.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que ainda compreende alterar os pa- res de chaves assimétricas na coleção de pares de chaves assimétri- cas em um ou mais intervalos.
6. Método, de acordo com qualquer uma das reivindicações 1a5, caracterizado pelo fato de que ainda compreende: receber, a partir de um segundo dispositivo de computação, uma segunda solicitação para um certificado de atestado para o se- gundo dispositivo de computação, a segunda solicitação incluindo in- formação descrevendo o hardware e/ou o software do segundo dispo- sitivo de computação; verificar a informação recebida descrevendo o hardware e/ou o software do segundo dispositivo de computação; selecionar, a partir da coleção de pares de chaves assimé- tricas, o mesmo par de chaves que foi selecionado para o primeiro dispositivo de computação; gerar o certificado de atestado para o segundo dispositivo de computação associando a chave pública do par de chaves selecio- nado com o certificado de atestado para o segundo dispositivo de computação; criptografar a chave privada do par de chaves selecionado para o segundo dispositivo de computação; e retornar a chave privada criptografada do par de chaves se- lecionado e o certificado de atestado para o segundo dispositivo de computação para o segundo dispositivo de computação.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o certificado de atestado não possui nome ou identificador do primeiro dispositivo de computação.
8. Método implementado em um dispositivo de computação, o método caracterizado pelo fato de que compreende: enviar, para um serviço de atestado, uma solicitação para um certificado de atestado para o dispositivo de computação, a solici- tação incluindo informação descrevendo o hardware e/ou o software do dispositivo de computação; receber, a partir do serviço de atestado, um par de chaves pública/privada e o certificado de atestado que associa o par de cha- ves pública/privada com um componente seguro confiável do dispositi- vo de computação; armazenar, em um depósito seguro do componente seguro confiável, a chave privada do par de chaves pública/privada; e gerar, sem acessar o serviço de atestado, um ou mais pa- res de chaves pública/privada adicionais e um ou mais certificados de atestado adicionais, cada um dos certificados de atestado adicionais ligando-se com o serviço de atestado.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o par de chaves pública/privada recebido é um mes- mo par de chaves pública/privada que é proporcionado pelo serviço de atestado para vários outros dispositivos de computação.
10. Método, de acordo com a reivindicação 8 ou 9, caracte- rizado pelo fato de que ainda compreende gerar um dos um ou mais pares de chaves pública/privada adicionais e um ou mais certificados de atestado adicionais para cada site da rede acessado por um nave- gador da rede do dispositivo de computação.
11. Método, de acordo com qualquer uma das reivindica-
ções 8 a 10, caracterizado pelo fato de que ainda compreende gerar um dos um ou mais pares de chaves pública/privada adicionais e um ou mais certificados de atestado adicionais para cada um dos vários diferentes sistemas de parte confiável acessados pelo dispositivo de computação.
12. Método, de acordo com qualquer uma das reivindica- ções 8 a 11, caracterizado pelo fato de que ainda compreende descrip- tografar o par de chaves pública/privada recebido a partir do serviço de atestado utilizando uma chave privada do componente seguro confiá- vel.
13. Método, de acordo com qualquer uma das reivindica- ções 8 a 12, caracterizado pelo fato de que o componente seguro con- fiável compreende um módulo de plataforma confiável.
14. Sistema, caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento legível por computador tendo armazenadas no mesmo várias instruções que, em resposta à execu- ção pelo um ou mais processadores, fazem com que o um ou mais processadores: recebam, a partir de um primeiro dispositivo de computa- ção, uma primeira solicitação para um certificado de atestado para o primeiro dispositivo de computação, a solicitação incluindo informação descrevendo o hardware e/ou o software do primeiro dispositivo de computação; verifiquem a informação recebida; selecionem um par de chaves assimétricas a partir de uma coleção de pares de chaves assimétricas, o par de chaves assimétri- cas também sendo selecionado para vários dispositivos de computa- ção adicionais; gerem o certificado de atestado para o primeiro dispositivo de computação associando a chave pública do par de chaves selecio- nado com o certificado de atestado; criptografem a chave privada do par de chaves selecionado para o primeiro dispositivo de computação; e retornem a chave privada criptografada do par de chaves selecionado e o certificado de atestado para o primeiro dispositivo de computação.
15. Sistema, de acordo com a reivindicação 14, caracteri- zado pelo fato de que criptografar a chave privada do par de chaves selecionado para o primeiro dispositivo de computação é criptografar a chave privada do par de chaves selecionado utilizando uma chave pú- blica de um par de chaves pública/privada de um componente seguro confiável do primeiro dispositivo de computação, o componente seguro confiável compreendendo um módulo de plataforma confiável.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/649,085 | 2017-07-13 | ||
US15/649,085 US10819696B2 (en) | 2017-07-13 | 2017-07-13 | Key attestation statement generation providing device anonymity |
PCT/US2018/034795 WO2019013886A1 (en) | 2017-07-13 | 2018-05-28 | GENERATION OF KEY CERTIFICATION DECLARATION PROVIDING DEVICE ANONYMAT |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020000220A2 true BR112020000220A2 (pt) | 2020-07-07 |
Family
ID=62621070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020000220-8A BR112020000220A2 (pt) | 2017-07-13 | 2018-05-28 | geração de declaração de atestado de chave proporcionando anonimato de dispositivo |
Country Status (17)
Country | Link |
---|---|
US (2) | US10819696B2 (pt) |
EP (1) | EP3652882A1 (pt) |
JP (1) | JP7077394B2 (pt) |
KR (1) | KR102451109B1 (pt) |
CN (1) | CN110892672B (pt) |
AU (1) | AU2018299716B2 (pt) |
BR (1) | BR112020000220A2 (pt) |
CA (1) | CA3067540A1 (pt) |
CL (1) | CL2020000081A1 (pt) |
CO (1) | CO2020000162A2 (pt) |
IL (1) | IL271812B2 (pt) |
MX (1) | MX2020000328A (pt) |
PH (1) | PH12020550006A1 (pt) |
RU (1) | RU2763516C2 (pt) |
SG (1) | SG11201912738WA (pt) |
WO (1) | WO2019013886A1 (pt) |
ZA (1) | ZA201908494B (pt) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310050B2 (en) | 2018-09-17 | 2022-04-19 | Microsoft Technology Licensing, Llc | Verifying a computing device after transport |
US10423791B2 (en) * | 2017-04-27 | 2019-09-24 | Microsoft Technology Licensing, Llc | Enabling offline restart of shielded virtual machines using key caching |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
US10447486B2 (en) * | 2017-07-19 | 2019-10-15 | Spyrus, Inc. | Remote attestation of a security module's assurance level |
US11770373B2 (en) * | 2017-09-25 | 2023-09-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Provisioning of vendor credentials |
GB2578628B (en) * | 2018-11-01 | 2021-09-15 | Trustonic Ltd | Device attestation techniques |
US11777717B2 (en) * | 2019-01-25 | 2023-10-03 | Huawei Technologies Co., Ltd. | Method for end entity attestation |
US11374771B2 (en) | 2019-03-08 | 2022-06-28 | Ares Technologies, Inc. | Methods and systems for implementing mixed protocol certificates |
US10742421B1 (en) | 2019-03-08 | 2020-08-11 | Ares Technologies, Inc. | Methods and systems for anonymous hardware attestation |
US10735205B1 (en) | 2019-03-08 | 2020-08-04 | Ares Technologies, Inc. | Methods and systems for implementing an anonymized attestation chain |
US11394565B2 (en) * | 2019-06-18 | 2022-07-19 | Intel Corporation | Asymmetric device attestation using physically unclonable functions |
KR20210017083A (ko) * | 2019-08-06 | 2021-02-17 | 삼성전자주식회사 | 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법 |
US11539678B2 (en) * | 2019-08-16 | 2022-12-27 | Red Hat, Inc. | Asymmetric key management for cloud computing services |
US11265721B1 (en) * | 2019-08-20 | 2022-03-01 | Facebook Technologies, Llc | Secure device attestation and mutual authentication of artificial reality devices |
US11431689B2 (en) * | 2020-01-10 | 2022-08-30 | Lennox Industries Inc. | Secure payload delivery |
WO2022006574A1 (en) * | 2020-06-29 | 2022-01-06 | Arm Cloud Technology, Inc. | Device attestation |
US11595213B2 (en) * | 2020-06-29 | 2023-02-28 | Izuma Tech, Inc. | Methods and apparatus for performing attestation |
CN111953675B (zh) * | 2020-08-10 | 2022-10-25 | 四川阵风科技有限公司 | 一种基于硬件设备的密钥管理方法 |
KR102318947B1 (ko) * | 2020-08-21 | 2021-10-27 | 세종대학교산학협력단 | 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템 |
WO2022115200A2 (en) | 2020-10-28 | 2022-06-02 | Ares Technologies, Inc. | Systems and methods for a cryptographic agile bootloader for upgradable secure environment |
US11665148B2 (en) * | 2021-03-22 | 2023-05-30 | Cisco Technology, Inc. | Systems and methods for addressing cryptoprocessor hardware scaling limitations |
US11750384B2 (en) * | 2021-05-27 | 2023-09-05 | Microsoft Technology Licensing, Llc | Binding with cryptographic key attestation |
US20230388110A1 (en) * | 2022-05-31 | 2023-11-30 | Microsoft Technology Licensing, Llc | Using attestation client code to attest health of a computing device |
US20240007354A1 (en) * | 2022-06-30 | 2024-01-04 | Amazon Technologies, Inc. | Automatic onboarding of heterogeneous devices onto a client network |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7165174B1 (en) * | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
US7631188B2 (en) * | 1997-05-16 | 2009-12-08 | Tvworks, Llc | Hierarchical open security information delegation and acquisition |
US6233685B1 (en) * | 1997-08-29 | 2001-05-15 | Sean William Smith | Establishing and employing the provable untampered state of a device |
JP2000049766A (ja) * | 1998-07-27 | 2000-02-18 | Hitachi Ltd | 鍵管理サーバシステム |
US7194620B1 (en) * | 1999-09-24 | 2007-03-20 | Verizon Business Global Llc | Method for real-time data authentication |
US6996710B1 (en) * | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US20020019938A1 (en) * | 2000-08-04 | 2002-02-14 | Aarons Michael Thomas | Method and apparatus for secure identification for networked environments |
US20020078347A1 (en) * | 2000-12-20 | 2002-06-20 | International Business Machines Corporation | Method and system for using with confidence certificates issued from certificate authorities |
US20020129261A1 (en) * | 2001-03-08 | 2002-09-12 | Cromer Daryl Carvis | Apparatus and method for encrypting and decrypting data recorded on portable cryptographic tokens |
US7925878B2 (en) * | 2001-10-03 | 2011-04-12 | Gemalto Sa | System and method for creating a trusted network capable of facilitating secure open network transactions using batch credentials |
GB2382419B (en) * | 2001-11-22 | 2005-12-14 | Hewlett Packard Co | Apparatus and method for creating a trusted environment |
US6963873B2 (en) * | 2002-01-02 | 2005-11-08 | Intel Corporation | Method and system for automatic association of a signed certificate with a certificate signing request |
CA2491662C (en) | 2002-07-12 | 2015-11-24 | Privaris, Inc. | Personal authentication software and systems for travel privilege assignation and verification |
US7181016B2 (en) * | 2003-01-27 | 2007-02-20 | Microsoft Corporation | Deriving a symmetric key from an asymmetric key for file encryption or decryption |
US20040193917A1 (en) * | 2003-03-26 | 2004-09-30 | Drews Paul C | Application programming interface to securely manage different execution environments |
US7797544B2 (en) * | 2003-12-11 | 2010-09-14 | Microsoft Corporation | Attesting to establish trust between computer entities |
US7263608B2 (en) | 2003-12-12 | 2007-08-28 | Lenovo (Singapore) Pte. Ltd. | System and method for providing endorsement certificate |
US7424610B2 (en) * | 2003-12-23 | 2008-09-09 | Intel Corporation | Remote provisioning of secure systems for mandatory control |
US7350072B2 (en) * | 2004-03-30 | 2008-03-25 | Intel Corporation | Remote management and provisioning of a system across a network based connection |
US20050251857A1 (en) * | 2004-05-03 | 2005-11-10 | International Business Machines Corporation | Method and device for verifying the security of a computing platform |
US20050278253A1 (en) * | 2004-06-15 | 2005-12-15 | Microsoft Corporation | Verifying human interaction to a computer entity by way of a trusted component on a computing device or the like |
US7055742B2 (en) * | 2004-06-29 | 2006-06-06 | Microsoft Corporation | Method for secure on-line voting |
US8356175B2 (en) * | 2005-06-29 | 2013-01-15 | Intel Corporation | Methods and apparatus to perform associated security protocol extensions |
US8417640B2 (en) * | 2005-10-31 | 2013-04-09 | Research In Motion Limited | Secure license key method and system |
US8989390B2 (en) * | 2005-12-12 | 2015-03-24 | Qualcomm Incorporated | Certify and split system and method for replacing cryptographic keys |
US7600123B2 (en) * | 2005-12-22 | 2009-10-06 | Microsoft Corporation | Certificate registration after issuance for secure communication |
US8145917B2 (en) * | 2005-12-30 | 2012-03-27 | Nokia Corporation | Security bootstrapping for distributed architecture devices |
US9135444B2 (en) * | 2006-10-19 | 2015-09-15 | Novell, Inc. | Trusted platform module (TPM) assisted data center management |
US8281389B2 (en) * | 2006-12-21 | 2012-10-02 | Seagate Technology Llc | System and method for tamper evident certification |
US8984280B2 (en) * | 2007-02-16 | 2015-03-17 | Tibco Software Inc. | Systems and methods for automating certification authority practices |
US7975290B2 (en) * | 2007-06-07 | 2011-07-05 | Alcatel Lucent | Verifying authenticity of instant messaging messages |
US7971261B2 (en) * | 2007-06-12 | 2011-06-28 | Microsoft Corporation | Domain management for digital media |
CN100566251C (zh) * | 2007-08-01 | 2009-12-02 | 西安西电捷通无线网络通信有限公司 | 一种增强安全性的可信网络连接方法 |
US20090125996A1 (en) * | 2007-09-19 | 2009-05-14 | Interdigital Patent Holdings, Inc. | Virtual subscriber identity module |
DE102007044905A1 (de) * | 2007-09-19 | 2009-04-09 | InterDigital Patent Holdings, Inc., Wilmington | Verfahren und Vorrichtung zur Ermöglichung einer Dienstnutzung und Feststellung der Teilnehmeridentität in Kommunikationsnetzen mittels softwarebasierten Zugangsberechtigungsausweisen (vSIM) |
US8862874B2 (en) * | 2008-05-09 | 2014-10-14 | International Business Machines Corporation | Certificate distribution using secure handshake |
FR2932229B1 (fr) | 2008-06-05 | 2011-06-24 | Renault Sas | Pilotage de l'alimentation electrique d'une bougie d'allumage d'un moteur a combustion interne |
US9122895B2 (en) * | 2008-06-25 | 2015-09-01 | Microsoft Technology Licensing, Llc | Authorization for transient storage devices with multiple authentication silos |
US8538890B2 (en) * | 2008-08-28 | 2013-09-17 | Motorola Mobility Llc | Encrypting a unique cryptographic entity |
US8751791B2 (en) * | 2008-09-17 | 2014-06-10 | Motorola Solutions, Inc. | Method and device for confirming authenticity of a public key infrastructure (PKI) transaction event |
US20120137364A1 (en) | 2008-10-07 | 2012-05-31 | Mocana Corporation | Remote attestation of a mobile device |
US9621341B2 (en) * | 2008-11-26 | 2017-04-11 | Microsoft Technology Licensing, Llc | Anonymous verifiable public key certificates |
US8738932B2 (en) * | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
CN101807998A (zh) | 2009-02-13 | 2010-08-18 | 英飞凌科技股份有限公司 | 认证 |
US8544092B2 (en) | 2009-03-12 | 2013-09-24 | International Business Machines Corporation | Integrity verification using a peripheral device |
US8509448B2 (en) * | 2009-07-29 | 2013-08-13 | Motorola Solutions, Inc. | Methods and device for secure transfer of symmetric encryption keys |
US9490984B2 (en) * | 2009-09-14 | 2016-11-08 | Interdigital Patent Holdings, Inc. | Method and apparatus for trusted authentication and logon |
CN101699891B (zh) * | 2009-10-21 | 2012-07-25 | 西安西电捷通无线网络通信股份有限公司 | 一种传感器网络密钥管理和节点鉴别方法 |
US8700893B2 (en) * | 2009-10-28 | 2014-04-15 | Microsoft Corporation | Key certification in one round trip |
US8327424B2 (en) * | 2009-12-22 | 2012-12-04 | Motorola Solutions, Inc. | Method and apparatus for selecting a certificate authority |
MY151315A (en) | 2010-05-07 | 2014-05-15 | Mimos Berhad | System and method for issuing endorsement key credential in trusted computing environment using local certificate authority |
US8788811B2 (en) | 2010-05-28 | 2014-07-22 | Red Hat, Inc. | Server-side key generation for non-token clients |
US20120174196A1 (en) * | 2010-12-30 | 2012-07-05 | Suresh Bhogavilli | Active validation for ddos and ssl ddos attacks |
US8806196B2 (en) * | 2011-11-04 | 2014-08-12 | Motorola Solutions, Inc. | Method and apparatus for authenticating a digital certificate status and authorization credentials |
US9754253B1 (en) * | 2011-11-28 | 2017-09-05 | Amazon Technologies, Inc. | Conditioned use of certificates |
US9413538B2 (en) * | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US9054871B2 (en) * | 2012-02-21 | 2015-06-09 | California Institute Of Technology | Physical key-protected one time pad |
US8782423B2 (en) | 2012-06-19 | 2014-07-15 | Microsoft Corporation | Network based management of protected data sets |
US20140006776A1 (en) * | 2012-06-29 | 2014-01-02 | Mark Scott-Nash | Certification of a virtual trusted platform module |
US9411962B2 (en) * | 2012-07-18 | 2016-08-09 | Sequitur Labs Inc. | System and methods for secure utilization of attestation in policy-based decision making for mobile device management and security |
US8782401B2 (en) | 2012-09-26 | 2014-07-15 | Intel Corporation | Enhanced privacy ID based platform attestation |
US9374228B2 (en) * | 2012-10-12 | 2016-06-21 | International Business Machines Corporation | Verifying a geographic location of a virtual disk image executing at a data center server within a data center |
US9794602B2 (en) * | 2012-10-29 | 2017-10-17 | Echostar Technologies L.L.C. | Systems and methods for securely providing streaming media content on-demand |
US9935953B1 (en) * | 2012-11-06 | 2018-04-03 | Behaviometrics Ab | Secure authenticating an user of a device during a session with a connected server |
US9077759B2 (en) * | 2013-01-18 | 2015-07-07 | Apple Inc. | Conflict resolution for keychain syncing |
US9594567B2 (en) * | 2013-02-21 | 2017-03-14 | Dell Products, Lp | Configuring a trusted platform module |
US20140259132A1 (en) * | 2013-03-06 | 2014-09-11 | Go Daddy Operating Company, LLC | System for creating a security certificate |
WO2014137338A1 (en) * | 2013-03-06 | 2014-09-12 | Intel Corporation | Roots-of-trust for measurement of virtual machines |
US20140281497A1 (en) * | 2013-03-13 | 2014-09-18 | General Instrument Corporation | Online personalization update system for externally acquired keys |
US9332002B1 (en) * | 2013-03-14 | 2016-05-03 | Amazon Technologies, Inc. | Authenticating and authorizing a user by way of a digital certificate |
US9219607B2 (en) * | 2013-03-14 | 2015-12-22 | Arris Technology, Inc. | Provisioning sensitive data into third party |
US20140281500A1 (en) * | 2013-03-15 | 2014-09-18 | Ologn Technologies Ag | Systems, methods and apparatuses for remote attestation |
DE102013205051A1 (de) * | 2013-03-21 | 2014-09-25 | Siemens Aktiengesellschaft | Aktualisieren eines digitalen Geräte-Zertifikats eines Automatisierungsgeräts |
JP6079394B2 (ja) * | 2013-04-11 | 2017-02-15 | 富士通株式会社 | 証明書生成方法、証明書生成装置、情報処理装置、通信機器、及びプログラム |
US9094377B2 (en) * | 2013-08-16 | 2015-07-28 | Netflix, Inc. | Key generation and broadcasting |
US9998438B2 (en) | 2013-10-23 | 2018-06-12 | Microsoft Technology Licensing, Llc | Verifying the security of a remote server |
US9391980B1 (en) | 2013-11-11 | 2016-07-12 | Google Inc. | Enterprise platform verification |
EP4027576B1 (en) * | 2014-01-13 | 2023-11-22 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
US9652604B1 (en) * | 2014-03-25 | 2017-05-16 | Amazon Technologies, Inc. | Authentication objects with delegation |
US9680872B1 (en) * | 2014-03-25 | 2017-06-13 | Amazon Technologies, Inc. | Trusted-code generated requests |
US10050787B1 (en) * | 2014-03-25 | 2018-08-14 | Amazon Technologies, Inc. | Authentication objects with attestation |
US10049202B1 (en) * | 2014-03-25 | 2018-08-14 | Amazon Technologies, Inc. | Strong authentication using authentication objects |
US20160344725A1 (en) * | 2014-04-02 | 2016-11-24 | William B. SEVERIN | Signal haystacks |
EP2937806A1 (en) * | 2014-04-22 | 2015-10-28 | ALSTOM Renewable Technologies | Method and system for securing electronic data exchange between an industrial programmable device and a portable programmable device |
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9692599B1 (en) * | 2014-09-16 | 2017-06-27 | Google Inc. | Security module endorsement |
US9705879B2 (en) * | 2014-09-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Efficient and reliable attestation |
US9716716B2 (en) * | 2014-09-17 | 2017-07-25 | Microsoft Technology Licensing, Llc | Establishing trust between two devices |
US9331989B2 (en) | 2014-10-06 | 2016-05-03 | Micron Technology, Inc. | Secure shared key sharing systems and methods |
US9900295B2 (en) * | 2014-11-05 | 2018-02-20 | Microsoft Technology Licensing, Llc | Roaming content wipe actions across devices |
US10348727B2 (en) * | 2015-02-13 | 2019-07-09 | International Business Machines Corporation | Automatic key management using enterprise user identity management |
US10015173B1 (en) * | 2015-03-10 | 2018-07-03 | Symantec Corporation | Systems and methods for location-aware access to cloud data stores |
RU2673842C1 (ru) | 2015-03-20 | 2018-11-30 | Ривец Корп. | Автоматическая аттестация сохранности устройства с применением цепочки блоков |
WO2016168503A1 (en) * | 2015-04-15 | 2016-10-20 | Melrok, Llc | Secure broadcast systems and methods for internet of things devices |
US20160364553A1 (en) * | 2015-06-09 | 2016-12-15 | Intel Corporation | System, Apparatus And Method For Providing Protected Content In An Internet Of Things (IOT) Network |
US10230696B2 (en) * | 2015-06-09 | 2019-03-12 | Intel Corporation | System, apparatus and method for managing lifecycle of secure publish-subscribe system |
CN107683599A (zh) * | 2015-06-11 | 2018-02-09 | 西门子公司 | 用于设备的认证令牌的授权发布的授权装置和方法 |
US10333903B1 (en) * | 2015-06-16 | 2019-06-25 | Amazon Technologies, Inc. | Provisioning network keys to devices to allow them to provide their identity |
US9923721B2 (en) * | 2015-06-22 | 2018-03-20 | Intel IP Corporation | Key agreement and authentication for wireless communication |
CN105141593A (zh) | 2015-08-10 | 2015-12-09 | 刘澄宇 | 一种私有云平台安全计算方法 |
US10397255B1 (en) * | 2015-09-23 | 2019-08-27 | StackRox, Inc. | System and method for providing security in a distributed computation system utilizing containers |
US20170093586A1 (en) * | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Techniques for managing certificates on a computing device |
US9906513B2 (en) * | 2015-09-28 | 2018-02-27 | Bank Of America Corporation | Network authorization system |
US9917687B2 (en) * | 2015-10-12 | 2018-03-13 | Microsoft Technology Licensing, Llc | Migrating secrets using hardware roots of trust for devices |
US9832024B2 (en) * | 2015-11-13 | 2017-11-28 | Visa International Service Association | Methods and systems for PKI-based authentication |
US9740867B2 (en) * | 2015-11-16 | 2017-08-22 | Dell Products, L.P. | Securely passing user authentication data between a pre-boot authentication environment and an operating system |
US10009179B2 (en) * | 2015-11-30 | 2018-06-26 | Microsoft Technology Licensing, Llc | Trusted platform module (TPM) protected device |
US10169591B2 (en) * | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
US10536271B1 (en) * | 2016-01-10 | 2020-01-14 | Apple Inc. | Silicon key attestation |
US10341325B2 (en) * | 2016-01-29 | 2019-07-02 | Vmware, Inc. | System and method for transferring device identifying information |
US10169602B2 (en) * | 2016-02-22 | 2019-01-01 | Dell Products, L.P. | Method for local key management setup and recovery |
US10412191B1 (en) * | 2016-03-30 | 2019-09-10 | Amazon Technologies, Inc. | Hardware validation |
US10277407B2 (en) * | 2016-04-19 | 2019-04-30 | Microsoft Technology Licensing, Llc | Key-attestation-contingent certificate issuance |
US11256746B2 (en) * | 2016-04-25 | 2022-02-22 | Oracle International Corporation | Hash-based efficient secondary indexing for graph data stored in non-relational data stores |
GB201607476D0 (en) * | 2016-04-29 | 2016-06-15 | Eitc Holdings Ltd | Operating system for blockchain IOT devices |
US10447467B2 (en) * | 2016-05-04 | 2019-10-15 | International Business Machines Corporation | Revocable PKI signatures |
US9916452B2 (en) * | 2016-05-18 | 2018-03-13 | Microsoft Technology Licensing, Llc | Self-contained cryptographic boot policy validation |
US10115250B2 (en) * | 2016-05-23 | 2018-10-30 | Fuji Xerox Co., Ltd. | Systems and methods for location enabled electronic lock controls |
US10135622B2 (en) * | 2016-06-03 | 2018-11-20 | Intel Corporation | Flexible provisioning of attestation keys in secure enclaves |
US10601787B2 (en) * | 2016-06-06 | 2020-03-24 | Cisco Technology, Inc. | Root of trust of geolocation |
US10708067B2 (en) * | 2016-06-18 | 2020-07-07 | Intel Corporation | Platform attestation and registration for servers |
US20180007037A1 (en) * | 2016-07-01 | 2018-01-04 | Kenneth Wade Reese | Transaction-specific shared secret in one-time password device |
US10135921B2 (en) * | 2016-09-20 | 2018-11-20 | Keir Finlow-Bates | System and method for announcing cryptographic keys on a blockchain |
US10733284B2 (en) * | 2016-10-06 | 2020-08-04 | Samsung Electronics Co., Ltd. | Trusted execution environment secure element communication |
US10498712B2 (en) * | 2016-11-10 | 2019-12-03 | Ernest Brickell | Balancing public and personal security needs |
US10447681B2 (en) * | 2016-12-07 | 2019-10-15 | Vmware, Inc. | Secure asymmetric key application data sharing |
US10574648B2 (en) * | 2016-12-22 | 2020-02-25 | Dashlane SAS | Methods and systems for user authentication |
US10229270B2 (en) * | 2016-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Host attestation |
US20180183578A1 (en) * | 2016-12-27 | 2018-06-28 | Intel Corporation | Provisioning keys for virtual machine scaling |
US20180183586A1 (en) * | 2016-12-28 | 2018-06-28 | Intel Corporation | Assigning user identity awareness to a cryptographic key |
US11443033B2 (en) * | 2017-01-24 | 2022-09-13 | Microsoft Technology Licensing, Llc | Abstract enclave identity |
US11405177B2 (en) * | 2017-01-24 | 2022-08-02 | Microsoft Technology Licensing, Llc | Nested enclave identity |
US11036875B2 (en) * | 2017-01-24 | 2021-06-15 | Microsoft Technology Licensing, Llc | Dependent enclave binaries |
US10530777B2 (en) * | 2017-01-24 | 2020-01-07 | Microsoft Technology Licensing, Llc | Data unsealing with a sealing enclave |
US20180241572A1 (en) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniques for remote sgx enclave authentication |
US10341864B2 (en) * | 2017-03-03 | 2019-07-02 | Verizon Patent And Licensing Inc. | Network-based device registration for content distribution platforms |
US20180287920A1 (en) * | 2017-03-30 | 2018-10-04 | Ca, Inc. | Intercepting application traffic monitor and analyzer |
US10397005B2 (en) * | 2017-03-31 | 2019-08-27 | Intel Corporation | Using a trusted execution environment as a trusted third party providing privacy for attestation |
US10440006B2 (en) * | 2017-06-21 | 2019-10-08 | Microsoft Technology Licensing, Llc | Device with embedded certificate authority |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
-
2017
- 2017-07-13 US US15/649,085 patent/US10819696B2/en active Active
-
2018
- 2018-05-28 BR BR112020000220-8A patent/BR112020000220A2/pt unknown
- 2018-05-28 RU RU2020106575A patent/RU2763516C2/ru active
- 2018-05-28 WO PCT/US2018/034795 patent/WO2019013886A1/en unknown
- 2018-05-28 JP JP2020501161A patent/JP7077394B2/ja active Active
- 2018-05-28 CN CN201880046669.0A patent/CN110892672B/zh active Active
- 2018-05-28 EP EP18731699.7A patent/EP3652882A1/en active Pending
- 2018-05-28 CA CA3067540A patent/CA3067540A1/en active Pending
- 2018-05-28 IL IL271812A patent/IL271812B2/en unknown
- 2018-05-28 KR KR1020207000801A patent/KR102451109B1/ko active IP Right Grant
- 2018-05-28 MX MX2020000328A patent/MX2020000328A/es unknown
- 2018-05-28 AU AU2018299716A patent/AU2018299716B2/en active Active
- 2018-05-28 SG SG11201912738WA patent/SG11201912738WA/en unknown
-
2019
- 2019-12-19 ZA ZA2019/08494A patent/ZA201908494B/en unknown
-
2020
- 2020-01-02 PH PH12020550006A patent/PH12020550006A1/en unknown
- 2020-01-08 CO CONC2020/0000162A patent/CO2020000162A2/es unknown
- 2020-01-10 CL CL2020000081A patent/CL2020000081A1/es unknown
- 2020-08-27 US US17/004,929 patent/US11750591B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
RU2020106575A (ru) | 2021-08-13 |
IL271812A (en) | 2020-02-27 |
US10819696B2 (en) | 2020-10-27 |
PH12020550006A1 (en) | 2020-10-12 |
SG11201912738WA (en) | 2020-01-30 |
US11750591B2 (en) | 2023-09-05 |
CN110892672B (zh) | 2023-10-20 |
KR20200027500A (ko) | 2020-03-12 |
AU2018299716A1 (en) | 2020-01-02 |
CA3067540A1 (en) | 2019-01-17 |
US20190020647A1 (en) | 2019-01-17 |
KR102451109B1 (ko) | 2022-10-07 |
WO2019013886A1 (en) | 2019-01-17 |
ZA201908494B (en) | 2021-03-31 |
JP2020527305A (ja) | 2020-09-03 |
IL271812B2 (en) | 2024-01-01 |
US20200396217A1 (en) | 2020-12-17 |
RU2763516C2 (ru) | 2021-12-30 |
JP7077394B2 (ja) | 2022-05-30 |
CO2020000162A2 (es) | 2020-01-17 |
AU2018299716B2 (en) | 2023-09-21 |
NZ759830A (en) | 2023-10-27 |
RU2020106575A3 (pt) | 2021-08-13 |
IL271812B1 (en) | 2023-09-01 |
CL2020000081A1 (es) | 2020-07-31 |
MX2020000328A (es) | 2020-07-13 |
CN110892672A (zh) | 2020-03-17 |
EP3652882A1 (en) | 2020-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112020000220A2 (pt) | geração de declaração de atestado de chave proporcionando anonimato de dispositivo | |
US11055385B2 (en) | Multi-factor user authentication framework using asymmetric key | |
EP3265950B1 (en) | Device attestation through security hardened management agent | |
CN106462439B (zh) | 以持续所有者访问对加密虚拟机的安全传输 | |
EP3195555B1 (en) | Secure key management for roaming protected content | |
CN107077567B (zh) | 标识计算设备上的安全边界 | |
US10229272B2 (en) | Identifying security boundaries on computing devices | |
US11019033B1 (en) | Trust domain secure enclaves in cloud infrastructure | |
BR112017004416B1 (pt) | Sistema e método implementado por computador para controlar acesso a um recurso de segurança | |
NZ759830B2 (en) | Key attestation statement generation providing device anonymity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B350 | Update of information on the portal [chapter 15.35 patent gazette] |