BR112017017425B1 - Meio de armazenamento legível por computador não transitório configurado para armazenar instruções de método e processo implementado por computador - Google Patents

Meio de armazenamento legível por computador não transitório configurado para armazenar instruções de método e processo implementado por computador Download PDF

Info

Publication number
BR112017017425B1
BR112017017425B1 BR112017017425-1A BR112017017425A BR112017017425B1 BR 112017017425 B1 BR112017017425 B1 BR 112017017425B1 BR 112017017425 A BR112017017425 A BR 112017017425A BR 112017017425 B1 BR112017017425 B1 BR 112017017425B1
Authority
BR
Brazil
Prior art keywords
key
private key
domain
dns
party system
Prior art date
Application number
BR112017017425-1A
Other languages
English (en)
Other versions
BR112017017425A2 (pt
Inventor
Peter Martin Goldstein
Original Assignee
Valimail Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Valimail Inc filed Critical Valimail Inc
Publication of BR112017017425A2 publication Critical patent/BR112017017425A2/pt
Publication of BR112017017425B1 publication Critical patent/BR112017017425B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0442Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0822Key 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 key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/083Key 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 central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 digital signatures
    • H04L9/3249Cryptographic 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 digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO CONFIGURADO PARA ARMAZENAR INSTRUÇÕES E PROCESSO IMPLEMENTADO POR COMPUTADOR. Um sistema de terceiros gera um par de chaves pública-privada, com a chave pública do par de chaves sendo uma chave de criptografia e a chave privada do par de chaves sendo uma chave de descriptografia. O sistema de terceiros publica a chave de criptografia como registro DNS do sistema de terceiros. O sistema de terceiros recebe uma solicitação de assinar uma mensagem por parte do dono de um domínio, a mensagem a ser enviada a um recipiente, e acessa uma chave privada delegada criptografadas publicada pelo dono do domínio, a chave privada delegada criptografada usando a chave de criptografia. O sistema de terceiros descriptografa a chave privada delegada criptografada usando a chave de descriptografia e gera uma assinatura para a mensagem usando a chave privada delegada. O sistema de terceiros envia a assinatura e a mensagem ao recipiente.

Description

Campo de aplicação
[0001] A divulgação geralmente se relaciona ao campo de redes e especificamente à distribuição segura e delegada de chaves privadas via Serviço de Nomes de Domínio (DNS).
Descrição da Técnica
[0002] Em sistemas de mensagens distribuídas como o correio eletrônico (e-mail), há uma necessidade de se validar o originador da mensagem em relação à identidade alegada da mensagem para eliminar mensagens fraudulentas. Uma abordagem para resoler este problema é usar a criptografia de chaves públicas para verificar as mensagens. Nesta abordagem, um hash criptografado é usado para validar mensagens e sua associação com uma identidade. Uma ou mais chaves públicas são geradas em um diretório visível globalmente, no qual somente o portador da identidade tem a permissão de publicar registros no diretório. Remetentes autorizados têm a posse de uma chave privada correspondente, que pode ser usada para criptografar uma versão hashed da mensagem e incluir o hash criptografado como metadado da mensagem. Recipientes podem descriptografar os metadados usando a chave pública e compará-los com seu hash próprio, gerado independentemente, da mensagem. Se houver uma correspondência entre os hashes, o remetente será válido. O DomainKeys Identified Mail (DKIM) é a implementação padrão deste sistema para e-mails.
[0003] Esta abordagem pode ser bastante eficiente, mas apresenta alguns problemas quando há várias entidades signatárias. A distribuição de chaves privadas torna-se desafiadora quando há várias entidades distintas com permissão para assinar mensagens autorizadas em um único domínio compartilhado (e assim, com uma chave privada válida) a partir de um único domínio compartilhado. Por exemplo, se o administrador de "acme.com" deseja permitir a assinatura de mensagens de "ajax.com", cada domínio precisaria de uma chave privada válida.
[0004] Uma abordagem possível envolve alocar diferentes subdomínios do domínio para organizações assinantes diferentes, de modo a eliminar o compartilhamento. Neste caso, cada organização assinante tem controle completo sobre o diretório global do seu subdomínio. Embora isto possa funcionar, há uma falha na meta primária de suportar vários remetentes em um único domínio, uma vez que cada organização precisaria de um subdomínio diferente do domínio principal.
[0005] Alternativamente, cada entidade assinante pode gerar seu próprio par de chave privada/pública, fornecendo a chave pública para o dono do domínio autorizador para que seja publicada no diretório global. Ao publicar a chave pública correspondente no local apropriado no diretório global, o proprietário do domínio indica que está delegando a autoridade de assinatura para a entidade assinante. No entanto, este processo manual costuma apresentar propensão a erros e é oneroso para o proprietário do domínio de autorização. Ele também dificulta a incorporação de boas práticas como rotação de chaves, uma vez que isto exigiria a repetição do processo manual toda vez que a chave fosse substituída, causando uma situação prática na qual uma chave poderia não ser atualizada.
[0006] Assim, há uma falta de uma capacidade de gerar e distribuir chaves privadas delegadas autorizadas em um domínio compartilhado de modo seguro e automatizado para entidades múltiplas e distintas, bem como a gestão e atualização confiável de tais chaves.
Sumário
[0007] Em algumas realizações, sistemas e métodos para distribuir chaves privadas delegadas com segurança para criptografia de chaves públicas através do Serviço de Nomes de Domínio (DNS) poderiam fazer o compromisso de usar a criptografia de chaves públicas para permitir a distribuição segura e automatizada de chaves privadas através do Serviço de Nomes de Domínio (DNS). Tais chaves privadas delegadas são distribuídas por donos de domínios para outras entidades por meio de dados criptografados publicados no DNS. O dono do domínio publica a chave pública em um registro de DNS na zona de DNS do seu domínio. A outra entidade pode então usar a chaven privada correspondente para assinar mensagens, negociar a troca simétrica de chaves ou para outros fins, conforme o adequado para o pedido, por parte do dono do domínio. Um sistema automatizado lida com a criação e atualização destes pares de chaves privadas/públicas e as publica nos registros de DNS apropriados em um domínio gerenciado pelo dono do domínio.
[0008] Em algumas realizações, outras entidades que desejam usar as chaves privadas autorizadas por um dono de domínio (por exemplo, para assinar mensagens em nome do dono do domínio) geram um par de chaves dedicado usando um algoritmo de criptografia de chaves públicas. Este par de chaves consistirá em uma chave de descriptografia e uma chave de criptografia. A outra entidade publica a chave de criptografia como registro DNS TXT em um local bem-definido (por exemplo, em um subdomínio definido por protocolo de um domínio conhecido de propriedade da outra entidade) e mantém a chave de descriptografia privada.
[0009] Em algumas realizações, sistemas e métodos para distribuir chaves privadas delegadas com segurança através do Serviço de Nomes de Domínio (DNS) poderiam incluir um sistema automatizado que agisse por parte do dono de um domínio autorizador. Este sistema automatizado é aqui denominado o gerador de pares de chave. O gerador de pares de chave pode ser configurado para permitir que uma entidade específica use uma chave privada associada a um domínio autorizador específico. Nesta circunstância, o gerador de pares de chave pode verificar a existiencia de um registro de chave de criptografia para a outra entidade, conforme descrito acima. Em algumas realizações, quando tal registro de chave de criptografia é detectado e o dono do domínio de autorização deseja delegar autoridade para outra entidade, o gerador de pares de chave pode gerar um novo par de chaves de criptografia de chaves públicas que inclua uma chave privada delegada (chave privada) e uma chave verificadora (chave pública). O gerador de pares de chave pode criptografar a chave privada delegada usando a chave de criptografia do registro de chaves de criptografia e publicar tanto a chave verificadora quanto a chave privada delegada criptografada no DNS em locais bem-definidos conhecidos, respectivamente, como registro de chave verificadora e registro de chave privada delegada criptografada. Registros distintos podem ser gerados para cada entidade para a qual o dono do domínio autorizador desejar gerar uma chave.
[0010] Em algumas realizações, sistemas e métodos para distribuir chaves privadas delegadas com segurança através do Serviço de Nomes de Domínio (DNS) poderiam incluir uma etapa na qual uma entidade que deseja usar tal chave privada delegada (por exemplo, assinar uma mensagem por parte do domínio autorizado), verifica a existência da chave verificadora correspondente e registros de chave privada delegada criptografada. Caso estes registros existam, a entidade pode então usar sua chava de descriptografia privada para descriptografar a chave privada delegada a partir do registro da chave privada delegada criptografada. Esta chave privada delegada pode então ser usada pela outra entidade por parte do domínio autorizador.
[0011] Em outras realizações, partes que desejam usar a chave pública correspondente a uma chave privada delegada (por exemplo, para verificar uma assinatura de mensagem, ou para trocar com segurança uma chave simétrica com o portador da chave privada) pode recuperar a chave verificadora a partir do registro de chave verificadora publicado pelo gerador de pares de chave. O formato exato do registro da chave verificadora irá variar de pedido a pedido, e este formato deve ser considerado não limitante.
[0012] No exemplo específico de usar este sistema para gerar assinaturas de mensagem, um algoritmo de verificação de assinatura padrão pode então ser executado por um recipiente de mensagem, e a assinatura pode então ser verificada ou rejeitada. Em ambos os casos a parte verificadora pode usar um procedimento padrão e não precisa saber que outra entidade executou a assinatura.
[0013] Em outras realizações, sistemas e métodos para distribuir chaves privadas delegadas com segurança através do Serviço de Nomes de Domínio (DNS) poderiam avançar a técnica de distribuição de chaves na internet usando DNS - um sistema existente, globalmente disponível e autenticado de diretórios - para suportar a distribuição segura de chaves privadas delegadas para a criptografia de chaves públicas. Além disso, os métodos podem suportar a atualização automática de tais chaves, seja pela passagem do tempo ou porque uma ou mais chaves foram potencialmente comprometidas. Esta é uma melhoria substancial para a segurança e robusteza inerente de tais sistemas.
Breve descrição dos desenhos
[0014] As realizações divulgadas têm vantagens e recursos que ficarão mais evidentes a partir da descrição detalhada, das reivindicações apensas e das figuras (ou desenhos). Há uma breve introdução às figuras abaixo.
[0015] Figura (FIG.) 1 ilustra um sistema exemplar capaz da distribuição segura e delegada de chaves privadas via DNS de acordo com uma realização.
[0016] FIG. 2 é um diagrama de interação e fluxograma ilustrando um processo exemplar para permitir que um sistema de terceiros gere chaves por parte de um dono de domínio de acordo com uma realização.
[0017] FIG. 3 é um diagrama de interação e fluxograma ilustrando um processo exemplar para permitir que um sistema de terceiros 120 assine mensagens por parte de um dono de domínio de acordo com uma realização.
[0018] FIG. 4 é um diagrama de blocos ilustrando componentes de uma máquina exemplar capaz de ler instruções a partir de um meio legível por máquinas e executá-las em um processador (ou controlador).
Descrição detalhada
[0019] As figuras (FIGS.) e a descrição a seguir se relacionam somente a realizações preferidas para fins de ilustração. Deve-se observar que, a partir da discussão a seguir, realizações alternativas das estruturas e métodos aqui divulgados serão reconhecidas como alternativas viáveis que podem ser empregadas sem descartar os princípios do que é reivindicado.
[0020] Haverá referência em detalhe a várias realizações, exemplos das quais são ilustrados nas figuras anexas. Note- se que, quando for prático, números de referência similares ou afins podem ser usados nas figuras e podem indicar uma funcionalidade semelhante ou afim. As figuras exibem realizações do sistema (ou método) divulgado somente para fins de ilustração. Entendidos na técnica reconhecerão imediatamente, a partir da descrição a seguir, que realizações alternativas dass estruturas e métodos aqui ilustrados podem ser empregadas sem descartar os princípios aqui descritos.
Visão geral da configuração
[0021] Divulga-se para fins de realizações exemplares um sistema e processo capaz de realizar a distribuição segura e delegada de chaves privadas via DNS. Em uma realização, um sistema de terceiros gera um par de chaves pública-privada, com a chave pública do par de chaves sendo uma chave de criptografia e a chave privada do par de chaves sendo uma chave de descriptografia. O sistema de terceiros publica a chave de criptografia como registro DNS do sistema de terceiros. O sistema de terceiros recebe uma solicitação de assinar uma mensagem por parte do dono de um domínio, a mensagem a ser enviada a um recipiente, e acessa uma chave privada delegada criptografadas publicada pelo dono do domínio, a chave privada delegada criptografada usando a chave de criptografia. O sistema de terceiros descriptografa a chave privada delegada criptografada usando a chave de descriptografia e gera uma assinatura para a mensagem usando a chave privada delegada. O sistema de terceiros envia a assinatura e a mensagem ao recipiente.
[0022] Em uma realização, um sistema dono do domínio identifica um sistema de terceiros para delegar a assinatura de mensagens. O sistema dono do domínio acessa uma chave de criptografia publicada pelo sistema de terceiros em um registro de DNS do sistema de terceiros. O gera um par de chaves pública-privada, com a chave pública do par de chaves sendo uma chave de verificação, e a chave privada do par de chaves sendo uma chave privada delegada, com a chave privada delegada a ser usada pelo sistema de terceiros para assinar mensagens por parte de um dono de domínio do sistema dono do domínio. O sistema do dono do domínio criptografa a chave privada delegada usando a chave de criptografia para gerar uma chave privada delegada criptografada. O sistema do dono do domínio publica a chave privada delegada criptografada em um registro de DNS do dono do domínio e publica a chave verificadora no registro de DNS do dono domínio.
Introdução
[0023] A criptografia de chaves públicas tem um papel importante em várias aplicações diferentes. Mas, para muitas destas aplicações, há um desafio significativo na automatização dos processos subjacentes da distribuição de chaves privadas para assinantes, e na associação de chaves públicas a identidades. O DNS oferece uma ferramenta que pode ser usada para suportar um processo automatizado que aborde ambos esses desafios.
[0024] Considere a aplicação exemplar específica das assinaturas criptográficas - metadados que podem ser incluídos com uma mensagem para verificar tanto a identidade do originador de uma mensagem quanto a integridade da mensagem, quando recebida. Esta assinatura criptográfica pode ser realizada com qualquer algoritmo de criptografia de chaves públicas (por exemplo, RSA, DSA). Tais assinaturas criptográficas têm uma aplicação ampla, incluindo o uso específico no domínio da autenticação de mensagens de e-mail através do uso do protocolo DomainKeys Identified Mail (DKIM).
[0025] Ao criar uma assinatura criptográfica, o originador de uma mensagem deriva um conjunto de bytes representando a mensagem que deseja assinar. Isto costuma ser feito com um algoritmo hash como SHA-512 ou MD-5, para garantir que seja extremamente difícil gerar outra mensagem que ofereça o mesmo conjunto de bytes representantes. Neste caso, o conjunto representando os bytes é conhecido como um hash de mensagem.
[0026] O originador então criptografa este hash de mensagem com a parte provada de um par de chaves públicas, doravante denominada chave privada delegada. A chave privada delegada é usada para gerar a assinatura de mensagem e, dada a natureza do procedimento criptográfico subjacente, deve ser impossível para alguém que não possua a chave privada delegada gerar uma assinatura correta. A posse da chave privada delegada é restrita àqueles autorizados a assinar mensagens.
[0027] A parte pública correspondente no par de chaves públicas, conhecida como chave verificadora, pode ser usada para verificar a assinatura da mensagem, e assim a autoridade e a integridade da mensagem. Um receptor da mensagem pode usar o mesmo procedimento empregado pelo originador para gerar um hash de mensagem. O receptor pode então usar a chave verificadora para descriptografar a assinatura de mensagem e confirmar se o valor descriptografado corresponde ao hash de mensagem computado pelo receptor. Se o valor corresponder, a assinatura da mensagem é confirmada. Senão, ela é rejeitada.
[0028] A assinatura da mensagem só será confirmada se o signatário da mensagem possuir uma chave privada delegada que é um par de chave com a chave verificadora. Assim, se o receptor pode obter a chave verificadora de modo que a fonte da chave verificadora possa ser autenticada, isto permitirá que o receptor da mensagem autorize essa mensagem como derivada desta fonte.
[0029] O Serviço de Nomes de Domínio (DNS) pode ser usado para associar um domínio (e, assim, a identidade do dono registrado do domínio) com uma chave verificadora de modo seguro. Neste cenário, um registro TXT DNS contendo a chave verificadora é publicada em um subdomínio bem-definido em uma zona registrada para a organização. Uma vez que apenas o dono registrado de um domínio organizacional, ou partes autorizadas pelo dono registrado, podem publicar registros DNS nesta zona, então a publicação do registro DNS contendo a chave verificadora deve ser autorizada pelo dono registrado.
[0030] Algoritmos de assinatura criptográficos exigem inerentemente que o originador da mensagem possua a chave privada delegada. O uso de DNS para autenticar a chave verificadora exige que a chave verificadora esteja disponível para o dono do domínio registrado ou para uma parte autorizada para atualizar seus registros DNS. Uma vez que a chave privada delegada e a chave verificadora só podem ser geradas como um par, isto apresenta um desafio quando um dono de domínio registrado quer permitir que uma outra entidade assine mensagens por si, mas não deseja dar à entidade a capacidade de publicar registros DNS em sua zona. Deve haver uma distribuição da chave privada delegada ou da chave verificadora de uma parte para outra, o que apresenta vários desafios. Ademais, atualizações futuras para o par de chaves privada delegada/verificadora apresentam problemas semelhantes.
Exemplo de sistema de delegação de chaves
[0031] FIG. 1 ilustra um sistema exemplar 100 capaz da distribuição segura e delegada de chaves privadas via DNS de acordo com uma realização. O sistema 100 inclui uma rede 150, um ou mais agentes verificadores 160, um servidor DNS autorizador 130 e um serviço DNS de terceiros 140, um sistema dono de domínio 110 e um sistema de terceiros 120. Embora o sistema ilustrado 100 inclua os elementos mostrados na Fig. 1, em outras realizações o sistema 100 pode incluir elementos diferentes. Ademais, as funcionalidades de cada elemento podem ser distribuídas de maneira diferente entre os elementos de outras realizações.
[0032] A rede 150, que pode ser com fio, sem fio, ou uma combinação destas opções, permite comunicação entre os agentes verificadores 160, os sistemas DNS 130/140, o sistema dono do domínio 110, e um sistema de terceiros 120, e pode incluir a Internet, uma rede LAN, VLAN (por exemplo, com VPN), WAN ou outra rede. Em uma realização, a rede 150 usa tecnologias e/ou protocolos de comunicação padrão, como o protocolo de transferência de hipertexto (HTTP), o protocolo de controle de transmissão/protocolo de internet (TCP/IP), localizadores de recursos uniformes (URLs), e o sistema de nomes de domínio (DNS). Em outra realização, as entidades podem usar tecnologias de comunicação de dados customizadas e/ou dedicadas em vez daquelas descritas acima ou junto a elas.
[0033] O servidor DNS dono de domínio 130 e o servidor DNS de terceiros 140 armazenam entradas DNS, como as entradas DNS 135, 137 e 145, para uso em um sistema DNS. Cada servidor DNS pode compreender um ou mais sistemas de computação como o sistema de computação descrito na FIG. 4.
[0034] Cada entrada DNS pode incluir um ou mais registros DNS para um domínio específico, como um registro A, um registro MX e assim por diante, como conhecido na técnica. Algumas das entradas DNS, como as entradas DNS 135, 137 e 145 podem incluir chaves criptográficas, como a chave verificadora 136, a chave privada delegada criptografada 137 e a chave de criptografia 146. Em uma realização, estas chaves são armazenadas em registros TXT em cada entrada DNS. Estas chaves podem ser usadas para assinar, e verificar, a autenticadade do remetente e o conteúdo de dados enviados pela rede 150. Tais dados podem incluir uma mensagem, arquivo, e-mail e assim por diante. Embora os registros ilustrados na FIG. 1 sejam separados em várias entradas e estejam em vários servidores, em outras realizações os registros são combinados em menos entradas, menos servidores, um único servidor, uma única entrada ou outra combinação.
[0035] O sistema dono do domínio 110 compreende um ou mais sistemas de computação, por exemplo, servidores que são usados por um dono de domínio para hospedar um domínio e realizar atividades relativas a este domínio. Estas atividades podem incluir servir páginas web, enviar e receber e-mails, hospedar arquivos, realizar e-commerce e assim por diante. Em uma realização, estes sistemas de computação são configurados de maneira semelhante em relação ao sistema de computação descrito na FIG. 4.
[0036] Conforme ilustrado, o sistema dono do domínio 110 inclui um gerador de par de chaves 115 e uma chave privada delegada 117. Embora o sistema dono do domínio ilustrado 110 inclua os elementos mostrados na FIG. 1, em outras realizações o sistema dono do domínio 110 pode incluir elementos diferentes. Por exemplo, o sistema dono do domínio 110 pode incluir chaves adicionais a serem usadas em esquemas de criptografia de chaves públicas. Ademais, as funcionalidades de cada elemento podem ser distribuídas de maneira diferente entre os elementos de outras realizações.
[0037] O gerador de pares de chave 115 do sistema dono do domínio 110 gera pares de chaves privadas e públicas. Em uma realização, o gerador de pares de chave 115 gera um par de chaves que compreende uma chave privada delegada 117 e uma chave verificadora 136. A chave verificadora 136 é a chave pública no par de chaves, enquanto a chave privada delegada 117 é a chave privada. O gerador de pares de chave 115 coloca a chave verificadora 136 como registro em uma entrada DNS 135 no servidor DNS dono de domínio 130.
[0038] O gerador de pares de chave 115 gera ainda uma chave privada delegada criptografada 138 ao criptografar a chave privada delegada 117 com a chave de criptografia 146 armazenada no servidor DNS de terceiros 140, e armazena esta chave privada delegada criptografada 138 como registro no servidor DNS dono do domínio 130. A chave de criptografia 146 é gerada pelo sistema de terceiros 120 como parte do par de chaves. Assim, somente o sistema de terceiros 120 pode descriptografar a chave privada delegada criptografada 138 de modo a recuperar a chave privada delegada 138, que pode ser usada pelo sistema de terceiros 120 para assinar e/ou criptografar dados por parte do dono do domínio.
[0039] O sistema de terceiros 120 assina ou criptografa dados por parte de um dono de domínio usando uma chave privada delegada passada com segurança para o sistema de terceiros 120 pelo dono do domínio. O sistema de terceiros 120 inclui um ou mais sistemas de computação, que podem ser configurados de maneira semelhante em relação ao sistema de computação descrito na FIG. 4.
[0040] Conforme ilustrado, o sistema de terceiros 120 inclui um módulo de assinatura 126, um gerador de pares de chave 125 e uma chave de descriptografia 127. Embora o sistema de terceiros 120 ilustrado inclua os elementos mostrados na FIG. 1, em outras realizações o sistema de terceiros 120 pode incluir elementos diferentes. Por exemplo, o sistema de terceiros 120 pode incluir chaves adicionais a serem usadas em esquemas de criptografia de chaves públicas. Ademais, as funcionalidades de cada elemento podem ser distribuídas de maneira diferente entre os elementos de outras realizações.
[0041] O módulo de assinatura 126 do sistema de terceiros 120 assina mensagens ou outros dados por parte do dono do domínio usando uma chave privada. O método de assinatura pode ser baseado em métodos conhecidos de criptografia de chaves públicas. Como exemplo, o sistema de terceiros 120 pode ser um sistema de segurança, um serviço de distribuição de dados/mensagens ou outro provedor que forneça um sistema de mensagens centralizado para vários donos de domínio. O sistema de terceiros 120 pode enviar dados e/ou outras mensagens por parte do sistema dono do domínio 110 para um ou mais receptores, e assina estes dados de modo que os receptores possam verificar que os dados são autênticos e não foram alterados. Para fazer isso, o módulo de assinatura 126 recupera a chave privada delegada criptografada 138 fornecida pelo sistema dono do domínio 110. A chave privada delegada criptografada 138 é a chave privada delegada 117 que foi criptografada usando a chave de criptografia 146. O módulo de assinatura 126 é capaz de descriptografar a chave privada delegada criptografada 138 usando a chave de descriptografia 127 armazenada no sistema de terceiros 120, de modo a acessar a chave privada delegada 117. O módulo de assinatura 126 usa a chave privada delegada descriptografada 117 para gerar uma assinatura para os dados a serem enviados para o receptor. O sistema de terceiros envia a assinatura e os dados originais para o receptor.
[0042] O gerador de pares de chave 125 do sistema de terceiros 120 gera pares de chaves públicas/privadas para facilitar a assinatura dos dados por parte dos donos de domínio. Em uma realização, para cada dono de domínio pelo qual o sistema de terceiros 120 assina dados, o gerador de pares de chave 125 gera uma chave de descriptografia 127 (a chave privada) e uma chave de criptografia 146 (a chave pública). O sistema de terceiros 120 publica a chave de criptografia 146 em um registro na entrada DNS 145 no servidor DNS de terceiros 140, de modo que o sistema dono do domínio 110 possa recuperá-la para criptografar uma chave privada delegada 117, assim gerando a chave privada delegada criptografada 138.
[0043] Os agentes verificadores 160 verificam assinaturas assinadas pelo sistema de terceiros 120 e podem ser configurados de maneira semelhante a um sistema de computação descrito na FIG. 4. Por exemplo, o agente verificador 160 pode ser um servidor recebendo dados assinados pelo sistema de terceiros 120.
[0044] O agente verificador 160 inclui um verificador de assinatura 165 para verificar a assinatura dos dados recebidos. Estes dados podem ter sido assinados pelo sistema de terceiros 120 por parte de um sistema dono de domínio 110 ou assinado pelo próprio sistema dono de domínio 110. Para verificar a assinatura, o verificador de assinaturas 165 usa a chave verificadora 136 publicada em uma entrada DNS 135 pelo sistema dono de domínio 110 e determina se a assinatura indica que os dados recebidos são válidos e autênticos. Por exemplo, os dados recebidos podem ter sofrido hash, com o hash criptografado usando a chave privada delegada 117 pelo sistema de terceiros 120. O verificador de assinaturas 165 descriptografa o hash usando a chave de verificação 136 e determina se o hash corresponde a um hash computado localmente dos dados. Se os dois hashes corresponderem, o verificador de assinatura 165 indicará que os dados são legítimos. Caso contrário, o verificador de assinatura 165 indicará que a mensagem não é legítima.
[0045] Usando o sistema 100 descrito acima, um sistema de terceiros 120 é capaz de assinar mensagens por parte de um dono de domínio. Isto pode fornecer um método através do qual donos de domínio registrados possam distribuir com segurança chaves privadas delegadas para terceiros a quem desejam delegar autoridade associada a sua identidade de domínio. Em algumas realizações, isto fornece uma vantagem de modo que nem o dono do domínio registrado nem o terceiro precise atualizar registros DNS manualmente após uma configuração inicial. Detalhes adicionais quanto aos processos descritos acima são descritos nas FIGs. 2-3.
Exemplo de diagrama de interação para a geração de pares de chave
[0046] FIG. 2 é um diagrama de interação e fluxograma ilustrando um processo exemplar para permitir que um sistema de terceiros 120 gere chaves por parte de um dono de domínio de acordo com uma realização. Em uma realização, a FIG. 2 atribui as operações no processo aos elementos indicados. No entanto, algumas ou todas as etapas podem ser desempenhadas por outros elementos. Além disso, algumas realizações podem ter as operações realizadas em paralelo, em ordens diferentes ou mesmo operações diferentes. Além disso, observa-se que em uma realização exemplar as etapas e/ou módulos podem ser realizados como instruções, por exemplo, instruções 424, que podem ser executadas pelo processador 402 descrito na FIG. 4.
[0047] Em uma realização, o sistema de terceiros 120 gera 210 um par de chaves de descriptografia e criptografia usando um a partir de vários algoritmos de criptografia de chaves públicas conhecidos. Um exemplo não limitador de tal algoritmo de criptografia de chaves públicas seria 2048-bit Rivest-Shamir-Adleman (RSA).
[0048] A chave de descriptografia 127, que é a parte privada deste par de chaves, pode ser armazenado internamente para uso posterior. A chave de criptografia 146, que é a parte pública deste par de chaves, pode ser publicada 215 como registro na entrada DNS 145 no servidor DNS de terceiros 140 de modo que fique disponível via DNS para quaisquer domínios que desejarem delegar a autoridade de assinatura para o sistema de terceiros 120.
[0049] A chave de criptografia 146 pode ser publicada em qualquer domínio. Em uma realização, a publicação do registro de chave de criptografia pode ocorrer de modo que a) o registro seja publicado em uma zona registrada para o sistemad e terceiros 120 e que b) o local do registro seja compartilhado com o sistema dono do domínio 110 a partir do qual o sistema de terceiros 120 deve obter uma chave privada delegada.
[0050] Como exemplo não limitador de uma publicação de chave de criptografia, uma empresa Example Corp é a dona registrada do domínio "examplecorp.com" e age como sistema de terceiros 120 para um dono de domínio. Neste caso, o registro que inclui a chave de criptografia 146 para Example Corp pode ser publicado na zona do domínio "_encr._ddkim.examplecorp.com", já que este domínio está em uma zona registrada para a Example Corp. O dono do domínio seria notificado quanto à localização deste registro, ou pode localizá-lo automaticamente com base em um esquema de nomes padronizado da zona de domínio indicando o local de um registro com a chave de criptografia 146.
[0051] Em uma realização, um sistema de terceiros 120 tem registros múltiplos, com cada registro incluindo uma chave de criptografia separada 146, cada uma devendo ser usada com um ou mais donos de domínio (ou seja, um domínio autorizador). Em tal caso, alguns registros diferentes com chaves de criptografia 146 podem ser publicados pelo sistema de terceiros 120. Por exemplo, com referência ao exemplo anterior, estes registros podem ser publicados em: 1) senderdomain1._encr._ddkim.examplecorp.com, 2) senderdomain2._encr._ddkim.examplecorp.com, 3) senderdomain3._encr._ddkim.examplecorp.com, e assim por diante.
[0052] O formato do registro que inclui a chave de criptografia 146 pode variar. Em uma realização, o registro DNS com a chave de criptografia 146 está em um formato que pode ser lido pelo sistema dono do domínio 110 (e o gerador de pares de chave 115). Em uma realização, o registro com a chave de criptografia 146 também inclui outras informações incluindo, mas limitando-se a: 1) um token que distingue este registro de outros registros de texto que podem ser publicados neste domínio, 2) o tempo de criação para o registro, 3) um tempo de vencimento para o registro, 4) um campo seletor que permite a publicação de múltiplas chaves de criptografia 146 no mesmo subdomínio, e 5) um campo indicando o algoritmo a ser usado para a criptografia.
[0053] Um exemplo de tal formato é um registro com o conteúdo "v=ENCDDKIM1; k=<...>" no qual o valor após 'k=' inclui um valor de chave de criptografia codificado pelas Regras de Codificação Distintas Abstract Sintax Notation One (ASN.1 DER), assumindo que a chave de criptografia foi gerada usando RSA-2048.
[0054] Em uma realização, caso o sistema de terceiros 120 precise regenerar a chave de criptografia 146 ou a chave de descriptografia 127, então o sistema de terceiros 120 repete o processo de modo semelhante em relação ao caso no qual o par de chaves está sendo gerado pela primeira vez. Isto pode ser necessário devido a uma condição de falha, chaves comprometidas ou qualquer outro motivo.
[0055] No lado do dono do domínio, o sistema dono do domínio 110 identifica 245 o sistema de terceiros 120 para a delegação da assinatura de dados. Em uma realização, para fazer isso, o sistema dono do domínio 110 atualiza uma configuração do gerador de pares de chave 115 com informações de identificação do sistema de terceiros 120. O sistema dono do domínio 110 verifica a existência de uma entrada DNS com a chave de criptografia 146 no servidor DNS de terceiros 140. A localização do servidor DNS de terceiros 140 pode ser fornecida ao sistema dono do domínio 110 extermnamente, ou o sistema dono do domínio 110 pode ser capaz de descobrir a localização do servidor DNS de terceiros 140 usando um nome de domínio fornecido do sistema de terceiros 120.
[0056] O sistema dono do domínio 110 verifica a existência de a chave de criptografia 146 enviando uma solicitação 282 para DNS. Se houver um registro DNS, o sistema dono do domínio 110 recebe uma resposta 284 com um registro DNS que inclui a chave de criptografia 146 do sistema de terceiros 120. O sistema DNS dono do domínio 110 extrai 250 a chave de criptografia 146 do registro.
[0057] Em uma realização, o sistema dono do domínio 110 também valida 255 a chave de criptografia 146 através de uma ou mais operações que podem incluir: 1) garantir que a chave de criptografia nos bytes da resposta recebida 284 possam ser decodificados, 2) que os bytes decodificados correspondam a uma chave válida para o algoritmo de criptografia esperado, ou 3) que os metadados no registro DNS da resposta 284 cumpram alguns critérios.
[0058] Por exemplo, o sistema dono do domínio 110 pode garantir que o registro TXT DNS recebido incluindo a chave de criptografia 146 comece com "v=ENCDDKIM1; k=" e que o valor após 'k=' corresponda a uma chave pública RSA codificada conforme ASN.1 DER (ou seja, a chave de criptografia).
[0059] Se a validação da chave de criptografia 146 falhar, então o sistema dono do domínio 110 pode registrar um erro e/ou enviar um alerta a um canal de alerta (não mostrado). Caso contrário, o sistema dono do domínio 110 gera 260 um par de chaves compreendendo uma chave privada delegada 117 e uma chave de verificação 136, usando um algoritmo de chaves públicas selecionado (por exemplo, RSA-2048, SHA-1).
[0060] O sistema dono do domínio 110 criptografa 265 a chave privada delegada 117 usando a chave de criptografia 146. O sistema dono do domínio 110 pode criptografar a chave privada delegada 117 usando uma variedade de métodos de criptografia, como usar um algoritmo de chaves públicas usado para gerar o par de chaves de criptografia e descriptografia e/ou o par de chaves privada delegada e verificadora. Por exemplo, o algoritmo de criptografia pode ser RSA-2048. Em outro exemplo, o sistema dono do domínio 110 pode dividir a chave privada delegada 117 em blocos de 1024 bytes e criptografa cada bloco usando RSA-2048 com a chave de criptografia 146 como chave de criptografia. O sistema dono do domínio 110 concatena os blocos de saída resultantes e codifica-os em Base64 para produzir a chave privada delegada criptografada 138.
[0061] Após criptografar a chave privada delegada 117 para gerar a chave privada delegada criptografada 138, o sistema dono do domínio 110 publica 270 a chave privada delegada criptografada 138 no servidor DNS dono do domínio 130. Especificamente, em uma realização, o sistema dono do domínio 110 publica a chave privada delegada criptografada 138 como registro TXT.
[0062] Embora em algumas realizações este registro TXT DNS possa ser disponibilizado para qualquer cliente que envie a busca DNS adequada, em outras realizações os resultados desta busca podem mudar com base nas características do cliente ou da busca (por exemplo, endereço de IP do cliente, horário). Nestas realizações, isto pode permitir um nível adicional de segurança para impedir vazamentos da chave de descriptografia 127, que pode ser usada para descriptografar a chave privada delegada criptografada 138. Por exemplo, o sistema dono do domínio 110 pode configurar o servidor DNS dono do domínio 130 para responder somente com o registro TXT DNS contendo a chave privada delegada criptografada 138 a um conjunto de endereços de IP conhecidos como sendo propriedade do sistema de terceiros 120 (por exemplo, usando DNS de divisão horizontal ou split-view DNS). Isto garante que, ainda que a chave de descriptografia 127 seja comprometida, a chave privada delegada criptografada 138 só possa ser usada de dentro da infraestrutura controlada pelo sistema de terceiros 120.
[0063] O sistema dono do domínio 110 pode publicar 270 o registro DNS com a chave privada delegada criptografada 138 em qualquer domínio. Em uma realização, o sistema dono do domínio 110 publica o registro DNS com a chave privada delegada criptografada 138 na zona do domínio para o qual a assinatura é autorizada. Em uma realização, o sistema dono do domínio 110 publica o registro DNS em um local conhecido pelo sistema de terceiros 120, seja por convenção ou comunicação direta.
[0064] Enquanto o processo de criptografia for bem definido e conhecido pelo sistema de terceiros 120, a posse da chave de descriptografia 127 permitirá que o sistema de terceiros 120 descriptografe a chave privada delegada criptografada 138 para obter a chave privada delegada 117. Ademais, somente o sistema de terceiros 120 é capaz de descriptografar a chave privada delegada criptografada 138, porque tal descriptografia exigiria a posse da chave de descriptografia 127. Assim, a publicação da chave privada delegada criptografada 138 no registro de DNS dono do domínio 130 é segura.
[0065] Como exemplo do processo acima, assuma que um sistema de terceiros 120 pertença à ExampleCorp, e assuma que o domínio que deseja delegar uma chave privada à ExampleCorp seja "somedomain.com". O registro DNS incluindo a chave privada delegada criptografada 138 pode ser publicado em um domíno de "examplecorp.com._sgn._ddkim.somedomain.com".
[0066] O formato do registro que inclui a chave privada delegada criptografada 138 pode variar. Em uma realização, o registro inclui a chave privada delegada criptografada 138 em um formato (por exemplo, texto, binário, big endian, little endian etc.) que pode ser lido pelo sistema de terceiros 120. Em realizações alternativas, o registro também pode conter outras informações incluindo, mas não limitando-se a: 1) um token que distingue este registro de outros registros de texto que podem ser publicados neste domínio, 2) o tempo de criação para o registro, 3) um tempo de vencimento para o registro, e 4) um campo seletor que permite a publicação de múltiplas chaves de criptografia 146 no mesmo subdomínio.
[0067] Com referência ao exemplo acima, o formato do registro pode ser: "v=SGNDDKIM1; k=<...>" no qual o valor após 'k=' é a chave privada delegada criptografada 138 descrita acima.
[0068] Em uma realização, o sistema dono do domínio 110 também publica 275 a chave verificadora 136 como registro no servidor DNS dono do domínio 130. Em algumas realizações, o domínio de publicação e formato exato da chave verificadora 136 é ditado pelo uso da chave privada delegada 138, e pelas expectativas correspondentes das partes usando a chave verificadora 136.
[0069] Por exemplo, assuma que a chave privada delegada 138 deve ser usada como chave de assinatura como parte do processo DKIM de autenticação de e-mail. Então, o formato e o domínio do registro DNS com a chave verificadora 136 é ditado por DKIM. Neste caso, continuando com o exemplo anterior e assumindo um seletor de 'examplecorp', o registro seria publicado em "examplecorp._domainkey.somedomain.com" e o corpo de registro poderia ser "v=DKIM1; p=<...>", no qual o valor em <...> após o 'p=' é a forma codificada por ASN1.DER da chave verificadora 136.
[0070] Em uma realização, se o sistema de terceiros 120 foi previamente autorizado a assinar pelo domínio para o qual a chave privada delegada 138 está sendo emitida, então o sistema dono do domínio 110 pode ainda apagar quaisquer registros pré-existentes do servidor DNS dono do domínio 130 incluindo quaisquer chaves privadas delegadas criptografadas anteriores ou chaves verificadoras, para impedir o uso de chaves agora obsoletas. Este processo pode ser atrasado, no entanto, para permitir que quaisquer mensagens que já foram assinadas, mas ainda não foram verificadas por seus receptores, sejam verificadas com sucesso.
[0071] Em uma realização, as chaves são regeneradas em resposta a eventos que não a configuração inicial do sistema de terceiros 120. Por exemplo, o sistema de terceiros 120 pode atualizar seu registro DNS da chave de criptografia 146 com uma nova chave de criptografia, podendo ativar esta regeneração. Em uma realização, o sistema dono do domínio 110 avalia o registro incluindo a chave de criptografia 146 regularmente para detectar tais alterações. Em uma realização, o sistema dono do domínio 110 reage a estas mudanças gerando novas chaves privadas delegadas e chaves de verificação, no entanto, em outras realizacões, o sistema dono do domínio 110 simplesmente criptografa a chave privada delegada existente com a nova chave de criptografia e publica a nova chave privada delegada criptografada no servidor DNS dono do domínio 130.
[0072] Em uma realização, o sistema dono do domínio 110 revoga um par de chaves existente e o substitui por um novo par usando o processo descrito acima. Isto pode ocorrer devido a uma falha de segurança ou como boa prática em reação à passagem do tempo.
Exemplo de diagrama de interação para a assinatura de dados
[0073] FIG. 3 é um diagrama de interação e fluxograma ilustrando um processo exemplar para permitir que um sistema de terceiros 120 assine mensagens por parte de um dono de domínio de acordo com uma realização. Em uma realização, a FIG. 3 atribui as operações no processo aos elementos indicados. No entanto, algumas ou todas as etapas podem ser desempenhadas por outros elementos. Além disso, algumas realizações podem ter as operações realizadas em paralelo, em ordens diferentes ou mesmo operações diferentes. Além disso, observa-se que em uma realização exemplar as etapas e/ou módulos podem ser realizados como instruções, por exemplo, instruções 424, que podem ser executadas pelo processador 402 descrito na FIG. 4.
[0074] O sistema de terceiros 120 pode receber 310 uma solicitação para assinar mensagens por parte de um dono de domínio (não mostrado). O sistema de terceiros 120 pode acessar 315 a chave privada delegada criptografada 138 armazenada em um local de registro conhecido em um servidor de DNS, como o servidor DNS dono do domínio 130. Se este registro não for encontrado, o sistema de terceiros 120 pode indicar um erro. Caso contrário, o sistema de terceiros 120 descriptografa 320 a chave privada delegada criptografada 138 usando a chave de descriptografia armazenada no local 127 previamente gerada pelo sistema de terceiros 120.
[0075] Em uma realização, o sistema de terceiros 120 valida 325 a chave privada delegada descriptografada 117. A validação da chave privada delegada 117 pode incluir algumas etapas possíveis, como: 1) garantir que os bytes possam ser decodificados, 2) que os bytes decodificados correspondam a uma chave válida para o algoritmo de criptografia esperado, ou 3) que os metadados no registro DNS incluindo a chave privada delegada criptografada 138 cumpram alguns critérios (por exemplo, tempo de vencimento, tempo de criação, algoritmo de criptografia usado etc.).
[0076] Por exemplo, o sistema de terceiros 120 pode validar que o formato do registro DNS incluindo a chave privada delegada criptografada corresponda a "v=SGNDDKIM1; k=<...>", e que o valor após 'k=' corresponda a uma chave privada delegada criptografada conforme descrito acima.
[0077] Assumindo que a chave privada delegada 117 seja válida, o sistema de terceiros 120 usará a chave privada delegada 117 como entrada em um processo de assinatura para dados. Estes dados podem ser uma mensagem como e-mail, usados para trocas de chaves simétricas etc. Em uma realização, o sistema de terceiros 120 gera 330 uma assinatura dos dados usando a chave privada delegada 117. Esta assinatura então é verificada 350 pelo agente verificador 160. Os detalhes exatos do processo são imateriais para os métodos, dado que o processo de assinatura empregue assinaturas criptográficas de chaves públicas. Um exemplo não limitador de tal processo seria usar a chave privada delegada 117 como assinatura DKIM para e-mails enviados.
[0078] O exemplo da assinatura de mensagens é um exemplo do mundo real de como o sistema e os métodos para a distribuição de chaves privadas delegadas pode ser usado, mas o caso específico de assinatura de mensagens deve ser considerado não limitador. Conforme descrito acima, a assinatura de mensagens é caso de uso importante para este método, mas não é o único processo ao qual este método agrega valor.
Exemplo de arquitetura de máquina
[0079] FIG. 4 é um diagrama de blocos ilustrando componentes de uma máquina exemplar capaz de ler instruções a partir de um meio legível por máquinas e executá-las em um processador (ou controlador). Especificamente, a FIG. 4 mostra uma representação diagramática de uma máquina na forma exemplar de um sistema de computador 400. O sistema de computador 400 pode ser usado para executar instruções 424 (por exemplo, código de programa ou software) para fazer com que a máquina execute alguma das metodologias (ou processos) aqui descritos. Em realizações alternativas, a máquina opera como um dispositivo isolado ou dispositivo conectado (por exemplo, em rede) com outras máquinas. Em uma implantação com rede, a máquina pode operar na capacidade de máquina servidor ou máquina cliente em um ambiente de rede servidor-cliente, ou como máquina peer em um ambiente de rede peer-to-peer (ou distribuído).
[0080] A máquina pode ser um computador servidor, um computador cliente, um computador pessoal (PC), um tablet, uma caixa set-top (STB), um smartphone, um dispositivo da internet das coisas (IoT), um roteador de rede, switch ou bridge, ou qualquer máquina capaz de executar instruções 424 (sequenciais ou não) que especifiquem ações a serem executadas pela máquina. Ademais, embora uma única máquina seja ilustrada, o termo "máquina" também incluirá qualquer coleção de máquinas que executem instruções 424 individualmente ou conjuntamente para executar uma ou mais metodologias aqui descritas.
[0081] O sistema de computação exemplar 400 inclui uma ou mais unidades de processamento (geralmente o processador 402). O processador 402 é, por exemplo, uma unidade de processamento central (CPU), uma unidade de processamento de gráficos (GPU), um processador de sinal digital (DSP), um controlador, uma máquina de estado, um ou mais circuitos integrados específicos de aplicação (ASICs), um ou mais circuitos integrados de radio frequência (RFICs) ou qualquer combinação destes. O sistema de computador 400 também inclui uma memória principal 404. O sistema de computador pode incluir uma unidade de armazenamento 416. O processador 402, a memória 404 e a unidade de armazenamento 416 se comunicam por um bus 408.
[0082] Além disso, o sistema de computador 406 pode incluir uma memória estática 406, um driver de tela 410 (por exemplo, para acionar um painel de display de plasma (PDP, uma tela de cristal líquido (LCD) ou um projetor). O sistema de computador 400 também pode incluir um dispositivo de entrada alfanumérico 412 (por exemplo, um teclado), um dispositivo de controle de cursor 414 (por exemplo, um mouse, trackball, joystick, sensor de movimento ou outro instrumento indicador), um dispositivo de geração de sinal 418 (por exemplo, um falante) e um dispositivo de interface de rede 420, também configurados para comunicar por um bus 408.
[0083] A unidade de armazenamento 416 inclui um meio legível por máquina no qual se armazenam instruções 424 (por exemplo, software) incorporando uma ou mais das metodologias ou funções aqui descritas. As instruções 424 também podem residir, completamente ou parcialmente, na memória principal 404 ou no processador 402 (por exemplo, na memória cache do processador) durante a execução destes pelo sistema de computador 400, com a memória principal 404 e o processador 402 também constituindo meios legíveis por máquina. As instruções 424 podem ser transmitidas ou recebidas por uma rede 426 pelo dispositivo de interface de rede 420.
[0084] Embora o meio legível por máquina 422 seja mostrado em uma realização exemplar como sendo um meio único, o termo "meio legível por máquina" deve incluir um único meio ou múltiplos meios (por exemplo, um banco de dados centralizado ou distribuído, ou caches e servidores associados) capazes de armazenar as instruções 424. O termo "meio legível por máquina" também incluirá qualquer meio capaz de armazenar instruções 424 para execução pela máquina e que façam com que a máquina execute uma ou mais metodologias aqui descritas. O termo "meio legível por máquina" inclui, mas não limita-se, a repositórios de dados na forma de memórias solid-state, mídia óptica e mídia magnética.
Considerações adicionais
[0085] Ao longo desta especificação, várias instâncias podem implementar componentes, operações ou estruturas descritas como uma única instância. Embora operações individuais de um ou mais métodos sejam ilustradas e descritas como operações separadas, uma ou mais das operações individuais podem ser executadas concomitantemente, e nada exige que as operações sejam executadas na ordem ilustrada. As estruturas e a funcionalidade apresentadas como componentes separados em configurações exemplares podem ser implementados como estrutura ou componente combinado. De modo semelhante, as estruturas e a funcionalidade apresentadas como um componente único podem ser implementadas como componentes separados. Estas e outras variações, modificações, adições e melhorias recaem no escopo do assunto deste instrumento.
[0086] Certas realizações são aqui descritas como incluindo lógica ou um número de componentes, módulos ou mecanismos, por exemplo, como ilustrado nas FIGS. 1-5. Módulos podem constituir módulos de software (por exemplo, código incorporado em um meio legível por máquina ou em um sinal de transmissão) ou módulos de hardware. Um módo de hardware é uma unidade tangível capaz de executar certas operações e pode ser configurado ou arranjado de determinada maneira. Em realizações exemplares, um ou mais sistemas de computador (por exemplo, um sistema isolado, cliente ou servidor) ou um ou mais módulos de hardware de um sistema de computador (por exemplo, um processador ou grupo de processadores) podem ser configurados por software (por exemplo, um aplicativo ou parte de um aplicativo) como módulo de hardware que opere para executar certas operações conforme aqui descrito.
[0087] Em várias realizações, um módulo de hardware pode ser implementado mecanicamente ou eletronicamente. Por exemplo, um módulo de hardware pode compreender circuitos dedicados ou lógica permanentemente configurados (por exemplo, como processador de finaldiade específica, como um field programmable gate arrway (FPGA) ou circuito integrado específico de aplicativo (ASIC)) para executar certas operações. Um módulo de hardware também pode compreender lógica ou circuitos programáveis (por exemplo, conforme incluído em um processador de finalidade geral ou outro processador programável) temporariamente configurado pelo software para executar certas operações. A decisão de implementar um módulo de hardware mecanicamente, em circuitos dedicados e permanentemente configurados, ou em circuitos temporariamente configurados (por exemplo, configurados por software) pode ser orientada por considerações de custo e tempo.
[0088] As várias operações dos métodos exemplares aqui descritos podem ser desempenhadas, ao menos parcialmente, por um ou mais processadores temporariamente configurados (por exemplo, por software) ou permanentemente configurados para executar as operações relevantes. Sejam eles temporariamente ou permanentemente configurados, tais processadores podem constituir módulos implementados pelo processador que operam para executar uma ou mais operações ou funções. Os módulos referidos podem, em algumas realizações exemplares, compreender módulos implementados pelo processador.
[0089] Um ou mais processadores podem também operar para dar suporte à execução das operações relevantes em um ambiente de "computação na nuvem" ou como "software as a service" (SaaS). Por exemplo, ao menos algumas das operações podem ser desempenhadas por um grupo de computadores (como exemplos de máquinas incluindo processadores), com estas operações sendo acessíveis por uma rede (por exemplo, a internet) e uma ou mais interfaces adequadas (por exemplo, interfaces de programa de aplicação (APIs).)
[0090] O desempenho de certas operações pode ser distribuído entre um ou mais processadores, não apenas residindo em uma única máquina, mas implantados em várias máquinas. Em algumas realizações exemplares, um ou mais processadores ou módulos implementados pelo processador podem ser localizados em um único local geográfico (por exemplo, em um ambiente doméstico, de escritório ou coletivo de servidores). Em outras realizações exemplares, um ou mais processadores ou módulos implementados pelo processador podem ser distribuídos entre vários locais geográficos.
[0091] Algumas partes desta especificação são apresentadas em termos de algoritmos ou representações simbólicas de operações em dados armazenados como bits ou sinais digitais binários em uma memória de máquina (por exemplo, uma memória de computador). Estes algoritmos de representações simbólicas são exemplos de técnicas usadas por pessoas de habilidade ordinária na técnica de processamento de dados para transmitir a substância do seu trabalho para outros entendidos na técnica. Da maneira aqui utilizada, um "algoritmo" é uma sequência autoconsistente de operações ou processamento semelhante levando a um resultado desejado. Neste contexto, algoritmos e operações envolvem a manipulação física de quantidades físicas. Tipicamente, mas não necessariamente, tais quantidades podem assumir a forma de sinais elétricos, magnéticos ou ópticos que podem ser armazenados, acessados, transferidos, combinados, comparados ou de outro modo manipulados por uma máquina. É conveniente, especialmente para fins de utilização comum, referir-se a tais sinais usando termos como "dados", "conteúdo", "bits", "valores", "elementos", "símbolos", "caracteres", "termos", "números", "numerais" e afins. Estas palavras, no entanto, são meros rótulos convenientes e devem ser associados a quantidades físicas apropriadas.
[0092] A menos se for afirmado de outro modo, discussões utilizando termos como "processamento", "computação", "cálculo", "determinação", "apresentação", "exibição" ou afins podem referir-se a ações ou processos de uma máquina (por exemplo, um computador) que manipula ou transforma dados representados como quantidades físicas (por exemplo, eletrônicas, magnéticas ou ópticas) em uma ou mais memórias (por exemplo, memória volátil, memória não volátil ou uma combinação destas), registros ou outros componentes de máquina que recebem, armazenam, transmitem ou exibem informações.
[0093] Da maneira aqui utilizada, qualquer referência a "uma realização" significa que um elemento, recurso, estrutura ou característica específica descrita em conexão com a realização é incluida em ao menos uma realização. As aparições da frase "em uma realização" em vários locais da especificação não se referem necessariamente à mesma realização.
[0094] Algumas realizações podem ser descritas usando a expressão "acoplado" e "conectado" com seus derivados. Por exemplo, algumas realizações podem ser descritas usando o termo "acoplado" para indicar que dois ou mais elementos estão em contato físico ou elétrico direto. O termo "acoplado", no entanto, também pode significar que dois ou mais elementos não estão em contato direto um com o outro, mas ainda cooperam ou interagem entre si. As realizações não estão limitadas neste contexto.
[0095] Da maneira aqui utilizada, os termos "compreende", "compreendendo", "inclui", "incluindo", "tem", "tendo" ou outras variações destes devem abrangir uma inclusão não exclusiva. Por exemplo, um processo, método, artigo ou aparelho que compreende uma lista de elementos não se limita necessariamente a estes elementos mas pode incluir outros elementos não expressamente listados ou inerentes a tal processo, método, artigo ou aparelho. Ademais, a menos se expressamente afirmado em sentido contrário, "ou" refere-se a um ou inclusivo, e não a um ou exclusivo. Por exemplo, uma condição A ou B é satisfeita por quaisquer dos seguintes: A é verdadeiro (ou presente) e B é falso (ou não presente), A é falso (ou não presente) e B é verdadeiro (ou presente), e tanto A quanto B são verdadeiros (ou presentes).
[0096] Além disso, o uso de artigos indefinidos é empregado para descrever elementos e componentes das realizações. Isto é feito meramente para fins de conveniência e para dar um senso geral da invenção. Esta descrição deve ser lida de modo a incluir um ou ao menos um e o singular também inclui o plural a menos que seja óbvio que o sentido é outro.
[0097] Ao ler esta divulgação, os entendidos na técnica apreciarão deesenhos estruturais e funcionais alternativos para um sistema e processo capaz de uma distribuição segura e delegada de chaves privadas via DNS. Assim, embora realizações e aplicações específicas tenham sido ilustradas e descritas, deve-se entender que as realizações divulgadas não são limitadas à construção precisa e aos componentes aqui divulgados. Várias modificações, alterações e variações, que serão aparentes para os entendidos na técnica, podem ser feitos no arranjo, operação e detalhes do método e aparelho aqui divulgados sem descartar o espírito e o escopo definidos nas reivindicações apensas.

Claims (24)

1. Meio de armazenamento legível por computador não transitório configurado para armazenar instruções de método, caracterizado pelo fato de armazenar um conjunto de instruções que quando executadas fazem com que o processador: - identifique, em um sistema dono do domínio, um sistema de terceiros para delegar a assinatura de mensagens; - acessar uma chave de criptografia publicada pelo sistema de terceiros em um registro de sistema de nomes de domínio (DNS) do sistema de terceiros, o DNS do sistema de terceiros sendo parte de um sistema diretório global capaz de estabelecer a autenticidade do sistema de terceiros; - gerar um par de chaves pública-privada, a chave pública do par de chaves sendo uma chave de verificação, e a chave privada do par de chaves sendo uma chave privada delegada, a chave privada delegada a ser usada pelo sistema de terceiros para assinar mensagens por parte de um dono de domínio do sistema dono do domínio; - criptografar a chave privada delegada usando a chave de criptografia para gerar uma chave privada delegada criptografada; - publicar a chave privada delegada criptografada em um registro de DNS do dono do domínio residindo em um servidor DNS; - configurar o servidor DNS para responder à chave privada delegada criptografada somente em resposta a solicitações pela chave privada delegada criptografada dos endereços de rede do sistema de terceiros; e - publicar a chave verificadora no registro de DNS do dono domínio.
2. Meio de armazenamento legível por computador, de acordo com a reivindicação 1, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções que, quando executadas por um processador, fazem com que o processador: - valide a chave de criptografia através da: - determinação de que os bytes do registro DNS acessado incluindo a chave de criptografia possam ser decodificados; e - determinação de que a chave de criptografia decodificada seja gerada com o mesmo algoritmo usado para gerar o par de chaves públicas-privadas.
3. Meio de armazenamento legível por computador, de acordo com a reivindicação 1, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções para a criptografia da chave privada delegada usando a chave de criptografia, que, quando executadas por um processador, fazem com que o processador: - divida a chave privada delegada em um ou mais blocos; - criptografe cada bloco do(s) bloco(s) usando a chave de criptografia; e - concatenar cada bloco criptografado para gerar a chave privada delegada criptografada.
4. Meio de armazenamento legível por computador, de acordo com a reivindicação 1, caracterizado pelo fato de o meio de armazenamento armazena outras instruções que, quando executadas por um processador, fazem com que o processador: - determine que a chave de criptografia publicada pelo sistema de terceiros foi atualizado; - recriptografe a chave privada delegada com a chave de criptografia atualizada; e - publique a chave privada delegada recriptografada no registro de DNS do dono domínio.
5. Processo implementado por computador, caracterizado pelo fato de compreender: - gerar um par de chaves pública-privada, com a chave pública do par de chaves sendo uma chave de criptografia e a chave privada do par de chaves sendo uma chave de descriptografia; - publicar a chave de criptografia como um registro de Serviço de Nomes de Domínio (DNS) de um sistema de terceiros, o DNS do sistema de terceiros sendo parte de um sistema diretório global capaz de estabelecer a autenticidade do sistema de terceiros; - receber uma solicitação para assinar mensagens por parte de um dono de domínio, com a mensagem sendo enviada a um receptor; - acessar uma chave privada delegada criptografada publicada pelo dono do domínio via um registro DNS do dono do domínio, a chave privada delegada criptografada usando a chave de criptografia; - descriptografar da chave privada delegada criptografada usando a chave de descriptografia; - gerar uma assinatura para a mensagem usando a chave privada delegada; e - transmitir a assinatura e a mensagem ao receptor.
6. Processo, de acordo com a reivindicação 5, caracterizado pelo fato de a geração de um par de chaves públicas-privadas compreender ainda: - gerar o par de chaves públicas-privadas usando 2048-bit RSA.
7. Processo, de acordo com a reivindicação 5, caracterizado pelo fato de a publicação da chave de criptografia como um registro DNS do sistema de terceiros compreender ainda: - publicar a chave de criptografia sob um registro DNS indicando a identidade do dono do domínio; e - sendo que o sistema de terceiros suporta à assinatura de mensagens por parte de uma pluralidade de donos de domínio.
8. Processo, de acordo com a reivindicação 5, caracterizado pelo fato de o registro DNS do sistema de terceiros compreender ainda um token para distinguir o registro DNS de outros registros de texto publicados em um domínio do sistema de terceiros, um tempo de criação para o registro DNS, um tempo de expiração para o registro DNS, um campo seletor para permitir a publicação de múltiplas chaves de criptografia no mesmo subdomínio, e um campo para indicar um algoritmo usado para criptografia.
9. Processo, de acordo com a reivindicação 5, caracterizado pelo fato de o registro DNS do sistema de terceiros armazenando a chave de criptografia ser um registro TXT DNS.
10. Processo, de acordo com a reivindicação 5, caracterizado pelo fato de compreender ainda a validação da chave privada delegada acessada através da determinação de bytes da chave privada delegada criptografada a ser descriptografada pela chave de descriptografia.
11. Meio de armazenamento legível por computador não transitório configurado para armazenar instruções, caracterizado pelo fato de com as instruções, quando executadas por um processador, fazer com que o processador: - identifique, em um sistema dono do domínio, um sistema de terceiros para delegar a assinatura de mensagens; - acesse uma chave de criptografia publicada pelo sistema de terceiros em um registro de sistema de nomes de domínio (DNS) do sistema de terceiros, o DNS do sistema de terceiros sendo parte de um sistema diretório global capaz de estabelecer a autenticidade do sistema de terceiros; - gere um par de chaves pública-privada, com a chave pública do par de chaves sendo uma chave de verificação, e a chave privada do par de chaves sendo uma chave privada delegada, a chave privada delegada a ser usada pelo sistema de terceiros para assinar mensagens por parte de um dono de domínio do sistema dono do domínio; - criptografe a chave privada delegada usando a chave de criptografia para gerar uma chave privada delegada criptografada; - publique a chave privada delegada criptografada no registro de DNS do dono domínio; e - publique a chave verificadora no registro de DNS do dono domínio.
12. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções para a geração do par de chaves públicas-privadas que, quando executadas por um processador, fazem com que o processador: - gerar o par de chaves públicas-privadas usando 2048-bit RSA.
13. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções que, quando executadas por um processador, fazem com que o processador: - valide a chave de criptografia por: - determinação dos bytes do registro DNS acessado incluindo a chave de criptografia possam ser decodificados; e - determinação da chave de criptografia decodificada seja gerada com o mesmo algoritmo usado para gerar o par de chaves públicas-privadas.
14. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções para a criptografia da chave privada delegada usando a chave de criptografia, que, quando executadas por um processador, fazem com que o processador: - divida a chave privada delegada em um ou mais blocos; - criptografe cada bloco do(s) bloco(s) usando a chave de criptografia; e - concatene cada bloco criptografado para gerar a chave privada delegada criptografada.
15. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o registro DNS do dono do domínio armazenando a chave privada delegada criptografada ser um registro TXT DNS.
16. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções para a publicação da chave privada delegada criptografada em um registro DNS do dono do domínio, que, quando executadas por um processador, fazem com que o processador: - publique a chave privada delegada criptografada em um registro de DNS do dono do domínio residindo em um servidor DNS; - configure o servidor DNS para responder à chave privada delegada criptografada somente em resposta a solicitações pela chave privada delegada criptografada dos endereços de rede do sistema de terceiros.
17. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o registro DNS do dono do domínio compreender ainda um token que distingue o registro DNS de outros registros de texto que são publicados em um domínio do dono do domínio, um tempo de criação para o registro DNS, um tempo de expiração para o registro DNS, um campo seletor que permite a publicação de múltiplas chaves de criptografia no mesmo subdomínio, e um campo que indica um algoritmo usado para criptografia.
18. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções para a publicação da chave de verificação no registro DNS do dono do domínio, que, quando executadas por um processador, fazem com que o processador: - formate o registro DNS armazenando a chave verificadora em um formato compatível com Domain Keys Identified Mail (DKIM).
19. Meio de armazenamento legível por computador, de acordo com a reivindicação 11, caracterizado pelo fato de o meio de armazenamento armazenar outras instruções que, quando executadas por um processador, fazem com que o processador: - determine que a chave de criptografia publicada pelo sistema de terceiros foi atualizada; - recriptografe a chave privada delegada com a chave de criptografia atualizada; e - publique a chave privada delegada recriptografada no registro de DNS do dono domínio.
20. Processo implementado por computador, caracterizado pelo fato de compreender: - identificar, em um sistema dono do domínio, um sistema de terceiros para delegar a assinatura de mensagens; - acessar uma chave de criptografia publicada pelo sistema de terceiros em um registro de sistema de nomes de domínio (DNS) do sistema de terceiros, o DNS do sistema de terceiros sendo parte de um sistema diretório global capaz de estabelecer a autenticidade do sistema de terceiros; - gerar um par de chaves pública-privada, com a chave pública do par de chaves sendo uma chave de verificação, e a chave privada do par de chaves sendo uma chave privada delegada, a chave privada delegada a ser usada pelo sistema de terceiros para assinar mensagens por parte de um dono de domínio do sistema dono do domínio; - criptografar a chave privada delegada usando a chave de criptografia para gerar uma chave privada delegada criptografada; - publicar a chave privada delegada criptografada no registro de DNS do dono domínio; - publicar a chave verificadora no registro de DNS do dono domínio.
21. Processo, de acordo com a reivindicação 20, caracterizado pelo fato de a criptografia da chave privada delegada usando a chave de criptografia compreender ainda: - dividir a chave privada delegada em um ou mais blocos; - criptografar cada bloco do(s) bloco(s) usando a chave de criptografia; e - concatenar cada bloco criptografado para gerar a chave privada delegada criptografada.
22. Processo, de acordo com a reivindicação 20, caracterizado pelo fato de o registro DNS do dono do domínio armazenando a chave privada delegada criptografada ser um registro TXT DNS.
23. Processo, de acordo com a reivindicação 20, caracterizado pelo fato de a publicação da chave privada delegada criptografada em um registro DNS do dono do domínio compreender ainda: - publicar a chave privada delegada criptografada em um registro de DNS do dono do domínio residindo em um servidor DNS; - configurar o servidor DNS para responder à chave privada delegada criptografada somente em resposta a solicitações pela chave privada delegada criptografada dos endereços de rede do sistema de terceiros.
24. Processo, de acordo com a reivindicação 20, caracterizado pelo fato de compreender ainda: determinar que a chave de criptografia publicada pelo sistema de terceiros foi atualizada; recriptografar a chave privada delegada com a chave de criptografia atualizada; e publicar a chave privada delegada recriptografada no registro de DNS do dono domínio.
BR112017017425-1A 2015-02-14 2016-01-29 Meio de armazenamento legível por computador não transitório configurado para armazenar instruções de método e processo implementado por computador BR112017017425B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562116414P 2015-02-14 2015-02-14
US62/116,414 2015-02-14
PCT/US2016/015797 WO2016130340A1 (en) 2015-02-14 2016-01-29 Secure and delegated distribution of private keys via domain name service

Publications (2)

Publication Number Publication Date
BR112017017425A2 BR112017017425A2 (pt) 2018-04-03
BR112017017425B1 true BR112017017425B1 (pt) 2024-04-30

Family

ID=56615461

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017017425-1A BR112017017425B1 (pt) 2015-02-14 2016-01-29 Meio de armazenamento legível por computador não transitório configurado para armazenar instruções de método e processo implementado por computador

Country Status (8)

Country Link
US (3) US9686073B2 (pt)
EP (1) EP3257192B1 (pt)
JP (1) JP6526244B2 (pt)
CN (1) CN108604983B (pt)
AU (1) AU2016218340B2 (pt)
BR (1) BR112017017425B1 (pt)
CA (1) CA2976463C (pt)
WO (1) WO2016130340A1 (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10205598B2 (en) * 2015-05-03 2019-02-12 Ronald Francis Sulpizio, JR. Temporal key generation and PKI gateway
CA2943756C (en) 2016-09-30 2024-02-06 The Toronto-Dominion Bank Information masking using certificate authority
CN108418678B (zh) * 2017-02-10 2019-05-07 贵州白山云科技股份有限公司 一种私钥安全存储和分发的方法及装置
US10637720B2 (en) * 2017-02-28 2020-04-28 International Business Machines Corporation Predictive analytics and device tracking to facilitate minimization of alert events
CN108574569B (zh) * 2017-03-08 2021-11-19 中国移动通信有限公司研究院 一种基于量子密钥的认证方法及认证装置
US10432584B1 (en) * 2017-06-23 2019-10-01 Verisign, Inc. Managing lame delegated domains within a managed DNS service
US10581909B2 (en) 2017-06-26 2020-03-03 Oath Inc. Systems and methods for electronic signing of electronic content requests
US11316666B2 (en) * 2017-07-12 2022-04-26 Amazon Technologies, Inc. Generating ephemeral key pools for sending and receiving secure communications
US10715504B2 (en) 2017-07-12 2020-07-14 Wickr Inc. Provisioning ephemeral key pools for sending and receiving secure communications
US11082412B2 (en) 2017-07-12 2021-08-03 Wickr Inc. Sending secure communications using a local ephemeral key pool
US10812276B2 (en) 2018-02-23 2020-10-20 International Business Machines Corporation Secure trust based distribution of digital certificates
US10785192B2 (en) 2018-02-28 2020-09-22 Sling Media Pvt. Ltd. Methods and systems for secure DNS routing
US10742696B2 (en) 2018-02-28 2020-08-11 Sling Media Pvt. Ltd. Relaying media content via a relay server system without decryption
US20190305940A1 (en) * 2018-03-28 2019-10-03 Ca, Inc. Group shareable credentials
CN111294379B (zh) * 2018-12-10 2022-06-07 北京沃东天骏信息技术有限公司 区块链网络服务平台及其权限托管方法、存储介质
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
US11212139B2 (en) 2019-08-29 2021-12-28 Charter Communications Operating, Llc Border gateway protocol (BGP) hijacks prefix signing using public/private keys
US11296872B2 (en) * 2019-11-07 2022-04-05 Micron Technology, Inc. Delegation of cryptographic key to a memory sub-system
CN110969431B (zh) * 2019-11-27 2024-04-19 北京贵泽系统技术有限公司 区块链数字币私钥的安全托管方法、设备和系统
US12069095B2 (en) 2020-01-22 2024-08-20 Valimail Inc. Automated authentication and authorization in a communication system
IL294919A (en) * 2020-01-22 2022-09-01 Valimail Inc Automatic authentication and authorization in a communication system
US11606198B2 (en) 2020-01-22 2023-03-14 Valimail Inc. Centrally managed PKI provisioning and rotation
EP4094418A4 (en) 2020-01-22 2024-03-20 Valimail Inc. INTERACTION CONTROL LIST DETERMINATION AND DEVICE NEIGHBORHOOD AND CORRESPONDING TOPOGRAPHY
CN111698088B (zh) * 2020-05-28 2022-10-18 平安科技(深圳)有限公司 密钥轮换方法、装置、电子设备及介质
CN112287364A (zh) * 2020-10-22 2021-01-29 同盾控股有限公司 数据共享方法、装置、系统、介质及电子设备
WO2022119586A1 (en) 2020-12-01 2022-06-09 Valimail Inc. Automated device discovery and workflow enrichment
US11695745B2 (en) 2020-12-01 2023-07-04 Valimail Inc. Automated DMARC device discovery and workflow
CN112751879B (zh) * 2021-01-08 2023-06-27 北京润通丰华科技有限公司 一种拟态dns防御系统通信加密和解密方法
US11271894B1 (en) * 2021-03-10 2022-03-08 Accenture Global Solutions Limited Systems, devices, and methods for private query and exchange of domain information
CN114142995B (zh) * 2021-11-05 2023-08-22 支付宝(杭州)信息技术有限公司 面向区块链中继通信网络的密钥安全分发方法及装置
US11991139B2 (en) 2022-09-16 2024-05-21 Valimail Inc. Automated email protocol analyzer in a privacy-safe environment

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834112B1 (en) * 2000-04-21 2004-12-21 Intel Corporation Secure distribution of private keys to multiple clients
US7281010B2 (en) * 2000-11-15 2007-10-09 Lenovo (Singapore) Pte. Ltd. Trusted computing platform with dual key trees to support multiple public/private key systems
US7773754B2 (en) * 2002-07-08 2010-08-10 Broadcom Corporation Key management system and method
AU2003229234A1 (en) * 2003-05-30 2005-01-21 Privasphere Gmbh System and method for secure communication
AU2004252882A1 (en) * 2003-06-10 2005-01-06 Mastercard International Incorporated Systems and methods for conducting secure payment transactions using a formatted data structure
US7313700B2 (en) * 2003-08-26 2007-12-25 Yahoo! Inc. Method and system for authenticating a message sender using domain keys
US6986049B2 (en) * 2003-08-26 2006-01-10 Yahoo! Inc. Method and system for authenticating a message sender using domain keys
US8094810B2 (en) * 2006-02-03 2012-01-10 Massachusetts Institute Of Technology Unidirectional proxy re-encryption
US8538028B2 (en) * 2006-11-20 2013-09-17 Toposis Corporation System and method for secure electronic communication services
CA2586223A1 (en) * 2007-04-19 2007-07-18 Cannotech Experts-Conseils Inc. Opt-in process and nameserver system for ietf dnssec
US20100011420A1 (en) * 2008-07-02 2010-01-14 Barracuda Networks Inc. Operating a service on a network as a domain name system server
CA2754268C (en) * 2009-03-03 2018-04-03 Kenneth J. Giuliani Split key secure access system
US8285798B2 (en) * 2009-04-15 2012-10-09 Ecert, Inc. System and method for the management of message policy
US20110296171A1 (en) 2010-05-28 2011-12-01 Christina Fu Key recovery mechanism
WO2012094675A2 (en) * 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US20120216040A1 (en) * 2011-02-17 2012-08-23 Ram Tanamy System for Email Message Authentication, Classification, Encryption and Message Authenticity
JP2012199607A (ja) * 2011-03-18 2012-10-18 Anritsu Networks Kk Dnssec代理装置
US9130917B2 (en) * 2011-05-02 2015-09-08 Verisign, Inc. DNSSEC signing server
US9495552B2 (en) * 2012-12-31 2016-11-15 Microsoft Technology Licensing, Llc Integrated data deduplication and encryption
US9367676B2 (en) * 2013-03-22 2016-06-14 Nok Nok Labs, Inc. System and method for confirming location using supplemental sensor and/or location data

Also Published As

Publication number Publication date
BR112017017425A2 (pt) 2018-04-03
EP3257192A1 (en) 2017-12-20
CN108604983A (zh) 2018-09-28
CA2976463C (en) 2024-01-16
AU2016218340A1 (en) 2017-08-31
CN108604983B (zh) 2021-06-15
US20180048460A1 (en) 2018-02-15
EP3257192B1 (en) 2020-08-12
US9686073B2 (en) 2017-06-20
CA2976463A1 (en) 2016-08-18
EP3257192A4 (en) 2018-08-29
US20170250797A1 (en) 2017-08-31
WO2016130340A1 (en) 2016-08-18
AU2016218340B2 (en) 2019-01-03
US20160373252A1 (en) 2016-12-22
US9800402B2 (en) 2017-10-24
JP6526244B2 (ja) 2019-06-05
JP2018506939A (ja) 2018-03-08

Similar Documents

Publication Publication Date Title
BR112017017425B1 (pt) Meio de armazenamento legível por computador não transitório configurado para armazenar instruções de método e processo implementado por computador
US11620387B2 (en) Host attestation
US11184157B1 (en) Cryptographic key generation and deployment
US10659468B2 (en) Access control values
US10243939B2 (en) Key distribution in a distributed computing environment
US11849029B2 (en) Method of data transfer, a method of controlling use of data and cryptographic device
US10218511B2 (en) Signature delegation
US11457018B1 (en) Federated messaging
US7822974B2 (en) Implicit trust of authorship certification
US10237249B2 (en) Key revocation
US11349659B2 (en) Transmitting an encrypted communication to a user in a second secure communication network
US11368442B2 (en) Receiving an encrypted communication from a user in a second secure communication network
US10791196B2 (en) Directory lookup for federated messaging with a user from a different secure communication network
CN110771087B (zh) 私钥更新
Osmov et al. On the blockchain-based general-purpose public key infrastructure
EP4378120A1 (en) Method, cloud-service method, cloud server, self-sovereign identity method for providing a self-sovereign identity cloud service to a user

Legal Events

Date Code Title Description
B15I Others concerning applications: loss of priority

Free format text: VIDE E-PARECER

B12F Other appeals [chapter 12.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 29/01/2016, OBSERVADAS AS CONDICOES LEGAIS