BR112015019378B1 - Método implementado por computador para fornecer serviços de criptografia e sistema de computação de um primeiro serviço. - Google Patents

Método implementado por computador para fornecer serviços de criptografia e sistema de computação de um primeiro serviço. Download PDF

Info

Publication number
BR112015019378B1
BR112015019378B1 BR112015019378-1A BR112015019378A BR112015019378B1 BR 112015019378 B1 BR112015019378 B1 BR 112015019378B1 BR 112015019378 A BR112015019378 A BR 112015019378A BR 112015019378 B1 BR112015019378 B1 BR 112015019378B1
Authority
BR
Brazil
Prior art keywords
service
key
request
data
policy
Prior art date
Application number
BR112015019378-1A
Other languages
English (en)
Other versions
BR112015019378A2 (pt
Inventor
Eric Jason Brandwine
Gregory Branchek Roth
Matthew James Wren
Brian Irl Pratt
Original Assignee
Amazon Technologies, 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 Amazon Technologies, Inc filed Critical Amazon Technologies, Inc
Publication of BR112015019378A2 publication Critical patent/BR112015019378A2/pt
Publication of BR112015019378B1 publication Critical patent/BR112015019378B1/pt

Links

Images

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/0471Network 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 applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • 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
    • 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/045Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

SERVIÇO DE SEGURANÇA DE DADOS. Um ambiente de computação distribuído utiliza um serviço de criptografia. O serviço de criptografia gerencia chaves de forma segura em nome de uma ou mais entidades. O serviço de criptografia está configurado para receber e responder a pedidos para executar operações criptográficas, tais como criptografia e descriptografia. Os pedidos podem ser provenientes de entidades utilizando o ambiente de computação distribuído e/ou subsistemas do ambiente de computação distribuído.

Description

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] Este pedido reivindica prioridade do Pedido de Patente US 13/764.963, depositado em 12 de fevereiro de 2013, cujo conteúdo é aqui incorporado por referência na sua totalidade. Este pedido incorpora por referência para todos os efeitos a divulgação completa de pedido de patente copendente US 13/764.944, depositado simultaneamente com este, intitulado “AUTOMATIC KEY RAOTATION”, pedido de patente copendente US 13/764.995, depositado sumultaneamente com este intitulado “POLICY ENFORCEMENT WITH ASSOCIATED DATA”, pedido de patente copendente US 13/765.020, depositado sumultaneamente com este, intitulado, “DATA SECURITY WITH A SECURITY MODULE”, pedido de patente copendente US 13/765.209, depositado simultaneamente com este, intitulado “FEDERATED KEY MANAGEMENT”, pedido de patente copendente US 13/765.239, depositado sumultaneamente com este, intitulado “DELAYED DATA ACCESS”, pedido de patente copendente US 13/765.265, depositado sumultaneamente com este intitulado “DATA SECURITY SERVICE”, e pedido de patente copendente US 13/765.283, depositado sumultaneamente com este, intitulado “SECURE MANAGEMENT OF INFORMATION USING A SECURITY MODULE”.
FUNDAMENTOS
[002] A segurança de recursos de computação e dados associados é de grande importância em muitos contextos. Como exemplo, as organizações geralmente utilizam redes de dispositivos de computação para fornecer um conjunto robusto de serviços aos seus usuários. Redes frequentemente abrangem várias fronteiras geográficas e muitas vezes se conectam com outras redes. Uma organização, por exemplo, pode apoiar as suas operações com as duas redes internas de recursos de computação e recursos de computação gerenciados por outros. Computadores da organização, por exemplo, podem se comunicar com computadores de outras organizações para acessar e/ou fornecer dados ao utilizar os serviços de outra organização. Em muitos casos, as organizações configuram e operam redes remotas usando hardware gerido por outras organizações, reduzindo assim os custos de infraestrutura e alcançar outras vantagens. Com essas configurações de recursos de computação, assegurar que o acesso aos recursos e os dados que detêm é seguro pode ser um desafio, especialmente devido ao crescente tamanho e complexidade de tais configurações.
BREVE DESCRIÇÃO DOS DESENHOS
[003] Diversas modalidades de acordo com a presente invenção serão descritas com referência aos desenhos, nos quais:
[004] A FIG. 1 mostra um diagrama ilustrativo que representam vários aspectos da presente invenção de acordo com diversas modalidades;
[005] A FIG. 2 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente invenção podem ser implementados;
[006] A FIG. 3 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente divulgação podem ser implementados e um exemplo do fluxo de informação entre os vários componentes do meio ambiente, de acordo com, pelo menos, uma modalidade;
[007] A FIG. 4 mostra exemplos de passos de um processo ilustrativo para armazenar o texto cifrado, de acordo com, pelo menos, uma modalidade;
[008] A FIG. 5 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente divulgação podem ser implementados e um exemplo do fluxo de informação entre os vários componentes do meio ambiente, de acordo com, pelo menos, uma modalidade;
[009] A FIG. 6 mostra exemplos de passos de um processo ilustrativo para responder a um pedido para recuperar os dados, de acordo com, pelo menos, uma modalidade;
[010] A FIG. 7 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente divulgação podem ser implementados e um exemplo do fluxo de informação entre os vários componentes do meio ambiente, de acordo com, pelo menos, uma modalidade;
[011] A FIG. 8 mostra exemplos de passos de um processo ilustrativo para responder a um pedido de dados para armazenar, de acordo com, pelo menos, uma modalidade;
[012] A FIG. 9 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente divulgação podem ser implementados e um exemplo do fluxo de informação entre os vários componentes do meio ambiente, de acordo com, pelo menos, uma modalidade;
[013] A FIG. 10 mostra exemplos de passos de um processo ilustrativo para responder a um pedido para recuperar os dados, de acordo com, pelo menos, uma modalidade;
[014] A FIG. 11 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente invenção podem ser implementados;
[015] A FIG. 12 mostra um exemplo ilustrativo de um ambiente no qual os vários aspectos da presente divulgação podem ser implementados e um exemplo do fluxo de informação entre os vários componentes do ambiente, de acordo com, pelo menos, uma modalidade;
[016] A FIG. 13 mostra exemplos de passos de um processo ilustrativo para responder a um pedido para recuperar os dados, de acordo com, pelo menos, uma modalidade;
[017] A FIG. 14 mostra exemplos de passos de um processo ilustrativo para responder a um pedido para descriptografar dados, de acordo com, pelo menos, uma modalidade;
[018] A FIG. 15 mostra exemplos de passos de um processo ilustrativo para a obtenção de dados descriptografados, de acordo com, pelo menos, uma modalidade;
[019] A FIG. 16 mostra uma representação esquemática de um exemplo de serviço de criptografia, de acordo com, pelo menos, uma modalidade;
[020] A FIG. 17 mostra exemplos de passos de um processo ilustrativo para a configuração de políticas, de acordo com, pelo menos, uma modalidade;
[021] A FIG. 18 mostra exemplos de passos de um processo ilustrativo para a realização de operações criptográficas, enquanto aplicando as políticas, de acordo com, pelo menos, uma modalidade; e
[022] A FIG. 19 mostra um exemplo ilustrativo de um ambiente no qual várias modalidades podem ser implementadas.
DESCRIÇÃO DETALHADA
[023] Na descrição que se segue, as várias modalidades serão descritas. Para efeitos de explicação, configurações e detalhes específicos são apresentados de modo a proporcionar um entendimento exaustivo das modalidades. No entanto, também será evidente para um especialista na técnica que as modalidades podem ser praticadas sem os detalhes específicos. Além disso, as características bem conhecidas podem ser omitidas ou simplificadas, de modo a não obscurecer a modalidade a ser descrita.
[024] Técnicas aqui descritas e sugeridas permitem uma maior segurança de dados em ambientes que envolvem recursos de computação distribuídos. Num exemplo, um ambiente de computação distribuído inclui um ou mais serviços de dados que podem ser implementados pelos recursos de computação apropriados. Os serviços de dados podem permitir várias operações a serem executadas em ligação com os dados. Como um exemplo ilustrativo, o ambiente de computação distribuído inclui um ou mais serviços de armazenamento de dados. Solicitações eletrônicas podem ser transmitidas para o serviço de armazenamento de dados para executar as operações de armazenamento de dados. Exemplo de operações são operações para armazenar dados usando o serviço de armazenamento de dados e que usam o serviço de armazenamento de dados para recuperar os dados armazenados pelo serviço de armazenamento de dados. Os serviços de dados, incluindo serviços de armazenamento de dados, também podem executar operações que manipulam dados. Por exemplo, em algumas modalidades, um serviço de armazenamento de dados é capaz de codificar os dados.
[025] Várias modalidades da presente divulgação incluem ambientes de computação distribuídos que incluem serviços de criptografia que são implementados usando recursos computacionais adequados. Um serviço de criptografia pode ser implementado por um sistema distribuído que recebe e responde a solicitações eletrônicas para executar operações criptográficas, como criptografia de texto plano e descriptografia de texto cifrado. Em algumas modalidades, um serviço de criptografia gerencia chaves. Em resposta a um pedido para executar uma operação de criptografia, o serviço de criptografia pode executar operações criptográficas que usam as chaves gerenciadas. Por exemplo, o serviço de criptografia pode selecionar uma chave adequada para realizar a operação de criptografia, executar a operação de criptografia, e fornecer um ou mais resultados da operação de criptografia em resposta ao pedido recebido. Numa configuração alternativa, o serviço de criptografia pode produzir uma chave envelope (por exemplo, uma chave de sessão, que é utilizada para criptografar os itens de dados específicos) e voltar a chave envelope para o sistema ao invocar as operações criptográficas do serviço. O sistema pode então usar a chave envelope para executar a operação de criptografia.
[026] Em algumas modalidades, o serviço de criptografia gerencia chaves vários locatários de um provedor de serviços de computação de recursos. Um locatário do recurso de computação pode ser uma entidade (por exemplo, organização ou indivíduo) que opera como um cliente do provedor de recursos de computação. O cliente pode remotamente e programaticamente configurar e operar recursos que são fisicamente hospedados pelo provedor de recursos de computação. Quando um cliente envia um pedido para o serviço de criptografia para executar uma operação de criptografia (ou quando uma entidade envia um pedido para o serviço de criptografia), o serviço de criptografia pode selecionar uma chave gerida pelo serviço de criptografia para o cliente para executar a operação de criptografia. As chaves gerenciadas pelo serviço de criptografia podem ser gerenciadas com segurança para que outros usuários e/ou serviços de dados não tenham acesso às chaves de outros. A falta de acesso de uma entidade (por exemplo, o usuário, cliente, serviço) para a chave de outra entidade pode significar que a entidade não tem uma maneira autorizada de obter a chave da outra e/ou a entidade que não tem uma maneira autorizada de causar um sistema que gerencie a chave do outro de usar a chave na direção da entidade. Por exemplo, o serviço de criptografia pode gerenciar as chaves de modo que, para um cliente, outros clientes não têm acesso às chaves do cliente e são incapazes de fazer o serviço de criptografia usar as chaves do cliente para executar operações criptográficas. Como outro exemplo, o serviço de criptografia pode gerenciar chaves para de modo que outros serviços, tais como um serviço de armazenamento de dados, não são capazes de fazer o serviço de criptografia para utilizar algumas ou todas as chaves para executar operações criptográficas. O acesso não autorizado a uma chave pode ser impedido por medidas de segurança adequadas para que, por exemplo, o acesso não autorizado é difícil ou impossível. Dificuldade pode ser devida à impraticabilidade computacional e/ou devido a uma necessidade de um não autorizado (por exemplo, ilegal, ilícito e/ou outra forma não permitida, tal como um compromisso de credenciais de autorização) ocorrer para acesso a ser adquirido. Sistemas de acordo com as várias modalidades podem ser configurados para assegurar uma medida objetiva da impraticabilidade computacional para ganhar acesso a uma chave. Essas medidas podem ser, por exemplo, medidas em termos de uma quantidade de tempo, em média, que seria necessário um computador com uma unidade definida de capacidade computacional (por exemplo, certas operações por unidade de tempo) para quebrar informações criptografadas necessárias para o acesso autorizado à chave.
[027] Como se observa, um serviço de criptografia pode receber solicitações de diversas entidades, tais como clientes de um provedor de recursos de computação. Um serviço de criptografia também pode receber pedidos de entidades internas ao provedor de recursos de computação. Por exemplo, em algumas modalidades, os serviços de dados implementados pelo provedor de recursos de computação podem transmitir os pedidos para um serviço de criptografia para fazer o serviço de criptografia para executar operações criptográficas. Como um exemplo, um cliente pode transmitir um pedido de um serviço de armazenamento de dados para armazenar um objeto de dados. O pedido pode indicar que o objeto de dados deve ser criptografado quando armazenado. O serviço de armazenamento de dados pode comunicar um pedido a um serviço de criptografia para executar uma operação de criptografia. A operação de criptografia pode ser, por exemplo, criptografia de chave usada por um serviço de armazenamento de dados para criptografar o objeto de dados. A operação de criptografia pode ser criptografia do próprio objeto de dados. A operação de criptografia pode ser para gerar uma chave envelope que o serviço de armazenamento de dados pode ser usado para criptografar o objeto de dados.
[028] Sistemas de acordo com as várias modalidades implementam várias medidas de segurança para proporcionar maior segurança de dados. Por exemplo, em várias modalidades, a maneira pela qual um serviço pode utilizar criptografia de chaves que gerencia é limitada. Por exemplo, em algumas modalidades, um serviço de criptografia é configurado para utilizar apenas uma chave que corresponde a um cliente no momento de autorização apropriado. Se um pedido de utilização de chave de um cliente supostamente se origina do cliente (ou seja, a partir de um dispositivo de computação que opera em nome do cliente), o serviço de criptografia pode ser configurado para exigir que o requerimento seja por via eletrônica (digital) assinado usando credenciais apropriadas de propriedade do cliente. Se o pedido de usar a chave do cliente originado a partir de um outro serviço de dados, o serviço de criptografia pode ser configurado para requerer que o serviço de dados proporcione uma prova de que um pedido assinado para o serviço de dados foi feita pelo cliente. Em algumas modalidades, por exemplo, o serviço de dados está configurado para obter e fornecer um sinal que serve como prova de um pedido do cliente autenticado. Outras medidas de segurança podem também ser construídas numa configuração de um ambiente eletrônico que inclui um serviço de criptografia. Por exemplo, em algumas modalidades, um serviço de criptografia é configurado para limitar o uso de chave de acordo com o contexto. Como um exemplo ilustrativo, o serviço de criptografia pode ser configurado para usar uma chave para a encriptação para pedidos de um cliente ou de um serviço de dados que age em nome do cliente. No entanto, o serviço de criptografia pode ser configurado para utilizar apenas uma chave de descodificação para os pedidos do cliente (mas não de outro serviço de dados). Deste modo, se o serviço de dados está comprometido, o serviço de dados não seria capaz de fazer o serviço de criptografia para descriptografar os dados.
[029] Várias medidas de segurança podem ser construídas em um serviço de criptografia e/ou seu ambiente eletrônico. Algumas medidas de segurança podem ser gerenciadas de acordo com as políticas que, em algumas modalidades, são configuráveis. Como um exemplo, um serviço de criptografia pode utilizar uma interface de programação de aplicativos (API) que permite aos usuários configurar políticas em chaves. Uma política sobre uma chave pode ser informações que, quando processadas por um serviço de criptografia, é determinante sobre se a chave pode ser utilizada em certas circunstâncias. Uma política pode, por exemplo, limitar as identidades dos usuários e/ou sistemas capazes de direcionar o uso da chave, limitar tempos quando a chave pode ser utilizada, limitar dados na qual a chave pode ser usada para executar operações criptográficas, e proporcionar outras limitações. As políticas podem prever limitações explícitas (por exemplo, que não podem usar as chaves) e/ou podem fornecer autorizações explícitas (por exemplo, quem pode usar as chaves). Além disso, as políticas podem ser complexamente estruturadas para fornecer geralmente condições para quando as chaves podem e não podem ser usadas. Quando uma solicitação para executar uma operação de criptografia usando uma chave é recebida, quaisquer políticas na chave podem ser acessadas e processadas para determinar se o pedido pode, de acordo com a política, ser cumprido.
[030] A FIG. 1 é um diagrama ilustrativo 100 demonstrando várias modalidades da presente divulgação. Numa modalidade, um serviço de criptografia executa operações criptográficas que podem incluir a aplicação de um ou mais cálculos de acordo com um ou mais algoritmos criptográficos. Tal como ilustrado na FIG. 1, o serviço de criptografia permite que um usuário ou um serviço gere texto puro de texto cifrado. Em um exemplo de configuração do serviço criptográfico pode ser utilizado para codificar/descodificar as chaves e estas chaves podem ser usadas para codificar/descodificar dados, tais como dados armazenados em um serviço de armazenamento de dados. Por exemplo, o serviço de criptografia recebe um pedido para gerar texto puro de texto cifrado criptografado em uma chave. O serviço de criptografia determina que o solicitante é uma entidade autorizada; decifra a chave usando uma chave mestra e retorna a chave agora descriptografada ao serviço, o que pode gerar texto puro a partir do texto cifrado usando a chave descriptografada. Em outra configuração, o serviço de criptografia de texto cifrado recebe e processa o texto cifrado recebido em texto puro que é fornecido como um serviço pelo serviço de criptografia. Neste exemplo, o texto cifrado pode ser fornecido para o serviço de criptografia, como parte de um pedido eletrônico para o serviço de criptografia de uma entidade autorizada, o que pode ser um cliente de um provedor de recursos de computação, que opera o serviço de criptografia e/ou que pode ser outro serviço do provedor de recursos de computação. O serviço de criptografia ilustrado na FIG. 1 pode utilizar um ou mais algoritmos criptograficamente fortes para criptografar dados. Tais algoritmos criptograficamente fortes podem incluir, por exemplo, Advanced Encryption Standard (AES), Blowfish, Data Encryption Standard (DES), Triple DES, Serpent ou Twofish, e, dependendo da implementação específica selecionada, podem ser sistemas de chave simétricos como assimétricos. Geralmente, o serviço de criptografia pode utilizar qualquer algoritmo de criptografia e/ou descodificação (cifra) ou a combinação de algoritmos que utilizam dados gerenciados pelo serviço de criptografia.
[031] Como será discutido abaixo em maiores detalhes, o serviço de criptografia pode ser implementado numa variedade de maneiras. Numa modalidade, o serviço de criptografia é implementado por um sistema de computação configurado de acordo com a descrição abaixo. O sistema de computação pode ele próprio compreender um ou mais sistemas de computação. Por exemplo, um serviço de criptografia pode ser implementado como uma rede de sistemas de computação configurada em conjunto para executar operações criptográficas de acordo com as várias modalidades. Ou dito de outra forma, o sistema de computação poderia ser um sistema distribuído. Numa modalidade, o texto cifrado é a informação que foi criptografada usando um algoritmo criptográfico. No exemplo da FIG. 1, o texto cifrado é o texto puro em uma forma criptografada. O texto puro pode ser qualquer informação e enquanto o nome inclui nenhuma palavra de texto, texto puro e criptografado pode ser uma informação codificada em qualquer forma adequada e não necessariamente incluir informação textual, mas pode incluir informação textual. Por exemplo, como ilustrado na FIG. 1, texto puro e texto cifrado compreendem sequências de bits. Texto puro e criptografado podem também ser representados de outras maneiras e, em geral, qualquer modo pelo qual a criptografia e descriptografia pode ser realizada por um sistema de computação.
[032] A FIG. 2 mostra um exemplo ilustrativo de um ambiente 200 no qual um serviço de criptografia, tal como ilustrado na FIG. 1, pode ser implementado. No ambiente de 200, vários componentes funcionam em conjunto, a fim de prestar serviços relacionados de dados seguros. Neste exemplo em particular, o ambiente 200 inclui um serviço de criptografia, um serviço de autenticação, serviços de dados frontend e um sistema de armazenamento backend de serviço de dados. Numa modalidade, o serviço de criptografia é configurado no ambiente 200 para executar operações criptográficas, como por receber texto puro a partir de uma interface de serviços de dados e texto cifrado em retorno ou fornecer as chaves envelope para os serviços, de modo que os serviços podem usar as chaves do envelope para realizar as operações de encriptação. O serviço de criptografia pode executar funções adicionais, como descritas abaixo, tais como o armazenamento seguro de chaves para o desempenho das operações de criptografia, tais como a conversão de texto puro em texto cifrado e descodificação de texto cifrado em texto puro. O serviço de criptografia também pode executar operações envolvidas na aplicação da política, como através da aplicação de política associada com as chaves nela armazenados. Exemplos de políticas que podem ser aplicadas por um serviço de criptografia são fornecidos abaixo. O serviço de dados frontend em uma modalidade é um sistema configurado para receber e responder a pedidos transmitidos através de uma rede a partir de vários usuários. Os pedidos podem ser pedidos para realizar operações em conexão com os dados armazenados ou a ser armazenados no sistema de armazenamento backend de serviço de dados. No ambiente 200, o serviço de autenticação, serviço de criptografia, e sistema de sistema de armazenamento frontend de serviço de dados e backend de serviço de dados podem ser sistemas de um provedor de recursos de computação que utilizam os sistemas para fornecer serviços aos clientes representados pelos usuários ilustrados na FIG. 2. A rede ilustrada na FIG. 2 pode ser qualquer rede adequada ou combinação de redes, incluindo as discutidas abaixo.
[033] O serviço de autenticação numa modalidade é um sistema de computação configurado para executar as operações envolvidas na autenticação dos usuários. Por exemplo, a interface de serviço de dados pode fornecer informações dos usuários para o serviço de autenticação para receber informações no retorno que indicam se ou não as solicitações dos usuários são autênticas. Determinar se os pedidos de usuário são autênticos pode ser realizado de qualquer modo adequado e a maneira em que a autenticação é realizada pode variar entre as várias modalidades. Por exemplo, em algumas modalidades, os usuários assinam eletronicamente mensagens transmitidas para o serviço de dados frontend. As assinaturas eletrônicas podem ser geradas usando informação secreta (por exemplo, uma chave privada de um par de chaves associado a um usuário) que está disponível para uma entidade de autenticação (por exemplo, usuário) e o serviço de autenticação. O pedido e as assinaturas para o pedido podem ser fornecidos para o serviço de autenticação, que pode, usando a informação secreta, calcular uma assinatura de referência para comparação com a assinatura recebida para determinar se o pedido é autêntico. Se a solicitação for autêntica, o serviço de autenticação pode fornecer informações que o serviço de dados frontend pode usar para provar a outros serviços, como o serviço de criptografia, que o pedido é autêntico, permitindo assim que os outros serviços operem em conformidade. Por exemplo, o serviço de autenticação pode fornecer um token que outro serviço pode analisar para verificar a autenticidade do pedido. Assinaturas e/ou token eletrônicos podem ter validade que é limitada de várias maneiras. Por exemplo, assinaturas eletrônicas e/ou tokens podem ser válidos para determinadas quantidades de tempo. Em um exemplo, assinaturas eletrônicas e/ou tokens são gerados com base, pelo menos em parte, em uma função (por exemplo, uma mensagem baseada em Hash de código de autenticação), que toma como entrada uma marca de tempo, que está incluído com as assinaturas eletrônicas e/ou tokens para verificação. Uma entidade verificando uma assinatura eletrônica apresentada e/ou token pode verificar que uma marca de tempo recebida é suficientemente atual (por exemplo, dentro de um período de tempo predeterminado a partir de um tempo atual) e gera uma assinatura de referência/token utilizando para a data e hora recebidas. Se a marca de tempo usada para gerar a assinatura/token eletrônico apresentada não é suficientemente atual e/ou a assinatura submetida/marca de tempo e assinatura de referência/token não corresponderem, a autenticação poderá falhar. Desta forma, se uma assinatura eletrônica é comprometida, ela só seria válida por um curto período de tempo, limitando assim o dano potencial causado pelo compromisso. Deve notar-se que outras formas de verificação da autenticidade, também são consideradas como estando dentro do escopo da presente revelação.
[034] O sistema de armazenamento backend de serviço de dados numa modalidade é um sistema de computação que armazena dados de acordo com os pedidos recebidos através da interface de serviço de dados. Como discutido em mais detalhes abaixo, o sistema de armazenamento backend de serviço de dados pode armazenar dados de forma criptografada. Os dados no sistema de armazenamento backend de serviço de dados também pode ser armazenado na forma criptografada. Em algumas modalidades, uma API implementada pelo serviço de dados frontend permite que os pedidos especifiquem se os dados a serem armazenados no sistema de armazenamento backend de serviço de dados devem ser criptografados. Os dados que são criptografados e armazenados no sistema de armazenamento backend de serviço de dados podem ser criptografados de várias maneiras de acordo com as várias modalidades. Por exemplo, em várias modalidades, os dados são criptografados usando chaves acessíveis para o serviço de criptografia, mas inacessíveis a alguns ou a todos os outros sistemas do ambiente 200. Os dados podem ser criptografados pelo serviço de criptografia para armazenamento no sistema de armazenamento backend de serviço de dados e/ou, em algumas modalidades, os dados podem ser criptografados por outro sistema, tais como um sistema de usuário ou de um sistema de frontend do serviço de dados, utilizando uma chave que foi decifrada pelo serviço de criptografia. Exemplos de várias maneiras pelas quais o ambiente 200 pode operar para criptografar os dados são apresentados a seguir.
[035] Numerosas variações do ambiente 200 (e outros ambientes aqui descritos) são consideradas como estando dentro do escopo da presente revelação. Por exemplo, o ambiente 200 pode incluir serviços adicionais que pode comunicar com o serviço de criptografia e/ou serviço de autenticação. Por exemplo, o ambiente 200 pode incluir serviços de armazenamento de dados adicionais (que podem compreender cada um sistema de interface e um sistema de backend), que podem armazenar dados de diferentes maneiras. Por exemplo, um serviço de armazenamento de dados pode fornecer acesso aos dados, onde ativa o serviço de armazenamento de dados executa serviços de armazenamento de dados de uma maneira síncrona (por exemplo, um pedido para recuperar dados pode receber uma resposta síncrona com os dados recuperados). Outro serviço de armazenamento de dados pode fornecer serviços de armazenamento de dados de arquivamento. Esse serviço de armazenamento de dados de arquivo pode utilizar processamento assíncrono de pedido. Por exemplo, um pedido para recuperar os dados pode não receber uma resposta síncrona que inclui os dados recuperados. Em vez disso, o serviço de armazenamento de dados de arquivo pode exigir um segundo pedido a apresentar para obter os dados recuperados uma vez que o serviço de armazenamento de dados de arquivo está pronto para fornecer os dados recuperados. Como outro exemplo, o ambiente 200 pode incluir um serviço de medição que recebe informações do serviço de criptografia (e/ou outros serviços) e usa essa informação para produzir registros contábeis. Os registros contábeis podem ser usados para cobrar os clientes para o uso do serviço de criptografia (e/ou outros serviços). Além disso, informações do serviço de criptografia podem fornecer uma indicação de como os encargos devem ser incorridos. Por exemplo, em alguns casos, os clientes podem receber contas para a utilização do serviço de criptografia. Em outros casos, os encargos de uso do serviço de criptografia podem ser incluídos em tarifas de uso de outros serviços, tais como um serviço de dados que utiliza o serviço de criptografia como parte de suas operações. Uso pode ser medido e faturado em várias maneiras, tais como por operação, por período de tempo, e/ou de outras formas. Outros serviços de dados também podem ser incluídos no ambiente 200 (ou outros ambientes aqui descritos).
[036] Além disso, a FIG. 2 mostra os usuários que interagem com o frontend de serviço de dados. Deve entender-se que os usuários podem interagir com frontend de serviço de dados por meio de dispositivos de usuário (por exemplo, computadores), que não são ilustrados na figura. Além disso, os usuários representados na FIG. 2 (e em outro lugar nas figuras) também podem representar entidades não humanas. Por exemplo, os processos automatizados executando em sistemas de computação podem interagir com frontend de serviço de dados, tal como aqui descrito. Como um exemplo ilustrativo, uma entidade representada por um usuário na FIG. 2, pode ser um servidor que, como parte de suas operações, usa frontend de serviço de dados para armazenar e/ou recuperar dados de/para o sistema de armazenamento backend de serviço de dados. Ainda como outro exemplo, uma entidade representada por um usuário na FIG. 2, pode ser uma entidade fornecida como um serviço de um provedor de recursos de computação, que opera um ou mais dos serviços na FIG. 2. Por exemplo, um usuário na FIG. 2 pode representar um sistema de computação virtual ou outro de um serviço de execução do programa oferecido pelo provedor de recursos de computação. Outras variações, incluindo as variações de outros ambientes descritos abaixo, são também considerados como estando dentro do escopo da presente revelação.
[037] Por exemplo, a FIG. 3 mostra um exemplo ilustrativo de um ambiente 300 no qual várias modalidades da presente invenção podem ser implementadas. Como com a FIG. 2, o ambiente na FIG. 3 inclui um serviço de autenticação, um sistema de frontend de serviço de dados (front-end de serviço de dados), um serviço de criptografia e um sistema de armazenamento backend de serviço de dados. O sistema de autenticação, frontend de serviço de dados, serviço de criptografia e serviço de armazenamento backend de serviço de dados podem ser configurados tal como descrito acima em relação com a FIG. 2. Por exemplo, os usuários podem acessar o frontend do serviço de dados através de uma rede de comunicações adequada, embora tal rede não seja ilustrada na figura. No exemplo de ambiente 300 ilustrado na FIG. 3, as setas que representam um fluxo de informação são fornecidas. Neste exemplo, um usuário transmite um pedido PUT para o frontend de serviço de dados. O pedido PUT pode ser uma solicitação para armazenar dados especificados no sistema de armazenamento backend de serviço de dados. Em resposta ao pedido PUT, o frontend de serviço de dados pode determinar se a solicitação PUT é autêntica, isto é, se o usuário apresentou o pedido na maneira que a operação solicitada pode ser executada em conformidade com a política de autenticação implementada pelo sistema.
[038] Na FIG. 3, um exemplo ilustrativo de como tais decisões de autenticação podem ser feitas está ilustrado. Neste exemplo em particular, o frontend de serviço de dados envia uma solicitação de autenticação para o serviço de autenticação. O serviço de autenticação pode utilizar o pedido de autenticação para determinar se o pedido PUT do usuário é autêntico. Se o pedido for autêntico, o serviço de autenticação pode fornecer prova de autenticação para o frontend de serviço de dados. A prova de autenticação pode ser um token eletrônico ou outras informações que são utilizáveis por outro serviço, como o serviço de criptografia, para determinar de forma independente que um pedido autêntico foi recebido. Em um exemplo ilustrativo, o pedido PUT é transmitido com uma assinatura para o pedido PUT. O pedido PUT e sua assinatura são fornecidos através do serviço de autenticação, que calcula de forma independente o que uma assinatura deve ser se autêntica. Se a assinatura gerada pelo serviço de autenticação corresponde à assinatura fornecida pelo usuário, o serviço de autenticação pode determinar que o pedido PUT foi autêntico e pode servir de prova de autenticação em resposta. Determinar se o pedido PUT é autêntico pode também incluir uma ou mais operações relacionadas com a aplicação da política. Por exemplo, se a assinatura é válida, mas a política de outra forma indica que o pedido PUT não deve ser concluído (por exemplo, o pedido foi apresentado durante um período não permitido pela política), o serviço de autenticação pode fornecer informações indicando que o pedido não é autêntico. (Deve-se notar, no entanto, que tal aplicação da política pode ser realizada por outros componentes do ambiente 300.) O serviço de autenticação pode gerar a assinatura, como usando uma chave compartilhada com o serviço de autenticação e o usuário. A prova de autenticação, como observado, pode ser uma informação de que um outro serviço, como o serviço de criptografia, pode verificar de forma independente que um pedido é autêntico. Por exemplo, usando o exemplo do serviço de criptografia ilustrado na FIG. 3, a prova de autenticação pode ser gerada com base, pelo menos em parte, em uma chave compartilhada por ambos o serviço de autenticação e o serviço de criptografia, como uma chave que é inacessível para outros serviços.
[039] Tal como ilustrado na FIG. 3, frontend de serviço de dados, mediante o recebimento de prova de autenticação do serviço de autenticação, fornece texto puro e autenticação de prova para o serviço de criptografia. O texto puro e prova de autenticação podem ser fornecidos de acordo com uma chamada de API ou outro pedido eletrônico para o serviço de criptografia (por exemplo, uma chamada de Criptografar API). O serviço de criptografia pode analisar a prova de autenticação para determinar se criptografar o texto puro.
[040] Deve notar-se que a informação adicional pode ser fornecida para o serviço de criptografia. Por exemplo, um identificador de uma chave para ser utilizada para codificar o texto puro pode ser fornecido como um parâmetro de entrada para a chamada API a partir do frontend de serviço de dados (o qual, por sua vez, pode ter recebido o identificador do usuário). No entanto, deve notar-se que um identificador não pode ser transmitido para o serviço de criptografia. Por exemplo, em várias modalidades, pode ser de outra forma determinável qual chave usar para criptografar o texto puro. Por exemplo, a informação transmitida a partir do frontend de serviço de dados para o serviço de criptografia pode incluir a informação associada com o usuário, tal como um identificador de usuário e/ou uma organização associada com o usuário, tal como um identificador de um cliente em nome dos quais o usuário apresentou o pedido PUT. Tal informação pode ser usada pelo serviço de criptografia para determinar uma chave padrão a ser utilizada. Em outras palavras, a chave pode ser implicitamente especificada pela informação que é útil para determinar a chave. Em geral, a determinação da chave a ser utilizada pode ser realizada de qualquer maneira adequada. Além disso, em algumas modalidades, o serviço de criptografia pode gerar ou selecionar uma chave e fornecer um identificador da chave gerada ou selecionada para ser usado mais tarde. Outro parâmetro API exemplar pode ser um identificador para uma chave mestra para a conta do cliente em que operação de criptografia está sendo realizada para.
[041] Tal como ilustrado na FIG. 3, se a prova de autenticação é suficiente para o serviço de criptografia para o texto puro ser criptografado, o serviço de criptografia pode executar uma ou mais operações criptográficas. Numa modalidade, as uma ou mais operações criptográficas podem incluir uma operação para gerar uma chave envelope para ser utilizada para criptografar o texto puro. A chave envelope pode ser uma chave simétrica gerada aleatoriamente ou uma chave privada de um par de chaves. Depois que a chave envelope é gerada, o serviço de criptografia pode criptografar a chave envelope com a chave mestra especificada na chamada API e fazer com que o envelope chave criptografada seja persistentemente armazenado (por exemplo, armazenando a chave criptografada em um serviço de armazenamento ou algum outro armazenamento durável) ou descartado. Além disso, o serviço criptográfico pode enviar uma versão de texto puro da chave envelope bem como e a chave envelope cifrada para o frontend de serviço de dados. O serviço de dados pode, em seguida, utilizar a versão da chave de texto puro envelope para criptografar o texto puro (ou seja, os dados associados com o pedido de criptografia) e fazer com que a chave envelope seja armazenada no armazenamento persistente em associação com um identificador para a chave mestra usada para criptografar a chave envelope. Além disso, o serviço de dados pode descartar a versão de texto puro da chave envelope. Como tal, numa modalidade após o serviço de dados descartar a versão de texto puro da chave envelope, deixará de ser capaz de decodificar o texto cifrado.
[042] Numa modalidade alternativa, a operação de criptografia pode envolver criptografar o texto puro. Por exemplo, o serviço de criptografia criptografa o texto puro e fornece texto cifrado para o sistema de armazenamento frontend de serviço de dados. O frontend de serviço de dados pode, então, fornecer o texto cifrado para o sistema de armazenamento backend de serviço de dados para armazenamento persistente, de acordo com o seu funcionamento. Outra informação pode também ser transmitida a partir do frontend de serviço de dados para o sistema de armazenamento backend de serviço de dados. Por exemplo, um identificador da chave usada para criptografar o texto puro para gerar texto cifrado pode ser fornecido com o texto cifrado para armazenamento pelo sistema de armazenamento backend de serviço de dados. Outra informação, tal como metadados que identificam o usuário e/ou organização do usuário, pode também ser fornecida.
[043] Tal como acontece com todos os ambientes aqui descritos, numerosas variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, o fluxo de informação entre os vários componentes do ambiente 300 pode ser diferente do que é mostrado. Por exemplo, o fluxo de informações a partir de um componente a outro componente através de um componente intermediário (por exemplo, os dados do serviço de autenticação para o serviço de criptografia e/ou os dados do serviço de criptografia para a o sistema de armazenamento backend de serviço de dados) pode ser fornecido diretamente para o seu destino e/ou através de outros componentes do ambiente intermediário 300 (que não são necessariamente incluídos na figura). Como outro exemplo, pedidos PUT (e, abaixo, os pedidos GET) são fornecidos para efeitos de ilustração. No entanto, pode ser utilizado qualquer pedido adequado para realizar as operações descritas.
[044] A FIG. 4 mostra um exemplo ilustrativo de um processo 400, que pode ser usado para armazenar dados de um serviço de armazenamento de dados de acordo com uma modalidade. O processo 400 pode ser realizado, por exemplo, pelo frontend de serviço de dados ilustrado na FIG. 3. Alguns ou a totalidade do processo 400 (ou quaisquer outros processos aqui descritos, ou variantes e/ou combinações dos mesmos) pode ser realizado sob o controle de um ou mais sistemas de computação configurados com instruções executáveis e pode ser implementado como código (por exemplo, instruções executáveis, um ou mais programas de computador ou uma ou mais aplicações) executando coletivamente em um ou mais processadores, por hardware ou suas combinações. O código pode ser armazenado num suporte de armazenamento legível por computador, por exemplo, sob a forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento de leitura por computador pode ser não transitório.
[045] Tal como ilustrado na FIG. 4, o processo 400 inclui receber 402 um pedido PUT. O pedido PUT pode ser recebido por via eletrônica através de uma rede e pode incluir informações associadas com o pedido, tal como a informação necessária para autenticação, tais como uma assinatura eletrônica do pedido PUT. Em resposta a ter recebido o pedido PUT, o processo 400 pode incluir a apresentação 404 de um pedido de autenticação. Por exemplo, o sistema realizado no processo 400 pode apresentar (por exemplo, através de uma chamada API apropriadamente configurada) um pedido de autenticação para um serviço de autenticação separado, tal como descrito acima em relação com a FIG. 3. Do mesmo modo, um frontend de serviço de dados que executa a sua própria autenticação pode apresentar o pedido de autenticação para um módulo de autenticação implementado pelo frontend de serviço de dados. Geralmente, o pedido de autenticação pode ser apresentado em qualquer forma adequada, de acordo com as várias modalidades.
[046] Após a apresentação do pedido de autenticação, uma resposta de autenticação é recebida 406 pela entidade para a qual o pedido de autenticação foi submetido 404. Por exemplo, se referindo a FIG. 3, o serviço de autenticação pode fornecer uma resposta para frontend de serviço de dados que inclui a prova de autenticação para utilização por outros serviços. Outras informações, tais como uma indicação da existência ou não de autenticação foi bem sucedida, podem também ser transmitidas. Uma determinação pode ser feita 408 se o pedido é autêntico. Autenticidade do pedido pode depender de um ou mais fatores verificados por uma entidade, como por um serviço de autenticação, ou uma combinação de entidades que realizam coletivamente tais verificações. Autenticidade pode, por exemplo, exigir que o requerimento forneça credenciais necessárias válidas (por exemplo, uma assinatura eletrônica gerada por uma chave secreta compartilhada pela entidade de verificação) e/ou que a política permite que o pedido seja cumprido. A partir da perspectiva de um sistema que submete 404 um pedido de autenticação e recebe uma resposta de autenticação, a autenticidade pode depender da resposta de autenticação recebida. Por conseguinte, numa modalidade, a determinação 408 se o pedido é autêntico pode ser realizada com base, pelo menos em parte, da resposta de autenticação recebida. Por exemplo, se a autenticação não era autêntica, a resposta de autenticação assim indica e a determinação 408 pode ser feita em conformidade. Do mesmo modo, a resposta pode implicitamente indicar que o pedido de autenticação é autêntico, por exemplo, por não incluir informações que seriam incluídas se o pedido foi autêntico. Se for determinado que o pedido 408 PUT não é autêntico, então o pedido PUT pode ser negado 410. Negar o pedido PUT pode ser realizado de qualquer maneira adequada e pode depender das várias modalidades em que o processo está sendo realizado 400. Por exemplo, negar 410, o pedido PUT pode incluir a transmissão de uma mensagem a um usuário que enviou o pedido PUT. A mensagem pode indicar que o pedido foi negado. Negar o pedido pode também incluir o fornecimento de informações sobre por que o pedido foi negado, como uma assinatura eletrônica não sendo correta ou outras razões que podem ser usadas para determinar como resolver quaisquer problemas que resultaram no pedido PUT não ser autêntico ou autorizado.
[047] Se for determinado 408 que o pedido PUT é autêntico e autorizado, em seguida, numa modalidade, o processo 400 inclui a realização 412 de uma ou mais das operações criptográficas que resultam no texto puro a ser criptografado. Por exemplo, um pedido (por exemplo, uma chamada API apropriadamente configurada) pode ser submetido a um serviço de criptografia para proporcionar uma chave para ser utilizada para executar uma ou mais operações criptográficas. O pedido fornecido para o serviço de criptografia pode ser fornecido com a prova do pedido PUT sendo autêntico, de modo que o serviço de criptografia pode determinar de forma independente se realizar a operação de criptografia (por exemplo, para codificar o texto puro e proporcionar texto cifrado ou gerar uma chave envelope que pode ser usada para criptografar o texto puro). No entanto, em várias modalidades, a prova de autenticação pode não ser fornecida para o serviço de criptografia e, por exemplo, o serviço de criptografia pode operar de acordo com o pedido que este recebe. Por exemplo, se o serviço de criptografia recebe um pedido do frontend do serviço de dados, o serviço de criptografia pode contar com o fato de que o frontend de serviço de dados já independentemente verificou a autenticação do pedido. Em tal modalidade e em outras modalidades, o frontend de serviço de dados pode autenticar-se com o serviço de criptografia para proporcionar uma camada adicional de segurança. O serviço de criptografia pode gerar ou de outra forma obter uma chave, criptografar a chave obtida ou de outro modo obter a chave criptografada (por exemplo, a partir da memória), e fornecer a chave obtida e a chave criptografada obtida em resposta ao pedido. A chave obtida pode ser criptografada usando uma chave identificada no pedido para o serviço de criptografia. A chave obtida pode ser usada para criptografar o texto puro e, depois criptografar o texto puro, a chave obtida pode ser descartada (por exemplo, irrevogavelmente removida a partir da memória). Na modalidade alternativa, um sistema que executa o processo 400 pode de outro modo gerar ou obter a chave utilizada para executar uma ou mais operações criptográficas, fornece a chave obtida para o serviço de criptografia a ser criptografada.
[048] Em algumas modalidades, realizar uma ou mais das operações criptográficas pode resultar em texto cifrado a ser gerado. O texto cifrado gerado como um resultado de uma ou mais operações criptográficas pode ser armazenado 414 para eventual recuperação mais tarde. Como observado acima, o armazenamento do texto cifrado pode incluir armazenamento de informação adicional que possa permitir a descodificação do texto cifrado em tempo posterior. Por exemplo, o texto cifrado pode ser armazenado com um identificador de uma chave usada para criptografar o texto puro para texto cifrado, de modo que a chave tendo o identificador pode ser depois utilizada para descriptografar a texto cifrado para obter o texto puro. O armazenamento do texto cifrado também pode ser realizado de qualquer maneira adequada. Por exemplo, o armazenamento do texto cifrado pode ser realizado por um sistema de armazenamento backend de serviço de dados, tal como descrito acima.
[049] A FIG. 5, de modo correspondente, mostra um exemplo ilustrativo de um ambiente 500 e o fluxo de informação que ilustra como texto puro pode ser obtido. O ambiente 500 inclui, neste exemplo, um serviço de autenticação, um serviço de criptografia, um frontend de serviços de dados e um sistema de armazenamento backend de serviço de dados. O serviço de autenticação, serviço de criptografia, frontend de serviço de dados e um sistema de armazenamento backend de serviço de dados pode ser um sistema como descrito acima. Tal como ilustrado na FIG. 5, frontend de serviço de dados está configurado para receber um pedido GET de um usuário e fornecer texto puro em resposta. A fim de fazer isso, o frontend do serviço de dados também pode ser configurado para enviar pedidos de autenticação para um serviço de autenticação que em si pode ser configurado para, se necessário, fornecer a prova de autenticação de frontend de serviço de dados de. O frontend de serviço de dados pode também ser configurado para enviar um pedido para o serviço de criptografia para fazer com que ele execute uma ou mais operações criptográficas relacionadas com descriptografar os dados. Numa modalidade, onde são utilizadas as chaves do envelope, o serviço de dados pode apresentar um pedido (por exemplo, uma chamada de API) para o serviço de criptografia que inclui ou especifica a chave envelope criptografada (ou um identificador para a chave envelope criptografada) de prova de autenticação, e uma identificador da chave mestra utilizada para criptografar a chave envelope para o serviço de criptografia. O serviço de criptografia pode determinar se a prova de autenticação é suficiente para permitir a operação e, se a prova de autenticação é suficiente, descriptografar a chave envelope. A chave envelope descriptografada pode ser enviada de volta para o serviço de dados, que pode usar a chave para descriptografar o texto puro criptografado. O serviço de dados pode, em seguida, descartar a chave de texto puro descriptografado.
[050] Numa modalidade alternativa, o frontend de serviço de dados pode ser configurado para fornecer a prova de autenticação recebida para o serviço de criptografia com texto cifrado para o serviço de criptografia para descriptografar. O serviço de criptografia pode, por conseguinte, ser configurado para determinar se a prova de autenticação é suficiente para permitir a descodificação do texto cifrado e, se a prova de autenticação é suficiente, descriptografar o texto cifrado, utilizando uma chave apropriada (o que pode ser identificado para o serviço de criptografia pelo frontend de serviço de dados), e fornecer o texto cifrado descriptografado (texto puro) para frontend de serviço de dados. Para fornecer o texto cifrado para o serviço de criptografia, o frontend de serviço de dados pode ser configurado para se obter (por exemplo, através de uma chamada API apropriadamente configurada) o texto cifrado a partir da infraestrutura do sistema de armazenamento de dados de serviço.
[051] A FIG. 6 mostra um exemplo ilustrativo de um processo 600, que pode ser usado para obter texto puro, de acordo com várias modalidades. O processo 600 pode ser realizado, por exemplo, pelo sistema de frontend de serviço de dados (frontend de serviço de dados) ilustrado acima em relação a FIG. 5, embora o processo 600 e as suas variações podem ser realizados por qualquer sistema adequado. Numa modalidade, o processo 600 inclui a recepção 602 de um pedido GET (ou outro pedido apropriado) de um usuário. Receber o pedido GET pode ser realizado tal como descrito acima em ligação com outros tipos de pedidos. Após a recepção 602 do pedido GET, um pedido de autenticação 604 pode ser apresentado a um serviço de autenticação ou de qualquer maneira, tal como descrito acima. Uma resposta de autenticação pode, por conseguinte, ser recebida. Com base, pelo menos em parte, na resposta receber a autenticação, a determinação pode ser feita 608 se o pedido GET é autêntico. Se for determinado 608 que o pedido GET não é autêntico, o processo 600 pode incluir negar o pedido 610 que, tal como descrito acima, pode ser realizado de várias maneiras de acordo com as várias modalidades.
[052] Se for determinado que o 608 é autêntico pedido GET, o processo 600 pode incluir a recuperação de texto cifrado a partir do armazenamento. Recuperar 612 o texto cifrado do armazenamento pode ser realizado de qualquer maneira adequada. Por exemplo, referindo-se ao ambiente 500 discutido acima em relação com a FIG. 5, frontend de serviço de dados pode apresentar um pedido para o texto cifrado para o sistema de armazenamento de backend de serviços de dados e poderá receber o texto cifrado em resposta. Geralmente, o texto cifrado pode ser obtido a partir do armazenamento de qualquer maneira adequada. Após o recebimento do texto cifrado, o processo 600 pode incluir a realização 614 de uma ou mais operações relacionadas com descriptografar o texto cifrado. Por exemplo, numa modalidade, o serviço de armazenamento de dados pode enviar um pedido para o serviço de criptografia para executar uma ou mais operações criptográficas, relativamente ao descriptografar o texto cifrado 614. Numa configuração de exemplo, o serviço de dados pode enviar o serviço criptográfico que uma chamada API inclui a chave envelope criptografada (ou um identificador para a chave criptografada envelope) de prova de autenticação, e um identificador da chave mestra utilizada para criptografar a chave envelope para o serviço de criptografia. O serviço de criptografia pode determinar se a prova de autenticação é suficiente para permitir a operação e, se a prova de autenticação é suficiente, descriptografar a chave envelope. A chave descriptografada envelope pode ser enviada de volta para o serviço de dados, que pode usar a chave para descriptografar o texto puro criptografado.
[053] Numa outra configuração, o texto cifrado pode ser fornecido a um serviço de criptografia, tais como o serviço de criptografia descrito acima em relação com a FIG. 5. Outra informação pode também ser fornecida para o serviço de criptografia, como prova de autenticação que pode ser utilizada pelo serviço de criptografia para determinar se é ou não para descriptografar o texto cifrado. Além disso, em algumas modalidades, um identificador de uma chave para ser utilizado pelo serviço de criptografia para descriptografar o texto cifrado pode ser fornecido para o serviço de criptografia. No entanto, em outras modalidades, a chave pode ser implicitamente indicada para o serviço de criptografia. Por exemplo, o serviço de criptografia pode usar uma chave padrão associada a um cliente que é indicado para o serviço de criptografia. Em geral, qualquer modo pelo qual o serviço de criptografia pode determinar qual chave a ser usado para descriptografar o texto cifrado pode ser usado.
[054] Tal como ilustrado na FIG. 6, depois de o texto cifrado ser descodificado, o processo 600 pode incluir o fornecimento de uma resposta 616 ao pedido GET. Fornecer uma resposta ao pedido GET pode ser realizada de várias maneiras, em conformidade com as várias modalidades. Por exemplo, fornecer a resposta ao pedido GET pode incluir fornecer o texto puro. Em outras modalidades, o texto puro pode ser uma chave que é utilizada para descriptografar outra informação criptografada que é depois fornecida, em resposta ao pedido GET. Geralmente, dependendo do papel do texto original numa modalidade particular da divulgação, fornecer uma resposta ao pedido GET pode ser realizada de várias maneiras.
[055] Como referido, várias modalidades da presente invenção permitem que os dados sejam armazenados por um serviço de armazenamento de dados de várias maneiras. FIG. 7 mostra um exemplo ilustrativo de um ambiente 700, com setas indicando o fluxo de informações de acordo com tal modalidade. Tal como ilustrado na FIG. 7, o ambiente 700 inclui um serviço de autenticação, um serviço de criptografia, um frontend de serviços de dados e um sistema de armazenamento backend de serviço de dados, tal como descrito acima. Neste exemplo particular, frontend de serviço de dados é um sistema de computação configurado para receber pedidos PUT de vários usuários. Pedidos PUT podem incluir ou especificar objetos de dados a serem armazenados por um sistema de armazenamento backend de serviço de dados. Pedidos PUT também pode especificar um identificador de chave para uma chave a ser usada para criptografar o objeto de dados. O frontend de serviço de dados pode também ser configurado para interagir com um serviço de autenticação, tal como descrito acima, a fim de fornecer a prova de autenticação para um serviço de criptografia que é operável para receber as chaves e identificadores de chave e fornecer em resposta chaves cifradas pelas chaves identificadas pelos identificadores de chave. Frontend de serviço de dados podem, então, gerar o armazenamento de um sistema de armazenamento backend de serviço de dados. Os dados que podem ser armazenados podem incluir um objeto de dados criptografado pela chave. Os dados que podem ser armazenados pode também incluir a chave criptografada pela chave identificada pelo identificador de chave. Como discutido em outro lugar, aqui, o objeto de dados criptografado e chave criptografada podem ser armazenados em diferentes serviços.
[056] Tal como ilustrado na FIG. 7, frontend de serviço de dados é configurado para fornecer informação criptografada para o sistema de armazenamento backend serviço de dados para o armazenamento. Neste exemplo, frontend de serviço de dados é configurado para proporcionar um objeto de dados criptografado sob uma chave e a chave criptografada sob uma outra chave que tem um KeyID. Deve notar-se que, com a finalidade de ilustração, a notação de chaves é utilizada para designar a encriptação. Em particular, a informação dentro das chaves é a informação que é criptografada com uma chave especificada no subscrito. Por exemplo, {Data Object}Key indica que os dados “Data Object” é criptografada sob a chave “Key”. Deve notar-se que um identificador de chave também pode aparecer em subscrito usando esta notação de chaves. Quando um identificador de chave aparece no subscrito, as informações dentro das chaves são criptografadas sob uma chave identificada pelo identificador de chave. Por exemplo, {Data Object}KeyID indica que o objeto de dados “Data Object” é criptografado em uma chave identificada pelo identificador de chave “KeyID.” Da mesma forma, {Key}KeyID indica que a chave “Key” é criptografada sob a chave identificado pelo identificador de chave “KeyID.” Em outras palavras, esta divulgação faz uso de ambas as chaves e identificadores de chave em subscrito e o significado do subscrito deve ficar claro a partir do contexto. O texto cifrado pode incluir metadados adicionais utilizáveis para determinar a identidade da chave de decifração associado.
[057] A FIG. 8 mostra um exemplo ilustrativo de um processo 800, que pode ser realizado para armazenar um objeto de dados em um sistema de armazenamento de dados, tais como o sistema de armazenamento backend de serviço de dados descrito acima em relação com a FIG. 7. O processo 800 pode ser realizado por qualquer sistema apropriado, tal como pelo sistema de frontend de serviço de dados descrito acima em relação com a FIG. 7. Numa modalidade, o processo 800 inclui a recepção de um pedido PUT 802 para um objeto de dados. Receber o pedido PUT para o objeto de dados pode ser realizado de qualquer maneira adequada, tal como descrito acima. Deve notar-se que o objeto de dados pode ser recebido na ligação com o pedido, ou pode ser recebido a partir de outro serviço. Por exemplo, o pedido pode incluir um identificador para um objeto de dados que pode ser obtido a partir de outro serviço utilizando o identificador. Tal como acontece com os outros processos descritos acima, o processo 800 numa modalidade inclui a apresentação de um pedido de autenticação 804 e receber 806 uma resposta de autenticação. A resposta de autenticação que foi recebida 806 pode ser usada para determinar 808 se o pedido PUT é um pedido autêntico. Se for determinado 808 que o pedido PUT não é autêntico, o processo 800 pode incluir negar o pedido 810, tal como descrito acima. Se for determinado 808 que o pedido PUT é autêntico, o processo 800 pode incluir a obtenção 812 de um identificador de chave (KeyID), tal como uma KeyID para uma chave mestra utilizada para criptografar chaves envelope. A obtenção 812 de KeyID pode ser realizada de qualquer modo adequado e a maneira pela qual o KeyID é obtido pode variar de acordo com as várias modalidades. Por exemplo, como ilustrado na FIG. 7, o pedido PUT pode especificar o KeyID. Como outro exemplo, a identidade do usuário, ou de outra forma associada com o usuário, pode ser usada para obter um identificador ou uma chave padrão. Como outro exemplo, o texto cifrado pode fornecer uma indicação de uma ID de chave associada. Como ainda outro exemplo, um ou mais determinações de política podem ser usadas para determinar qual chave identificador obter.
[058] Numa modalidade, o processo 800 também inclui a geração 814de uma chave, tal como uma chave envelope. Gerar a chave pode ser realizada de qualquer maneira adequada, por exemplo, o serviço de criptografia ou o serviço solicitando operações de criptografia do serviço de criptografia (por exemplo, um serviço de armazenamento de dados). Por exemplo, a chave pode ser gerada usando uma função de derivação de chave usando uma entrada apropriada para utilizar a função de derivação de chave. Funções de derivação de chave exemplares incluem KDF1, definido na IEEE Std 1363 2000, as funções de derivação de chaves definidas em ANSI X9.42, e funções de derivação de chaves baseadas em HMAC, como função de derivação de chave “HMAC-Based Extract-and-Expand” (HKDF) especificada em RFC 5869. Como outro exemplo, a chave pode ser gerada por um gerador de números aleatório ou pseudo aleatório, uma fonte de entropia hardware ou um gerador de bits aleatórios determinísticos, tal como é especificado pelo National Institute of Standards and Technology Special Publication (NIST SP) 800- 90A. Deve-se notar que enquanto a FIG. 8 mostra o processo 800 incluindo geração 814 de uma chave, a chave pode ser obtida de outras formas, tais como por recuperação a partir do armazenamento. Em outras palavras, a chave pode ter sido pré-gerada.
[059] Continuando com o processo 800 ilustrado na FIG. 8, numa modalidade, o processo 800 inclui o uso 816 da chave gerada para criptografar um objeto de dados. Por exemplo, numa modalidade em que o serviço gera a chave criptográfica, os serviços criptográficos podem fornecer a chave, o KeyID, e uma cópia da chave criptografada para o serviço de dados. Por exemplo, referindo à FIG. 7, o frontend de serviço de dados pode receber a chave envelope e o KeyID para a chave mestra usada para criptografar a chave envelope do serviço de criptografia com qualquer outra informação relevante, como prova de autenticação. O texto puro cópia da chave de codificação pode então ser usado para criptografar o objeto de dados. A cópia de texto puro da chave de encriptação pode ser descartada e o objeto de dados criptografado, bem como a chave criptografada podem então ser armazenados 818. Por exemplo, com referência à FIG. 7, frontend de serviço de dados pode transmitir para o objeto de dados criptografado e a chave criptografada para o sistema de armazenamento backend de serviço de dados para armazenamento. Numa configuração em que o serviço gera a chave, o serviço pode fornecer a chave e o KeyID para o serviço de criptografia. Por exemplo, frontend de serviço de dados pode enviar a chave envelope e o KeyID para a chave mestra usada para criptografar a chave envelope para o serviço de criptografia com qualquer outra informação relevante, como prova de autenticação. A cópia de texto puro da chave de codificação pode então ser usada para criptografar o objeto de dados. O serviço pode descartar a cópia de texto puro da chave de encriptação e o objeto de dados criptografado, bem como a chave criptografada pode então ser armazenada. Por exemplo, referindo a FIG. 7, frontend de serviço de dados pode transmitir para o objeto de dados criptografado e a chave criptografada para o sistema de armazenamento backend de serviço de dados para armazenamento.
[060] O objeto de dados criptografado e a chave criptografada envelope podem ser armazenados sem a versão de texto puro da chave, ou seja, a chave de texto puro pode ser inacessível ao sistema de armazenamento backend de serviço de dados e um ou mais outros sistemas. A chave em que o objeto de dados é criptografado (por exemplo, a chave mestra) pode ser tornada inacessível de qualquer maneira adequada. Em algumas modalidades isto é conseguido por meio do armazenamento na memória acessível apenas aos serviços criptográficos. Em algumas outras modalidades isto pode ser conseguido através do armazenamento da chave mestra em um hardware ou outro módulo de segurança ou de outra forma sob a proteção de um hardware ou outro módulo de segurança. Em algumas modalidades, o local de memória que armazena a chave envelope de texto puro (por exemplo, a memória do serviço de dados) pode ser autorizado a ser sobrescrito ou localização de memória que armazena a chave pode ser intencionalmente sobrescrita para tornar inacessível a chave para frontend de serviço de dados. Como outro exemplo, a chave envelope de texto puro pode ser mantida na memória volátil que eventualmente deixa de armazenar a chave. Deste modo, a chave envelope é acessível somente se esta é descriptografada utilizando uma chave identificado pelo KeyID ou obtida de outro modo de uma maneira não autorizada, tal como através do craqueamento da chave sem a chave identificada pela KeyID, que pode ser computacionalmente inviável. Em outras palavras, a chave identificada pelo KeyID é necessária para o acesso autorizado para a chave sob a qual o objeto de dados é criptografado. Assim, se o sistema de armazenamento backend de serviço de dados da FIG. 7 está comprometido, tal compromisso não iria fornecer acesso ao objeto de dados sem criptografia, porque descriptografar o objeto de dados exigiria acesso à chave, que só é obtido através de descriptografia usando a chave identificada pelo KeyID ou através de outras maneiras que não são computacionalmente viáveis.
[061] Como se observa, várias modalidades da presente divulgação permitem que os usuários de ambos os objetos armazenem dados e os recuperem de uma maneira segura. FIG. 9, consequentemente, mostra um exemplo ilustrativo de um ambiente 900 que pode ser utilizado para obter objetos de dados a partir do armazenamento. Como ilustrado na FIG. 9, o ambiente 900 inclui um serviço de autenticação, um serviço de criptografia, um sistema de serviço de dados de interface e um sistema de armazenamento backend de serviço de dados. O sistema de armazenamento backend de serviço de autenticação, serviço de criptografia, frontend de serviço de dados e serviço de dados podem ser um sistema de computação, como descrito acima. Tal como ilustrado na FIG. 9, o sistema de frontend de serviço de dados é configurado para receber pedidos de objetos de dados e fornecer objetos de dados em resposta. A fim de proporcionar os objetos de dados em resposta, o sistema de frontend de armazenamento de dados nesta modalidade é configurado para interagir com o serviço de autenticação, o serviço de criptografia, e o sistema de armazenamento backend de serviço de dados, como ilustrado na FIG. 9. Por exemplo, em várias modalidades, o sistema de frontend de serviço de dados é configurado para enviar pedidos de autenticação para o serviço de autenticação e recebe a prova de autenticação, em resposta aos pedidos. Como outro exemplo, frontend de serviço de dados é configurado para proporcionar chaves criptografadas por uma chave identificado por um KeyID e prova de autenticação para um serviço de criptografia que é operável para determinar se fornecer a chave com base, pelo menos em parte, na prova de autenticação e, se determinado a fornecer a chave, em seguida, fornecer a chave para o frontend de serviço de dados. O frontend de serviço de dados pode também ser configurado para fornecer outras informações, tais como o KeyID, para o serviço de criptografia. Embora, em algumas modalidades, o KeyID pode ser implicitamente indicado para o serviço de criptografia, tais como por meio de associação com outras informações fornecidas para o serviço de criptografia. Deve também notar-se que, em algumas modalidades, o usuário fornece a KeyID ao frontend de serviço de dados em ligação com submeter pedidos para o frontend de serviço de dados. Além disso, como ilustrado na FIG. 9, o frontend de serviço de dados numa modalidade é configurado para solicitar o objeto de dados a partir do sistema de armazenamento backend serviço de dados e receber, em resposta o objeto de dados criptografado pela chave e a chave criptografada por uma chave identificada pelo KeyID. Em algumas modalidades o serviço criptográfico pode ser operável para recusar executar descriptografia de um texto cifrado não gerado usando uma chave associada com um KeyID especificado.
[062] O frontend de serviço de dados, numa modalidade, está configurado para utilizar a chave recebida do serviço de criptografia para descriptografar o objeto de dados e fornecer objeto dados descriptografados para o usuário. FIG. 10, por conseguinte, mostra um exemplo ilustrativo de um processo 1000, que pode ser usado para fornecer o objeto descriptografado de acordo com várias modalidades. O processo 1000 pode ser realizado por qualquer sistema adequado tal como o sistema de frontend de serviço de dados descrito em relação com a FIG. 9. Numa modalidade, o processo 1000 inclui a recepção 1002 de um pedido GET para um objeto de dados. Receber o pedido GET para o objeto de dados pode ser realizado de qualquer maneira adequada tal como descrito acima em ligação com outros tipos de pedidos. Por exemplo, o pedido GET para o objeto de dados pode incluir informação utilizada para autenticar o pedido e/ou outras informações. O processo 1000, por conseguinte, numa modalidade, tal como com outros processos descritos aqui, inclui a submeter 1004 um pedido de autenticação para um sistema de autenticação e receber 1006 uma resposta de autenticação. Submeter o pedido de autenticação e receber a resposta de autenticação pode ser realizado de qualquer maneira adequada, tal como descrito acima. A resposta de autenticação pode ser usada para determinar 1008 se ou não o pedido GET é autêntico. Se for determinado 1008 que o pedido GET não é autêntico, o processo 1000 em uma modalidade inclui negar o pedido 1010. Se, no entanto, é determinado 1008 que o pedido GET é autêntico, o processo 1000 em uma modalidade inclui a recuperação 1012 do objeto de dados criptografado e uma chave criptografada a partir do armazenamento. Por exemplo, o sistema de frontend de serviço de dados pode obter o objeto de dados criptografado e chave criptografada a partir do sistema de armazenamento backend de serviço de dados ilustrado acima em relação com a FIG. 9.
[063] Numa modalidade, o processo 1000 inclui o fornecimento 1014 da chave envelope criptografada para um serviço de criptografia. Fornecer 1014 a chave criptografada para a chave envelope ao serviço de criptografia pode ser realizado de qualquer maneira adequada e pode ser proporcionado com outras informações, tais como a prova de autenticação que permite que o serviço de criptografia determine descriptografar a chave criptografada. Além disso, fornecer 1014 a chave envelope criptografada para o serviço de criptografia pode incluir o fornecimento de um identificador de uma chave necessária para a descodificação autorizado da chave envelope criptografada para ativar o serviço de criptografia para selecionar uma chave identificada pelo identificador de entre várias chaves geridas pelo serviço de criptografia. Como observado acima, no entanto, as chaves podem ser implicitamente identificadas. O serviço de criptografia pode, portanto, escolher uma chave adequada e decifrar a chave criptografada. Por conseguinte, numa modalidade, o processo 1000 inclui a recepção 1016 da chave envelope descriptografada do serviço de criptografia. Por exemplo, se o serviço de criptografia determina que a prova de autenticação é válida e/ou que descriptografar o criptografado é admissível de acordo com quaisquer políticas aplicáveis, o serviço de criptografia pode fornecer a chave descriptografada a um sistema tentando descodificar o objeto de dados. O objeto de dados pode então ser descriptografado 1018 usando a chave envelope descriptografada. O objeto de dados descriptografado pode então ser fornecido 1020ao solicitante, tal como o usuário ou outro sistema que tenha transmitido o pedido GET.
[064] Em muitos casos, é desejável para os usuários (ou seja, em geral, dispositivos que utilizam um serviço de criptografia) interagir diretamente com o serviço de criptografia. FIG. 11 em conformidade mostra um exemplo ilustrativo de um ambiente 1100, que permite o acesso direto ao usuário um serviço de criptografia. No ambiente 1100, está incluído um serviço de autenticação, um frontend de serviços de dados e um sistema de armazenamento de backend de serviço de dados. O sistema de autenticação, frontend de serviço de dados e sistema de armazenamento backend de serviço de dados podem ser como descrito acima. Por exemplo, frontend de serviço de dados pode ser configurado para receber e responder aos pedidos dos usuários, como ilustrado na FIG. 11 através de uma rede apropriada. Como parte de responder às solicitações dos usuários através da rede, frontend de serviço de dados também pode ser configurado para interagir com o serviço de autenticação, a fim de determinar se as solicitações dos usuários são autênticas e/ou reforçar a política sobre os pedidos. O frontend de serviço de dados pode também ser configurado para interagir com o sistema de armazenamento backend de serviço de dados como parte do cumprimento de solicitações do usuário. As solicitações de usuário podem incluir, por exemplo, solicitações PUT para armazenar dados no sistema de armazenamento de backend e pedidos GET para recuperar dados do sistema de armazenamento backend de serviço de dados. Tal como referido acima, outros pedidos também podem ser utilizados de acordo com as várias modalidades, tais como pedidos de exclusão de dados armazenados no sistema de armazenamento backend de serviço de dados, os pedidos de atualização dos dados armazenados no sistema de armazenamento backend de serviço de dados e semelhantes.
[065] No exemplo específico da FIG. 11, no ambiente 1100, o serviço de criptografia inclui um frontend de serviço de criptografia e um backend de serviço de dados. Tal como acontece com frontend de serviço de dados, o frontend de serviço de criptografia está configurado para receber e responder a solicitações de usuários na rede. O frontend de serviço de criptografia também é configurado para interagir com o serviço de autenticação para determinar se as solicitações dos usuários são autênticas. Determinar se os pedidos de usuário são autênticos pode ser realizado de um modo simples tal como descrito acima. Deve-se notar que, embora o frontend de serviço de criptografia e o frontend de serviço de dados interajam com o mesmo serviço de autenticação, o frontend de serviço de criptografia e o frontend de serviço de dados podem interagir com diferentes serviços de autenticação. Além disso, o frontend de serviço de criptografia pode ser configurado para aplicar a política ao responder aos pedidos do usuário.
[066] O frontend de serviço criptografia, numa modalidade, está configurado para interagir com o backend de serviço de criptografia. O backend de serviço de criptografia está configurado, de acordo com as instruções recebidas do frontend de serviço de criptografia, para executar operações criptográficas. Operações criptográficas incluem criptografia, descriptografia e cálculos de hash e outros. O ambiente 1100 pode ser utilizado, por exemplo, por usuários tendo texto puro criptografado pelo serviço de criptografia de modo que os dados criptografados podem ser armazenados no sistema de armazenamento backend de serviço de dados. Exemplos de tal utilização do ambiente 1100 são fornecidos abaixo. Além disso, exemplos de detalhes de um exemplo de serviço de criptografia também são fornecidos abaixo.
[067] Os dados podem ser armazenados no sistema de armazenamento backend de serviço de dados em qualquer forma adequada, tal como descrito acima. Por exemplo, podem ser utilizadas as técnicas de armazenamento de dados criptografados no sistema de armazenamento de backend descrito acima no ambiente 1100. Por exemplo, embora não ilustrado, o frontend do serviço de dados pode comunicar com o frontend de serviço de criptografia para fazer com que o servidor de serviço de criptografia criptografe os dados que podem então ser armazenadas no sistema de armazenamento backend de serviço de dados. Os dados criptografados podem ser um objeto de dados e/ou uma chave criptografada que foi utilizada para codificar um objeto de dados. No ambiente 1100, os dados podem ser colocados no sistema de armazenamento backend de serviço de dados bem como de outras maneiras. Por exemplo, os usuários podem fornecer texto puro para ser criptografado pelo serviço de criptografia e podem receber texto cifrado em resposta. Os usuários podem então interagir ou podem apresentar um pedido para o frontend de serviço de dados para solicitar que o texto cifrado seja armazenado no sistema de armazenamento backend de serviço de dados. Frontend de serviço de dados, neste exemplo, pode armazenar o texto cifrado em qualquer forma. Por exemplo, os sistemas de armazenamento frontend e backend de serviço de dados podem ser configurados para ser indiferentes ao fato de os dados serem criptografados.
[068] Além disso, como com todos os ambientes aqui ilustrados, um sistema de interface adicional pode ser localizado logicamente entre os usuários e o frontend de serviço de dados e o frontend de serviço de criptografia e possivelmente outros sistemas de frontend, a fim de coordenar ações entre os sistemas. Por exemplo, em algumas modalidades, os usuários podem interagir com um sistema de frontend que por si só interage com o frontend de serviços de criptografia e frontend de serviço de dados de modo a que as operações a partir da perspectiva do usuário sejam mais simples. Por exemplo, um usuário pode solicitar que um objeto de dados seja criptografado e armazenado e um sistema de frontend responde ao pedido por interações adequadas com o frontend de serviço de criptografia e frontend de serviço de dados. Do ponto de vista do usuário, no entanto, isto pode ser realizado por um único pedido. Outras variações também estão dentro do escopo da presente revelação.
[069] A FIG. 12 mostra um exemplo ilustrativo de um ambiente 1200, que pode ser usado para implementar várias modalidades da presente divulgação. Na FIG. 12, o ambiente de 1200 é configurado para permitir que os usuários armazenem texto cifrado em um sistema de armazenamento backend de serviço de dados. Tal como ilustrado na FIG. 12, em conformidade, o ambiente 1200 inclui um frontend de serviço de dados, um sistema de armazenamento de backend de serviços de dados, um serviço de autenticação, um frontend de serviço de criptografia e um backend de serviço de criptografia. O sistema de armazenamento backend de serviço de dados, o frontend de serviço de dados, o serviço de autenticação, o frontend de serviços criptografia e o backend de serviço de criptografia podem ser sistemas tais como os descritos acima em relação com a FIG. 11. Por exemplo, como ilustrado na FIG. 12, frontend de serviço de dados está configurado para receber e responder aos pedidos dos usuários e também pode ser configurado para aplicar a política sobre os pedidos do usuário. O frontend de serviço de dados, como parte de responder aos pedidos, pode ser configurado para enviar pedidos de autenticação para o serviço de autenticação e receber prova de autenticação, em resposta. Após a autenticação bem sucedida, frontend de serviço de dados pode ser ainda configurado para interagir com o sistema de armazenamento backend de serviço de dados, para obter objetos de dados criptografados e, possivelmente, objetos de dados não criptografados provenientes do sistema de armazenamento backend de serviço de dados, que pode ser, em seguida, ser fornecido a um usuário.
[070] Tal como ilustrado na FIG. 12, o frontend de serviço de criptografia também é configurado para enviar pedidos de autenticação para o serviço de autenticação e receber, em resposta, a prova de autenticação. Prova de autenticação pode ser usada para obter serviços do backend de serviços de criptografia. Por exemplo, o frontend de serviço de criptografia pode ser configurado para fornecer texto cifrado para o backend de serviço de criptografia com prova de autenticação e o backend de serviço de criptografia pode ser configurado para descriptografar o texto cifrado e fornecer o texto cifrado em troca. Tal como ilustrado na FIG. 12, o texto cifrado pode ser uma chave criptografada e o backend de serviço de criptografia podem descriptografar a chave criptografada e fornecer a chave descriptografada, que é uma chave de texto puro, ao frontend de serviço de criptografia, que é ainda configurado para fornecer a chave de texto puro para o usuário. O usuário pode, então, usar a chave para descriptografar o objeto de dados criptografado recebido do frontend de serviço de dados ou para descriptografar objetos de dados criptografados armazenados dentro de domínio do usuário (por exemplo, dentro de um controlado centro de dados ou sistema de computação controlado ou operado pelo usuário). Neste exemplo, o usuário pode ter obtido a chave criptografada a partir do frontend de serviço de dados. Por exemplo, o usuário pode ter apresentado um pedido para o serviço de frontend de dados para o objeto de dados e/ou a chave usada para criptografar o objeto de dados. Embora ilustrado na FIG. 11 como um único pedido, os pedidos distintos podem ser feitos para o objeto de dados e a chave. Tal como ilustrado na FIG. 11, o frontend de serviço de dados pode obter o objeto de dados criptografado e chave criptografada a partir do sistema de armazenamento backend de serviço de dados e fornecer o objeto de dados criptografado e chave criptografada para o usuário.
[071] Deve notar-se que, como acontece com todos os ambientes aqui ilustrados, as variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, a FIG. 12 mostra um objeto de dados criptografado com a chave e a chave criptografada por uma outra chave identificada por um identificador de chave a ser fornecida para o usuário. Podem também ser utilizados outros tipos de níveis de criptografia. Por exemplo, o objeto de dados pode ser criptografado com uma chave que só é acessível ao usuário (e/ou que não é acessível pelos outros componentes do ambiente 1200). A chave utilizada para criptografar os dados do objeto pode também ser criptografada com a chave que só é acessível ao usuário. Neste exemplo, o acesso não autorizado aos componentes do ambiente 1200 (ausente o usuário) continua a não fornecer acesso aos conteúdos não criptografados do objeto de dados uma vez que o acesso à chave do usuário ainda é necessário para a descodificação autorizada.
[072] Como outro exemplo, no ambiente 1200 ilustrado na FIG. 12, o frontend de serviço de dados e o sistema de armazenamento de backend de serviços de dados não tem acesso aos dados de texto puro armazenados pelo sistema de armazenamento backend de serviço de dados porque o frontend de serviço de dados e o sistema de armazenamento de backend de serviços de dados não têm acesso a uma chave necessária para descriptografar os dados criptografados. Em algumas modalidades, no entanto, o acesso pode ser concedido ao frontend de serviço de dados e/ou ao sistema de armazenamento backend de serviço de dados. Por exemplo, numa modalidade, o acesso temporário à chave pode ser fornecido para o frontend do serviço de dados para permitir que o frontend de serviço de dados obtenha os dados criptografados, descriptografar os dados criptografados, utilizar os dados descriptografados para um fim específico (por exemplo, indexação), e, em seguida, excluir ou de outro modo perder o acesso aos dados descriptografados. Tais ações podem ser regidas por uma política imposta pelo frontend de serviço de dados e/ou serviço de criptografia e exigir uma autorização do usuário.
[073] A FIG. 13 mostra um exemplo ilustrativo de um processo 1300, que pode ser usado para obter um objeto de dados criptografado e uma chave criptografada, tais como a partir de um sistema de armazenamento backend de serviço de dados, tal como descrito acima. O processo 1300, por exemplo, pode ser realizado pelo sistema de frontend de serviço de dados descritos acima em relação com a FIG. 12. Numa modalidade, o processo 1300 inclui a recepção 1302 de um pedido GET para um objeto de dados criptografado. Receber o pedido GET pode ser realizado de qualquer maneira adequada, tal como por recepção do pedido através de uma chamada API para o sistema de frontend de serviço de dados. Como resultado de ter recebido o pedido GET, processo 1300 pode incluir a apresentação 1304 de um pedido de autenticação e receber 1306 uma resposta de autenticação. Submeter 1304 o pedido de autenticação e receber 1306 a resposta de autenticação pode ser realizado de qualquer maneira adequada tal como descrito acima. A resposta de autenticação pode ser usada para determinar 1308 se o pedido GET é autêntico. Se for determinado 1308 que o pedido GET não é autêntico, o processo 1300 pode incluir negar 1310 o pedido GET. Negar 1310 o pedido GET pode ser realizado de qualquer maneira adequada tal como descrito acima. Se, no entanto, é determinado 1308 que esse pedido GET é autêntico, o processo 1300 pode incluir fornecer 1312 o objeto de dados criptografado com uma chave criptografada que, quando descriptografado, é utilizável para descriptografar o objeto de dados criptografado. Deve notar-se que, como acontece com todos os processos aqui descritos, numerosas variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, o processo 1300 pode ser configurado para responder ao pedido GET, quando autêntico, fornecendo o objeto de dados criptografado, mas sem fornecer uma chave criptografada. Um solicitante, que é um usuário ou sistema que apresentou o pedido GET, pode obter a chave criptografada de outras maneiras. Por exemplo, em algumas modalidades, os usuários podem armazenar as chaves criptografadas por si só em um sistema de armazenamento de dados sob o controle do usuário. Como outro exemplo, um serviço de armazenamento pode armazenar o objeto de dados criptografado e um outro serviço pode armazenar a chave criptografada e o usuário pode obter o objeto de dados criptografado e chave criptografada a partir dos respectivos serviços. Como outro exemplo, outro serviço ou um terceiro ao usuário pode ser usado para armazenar chaves criptografadas e os usuários podem obter chaves criptografadas no pedido. Em geral, qualquer modo pelo qual chaves cifradas podem ser fornecidas pode ser utilizado.
[074] Tal como ilustrado na FIG. 13, o processo 1300 pode resultar em uma entidade tendo sido proporcionado um objeto de dados e uma chave criptografada utilizável para descriptografar o objeto de dados. Em várias modalidades, a chave criptografada deverá ser decifrada a fim de descriptografar o objeto de dados. FIG. 14, por conseguinte, mostra um exemplo ilustrativo de um processo 1400 que pode ser usado para fornecer uma chave descriptografada para uma entidade com necessidade de uma tal chave descriptografada a fim de utilizar a chave descriptografada para a descodificação de um objeto de dados criptografado. O processo 1400 pode ser realizado por qualquer sistema adequado tal como pelo sistema de criptografia de frontend de serviço descrito acima em relação com a FIG. 12. Numa modalidade, o processo 1400 inclui a recepção 1402 uma descriptografia para descriptografar a chave utilizando uma outra chave tendo uma KeyID especificada. Enquanto o processo 1400 é descrito em relação com a descodificação de uma chave, deve notar-se que o processo 1400 pode ser adaptado para a descodificação dos dados em geral. O pedido de descriptografia pode ser recebido 1402 de qualquer forma adequada tal como descrito acima (por exemplo, através de uma chamada API apropriadamente configurada). Além disso, o pedido de descodificação pode ser recebido por qualquer entidade adequada ao contexto em que o processo 1400 está sendo realizado. Por exemplo, o pedido de descriptografia pode ser proveniente do usuário ou de outro sistema, tais como frontend de serviço de dados discutidos acima. O pedido descriptografia pode também incluir dados (por exemplo, uma chave) para serem descriptografados ou uma referência aos mesmos. O KeyID pode ser também especificado de qualquer forma adequada. Por exemplo, em algumas modalidades, o pedido inclui descriptografar a KeyID ou uma referência para a KeyID, isto é, informações que podem ser usadas para determinar a KeyID. Como discutido acima, a KeyID pode também ser implicitamente especificada. Por exemplo, a KeyID pode ser obtida por meio da associação com os dados disponíveis, tais como uma identidade de um requerente que apresentou o pedido de descriptografia. Por exemplo, a chave correspondente à KeyID pode ser uma chave padrão para o solicitante ou pela entidade em nome da qual o pedido foi apresentado.
[075] O processo 1400, numa modalidade, inclui submeter um pedido de autenticação 1404 e receber 1406 uma resposta de autenticação. Submeter 1404 o pedido de autenticação e receber 1406 a resposta de autenticação pode ser realizado de qualquer maneira adequada tal como descrito acima. Além disso, como descrito acima, a resposta de autenticação recebida pode ser usada para determinar 1408 se o pedido GET é autêntico. Se for determinado 1408 que o pedido GET não é autêntico, o processo 1400 pode incluir negar 1410 o pedido GET. Negar 1410 o pedido GET pode ser realizado em qualquer forma adequada tal como é descrito acima. Se, no entanto, é determinado 1408 que o pedido GET é autêntico, o processo 1400 pode incluir o acesso a informação da política para a KeyID especificada e/ou para o solicitante. Política de informações pode incluir informações, incluindo uma ou mais políticas na KeyID e/ou o solicitador.
[076] Numa modalidade, as informações de política acessadas são usadas para determinar 1414 se qualquer política aplicável permite a descriptografia da chave com a KeyID especificada. Se for determinado 1414 que a política não permite descriptografar a chave de especificada pela KeyID, o processo 1400 pode incluir negar o pedido GET 1410 tal como descrito acima. Se, no entanto, é determinado 1414 que a política permite descriptografar a chave com a KeyID especificada, o processo 1400 pode incluir descriptografar a chave 1416 usando a chave identificada pela KeyID. Uma vez que a chave tenha sido descriptografada, utilizando uma chave tendo a KeyID, a chave descriptografada pode então ser fornecida 1418, tal como por transmissão através de uma rede para o solicitante que tenha transmitido o pedido de descodificação (ou, em algumas modalidades, um outro destino autorizado).
[077] Tal como ilustrado no ambiente 1200 discutido acima, um usuário pode obter objetos de dados criptografados e chaves para descriptografar os objetos de dados de várias maneiras. FIG. 15 mostra um exemplo ilustrativo de um processo 1500, que pode ser usado para obter texto puro, de acordo com várias modalidades. O processo 1500 pode ser realizado por qualquer sistema apropriado, tal como por um sistema que está sendo operado e/ou hospedado por um usuário, tal como descrito em relação com a FIG. 12. Outros sistemas adequados incluem sistemas operando em nome dos usuários e não necessariamente de acordo com a entrada do usuário em tempo real fornecida, mas talvez de acordo com processos pré- programados.
[078] Numa modalidade, o processo 1500 inclui a recepção 1502 de texto cifrado a partir de um serviço de armazenamento de dados. Solicitar 1502 texto cifrado a partir de um serviço de armazenamento de dados pode ser realizado de qualquer maneira adequada tal como descrito acima. Por exemplo, um sistema que executa o processo 1500 pode solicitar 1502 texto cifrado, utilizando uma chamada API apropriadamente configurada no ambiente 1200 ilustrado acima em relação com a FIG. 12 e/ou pelo processo 1300 descrito acima em relação com a FIG. 13.
[079] O processo 1500 pode também incluir receber texto cifrado e uma chave criptografada. Receber texto cifrado e chave criptografada pode ser realizado de qualquer maneira adequada. Por exemplo, o texto cifrado e chave criptografada podem ser recebidos em resposta a um pedido para o texto cifrado a partir de um serviço de armazenamento de dados. Geralmente, no entanto, o texto cifrado e chave criptografada podem ser recebidos 1504 de outras maneiras adequadas. Por exemplo, o pedido para receber texto cifrado do serviço de armazenamento de dados pode ser um pedido assíncrono e texto cifrado pode ser recebido 1504 por força de outro pedido que é posteriormente apresentado. Além disso, o texto cifrado e chave criptografada podem ser fornecidos numa única resposta ou podem ser obtidos separadamente, tal como por respostas diferentes (que podem ser do mesmo ou de diferentes sistemas). Como outro exemplo, um sistema executando um processo 1500 pode armazenar chaves criptografadas localmente ou não, e a chave criptografada pode ser recebida a partir da memória local.
[080] Numa modalidade, o processo 1500 inclui pedir a descodificação da chave criptografada, utilizando uma chave tendo uma KeyID especificada. A KeyID pode ser especificada em qualquer forma adequada, tal como descrito acima. Além disso, deve notar-se que o sistema executando o processo 1500 pode ser capaz de especificar a KeyID de qualquer maneira adequada. Por exemplo, a chave criptografada e/ou informações fornecidas com a mesma podem especificar a KeyID. Como outro exemplo, o sistema que executa o processo 1500 pode ter acesso local ou remoto à informação que permite a determinação da KeyID. Um banco de dados local ou remoto, por exemplo, pode associar identificadores de objeto de dados com identificadores de chave para as chaves usadas para criptografar os objetos de dados. Geralmente, pode ser utilizado qualquer modo pelo qual o sistema pode ser ativado para especificar a KeyID. Além disso, em algumas modalidades, a KeyID não precisa ser especificada, como quando a informação fornecida a um serviço de criptografia é suficiente para determinar a KeyID. O pedido 1506 para a descodificação da chave criptografada pode ser realizado de qualquer maneira adequada, tal como em relação a um ambiente discutido acima em relação com a FIG. 12 e/ou pelo desempenho do processo 1400 descrito acima em relação com a FIG. 14.
[081] O processo 1500, numa modalidade, inclui a recepção 1508 da chave descriptografada. Receber 1508 a chave descriptografada pode ser realizado de qualquer maneira adequada. Por exemplo, a chave descriptografada pode ser recebida em resposta a um pedido para descodificação da chave criptografada. Como outro exemplo, o pedido de descodificação da chave criptografada pode ser um pedido assíncrono e outro pedido pode ter sido apresentado para receber a chave descriptografada. Geralmente, a chave descriptografada pode ser recebida em qualquer forma adequada. Além disso, como com todas as informações que fluem a partir de um dispositivo para outro, a passagem de informação pode ser realizado utilizando canais seguros. Por exemplo, a chave descriptografada pode ser novamente criptografada para a descodificação por uma entidade que recebe a chave descriptografada. Geralmente, qualquer forma de comunicação segura pode ser usada para transmitir informação de uma entidade para outra.
[082] Uma vez que a chave descriptografada foi recebida 1508, o processo 1500 pode incluir o uso 1510 da chave descriptografada para descriptografar 1510 o texto cifrado e, portanto, obter texto puro. Deve notar-se que, como acontece com todos os processos aqui descritos, as variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, o processo 1500 mostra um pedido para texto cifrado, e um pedido para descriptografar uma chave criptografada sendo realizado sequencialmente. No entanto, como com muitas operações aqui descritas em ligação com os diferentes processos, operações não precisam ser realizadas sequencialmente em várias modalidades. Por exemplo, se um sistema de execução do processo 1500 tem acesso à chave criptografada antes de solicitar o texto cifrado, ou é de outro modo capaz de fazê-lo, o sistema pode requerer pedido de texto cifrado e descodificação da chave criptografada em paralelo ou numa ordem diferente daquela que é ilustrada. Outras variações também são consideradas como estando dentro do escopo da presente revelação.
[083] Como discutido acima, várias modalidades da presente invenção são dirigidas ao fornecimento de serviços de criptografia. Serviços de criptografia podem ser fornecidos por um sistema de serviço de criptografia, como descrito acima. FIG. 16 em conformidade mostra um exemplo ilustrativo de um serviço de criptografia 1600 de acordo com várias modalidades. Tal como ilustrado na FIG. 16 e tal como discutido acima, o serviço de criptografia 1600 é logicamente constituído por um sistema de frontend e um sistema de backend. Ambos o sistema de frontend e o sistema de backend podem ser implementados por um ou mais sistemas de computação configurados para realizar operações aqui descritas. Por exemplo, como ilustrado na FIG. 16, o sistema de frontend do serviço de criptografia 1600 implementa um pedido de API e uma de configuração de política API. O pedido de API, numa modalidade, é uma API configurada para requerer operações criptográficas e outras a serem realizadas pelo serviço de criptografia. Assim, os pedidos poderão ser feitos para o sistema do frontend através de pedido API para que tais operações criptográficas sejam executadas pelo serviço de criptografia.
[084] O pedido API pode ser configurado com o seguinte exemplo, alto nível, pedidos disponíveis: CreateKey(KeyID) Encrypt(KeyID, Data, [AAD]) Decrypt(KeyID, Ciphertext, [AAD]) Shred(KeyID) ReKey(Ciphertext, OldKeyID, NewKeyID).
[085] Um pedido CreateKey (KeyID), numa modalidade, faz com que o serviço de criptografia crie uma chave identificada pela KeyID identificada no pedido. Após a recepção de um pedido, o serviço de criptografia pode gerar uma chave e associar a chave com a KeyID. Deve ser conhecido que KeyID podem ser, mas não são necessariamente identificadores únicos. Por exemplo, um KeyID pode identificar uma família de chaves. Por exemplo, em algumas modalidades, a rotação da chave é executada. A rotação da chave pode envolver a substituição das chaves com outras chaves para evitar a coleta de dados descriptografados suficientes para permitir craqueamento prático de uma cifra usada. Se realizado no sentido de uma entidade diferente do serviço de criptografia, a utilização do pedido CreateKey (KeyID) pode causar o serviço de criptografia para criar uma nova chave para substituir uma chave velha identificada pela KeyID. A chave velha pode permanecer identificada pela KeyID, mas pode, por exemplo, ser utilizada apenas para a descodificação (de dados que já tenha sido codificados, usando a chave velha) e não para criptografia futura. Como outro exemplo, em algumas modalidades, os usuários do serviço de criptografia fornecem os seus próprios identificadores de chave e existe uma possibilidade de que dois clientes diferentes podem fornecer o mesmo identificador. Em tais casos, o identificador pode não identificar uma chave, ou mesmo identificar unicamente uma família de chaves. Várias medidas podem estar no local para resolver esta questão. Por exemplo, uma identidade ou outra informação associada com um usuário do serviço de criptografia podem ser usadas para identificar a chave apropriada ou família de chaves. Em ainda outras modalidades o serviço criptográfico pode atribuir uma KeyID aleatoriamente, sequencialmente, ou usando qualquer outro método.
[086] Deve notar-se que, quando uma KeyID não identifica unicamente uma chave, vários sistemas poderão estar no lugar para permitir a funcionalidade adequada. Por exemplo, em diversas modalidades, uma família de chaves identificada por uma KeyID é finita. Se uma operação de descodificação, usando uma chave identificada por uma KeyID é solicitada, os dados adicionais (por exemplo, uma marca de tempo quando a codificação foi realizada) pode permitir determinar a chave apropriada para usar. Em algumas modalidades, os textos cifrados podem incluir informação indicando uma versão da chave. Em algumas modalidades, todas as chaves possíveis são utilizadas para fornecer diferentes descriptografia dos dados. Uma vez que há um número limitado de chaves, a descriptografia adequada pode ser selecionada de entre aquelas fornecidas. Em algumas modalidades, descriptografar com uma chave é realizado de uma maneira que permite que o serviço criptográfico detecte que o texto cifrado não foi gerado com base, pelo menos em parte, na chave, por exemplo, usando criptografia autenticada. Outras variações também são consideradas como estando dentro do escopo da presente revelação.
[087] Um pedido Encrypt(KeyID, Data, [AAD]) pode ser usado para fazer o serviço de criptografia criptografar os dados especificados usando uma chave identificado pela KeyID. Dados autenticados adicionais (AAD) podem ser usados para vários fins e podem ser dados que não são necessariamente criptografados, mas que são autenticados, por exemplo, através de uma assinatura eletrônica, um código de autenticação de mensagem ou, em geral, um valor hash com chave incluído com AAD. Em algumas modalidades, o texto cifrado é gerado incluindo pelo menos uma porção dos AAD. Em algumas outras modalidades AAD são fornecidos separadamente durante a descriptografia. Em algumas outras modalidades, o AAD é gerado no momento de descriptografar com base, pelo menos em parte, no pedido e outros metadados ou de tal modo que a descriptografia só terá êxito quando os metadados passam. Em algumas modalidades, a política pode restringir se uma operação criptográfica pode ser executada no que diz respeito a determinados AAD. Processamento de pedidos Encrypt(KeyID, Data, [AAD]) podem exigir, pela lógica de programação e/ou política executada pelo serviço de criptografia, ambos AAD contêm valores específicos e que o AAD é autêntico (por exemplo, não modificado desde a transmissão original). Da mesma forma, um pedido Decrypt(KeyID, Ciphertext, [AAD]) pode ser usado para fazer o serviço de criptografia para descriptografar o texto cifrado especificado usando uma chave identificada pela KeyID. O AAD no pedido Decrypt(KeyID, Ciphertext, [AAD]) pode ser usado tal como descrito acima. Por exemplo, o processamento do Decrypt(KeyID, Ciphertext, [AAD]) pode exigir, por lógica de programação e/ou política executada pelo serviço de criptografia, que ambos AAD contenham valores específicos e que o AAD seja autêntico (por exemplo, não modificado desde a transmissão original).
[088] O Shred(KeyID), numa modalidade, pode ser usado para fazer o serviço de criptografia para triturar eletronicamente uma chave ou família de chaves identificadas pela KeyID especificada. Retalhamento eletrônico pode incluir tornar a chave não mais acessível. Por exemplo, a utilização do pedido Shred(KeyID) pode fazer com que o sistema de criptografia comande um ou mais dispositivos de hardware para realizar uma operação de SecureErase em uma ou mais chaves identificadas pela KeyID especificada. Geralmente, as chaves identificadas pela KeyID podem ser retalhadas eletronicamente de qualquer maneira adequada, tal como por substituição de dados codificando a chave com outros dados (por exemplo, uma série de zeros ou uns ou uma sequência aleatória). Se as chaves são armazenadas criptografadas sob uma chave, a chave usada para criptografar as chaves podem ser trituradas eletronicamente, causando assim uma perda de acesso às chaves. Em algumas modalidades, a operação de fragmentação pode causar operações de descriptografia indicando a KeyID retalhada para falhar em algum momento determinado no futuro. Podem ser utilizadas outras formas de destruindo de modo seguro e permanente qualquer possibilidade de acesso às chaves.
[089] O pedido reKey(Ciphertext, OldKeyID, NewKeyID), numa modalidade, pode ser usado para fazer o serviço de criptografia criptografar texto cifrado sob uma chave diferente. Quando o serviço de criptografia recebe um pedido Rekey(Ciphertext, OldKeyID, NewKeyID), este pode usar uma chave identificada pelo OldKeyID para descriptografar o texto cifrado especificado e, em seguida, usar uma chave identificada pelo NewKeyID para criptografar o texto cifrado descriptografado. Se uma chave identificada pelo NewKeyID ainda não existe, o serviço de criptografia pode gerar uma chave para usar e associar a chave gerada com o NewKeyID especificada, como descrito em relação ao pedido Create(KeyID) acima descrito em. Em algumas modalidades, a operação ReKey pode ser operável para fazer com que os dados sejam transferíveis entre instâncias isoladas de um serviço de criptografia. Em algumas modalidades, uma política pode permitir que uma operação de rekey seja executada num texto cifrado, mas pode não permitir o mesmo solicitante para descriptografar o texto cifrado diretamente. Em algumas modalidades, Rekey pode suportar remarcação de um texto cifrado a partir de uma chave identificado por uma primeira KeyID dentro de uma primeira conta para uma chave identificada por uma KeyID dentro de uma segunda conta.
[090] Da mesma forma, o sistema de frontend pode implementar uma configuração API política que, numa modalidade, permite que os usuários enviem pedidos para configurar políticas para o desempenho das operações de criptografia e para outras operações relacionadas com a política. As políticas podem ser associadas com chaves, grupos de chaves, contas, usuários e outras entidades lógicas em várias modalidades. Exemplos de políticas, que podem ser configuradas por meio da API de configuração de política, são fornecidos abaixo. Numa modalidade, API de configuração de política de serviço de criptografia inclui os seguintes pedidos: SetKeyPolicy(KeyID, Policy) Suspend(KeyID, Public Key) Reinstate(KeyID, Private Key)
[091] Numa modalidade, o pedido SetKeyPolicy (KeyID, Policy) pode ser usado para fazer o serviço de criptografia armazenar uma política para a chave (ou família de chaves) identificada pela KeyID. Uma política pode ser uma informação que é determinante para se uma operação de criptografia requerida pode ser realizada num contexto particular. A política pode ser codificada em uma linguagem política de controle de acesso declarativo, como eXtensinble Access Control Markup Language (XACML), Enterprise Privacy Authorization Language (EPAL), a Amazon Web Services Access Policy Language, Microsoft SecPol ou qualquer forma adequada de codificação de um ou mais condições que devem ser satisfeitas para uma operação de criptografia a ser realizada. As políticas podem definir quais operações podem ser executadas, quando as operações podem ser executadas, que entidades podem fazer pedidos autorizados para operações a serem realizadas, quais as informações que são necessárias para um pedido específico para ser autorizado, e assim por diante. Além disso, as políticas podem ser definidas e/ou executada utilizando listas de controle de acesso, privilégios associados a usuários e/ou bitmasks operação, para além ou em vez dos exemplos dados acima. Exemplos de políticas aparecem abaixo.
[092] Em algumas configurações o serviço de criptografia pode apoiar uma operação de suspensão, por exemplo, usando uma chamada Suspend(KeyID, Public Key) API. Uma operação de suspensão permite que o cliente do serviço de criptografia negue o operador de usar os serviços de criptografia ou o acesso a uma chave. Isto pode ser útil para os clientes preocupados com ordens legais secretas ou a outras circunstâncias em que o operador do serviço de criptografia pode ser obrigado a executar alguma operação usando uma chave. Pode também ser útil para os clientes que desejam bloquear dados particulares e torná-los inacessíveis on-line. Em algumas modalidades, uma operação de suspensão pode incluir receber uma chave pública de um cliente e criptografar a chave especificada por uma determinada KeyID com a chave pública recebida e retalhamento da chave especificada pela KeyID, de tal modo que o provedor não é capaz de acessar a chave suspensa, a menos que a chave privada associada com a chave pública seja fornecida, por exemplo, usando uma API Reinstate(KeyID, Private Key) que especifica a KeyID e inclui a chave privada. Em algumas outras modalidades, uma operação de suspensão pode envolver criptografar uma chave associada com uma KeyID especificada utilizando uma outra chave gerenciada por serviços criptográficos, incluindo, sem limitação, uma criada com a finalidade da operação de suspensão de imediato. O texto cifrado produzido por esta operação pode ser fornecido ao cliente e não retida dentro do serviço de criptografia. A chave original identificada pela KeyID pode então ser retalhada. O serviço de criptografia pode ser operável para receber o texto cifrado fornecido e reimportar a chave suspensa. Em algumas modalidades o texto cifrado pode ser gerado de uma forma que irá impedir que o serviço de criptografia retorne uma versão descriptografada para o cliente.
[093] Tal como ilustrado na FIG. 16, o serviço de criptografia 1600 inclui um sistema de backend que compreende por si só vários componentes em algumas modalidades. Por exemplo, o sistema de backend, neste exemplo, inclui um sistema de processamento de pedido que pode ser um subsistema do serviço de criptografia 1600 que é configurado para realizar operações de acordo com os pedidos recebidos, através de pedido API ou o API de configuração da política. Por exemplo, o componente de processamento do pedido pode receber pedidos recebidos por meio de pedido API e API de configuração de política determina se tais pedidos são autênticos e são, portanto, preenchíveis e podem cumprir os pedidos. O preenchimento do pedido pode incluir, por exemplo, desempenhar e/ou ter as operações criptográficas executadas. A unidade de processamento de pedido pode ser configurada para interagir com uma interface de autenticação que permite que a unidade de processamento de pedido determine se os pedidos são autênticos. A interface de autenticação pode ser configurada para interagir com um sistema de autenticação, tal como descrito acima. Por exemplo, quando é recebido um pedido pela unidade de processamento do pedido, a unidade de processamento do pedido pode utilizar a interface de autenticação para interagir com um serviço de autenticação que pode, se for o caso, fornecer a prova de autenticação que pode ser utilizada de modo a provocar um desempenho de operações criptográficas.
[094] O sistema backend do serviço de criptografia 1600 também, neste exemplo ilustrativo, inclui uma pluralidade de módulos de segurança (módulos de criptografia) e um módulo de aplicação de política. Um ou mais dos módulos de segurança podem ser módulos de segurança de hardware, embora, em várias modalidades, um módulo de segurança pode ser qualquer dispositivo adequado de computador configurado de acordo com ter capacidades aqui descritas. Cada módulo de segurança numa modalidade armazena uma pluralidade de chaves associadas com KeyIDs. Cada módulo de segurança pode ser configurado para armazenar de forma segura as chaves de modo a não ser acessível a outros componentes do serviço de criptografia 1600 e/ou outros componentes de outros sistemas. Numa modalidade, alguns ou todos os módulos de segurança são compatíveis com pelo menos um padrão de segurança. Por exemplo, em algumas modalidades, os módulos de segurança são cada um validado como sendo compatíveis com uma Federal Information Processing Standard (FIPS) descrito na Publicação FIPS 140-1 e/ou 140-2, tal como um ou mais níveis de segurança descritos na Publicação FIPS 140-2. Além disso, em algumas modalidades, cada módulo de segurança é certificado sob o do Programa de Validação de módulo criptográfico (CMVP). Um módulo de segurança pode ser implementado como um módulo de segurança de hardware (HSM) ou um outro módulo de segurança tendo algumas ou todas as capacidades de um HSM. Em algumas modalidades, um módulo validado é utilizado para operações de inicialização. Em algumas modalidades, os clientes podem configurar algumas chaves que são armazenadas em e operadas apenas por módulos validados e outras chaves que são operadas por software. Em algumas modalidades, o desempenho ou custo associado com estas várias opções podem ser diferentes.
[095] Os módulos de segurança podem ser configurados para realizar operações criptográficas, em conformidade com as instruções fornecidas pela unidade de processamento do pedido. Por exemplo, a unidade de processamento pode proporcionar texto cifrado e uma KeyID a um módulo de segurança apropriado com instruções para o módulo de segurança para utilizar uma chave associada com a KeyID para descriptografar o texto cifrado e fornecer em resposta o texto puro. Numa modalidade, o sistema de backend do serviço de criptografia 1600 armazena de forma segura uma pluralidade de chaves que formam um espaço de chave. Cada um dos módulos de segurança pode armazenar todas as chaves no espaço chave; no entanto, as variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, cada um dos módulos de segurança pode armazenar um subespaço do espaço de chave. Subespaços do espaço de chaves armazenados por módulos de segurança podem sobrepor-se de modo a que as chaves sejam armazenadas de forma redundante ao longo dos módulos de segurança. Em algumas modalidades, algumas chaves podem ser armazenadas apenas em regiões geográficas específicas. Em algumas modalidades, determinadas chaves podem ser acessíveis apenas aos operadores com um nível de depuração especial ou certificação. Em algumas modalidades determinadas chaves podem ser armazenadas e utilizadas apenas com um módulo operado por um provedor de terceiros especial sob contrato com o provedor de serviços de armazenamento de dados. Em algumas modalidades, controle construtivo de módulos de segurança pode exigir ordens legais buscando forçar utilização de línguas diferentes, tal como autorizadas pelo cliente para envolver entidades adicionais sendo compelidas ou ações compelindo jurisdições adicionais. Em algumas modalidades, aos clientes podem ser oferecidas opções independentes para a jurisdição em que seus textos cifrados são armazenados e suas chaves são armazenadas. Em algumas modalidades, os módulos de segurança que armazenam chaves podem ser configurados para proporcionar informação de auditoria para o proprietário das chaves, e os módulos de segurança podem ser configurados de tal modo que a geração e fornecimento de informações de auditoria não reprimíveis por parte do cliente. Em algumas modalidades, os módulos de segurança podem ser configurados para validar independentemente uma assinatura gerada pelo cliente, tal que o provedor (por exemplo, hospedando módulos de segurança) não é capaz de executar operações sob chaves armazenadas pelos módulos de segurança. Além disso, alguns modelos de segurança podem armazenar todo o espaço da chave e alguns módulos de segurança podem armazenar subespaços do espaço de chave. Outras variações também são consideradas como sendo do escopo da presente revelação. Nos casos em que diferentes módulos de segurança armazenam diferentes subespaços do espaço de chave, a unidade de processamento do pedido pode ser configurada tal como com uma tabela relacional ou outro mecanismo para determinar qual dos módulos de segurança instruir para executar operações criptográficas de acordo com vários pedidos.
[096] Numa modalidade, o módulo de aplicação de política é configurado para obter informação a partir de uma unidade de processamento de pedido e determinar, com base, pelo menos em parte, em informação que, se o pedido recebido através do API pode ser realizado. Por exemplo, quando um pedido para executar operação de criptografia é recebido através da API do pedido, a unidade de processamento do pedido pode interagir com o módulo de aplicação de políticas para determinar se o cumprimento do pedido é autorizado de acordo com qualquer política aplicável como a política aplicável a uma KeyID especificada no pedido e/ou outras políticas, como a política associada ao solicitante. Se o módulo de aplicação de políticas permite o cumprimento do pedido, a unidade de processamento do pedido pode, portanto, instruir um módulo de segurança apropriado para executar operações criptográficas de acordo com o cumprimento do pedido.
[097] Tal como acontece com todas as figuras aqui descritas, numerosas variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, a FIG. 16 mostra o módulo de aplicação de políticas separado de módulos de segurança. No entanto, cada módulo de segurança pode incluir um módulo de aplicação de políticas em complemento a ou em vez do módulo de aplicação da política ilustrado como separado. Assim, cada módulo de segurança pode ser configurado de forma independente para aplicar a política. Além disso, como outro exemplo, cada módulo de segurança pode incluir um módulo de aplicação de políticas que reforça as políticas diferentes de políticas aplicadas por um módulo de aplicação de políticas separado. Numerosas outras variações são consideradas como estando dentro do escopo da presente revelação.
[098] Como discutido acima, várias políticas podem ser configuradas pelos usuários ou em associação com KeyID de tal modo que quando os pedidos especificam as operações criptográficas sendo realizadas em ligação com chaves correspondentes aos KeyIDs, política pode ser executada. FIG. 17 apresenta um exemplo ilustrativo do processo 1700 para a atualização da política de acordo com várias modalidades. Processo 1700 pode ser realizado por qualquer sistema apropriado, tal como por um sistema de serviço de criptografia, tal como descrito acima em relação com a FIG. 16. Numa modalidade, o processo 1300 inclui a recepção 1302 de um pedido de atualização de política para uma KeyID. O pedido pode ser recebido 1302 de qualquer forma adequada. Por exemplo, referindo a FIG. 16 como um exemplo, um pedido pode ser recebido através de uma API de configuração de política do sistema de frontend do serviço de criptografia 1600 descrito acima. O pedido pode ser recebido em qualquer forma adequada.
[099] O processo 1700 em uma modalidade inclui submeter 1704 um pedido de autenticação e receber 1706 uma resposta de autenticação. Submeter 1704 o pedido de autenticação e receber 1706 a resposta de autenticação pode ser realizado de qualquer maneira adequada tal como descrito acima. Também como descrito acima, a resposta de autenticação recebida pode ser usada para determinar 1708 se o pedido de atualização para a política KeyID é autêntica. Se for determinado que o pedido 1708 recebido para atualizar a política para a KeyID não é autêntico, o pedido pode ser negado 1710. Negar 1710 o pedido pode ser realizado de qualquer maneira adequada, como descrito acima. Se, no entanto, é determinada 1708 que o pedido recebido para atualizar a política para a KeyID é autêntico, o processo 1700 pode incluir o acesso 1712 a informações de política aplicáveis para o solicitante. A informação política pode ser uma informação a partir da qual qualquer política aplicável ao solicitante pode ser executada. Por exemplo, dentro de uma organização que utiliza um serviço de criptografia realizado pelo processo 1700, apenas alguns usuários da organização podem ser autorizados a atualizar a política para KeyIDs. Informação de política pode indicar quais usuários são capazes de fazer o serviço de criptografia atualizar a política para a KeyID e/ou até mesmo se a política é atualizável de acordo com uma política existente. Por exemplo, um serviço de criptografia pode, em algumas modalidades, receber pedido para aplicar uma nova política. O serviço de criptografia pode verificar se qualquer política existente permite que a nova política seja posta em prática. Se o serviço de criptografia determina que a política atual não permite a aplicação da nova política, o pedido pode ser negado. Geralmente, as informações de política podem ser qualquer informação útil para a aplicação da política aplicável para o solicitante.
[0100] Tal como ilustrado na FIG. 17, o processo 1700 inclui usar as informações da política de acesso para determinar se a política de 1704 permite a atualização solicitada para ser executada. Se for determinado que a política 1714 não permite a atualização solicitada para ser executada, o processo 1700 pode incluir negar o pedido 1710 tal como descrito acima. Se, no entanto, é determinado 1714 a política permite que a informação solicitada seja executada, o processo 1700 pode incluir atualização 1716 da política para a KeyID. Atualizar política para a KeyID pode incluir atualização de informações de política e ter a política atualizada sendo armazenada em conformidade com ou em associação com a KeyID. A informação política atualizada pode ser armazenada, por exemplo, por um módulo de aplicação de política do serviço de criptografia, como descrito acima, em relação com a FIG. 16.
[0101] Política pode também ser aplicada por outros componentes de um ambiente eletrônico que atua em conexão com um serviço de criptografia. Por exemplo, referindo a FIG. 2, discutida acima, um serviço de criptografia pode fornecer uma representação eletrônica de uma política para o frontend de serviço de dados para o frontend de serviço de dados ser aplicado. Tal pode ser útil em circunstâncias em que o serviço de dados é mais adequado para aplicar a política. Por exemplo, se uma ação é permitida pela política pode ser baseado pelo menos em parte em informações acessíveis ao frontend de serviço de dados e não para o serviço de criptografia. Como um exemplo, uma política pode depender de dados armazenados pelo sistema de armazenamento backend de serviço de dados em nome de um cliente associado com a política.
[0102] Como discutido acima, um serviço de criptografia pode incluir vários sistemas que permitem a aplicação da política de acordo com a política em chaves com KeyIDs. FIG. 18, por conseguinte, mostra um exemplo de um processo ilustrado 1800 que pode ser utilizado para aplicar a política. O processo 1800 pode ser realizado por qualquer sistema apropriado, tal como por um sistema de serviço criptografia, tal como descrito acima em relação com a FIG. 16. Numa modalidade, o processo 1800 inclui a recepção 1802 de um pedido para executar uma ou mais operações criptográficas usando uma chave que tem uma KeyID. Enquanto a FIG. 18 ilustra o processo 1800 como sendo realizado em ligação com um pedido para executar uma ou mais operações criptográficas, deve notar-se que o processo 1800 pode ser adaptado para utilização com qualquer pedido para executar uma operação que não é necessariamente criptográfica. Exemplos de operações são descritos acima.
[0103] Uma determinação pode ser feita 1804 se o pedido recebido é autêntico. Determinar se o pedido recebido é autêntico pode ser realizado de qualquer maneira adequada tal como descrito acima. Por exemplo, determinar se o pedido 1804 é autêntico pode incluir a apresentação de um pedido de autenticação e receber uma resposta de autenticação, tal como descrito acima. Se for determinado que o pedido 1804 não é autêntico, o processo 1800 pode incluir negar 1806 o pedido. Negar 1806 o pedido pode ser realizado de qualquer maneira adequada tal como descrito acima. Se, no entanto, é determinado que o pedido 1804 é autêntico, o processo 1800 pode incluir o acesso a política de informações 1808 para a KeyID e/ou o solicitante. O acesso à política de informação para a KeyID e/ou pedido pode ser realizado de qualquer maneira adequada. Por exemplo, o acesso a política de informações para a KeyID e/ou solicitante pode ser realizado através do acesso à política de informação de armazenamento a partir de um ou mais sistemas de armazenamento que armazenam essa informação de política. O acesso à informação de política pode ser utilizado para determinar 1810 se a política permite que as uma ou mais operações devem ser realizadas.
[0104] Se for determinado 1810 que a política não permite que uma ou mais operações a serem realizadas, o processo 1800 pode incluir negar 1806 o pedido. Se, no entanto, é determinado que a política não permitir que as uma ou mais operações devem ser realizadas, o processo 1800 pode incluir a realização 1812 das uma ou mais operações criptográficas solicitadas. Um ou mais resultados de desempenho das uma ou mais operações criptográficas podem ser fornecidos 1814, tal como fornecidos ao solicitante que tenha submetido o pedido recebido 1802 para executar uma ou mais operações criptográficas. Em algumas modalidades informação derivada pelo de menos em parte a partir dos pedidos autorizados e ou pedidos negados pode ser fornecida através de um subsistema de auditoria.
[0105] Como discutido, modalidades da presente divulgação permitem a configuração de políticas flexíveis e aplicação. Em algumas modalidades, políticas podem indicar quais os serviços podem executar quais operações em quais contextos. Por exemplo, uma política em uma chave pode permitir que um serviço de armazenamento de dados realize o serviço de criptografia para executar operações de criptografia, mas não operações de descriptografia. Uma política em uma chave também pode incluir uma ou mais condições no texto cifrado e/ou texto plano descriptografado. Por exemplo, uma política pode exigir que o texto cifrado e/ou texto puro produza um determinado valor de hash (que pode ser um valor hash com chave) antes dos resultados de uma operação sendo fornecida em resposta a um pedido. As políticas podem especificar uma ou mais restrições e/ou permissões que são baseadas, pelo menos em parte, em tempo, Protocolo de Internet (IP) do qual pedidos se originam, tipos de conteúdo a serem criptografados/descriptografados, AAD, e/ou outras informações.
[0106] Numerosas variações são consideradas como estando dentro do escopo da presente revelação. Por exemplo, várias modalidades discutidas acima discutem interação com um serviço de autenticação separado. No entanto, os componentes dos ambientes discutidos acima podem ter os seus próprios componentes de autorização e determinar se os pedidos são autênticos podem ou não envolver a comunicação com uma outra entidade. Além disso, cada um dos ambientes discutidos acima é ilustrado em ligação com operações específicas e capacidades ativadas pelos ambientes. As técnicas discutidas acima, em ligação com ambientes diferentes podem ser combinadas e, em geral, em ambientes de acordo com a presente invenção podem permitir a utilização flexível das várias técnicas. Como apenas um exemplo, um serviço de criptografia pode ser utilizado para, a pedido, criptografar ambas as chaves e outros conteúdos, tais como objetos de dados não dados chave. Como outro exemplo, um serviço de criptografia pode ser configurado para receber e responder aos pedidos de ambos os usuários (por exemplo, os clientes de um provedor de recursos de computação) e outros serviços (por exemplo, serviços de armazenamento de dados). Em algumas modalidades, um serviço de criptografia e/ou o serviço de autenticação associado pode ser configurado para utilização com um dispositivo móvel para realizar criptografia de dados armazenados. Em algumas modalidades pelo menos um pino de desbloqueio pode ser validado por um serviço de criptografia. Em ainda outras modalidades de um serviço de criptografia, como parte de uma operação, poderá receber informações geradas por um atestado de hardware. Em algumas modalidades um serviço de criptografia pode ser operável para fornecer serviços de gerenciamento de direitos digitais com relação ao conteúdo.
[0107] Modalidades da invenção podem ser descritas tendo em conta os seguintes pontos: 1. Método implementado por computador para fornecer serviços de armazenamento de dados, que compreende: sob o controle de um ou mais sistemas de computação de um provedor de serviços de recursos de computação, os um ou mais sistemas de computação configurado com instruções executáveis, receber, a partir de um cliente do provedor de serviços de recursos de computação, um pedido para utilizar um serviço de armazenamento de dados do provedor de serviços de recursos de computação; como resultado de ter recebido o pedido para utilizar o serviço de armazenamento de dados, fazer com que um serviço de criptografia do provedor de serviços de recursos de computação proporcione a informação criptografada pelo serviço de criptografia usando uma chave que é inacessível ao serviço de armazenamento de dados, a informação utilizável para se obter o objeto de dados em forma não criptografada e a chave a partir de uma pluralidade de chaves gerenciadas pelo serviço de criptografia em nome de uma pluralidade de clientes do provedor de serviços de recursos de computação; e utilizar o serviço de armazenamento de dados para armazenar as informações criptografadas. 2. Método implementado por computador, de acordo com a cláusula 1, em que: fazer o serviço de criptografia fornecer as informações criptografadas inclui o fornecimento de informações de prova ao serviço de criptografia que permite ao serviço de criptografia para verificar a autenticidade do pedido recebido; e a informação de prova é necessária para o serviço de criptografia para fornecer a informação criptografada. 3. Método implementado por computador, de acordo com a cláusula 1 ou 2, em que: o pedido para utilizar o serviço de armazenamento de dados inclui um pedido para armazenar, de forma criptografada, um objeto de dados usando o serviço de armazenamento de dados; a informação inclui uma segunda chave utilizada para criptografar o objeto de dados; e usar o serviço de armazenamento de dados para armazenar as informações criptografadas inclui usar o serviço de armazenamento de dados para armazenar, de forma criptografada, o objeto de dados. 4. Método implementado por computador, de acordo com qualquer uma das cláusulas anteriores, em que o método compreende ainda: receber um pedido para recuperar o objeto de dados do serviço de armazenamento de dados; obter as informações criptografadas do serviço de armazenamento de dados; fazer o serviço de criptografia descriptografar as informações criptografadas; e usar a informação para fornecer o objeto de dados, em resposta ao pedido recebido para obter o objeto de dados. 5. Método implementado por computador, de acordo com a cláusula 4, em que usar a informação para fornecer o objeto de dados, em resposta ao pedido recebido para obter o objeto de dados inclui usar a chave para descriptografar o objeto de dados criptografado. 6. Método implementado por computador, de acordo com qualquer uma das cláusulas anteriores, em que o método compreende ainda: fornecer ao serviço de criptografia a informação criptografada para a descodificação; e fazer o serviço de criptografia verificar se uma política sobre a chave permite que a chave seja usada para descriptografar as informações criptografadas e, quando permitida pela política, descriptografar as informações criptografadas. 7. Método implementado por computador, de acordo com qualquer uma das cláusulas anteriores, em que: o método compreende ainda a recepção, por parte do cliente, informações representando uma política sobre a chave; fazer o serviço de criptografia operar de acordo com a política representada. 8. Método implementado por computador, de acordo com qualquer uma das cláusulas anteriores, em que o método compreende ainda: receber, do serviço de criptografia, uma política sobre a chave; verificar se a política recebida permite cumprir o pedido; e fazer o serviço de criptografia fornecer a informação criptografada é dependente da política que permite o cumprimento do pedido. fazer o serviço de criptografia operar de acordo com a política representada. 9. Método implementado por computador para fornecer serviços de criptografia, que compreende: sob o controle de um ou mais sistemas de computação configurados com instruções executáveis, como resultado de um serviço que recebe um primeiro pedido para utilizar o serviço, receber um segundo pedido para executar uma ou mais operações criptográficas que são necessárias para cumprir o primeiro pedido; realizar as uma ou mais operações criptográficas requeridas; e proporcionar um ou mais resultados de realizar as requeridas uma ou mais operações criptográficas para o serviço, os um ou mais resultados necessários para pelo menos uma forma de cumprir o pedido recebido para utilizar o serviço. 10. Método implementado por computador, de acordo com a cláusula 9, em que as uma ou mais operações criptográficas incluem descriptografar uma chave necessária para cumprir o pedido recebido para utilizar o serviço de dados. 11. Método implementado por computador, de acordo com a cláusula 9 ou 10, em que: o método compreende, ainda, receber informação de verificação de que o pedido recebido utilizando o serviço de dados é autêntico; e realizar uma ou mais das operações criptográficas requer a recepção da informação verificando que o pedido recebido para utilizar o serviço é autêntico. 12. Método implementado por computador, de acordo com qualquer uma das cláusulas 9 a 11, em que o pedido recebido para utilizar o serviço é um pedido para obter os dados armazenados pelo serviço. 13. Método implementado por computador, de acordo com qualquer uma das cláusulas 9 a 12, em que o pedido recebido para utilizar o serviço é um pedido para armazenar dados de utilização do serviço. 14. Método implementado por computador, de acordo com qualquer uma das cláusulas 9 a 13, que compreende ainda selecionar, a partir de uma pluralidade de chaves que compreende, pelo menos, duas chaves cada uma gerida pelo serviço de criptografia em nome de uma entidade diferente, pelo menos, uma chave para a realização de uma ou mais operações criptográficas. 15. Método implementado por computador, de acordo com qualquer uma das cláusulas 9 a 14, em que: as uma ou mais operações criptográficas requerem o uso de uma chave; o método compreende ainda receber, para a chave, uma política para a chave; e executar as uma ou mais operações criptográficas requer o desempenho de uma ou mais operações criptográficas para estarem em conformidade com a política recebida. 16. Método implementado por computador, de acordo com qualquer uma das cláusulas 9 a 15, compreendendo ainda: receber uma política para uma chave utilizável para realizar uma ou mais operações criptográficas; verificar se uma política existente permite a implementação da política; e rejeitar a política recebida como um resultado da política existente não permitindo a implementação da política. 17. Sistema de computação, que compreende: um ou mais processadores; e memória que armazena instruções executáveis por um ou mais processadores para fazer com que o sistema de computação implemente, pelo menos: um serviço de criptografia configurado para, pelo menos: armazenar uma pluralidade de chaves de modo a que a pluralidade de chaves é inacessível a um serviço diferente do serviço de criptografia; e ao detectar um pedido pendente no serviço, selecionar uma chave a partir da pluralidade de chaves utilizando a chave selecionada para executar uma ou mais operações criptográficas necessárias para cumprir o pedido pendente. 18. Sistema de computação, de acordo com a cláusula 17, em que a detecção do pedido pendente ao serviço inclui recepção, a partir do serviço, notificação e comprovação do pedido pendente no serviço. 19. Sistema de computação, de acordo com a cláusula 17 ou 18, em que: o sistema de computação é operado por um provedor de serviços de recursos de computação; o pedido é gerado por um cliente de uma pluralidade de clientes do provedor de recursos de computação; e cada chave da pluralidade de chaves possui um cliente correspondente do provedor de recursos de computação. 20. Sistema de computação, de acordo com qualquer uma das cláusulas 17 a 19, em que o serviço de criptografia é ainda configurado para verificar se o pedido pendente está autorizado. 21. Sistema de computação, de acordo com qualquer uma das cláusulas 17 a 20, que compreende ainda um serviço de medição configurado para receber a saída do serviço de criptografia e gerar registos de contabilidade baseados, pelo menos em parte, na saída recebida. 22. Sistema de computação, de acordo com qualquer uma das cláusulas 17 a 21, em que o serviço de criptografia é ainda configurado para: armazenar política de informação que define uma ou mais políticas para cada um dos, pelo menos, um subconjunto da pluralidade de chaves; e fazer cumprir as definidas uma ou mais políticas. 23. Sistema de computação, de acordo com a cláusula 22, em que: o sistema de computação é operado por um provedor de serviços de recursos de computação; cada chave da pluralidade de chaves corresponde a um cliente do provedor de recursos de computação; e o serviço de criptografia é configurado para: receber, a partir de clientes do provedor de recursos de computação, atualizações de política; e atualizar as informações da política armazenadas de acordo com as atualizações de política recebidas. 24. Meio de armazenamento legível por computador tendo armazenado no mesmo instruções que, quando executadas por um ou mais processadores de um sistema de computação, fazem o sistema de computação, pelo menos: receber um pedido para utilizar um serviço; como resultado de ter recebido o pedido para utilizar o serviço: fornecer a uma prova de serviço de criptografia, com base, pelo menos em parte, do pedido, que o pedido foi recebido, gerando assim o serviço de criptografia usando uma chave para realizar uma ou mais operações criptográficas em informações que, depois de uma ou mais operações criptográficas foram realizados, é utilizável para cumprir o pedido para utilizar o serviço; e cumprir o pedido para utilizar o serviço utilizando a informação sobre a qual as uma ou mais operações criptográficas foram realizadas. 25. Meio de armazenamento legível por computador, de acordo com a cláusula 24, em que a prova compreende informação de autenticação que permite que o serviço de criptografia verifique se o pedido para utilizar o serviço é autêntico. 26. Meio de armazenamento legível por computador, de acordo com a cláusula 24 ou 25, em que: o pedido para utilizar o serviço inclui um pedido para executar uma operação em conexão com um objeto de dados; e a informação é a chave usada para criptografar o objeto de dados. 27. Meio de armazenamento legível por computador, de acordo com qualquer uma das cláusulas 24-26, em que as instruções, quando executadas por um ou mais processadores, fazem o serviço de criptografia aplicar uma ou mais políticas sobre a chave, as uma ou mais políticas sendo determinantes de se um ou mais operações criptográficas são realizáveis usando a chave. 28. Meio de armazenamento legível por computador, de acordo com qualquer uma das cláusulas 24-27, em que o pedido para utilizar o serviço é um pedido para executar uma operação em conexão com um objeto de dados. 29. Meio de armazenamento legível por computador, de acordo com qualquer uma das cláusulas 24-28, em que fazer o serviço de criptografia usar a chave para executar uma ou mais operações criptográficas inclui o fornecimento de um identificador da chave para permitir que o serviço de criptografia selecione a chave de uma pluralidade de chaves armazenadas de acordo com o serviço de criptografia.
[0108] A FIG. 19 ilustra aspectos de um exemplo de ambiente 1900 para execução dos aspectos de acordo com várias modalidades. Como será apreciado, embora num ambiente baseado na Web seja usado para fins de explicação, podem ser utilizados ambientes diferentes, como apropriado, para implementar várias modalidades. O ambiente inclui um dispositivo cliente eletrônico 1902, que pode incluir qualquer dispositivo apropriado operável para enviar e receber pedidos, mensagens ou informações através de uma rede adequada 1904 e transmitir informações de transmissão para um usuário do dispositivo. Exemplos de tais dispositivos clientes incluem computadores pessoais, telefones celulares, dispositivos de mensagens portáteis, computadores portáteis, set-top boxes, assistentes de dados pessoais, leitores de livros eletrônicos e similares. A rede pode incluir qualquer rede apropriada, incluindo uma intranet, a Internet, uma rede celular, uma rede de área local ou qualquer outro tipo de rede ou uma combinação destes. Os componentes utilizados para um tal sistema podem depender, pelo menos em parte, do tipo de rede e/ou do ambiente selecionado. Protocolos e componentes para comunicar através de uma rede deste tipo são bem conhecidos e não serão aqui discutidos em detalhes. Comunicação através da rede pode ser ativada através de conexões e combinações com ou sem fio dos mesmos. Neste exemplo, a rede inclui a Internet, como o ambiente inclui um servidor Web 1906 para receber os pedidos e servindo o conteúdo em resposta ao mesmo, embora para outras redes de um dispositivo alternativo que serve a um propósito semelhante poderia ser usado como seria aparente para um especialista na técnica.
[0109] O ambiente ilustrativo inclui, pelo menos, um servidor de aplicativo 1908 e um armazenamento de dados 1910. Deve ser entendido que pode haver várias camadas, servidores de aplicativos, ou outros elementos, componentes ou processos, que podem ser conectados ou configurados de modo que, podem interagir para executar tarefas como a obtenção de dados a partir de um armazenamento de dados apropriado. Tal como aqui utilizado, o termo “armazenamento de dados” refere-se a qualquer dispositivo ou a combinação de dispositivos com capacidade de armazenar, acessar e recuperar dados, que pode incluir qualquer combinação e número de servidores de dados, bases de dados, dispositivos de armazenamento de dados e meios de armazenamento de dados, em qualquer padrão, ambiente distribuído ou agrupado. O servidor de aplicativos pode incluir qualquer hardware e software apropriado para a integração com o armazenamento de dados, conforme necessário para executar os aspectos de um ou mais aplicativos para o dispositivo cliente, manipulação de uma maioria do acesso a dados e lógica de negócios para um aplicativo. O servidor de aplicativos fornece serviços de controle de acesso em cooperação com o armazenamento de dados, e é capaz de gerar conteúdo, como texto, gráficos, áudio e/ou vídeo para ser transferido para o usuário, que pode ser servido para o usuário pelo servidor Web na forma de HyperText Markup Language (“HTML”), Extensible Markup Language (“XML”) ou outra linguagem estruturada adequada neste exemplo. O tratamento de todos os pedidos e respostas, bem como a entrega do conteúdo entre o dispositivo cliente 1902 e o servidor de aplicativo 1908, pode ser tratado pelo servidor Web. Deve ser entendido que os servidores de Web e de aplicativos não são requeridos e são meramente exemplos de componentes, como código estruturado discutido aqui pode ser executado em qualquer computador ou dispositivo hospedeiro apropriado tal como discutido aqui em outro local.
[0110] O armazenamento de dados 1910 pode incluir várias tabelas separadas de dados, bases de dados, ou outros mecanismos de armazenamento de dados e meios para armazenar dados relativos a um aspecto particular. Por exemplo, o armazenamento de dados ilustrado inclui mecanismos para armazenar dados de produção 1912 e informação de usuário 1916, que pode ser utilizado para servir o conteúdo para o lado da produção. O armazenamento de dados também é mostrado para incluir um mecanismo para armazenar dados de log 1914, que pode ser usado para reportar, análises ou outras tais finalidades. Deve entender-se que pode haver vários outros aspectos que podem precisar ser armazenados no armazenamento de dados, tais como, por informação de imagem principal e de acesso a informação para a direita, que pode ser armazenado em qualquer um dos mecanismos acima mencionados, conforme apropriado ou em mecanismos adicionais no armazenamento de dados 1910. O armazenamento de dados 1910é operável através da lógica a ele associado, para receber instruções do servidor de aplicativos 1908 e obter, atualizar ou de outro modo processar dados em resposta ao mesmo. Em um exemplo, um usuário pode enviar um pedido de pesquisa para um determinado tipo de item. Neste caso, o armazenamento de dados pode acessar as informações do usuário para verificar a identidade do usuário, e pode acessar as informações de detalhes de catálogo para obter informações sobre os itens desse tipo. A informação pode então ser devolvida ao usuário, como em uma lista de resultados em uma página da Web que o usuário é capaz de ver através de um navegador no dispositivo do usuário 1902. Informações para um determinado item de interesse podem ser vistas em uma página dedicada ou janela do navegador.
[0111] Cada servidor tipicamente irá incluir um sistema operacional que fornece instruções de programas executáveis para a administração geral e funcionamento desse servidor, e normalmente inclui meio de armazenamento legível por computador (por exemplo, um disco rígido, memória de acesso aleatório, memória somente de leitura, etc.) armazenar instruções que, quando executadas por um processador do servidor, permitem que o servidor desempenhe as suas funções pretendidas. Implementações adequadas para o sistema de operação e funcionalidade geral dos servidores são conhecidas ou estão disponíveis comercialmente, e são facilmente implementadas por pessoas com conhecimentos normais na técnica, particularmente à luz da presente divulgação. Em algumas modalidades, um sistema operacional pode ser configurado de acordo com ou validado nos termos de um ou mais regimes de validação, tais como nível 4 de Evaluation Assurance Level (EAL).
[0112] O ambiente em uma modalidade é um ambiente de computação distribuído, utilizando vários sistemas de computação e componentes que estão interligados através de links de comunicação, utilizando uma ou mais redes de computadores ou conexões diretas. No entanto, será apreciado por aqueles técnicos no assunto que um tal sistema poderia funcionar igualmente bem em um sistema que tem menos ou um maior número de componentes que são ilustrados na FIG. 19. Assim, a descrição do sistema de 1900 na FIG. 19 deve ser considerada como sendo de natureza ilustrativa, e não limitativa do escopo da revelação.
[0113] As várias modalidades podem ainda ser implementadas numa vasta variedade de ambientes operacionais, o que em alguns casos pode incluir um ou mais computadores de usuário, dispositivos de computação ou dispositivos de processamento que podem ser utilizados para operar qualquer um de uma série de aplicativos. Dispositivos do usuário ou cliente podem incluir qualquer um de uma série de computadores pessoais de uso geral, tais como computadores desktop ou laptop executando um sistema operacional padrão, bem como aparelhos celulares, sem fios e portáteis executando o software móvel e capaz de suportar um número de redes e de protocolos de mensagens. Um tal sistema pode também incluir um certo número de estações de trabalho com qualquer um de uma variedade de sistemas operacionais comercialmente disponíveis e outros aplicativos conhecidos, para fins, tais como desenvolvimento e gestão de base de dados. Estes dispositivos podem também incluir outros dispositivos eletrônicos, tais como terminais de manequim, thin-clients, sistemas de jogos e outros dispositivos capazes de se comunicar através de uma rede.
[0114] A maioria das modalidades utiliza, pelo menos, uma rede que seria familiar para os especialistas na técnica para suportar comunicações utilizando qualquer um de uma variedade de modelos e de protocolos comercialmente disponíveis, tais como Transmission Control Protocol/Internet Protocol (“TCP/IP”), Open System Interconnection (“OSI”), File Transfer Protocol (“FTP”), Universal Plug and Play (“UPnP”), Network File System (“NFS”), Common Internet File System (“CIFS”) e AppleTalk. A rede pode ser, por exemplo, uma rede de área local, uma rede de área vasta, uma rede privada virtual, a Internet, uma intranet, extranet, uma rede telefônica pública, uma rede de infravermelhos, uma rede sem fios e qualquer combinação das mesmas ligadas.
[0115] Em modalidades que utilizam um servidor Web, o servidor Web pode executar qualquer um de uma variedade de aplicativos de servidor ou mid-tier, incluindo servidores Hypertext Transfer Protocol (“HTTP”), servidores FTP, servidores Common Gateway Interface (“CGI”), servidores de dados, servidores de Java e servidores de aplicativos de negócios. Os servidores também podem ser capazes de executar programas ou scripts em pedidos de resposta a partir de dispositivos do usuário, como pela execução de um ou mais aplicativos Web que podem ser implementados como um ou mais scripts ou programas escritos em qualquer linguagem de programação, como Java®, C, # ou C++ ou qualquer linguagem de script, como Perl, Python ou TCL, bem como suas combinações. Os servidores podem também incluir servidores de banco de dados, incluindo, entre outros, aqueles comercialmente disponíveis a partir de Oracle®, Microsoft®, Sybase e IBM®.
[0116] O ambiente pode incluir uma variedade de armazenamentos de dados e outros meios de armazenamento de memória e como discutido acima. Estes podem residir em vários locais, tais como em um meio de armazenamento local para (e/ou residentes em) um ou mais computadores remotos ou a partir de qualquer um ou todos os computadores da rede. Num conjunto particular de modalidades, a informação pode residir numa rede de área de armazenamento (“SAN”) familiar aos especialistas na técnica. Do mesmo modo, todos os arquivos necessários para realizar as funções atribuídas aos computadores, servidores ou outros dispositivos de rede podem ser armazenados localmente e/ou remotamente, conforme apropriado. No caso de um sistema inclui dispositivos computadorizados, cada tal dispositivo pode incluir elementos de hardware que podem ser eletricamente acoplados, através de um barramento, os elementos, incluindo, por exemplo, pelo menos uma unidade de processamento central (“CPU”), pelo menos um dispositivo de entrada (por exemplo, um mouse, teclado, controlador, tela sensível ao toque ou um teclado), e pelo menos um dispositivo de saída (por exemplo, um dispositivo de visualização, uma impressora ou alto-falante). Tal sistema pode também incluir um ou mais dispositivos de armazenamento, como unidades de disco, dispositivos de armazenamento ópticos e dispositivos de armazenamento de estado sólido, como memória de acesso aleatório (“RAM”) ou memória apenas de leitura (“ROM”), bem como dispositivos de mídia removíveis, cartões de memória, cartões de memória flash, etc. Várias modalidades da presente divulgação também podem ser implementadas usando hardware personalizado, incluindo, entre outros, os processadores criptográficos personalizados, cartões inteligentes e/ou módulos de segurança de hardware.
[0117] Tais dispositivos podem também incluir um leitor de meio de armazenamento legível por computador, um dispositivo de comunicação (por exemplo, um modem, uma placa de rede (com ou sem fios), um dispositivo de comunicação de infravermelhos, etc.) e a memória de trabalho como descrito acima. O leitor de meio de armazenamento legível por computador pode ser conectado com, ou configurado para receber, um meio de armazenamento legível por computador, representando dispositivos de armazenamento remoto, local, fixo e/ou removível, bem como meio de armazenamento para conter temporariamente e/ou de forma mais permanente, armazenar, transmitir e recuperar informações legíveis por computador. O sistema e vários dispositivos normalmente também incluirão um número de aplicativos de software, módulos, serviços ou outros elementos localizados dentro de pelo menos um dispositivo de memória de trabalho, incluindo um sistema operacional e programas de aplicativos, como um aplicativo cliente ou navegador da Web. Deve ser apreciado que modalidades alternativas podem ter numerosas variações do acima descrito. Por exemplo, o hardware personalizado pode também ser utilizado e/ou elementos particulares podem ser implementados em hardware, software (incluindo software portátil, tal como applets) ou ambos. Além disso, a ligação a outros dispositivos de computação, tais como os dispositivos de entrada/saída de rede podem ser empregados.
[0118] Meios de armazenamento e meios legíveis por computador contendo o código, ou porções de código, podem incluir quaisquer meios adequados conhecidos ou utilizados na técnica, incluindo meios de armazenamento e meios de comunicação, tais como, entre outros, mídia volátil e não volátil, removíveis e não removíveis implementadas em qualquer método ou tecnologia para armazenamento e/ou transmissão de informação, tais como instruções legíveis como computadores, estruturas de dados, módulos de programas ou outros dados, incluindo RAM, ROM, memória eletricamente apagável programável apenas de memória (“EEPROM”), memória flash ou outra tecnologia de memória, memória apenas de leitura CD (“CD- ROM”), disco versátil digital (DVD) ou outro de armazenamento óptico, cassetes magnéticos, fita magnética, disco magnético ou outros dispositivos de armazenamento magnético ou qualquer outro meio que possa ser utilizado para armazenar a informação desejada e que pode ser acessado pelo dispositivo de um sistema. Com base na divulgação e os ensinamentos aqui proporcionados, uma pessoa com conhecimentos correntes na técnica irá apreciar outras formas e/ou métodos para implementar as várias modalidades.
[0119] O relatório descritivo e os desenhos são, por conseguinte, para serem consideradas, em um exemplo ilustrativo em vez de num sentido restritivo. Será, no entanto, evidente que várias modificações e alterações podem ser feitas para isso, sem se afastar do espírito e do escopo mais amplo da invenção como estabelecido nas reivindicações.
[0120] Outras variações estão dentro do espírito da presente divulgação. Assim, enquanto as técnicas divulgadas são susceptíveis a várias modificações e construções alternativas, certas modalidades ilustradas do mesmo são mostradas nos desenhos e foram descritas acima em detalhes. Deve ser entendido, contudo, que não há intenção de limitar a invenção à forma ou formas específicas divulgadas, mas, pelo contrário, a intenção é cobrir todas as modificações, construções alternativas e equivalentes que estão dentro do espírito e escopo da invenção, tal como definido nas reivindicações anexas.
[0121] O uso dos termos “um” e “uma” e “o” e similares referentes no contexto da descrição dos modelos de realização descritos (especialmente no contexto das seguintes reivindicações) devem ser entendidos para cobrir ambos o singular e o plural, a menos que de outra forma aqui indicado ou claramente contradito pelo contexto. Os termos “compreendendo”, “tendo”, “incluindo”, e “contendo” devem ser interpretados como termos abertos (isto é, que significa “incluindo, entre outros,”), a menos que indicado de outra forma. O termo “ligado” deve ser interpretado como parcial ou totalmente contido no interior, ligado a, ou unido entre si, mesmo que haja algo interveniente. A menção de faixas de valores aqui é meramente destinada a servir como um método abreviado de referir individualmente cada valor separado que cai dentro do intervalo, a menos que de outro modo aqui indicado, e cada valor separado incorporado na especificação como se fosse aqui descrito individualmente. Todos os métodos aqui descritos podem ser realizados em qualquer ordem adequada, a menos que de outro modo aqui indicado ou de outro modo claramente contradito pelo contexto. O uso de qualquer e todos os exemplos, ou linguagem exemplificativa (por exemplo, “tal como”) aqui proporcionada, pretende apenas iluminar melhor as modalidades da invenção e não constituem uma limitação do escopo da invenção reivindicada, a menos que de outra forma. Nenhuma linguagem na especificação deve ser entendida como indicando qualquer elemento não reivindicado como essencial para a prática da invenção.
[0122] Modalidades preferidas da presente invenção são aqui descritas, incluindo o melhor modo conhecido pelos inventores para realizar a invenção. Variações destas modalidades preferidas podem tornar-se evidentes para os especialistas na técnica após a leitura da descrição anterior. Os inventores esperam que especialistas empreguem tais variações, como apropriado, e os inventores pretendem que a invenção seja praticada de outro modo do que o aqui especificamente descrito. Assim, a presente invenção inclui todas as modificações e equivalentes do assunto mencionado nas reivindicações anexas, conforme permitido pela lei aplicável. Além disso, qualquer combinação dos elementos acima descritos em todas as variações possíveis do mesmo é abrangida pela invenção a menos que de outro modo aqui indicado ou de outro modo claramente contradito pelo contexto.
[0123] Todas as referências, incluindo as publicações, pedidos de patentes e patentes aqui citadas são aqui incorporadas por referência na mesma extensão como se cada referência fosse indicada individualmente e especificamente para ser incorporada por referência e foram apresentados na sua totalidade neste documento.

Claims (15)

1. Método implementado por computador para fornecer serviços de criptografia, CARACTERIZADO pelo fato de que compreende: um ou mais sistemas de computação de um primeiro serviço configurado com instruções executáveis, receber, como um resultado de um segundo serviço recebendo um primeiro pedido para utilizar o segundo serviço, um segundo pedido para executar uma ou mais operações criptográficas que são necessárias para cumprir o primeiro pedido; realizar as requeridas uma ou mais operações criptográficas após verificar a autenticidade do segundo pedido com base pelo menos em parte em informações de prova configuradas para permitir realização das requeridas uma ou mais operações criptográficas, em que as informações de prova são fornecidas pelo segundo serviço no segundo pedido e usar, de forma verificável, uma chave compartilhada entre o primeiro serviço e um serviço de autenticação; fornecer um ou mais resultados da realização das requeridas uma ou mais operações criptográficas para o segundo serviço, os um ou mais resultados necessários para pelo menos uma forma de cumprir o pedido recebido para utilizar o segundo serviço.
2. Método implementado por computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as uma ou mais operações criptográficas incluem descriptografar uma chave necessária para cumprir o pedido recebido para utilizar o segundo serviço.
3. Método implementado por computador, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que: as informações de prova compreendem informação que verifica se o pedido recebido para utilizar o segundo serviço é autêntico; e realizar as uma ou mais operações criptográficas requer a recepção da informação que verifica se o pedido recebido para utilizar o segundo serviço é autêntico.
4. Método implementado por computador, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o pedido recebido para utilizar o segundo serviço é um pedido para obter os dados armazenados pelo segundo serviço.
5. Método implementado por computador, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que o pedido recebido para utilizar o segundo serviço é um pedido para armazenar dados utilizando o segundo serviço.
6. Método implementado por computador, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que compreende ainda selecionar, a partir de uma pluralidade de chaves que compreende pelo menos duas chaves, cada uma gerida pelo serviço de criptografia em nome de uma entidade diferente, pelo menos uma chave para executar as uma ou mais operações criptográficas.
7. Método implementado por computador, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que: as uma ou mais operações criptográficas requerem o uso de uma chave; o método compreende ainda receber, para a chave, uma política para a chave; e realizar as uma ou mais operações criptográficas requer a realização das uma ou mais operações criptográficas para estar em conformidade com a política recebida.
8. Método implementado por computador, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que compreende ainda: receber uma política para uma chave utilizável para realizar as uma ou mais operações criptográficas; verificar se uma política existente permite a implementação da política; e rejeitar a política recebida como um resultado da política existente não permitir a implementação da política.
9. Sistema de computação de um primeiro serviço, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma memória que armazena instruções executáveis pelos um ou mais processadores para fazer com que o sistema de computação implemente pelo menos: um serviço de criptografia configurado para pelo menos: armazenar uma pluralidade de chaves de modo a que a pluralidade de chaves seja inacessível a um segundo serviço diferente do serviço de criptografia; e ao receber um pedido do segundo serviço, selecionar uma chave da pluralidade de chaves e usar a chave selecionada para realizar uma ou mais operações criptográficas após verificar a autenticidade do pedido com base pelo menos em parte em informações de prova, em que as informações de prova são fornecidas pelo segundo serviço no pedido e usar, de forma verificável, uma chave compartilhada entre o serviço de criptografia e um serviço de autenticação.
10. Sistema de computação, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que receber o pedido do segundo serviço inclui receber, a partir do segundo serviço, notificação e prova do pedido pendente no segundo serviço.
11. Sistema de computação, de acordo com a reivindicação 9 ou 10, CARACTERIZADO pelo fato de que: o sistema de computação é operado por um provedor de serviços de recursos de computação; o pedido é gerado por um cliente de uma pluralidade de clientes do provedor de serviços de recursos de computação; e cada chave da pluralidade de chaves possui um cliente correspondente do provedor de serviços de recursos de computação.
12. Sistema de computação, de acordo com qualquer uma das reivindicações 9 a 11, CARACTERIZADO pelo fato de que o serviço de criptografia é ainda configurado para verificar se o pedido está autorizado.
13. Sistema de computação, de acordo com qualquer uma das reivindicações 9 a 12, CARACTERIZADO pelo fato de que compreende ainda um serviço de medição configurado para receber a saída do serviço de criptografia e gerar registros de contabilidade baseado pelo menos em parte na saída recebida.
14. Sistema de computação, de acordo com qualquer uma das reivindicações 9 a 13, CARACTERIZADO pelo fato de que o serviço de criptografia é ainda configurado para: armazenar informação de política que define uma ou mais políticas para cada um de pelo menos um subconjunto da pluralidade de chaves; e fazer cumprir as definidas uma ou mais políticas.
15. Sistema de computação, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que: o sistema de computação é operado por um provedor de serviços de recursos de computação; cada chave da pluralidade de chaves corresponde a um cliente do provedor de serviços de recursos de computação; e o serviço de criptografia é configurado para: receber, a partir de clientes do provedor de serviços de recursos de computação, atualizações de política; e atualizar as informações da política armazenadas de acordo com as atualizações de política recebidas.
BR112015019378-1A 2013-02-12 2014-02-07 Método implementado por computador para fornecer serviços de criptografia e sistema de computação de um primeiro serviço. BR112015019378B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/764,963 US9590959B2 (en) 2013-02-12 2013-02-12 Data security service
US13/764.963 2013-02-12
PCT/US2014/015404 WO2014126813A1 (en) 2013-02-12 2014-02-07 Data security service

Publications (2)

Publication Number Publication Date
BR112015019378A2 BR112015019378A2 (pt) 2017-07-18
BR112015019378B1 true BR112015019378B1 (pt) 2022-05-03

Family

ID=51298333

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015019378-1A BR112015019378B1 (pt) 2013-02-12 2014-02-07 Método implementado por computador para fornecer serviços de criptografia e sistema de computação de um primeiro serviço.

Country Status (10)

Country Link
US (2) US9590959B2 (pt)
EP (2) EP3585032B1 (pt)
JP (3) JP6290932B2 (pt)
KR (2) KR102055116B1 (pt)
CN (2) CN105103119B (pt)
AU (2) AU2014216607B2 (pt)
BR (1) BR112015019378B1 (pt)
CA (2) CA3173681A1 (pt)
SG (3) SG11201505742PA (pt)
WO (1) WO2014126813A1 (pt)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9628268B2 (en) 2012-10-17 2017-04-18 Box, Inc. Remote key management in a cloud-based environment
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9697358B2 (en) * 2013-06-13 2017-07-04 Google Inc. Non-volatile memory operations
US9456003B2 (en) 2013-07-24 2016-09-27 At&T Intellectual Property I, L.P. Decoupling hardware and software components of network security devices to provide security software as a service in a distributed computing environment
US9298942B1 (en) * 2013-12-31 2016-03-29 Google Inc. Encrypted augmentation storage
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10560441B2 (en) * 2014-12-17 2020-02-11 Amazon Technologies, Inc. Data security operations with expectations
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
CN104683350A (zh) * 2015-03-13 2015-06-03 北京深思数盾科技有限公司 一种可扩展的信息安全服务***及方法
US9727742B2 (en) * 2015-03-30 2017-08-08 Airbnb, Inc. Database encryption to provide write protection
US10469477B2 (en) * 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
US10237246B1 (en) 2015-07-31 2019-03-19 Symphony Communication Services Holdings Llc Secure message search
US9767318B1 (en) 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US10412068B2 (en) * 2015-12-07 2019-09-10 Salesforce.Com, Inc. API authentication
US20170187752A1 (en) * 2015-12-24 2017-06-29 Steffen SCHULZ Remote attestation and enforcement of hardware security policy
CN107347058B (zh) * 2016-05-06 2021-07-23 阿里巴巴集团控股有限公司 数据加密方法、数据解密方法、装置及***
US10581807B2 (en) * 2016-08-29 2020-03-03 International Business Machines Corporation Using dispersal techniques to securely store cryptographic resources and respond to attacks
EP3883216A1 (en) * 2016-09-23 2021-09-22 Apple Inc. Managing credentials of multiple users on an electronic device
US10819709B1 (en) * 2016-09-26 2020-10-27 Symphony Communication Services Holdings Llc Authorizing delegated capabilities to applications in a secure end-to-end communications system
US10572317B2 (en) * 2016-12-27 2020-02-25 Dropbox, Inc. Collaboration enhanced with kernel event triggers
US10331623B2 (en) 2017-10-16 2019-06-25 Dropbox, Inc. Workflow functions of content management system enforced by client device
US10623183B2 (en) * 2017-11-01 2020-04-14 International Business Machines Corporation Postponing entropy depletion in key management systems with hardware security modules
CN108259169B (zh) * 2018-01-09 2021-07-20 北京大学深圳研究生院 一种基于区块链云存储的文件安全分享方法及***
US10728025B2 (en) 2018-04-13 2020-07-28 Amazon Technologies, Inc. Encryption by default in an elastic computing system
US11132673B1 (en) * 2018-04-25 2021-09-28 Dmitry Mikhailov Use of secure chips for storage of hashed data and private keys in hardware cryptowallets
US11005971B2 (en) * 2018-08-02 2021-05-11 Paul Swengler System and method for user device authentication or identity validation without passwords or matching tokens
US10867052B1 (en) * 2018-09-25 2020-12-15 Amazon Technologies, Inc. Encryption intermediary for volume creation
US20200111080A1 (en) * 2018-10-08 2020-04-09 BitGo Holdings, Inc. Security Secret Interface and Token Wrap Structure Apparatuses, Methods and Systems
US11128459B2 (en) * 2018-11-28 2021-09-21 Its, Inc. Mitigating service disruptions in key maintenance
CN110431803B (zh) 2019-03-29 2022-11-18 创新先进技术有限公司 基于身份信息管理加密密钥
JP6871411B2 (ja) 2019-03-29 2021-05-12 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 暗号動作のセキュアな実行
EP3610607B1 (en) 2019-03-29 2021-08-25 Advanced New Technologies Co., Ltd. Cryptographic key management based on identity information
SG11201908938PA (en) 2019-03-29 2019-10-30 Alibaba Group Holding Ltd Cryptography chip with identity verification
US11997190B2 (en) * 2019-06-05 2024-05-28 Mastercard International Incorporated Credential management in distributed computing system
EP3748525B1 (en) * 2019-06-05 2023-02-15 Mastercard International Incorporated Credential management in distributed computing system
EP3748526A1 (en) * 2019-06-05 2020-12-09 Mastercard International Incorporated Security model for distributed computing system
CN112003690B (zh) * 2019-08-16 2024-01-12 华控清交信息科技(北京)有限公司 密码服务***、方法及装置
US11411731B2 (en) * 2019-09-03 2022-08-09 Fujitsu Limited Secure API flow
US11790092B1 (en) * 2020-05-26 2023-10-17 Amazon Technologies, Inc. Cryptoprocessor access management
US11475140B1 (en) * 2020-11-24 2022-10-18 Amazon Technologies, Inc. Enclave-based cryptography services in edge computing environments
US11556659B1 (en) 2021-03-03 2023-01-17 Amazon Technologies, Inc. Partially encrypted snapshots

Family Cites Families (234)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US809112A (en) * 1905-06-28 1906-01-02 Dolphis Joyal Lamp-burner.
US6175625B1 (en) 1944-12-15 2001-01-16 The United States Of America As Represented By The National Security Agency Control circuits for electric coding machines
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4918728A (en) 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US5054067A (en) 1990-02-21 1991-10-01 General Instrument Corporation Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator
US5146498A (en) 1991-01-10 1992-09-08 Motorola, Inc. Remote key manipulations for over-the-air re-keying
US5201000A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5495533A (en) 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US7904722B2 (en) * 1994-07-19 2011-03-08 Certco, Llc Method for securely using digital signatures in a commercial cryptographic system
US5826245A (en) 1995-03-20 1998-10-20 Sandberg-Diment; Erik Providing verification information for a transaction
US5633931A (en) 1995-06-30 1997-05-27 Novell, Inc. Method and apparatus for calculating message signatures in advance
US5675653A (en) 1995-11-06 1997-10-07 Nelson, Jr.; Douglas Valmore Method and apparatus for digital encryption
US5761306A (en) 1996-02-22 1998-06-02 Visa International Service Association Key replacement in a public key cryptosystem
US5933503A (en) 1996-03-15 1999-08-03 Novell, Inc Controlled modular cryptography apparatus and method
US5862220A (en) 1996-06-03 1999-01-19 Webtv Networks, Inc. Method and apparatus for using network address information to improve the performance of network transactions
US6012144A (en) 1996-10-08 2000-01-04 Pickett; Thomas E. Transaction security method and apparatus
JP3542895B2 (ja) 1997-08-22 2004-07-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 時間制約暗号システム
US6182216B1 (en) 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US6259789B1 (en) 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
US6185679B1 (en) 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
JP3659791B2 (ja) 1998-03-23 2005-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 小時間鍵生成の方法及びシステム
US6336186B1 (en) 1998-07-02 2002-01-01 Networks Associates Technology, Inc. Cryptographic system and methodology for creating and managing crypto policy on certificate servers
JP3939453B2 (ja) * 1999-01-22 2007-07-04 三菱電機株式会社 情報仲介システム
US6356941B1 (en) 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US6505299B1 (en) 1999-03-01 2003-01-07 Sharp Laboratories Of America, Inc. Digital image scrambling for image coding systems
US6546492B1 (en) 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
JP2000295209A (ja) 1999-04-09 2000-10-20 Ntt Data Corp 鍵管理方法、鍵管理システム及び記録媒体
JP4132530B2 (ja) 2000-01-24 2008-08-13 株式会社リコー 電子保存装置
US8868914B2 (en) 1999-07-02 2014-10-21 Steven W. Teppler System and methods for distributing trusted time
SE9904094D0 (sv) 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US6826609B1 (en) 2000-03-31 2004-11-30 Tumbleweed Communications Corp. Policy enforcement in a secure data file delivery system
DE10025626A1 (de) 2000-05-24 2001-11-29 Deutsche Telekom Ag Verschlüsseln von abzuspeichernden Daten in einem IV-System
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US20030021417A1 (en) 2000-10-20 2003-01-30 Ognjen Vasic Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7362868B2 (en) 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US6986040B1 (en) 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
US20050120232A1 (en) 2000-11-28 2005-06-02 Yoshihiro Hori Data terminal managing ciphered content data and license acquired by software
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7050583B2 (en) 2001-03-29 2006-05-23 Etreppid Technologies, Llc Method and apparatus for streaming data using rotating cryptographic keys
CA2358048A1 (en) 2001-09-25 2003-03-25 Luis Rueda A cryptosystem for data security
CA2358980A1 (en) 2001-10-12 2003-04-12 Karthika Technologies Inc. Distributed security architecture for storage area networks (san)
US7200747B2 (en) 2001-10-31 2007-04-03 Hewlett-Packard Development Company, L.P. System for ensuring data privacy and user differentiation in a distributed file system
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US20020076044A1 (en) 2001-11-16 2002-06-20 Paul Pires Method of and system for encrypting messages, generating encryption keys and producing secure session keys
US7865446B2 (en) 2001-12-11 2011-01-04 International Businesss Machines Corporation Method for secure electronic commercial transaction on-line processing
US7580972B2 (en) 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
JP4291970B2 (ja) 2001-12-20 2009-07-08 富士通株式会社 暗号処理装置
US7117366B2 (en) * 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US7376967B1 (en) * 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
US7146009B2 (en) * 2002-02-05 2006-12-05 Surety, Llc Secure electronic messaging system requiring key retrieval for deriving decryption keys
JP3897613B2 (ja) 2002-02-27 2007-03-28 株式会社日立製作所 公開鍵暗号方式における登録局サーバの運用方法、登録局サーバ、及びプログラム
US20030188188A1 (en) 2002-03-15 2003-10-02 Microsoft Corporation Time-window-constrained multicast for future delivery multicast
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
EP1510028A4 (en) 2002-05-23 2008-01-23 Atmel Corp CRYPTOGRAPHIC MOTOR OF TECHNICAL EQUIPMENT BASED ON ADVANCED ENCRYPTION STANDARD (AES)
US20040009815A1 (en) 2002-06-26 2004-01-15 Zotto Banjamin O. Managing access to content
EP1540628A4 (en) 2002-07-12 2010-08-04 Safenet Inc NETWORK CLOSED ENCRYPTION
US7620680B1 (en) 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US7877607B2 (en) 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management
FR2844656B1 (fr) 2002-09-18 2005-01-28 France Telecom Procede de signature electronique, programme et serveur pour la mise en oeuvre du procede
US8064508B1 (en) 2002-09-19 2011-11-22 Silicon Image, Inc. Equalizer with controllably weighted parallel high pass and low pass filters and receiver including such an equalizer
US20040107345A1 (en) 2002-10-21 2004-06-03 Brandt David D. System and methodology providing automation security protocols and intrusion detection in an industrial controller environment
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US20040143733A1 (en) 2003-01-16 2004-07-22 Cloverleaf Communication Co. Secure network data storage mediator
GB2400699B (en) 2003-04-17 2006-07-05 Hewlett Packard Development Co Security data provision method and apparatus and data recovery method and system
US20050015471A1 (en) * 2003-07-18 2005-01-20 Zhang Pu Paul Secure cluster configuration data set transfer protocol
JP4062206B2 (ja) 2003-08-01 2008-03-19 日本電気株式会社 署名復号サービスシステム及びプログラム
JP2005151529A (ja) 2003-10-20 2005-06-09 Sony Corp データ伝送方法、データ伝送装置及びデータ受信装置
US7421079B2 (en) 2003-12-09 2008-09-02 Northrop Grumman Corporation Method and apparatus for secure key replacement
US8065720B1 (en) 2004-01-06 2011-11-22 Novell, Inc. Techniques for managing secure communications
JP2005197912A (ja) 2004-01-06 2005-07-21 Nippon Telegr & Teleph Corp <Ntt> 情報開示制御方法、情報開示制御プログラム、ならびに、耐タンパ装置
US7296023B2 (en) 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
JP2005258801A (ja) 2004-03-11 2005-09-22 Matsushita Electric Ind Co Ltd 個人認証システム
EP2267624B1 (en) 2004-04-19 2017-07-12 Lumension Security S.A. A generic framework for runtime interception and execution control of interpreted languages
WO2005112335A1 (ja) 2004-05-17 2005-11-24 Mitsubishi Denki Kabushiki Kaisha 量子暗号通信装置
US20050273629A1 (en) 2004-06-04 2005-12-08 Vitalsource Technologies System, method and computer program product for providing digital rights management of protected content
US20060010323A1 (en) 2004-07-07 2006-01-12 Xerox Corporation Method for a repository to provide access to a document, and a repository arranged in accordance with the same method
KR20070030272A (ko) 2004-07-15 2007-03-15 마츠시타 덴끼 산교 가부시키가이샤 시각인증장치, 시각인증방법, 컴퓨터 프로그램, 기록매체,집적회로 및 시각인증시스템
US20060021018A1 (en) 2004-07-21 2006-01-26 International Business Machines Corporation Method and system for enabling trust infrastructure support for federated user lifecycle management
US20060048222A1 (en) 2004-08-27 2006-03-02 O'connor Clint H Secure electronic delivery seal for information handling system
US7814314B2 (en) 2004-08-31 2010-10-12 Ntt Docomo, Inc. Revocation of cryptographic digital certificates
US8315387B2 (en) 2004-11-05 2012-11-20 Nucrypt Llc System and method for data transmission over arbitrary media using physical encryption
US7607164B2 (en) 2004-12-23 2009-10-20 Microsoft Corporation Systems and processes for managing policy change in a distributed enterprise
JP4714482B2 (ja) 2005-02-28 2011-06-29 株式会社日立製作所 暗号通信システムおよび方法
US7900247B2 (en) 2005-03-14 2011-03-01 Microsoft Corporation Trusted third party authentication for web services
US7774826B1 (en) 2005-03-18 2010-08-10 Novell, Inc. System and method for determining effective policy profiles in a client-server architecture
JP4622627B2 (ja) 2005-03-30 2011-02-02 ブラザー工業株式会社 通信装置、通信システム及びプログラム
US8051487B2 (en) 2005-05-09 2011-11-01 Trend Micro Incorporated Cascading security architecture
US8312064B1 (en) 2005-05-11 2012-11-13 Symantec Corporation Method and apparatus for securing documents using a position dependent file system
US7639819B2 (en) 2005-06-16 2009-12-29 Oracle International Corporation Method and apparatus for using an external security device to secure data in a database
US8295492B2 (en) 2005-06-27 2012-10-23 Wells Fargo Bank, N.A. Automated key management system
US7784087B2 (en) 2005-08-04 2010-08-24 Toshiba Corporation System and method for securely sharing electronic documents
US8917159B2 (en) 2005-08-19 2014-12-23 CLARKE William McALLISTER Fully secure item-level tagging
US8566607B2 (en) 2005-08-26 2013-10-22 International Business Machines Corporation Cryptography methods and apparatus used with a processor
JP2007081482A (ja) 2005-09-09 2007-03-29 Canon Inc 端末認証方法及びその装置、プログラム
JP4569464B2 (ja) 2005-12-20 2010-10-27 沖電気工業株式会社 マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法
US7912994B2 (en) 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
US7925023B2 (en) 2006-03-03 2011-04-12 Oracle International Corporation Method and apparatus for managing cryptographic keys
US8064604B2 (en) 2006-04-04 2011-11-22 Oracle International Corporation Method and apparatus for facilitating role-based cryptographic key management for a database
US7751570B2 (en) 2006-04-04 2010-07-06 Oracle International Corporation Method and apparatus for managing cryptographic keys
JP2007293468A (ja) 2006-04-24 2007-11-08 Fujifilm Corp プリントサービスシステムおよびプリント処理方法
US9002018B2 (en) 2006-05-09 2015-04-07 Sync Up Technologies Corporation Encryption key exchange system and method
US20080005024A1 (en) 2006-05-17 2008-01-03 Carter Kirkwood Document authentication system
US20070283446A1 (en) 2006-06-05 2007-12-06 Kabushiki Kaisha Toshiba System and method for secure handling of scanned documents
US20080019516A1 (en) 2006-06-22 2008-01-24 Entriq Inc. Enforced delay of access to digital content
JP4943751B2 (ja) 2006-07-04 2012-05-30 株式会社内田洋行 電子データアクセス制御システム、プログラム及び情報記憶媒体
US20080025514A1 (en) 2006-07-25 2008-01-31 Coombs Jason S Systems And Methods For Root Certificate Update
US8689287B2 (en) 2006-08-17 2014-04-01 Northrop Grumman Systems Corporation Federated credentialing system and method
US20100316219A1 (en) 2007-08-06 2010-12-16 David Boubion Systems and methods for simultaneous integrated multiencrypted rotating key communication
US7953978B2 (en) 2006-09-07 2011-05-31 International Business Machines Corporation Key generation and retrieval using key servers
US8407806B2 (en) 2006-09-29 2013-03-26 Purusharth Agrawal Digital data distribution detection, deterrence and disablement system and method
GB2443244A (en) 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
WO2008121157A2 (en) 2006-10-12 2008-10-09 Rsa Security Inc. Cryptographic key management system facilitating secure access of data portions to corresponding groups of users
WO2008054329A1 (en) 2006-10-31 2008-05-08 Agency For Science, Technology And Research Device and method of generating and distributing access permission to digital object
US8090098B2 (en) 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US8213602B2 (en) 2006-11-27 2012-07-03 Broadcom Corporation Method and system for encrypting and decrypting a transport stream using multiple algorithms
US8526621B2 (en) 2006-12-01 2013-09-03 President And Fellows Of Harvard College Method and apparatus for time-lapse cryptography
RU2444071C2 (ru) 2006-12-12 2012-02-27 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Кодер, декодер и методы кодирования и декодирования сегментов данных, представляющих собой поток данных временной области
US20080172562A1 (en) 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
US8879727B2 (en) 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
KR101391152B1 (ko) 2007-04-05 2014-05-02 삼성전자주식회사 Ums 기기의 컨텐츠를 보호하기 위한 방법 및 장치
US8218761B2 (en) 2007-04-06 2012-07-10 Oracle International Corporation Method and apparatus for generating random data-encryption keys
US20090092252A1 (en) 2007-04-12 2009-04-09 Landon Curt Noll Method and System for Identifying and Managing Keys
US8112358B2 (en) 2007-06-04 2012-02-07 Qualcomm Atheros, Inc. Authorizing customer premise equipment on a sub-network
JP2008306418A (ja) 2007-06-07 2008-12-18 Kddi Corp ネットワーク負荷軽減システム、ネットワーク負荷軽減方法およびプログラム
US20080319909A1 (en) 2007-06-25 2008-12-25 Perkins George S System and method for managing the lifecycle of encryption keys
WO2009012388A1 (en) 2007-07-17 2009-01-22 Peirson William Howard Jr Systems and processes for obtaining and managing electronic signatures for real estate transaction documents
US8111828B2 (en) 2007-07-31 2012-02-07 Hewlett-Packard Development Company, L.P. Management of cryptographic keys for securing stored data
US7894626B2 (en) 2007-08-31 2011-02-22 Xerox Corporation System and method for the generation of multiple angle correlation-based digital watermarks
US8140847B1 (en) 2007-09-18 2012-03-20 Jianqing Wu Digital safe
CN101400059B (zh) 2007-09-28 2010-12-08 华为技术有限公司 一种active状态下的密钥更新方法和设备
US8549278B2 (en) 2007-10-20 2013-10-01 Blackout, Inc. Rights management services-based file encryption system and method
WO2009060283A1 (en) 2007-11-05 2009-05-14 Synaptic Laboratories Limited Method and apparatus for secure communication
KR100980831B1 (ko) 2007-12-12 2010-09-10 한국전자통신연구원 일회용 패스워드를 이용한 신뢰성 있는 통신 시스템 및방법
US8495357B2 (en) 2007-12-19 2013-07-23 International Business Machines Corporation Data security policy enforcement
US8175276B2 (en) 2008-02-04 2012-05-08 Freescale Semiconductor, Inc. Encryption apparatus with diverse key retention schemes
JP4896054B2 (ja) 2008-03-06 2012-03-14 イートライアル株式会社 個人情報管理装置,個人情報管理プログラムおよび個人情報管理システム
US8681990B2 (en) 2008-03-28 2014-03-25 International Business Machines Corporation Renewal management for data items
JP4526574B2 (ja) 2008-03-31 2010-08-18 富士通株式会社 暗号データ管理システム、および暗号データ管理方法
US8225106B2 (en) 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
US8494168B1 (en) 2008-04-28 2013-07-23 Netapp, Inc. Locating cryptographic keys stored in a cache
US8589697B2 (en) 2008-04-30 2013-11-19 Netapp, Inc. Discarding sensitive data from persistent point-in-time image
US20090300356A1 (en) 2008-05-27 2009-12-03 Crandell Jeffrey L Remote storage encryption system
US20100014662A1 (en) 2008-06-19 2010-01-21 Sami Antti Jutila Method, apparatus and computer program product for providing trusted storage of temporary subscriber data
EP2293490A1 (en) 2008-06-23 2011-03-09 Panasonic Corporation Information processing device, encryption key management method, computer program and integrated circuit
GB0811897D0 (en) 2008-06-30 2008-07-30 Steed Darren Intelligent file encapsulation
US8261320B1 (en) 2008-06-30 2012-09-04 Symantec Corporation Systems and methods for securely managing access to data
US8005859B2 (en) 2008-07-09 2011-08-23 The Go Daddy Group, Inc. Maintaining contact with a document storage file owner
US8245039B2 (en) 2008-07-18 2012-08-14 Bridgewater Systems Corp. Extensible authentication protocol authentication and key agreement (EAP-AKA) optimization
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
JP2010072916A (ja) * 2008-09-18 2010-04-02 Hitachi Software Eng Co Ltd データ保護システム及びデータ保護方法
US8302170B2 (en) 2008-09-22 2012-10-30 Bespoke Innovations S.A.R.L. Method for enhancing network application security
US9742555B2 (en) 2008-09-25 2017-08-22 Nokia Technologies Oy Encryption/identification using array of resonators at transmitter and receiver
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US8392682B2 (en) 2008-12-17 2013-03-05 Unisys Corporation Storage security using cryptographic splitting
JP2010128824A (ja) 2008-11-27 2010-06-10 Hitachi Software Eng Co Ltd ポリシーグループ識別子を利用したクライアント制御システム
CN101753302B (zh) 2008-12-09 2012-07-04 北大方正集团有限公司 一种保证sip通信安全的方法和***
US8555089B2 (en) 2009-01-08 2013-10-08 Panasonic Corporation Program execution apparatus, control method, control program, and integrated circuit
US8699704B2 (en) 2010-01-13 2014-04-15 Entropic Communications, Inc. Secure node admission in a communication network
US9165154B2 (en) 2009-02-16 2015-10-20 Microsoft Technology Licensing, Llc Trusted cloud computing and services framework
US8245037B1 (en) 2009-02-17 2012-08-14 Amazon Technologies, Inc. Encryption key management
WO2010096923A1 (en) 2009-02-27 2010-09-02 Certicom Corp. System and method for securely communicating with electronic meters
US8654970B2 (en) 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US20100250965A1 (en) 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US20100266132A1 (en) 2009-04-15 2010-10-21 Microsoft Corporation Service-based key escrow and security for device data
US8251283B1 (en) 2009-05-08 2012-08-28 Oberon Labs, LLC Token authentication using spatial characteristics
US8284945B2 (en) 2009-06-02 2012-10-09 Hewlett-Packard Development Company, L.P. Automatic change of symmetrical encryption key
US9031876B2 (en) 2009-06-19 2015-05-12 Hewlett-Packard Development Company, L.P. Managing keys for encrypted shared documents
JP2011019129A (ja) 2009-07-09 2011-01-27 Nec Corp データ管理システム及びデータ管理方法
US8799322B2 (en) 2009-07-24 2014-08-05 Cisco Technology, Inc. Policy driven cloud storage management and cloud storage policy router
US9311465B2 (en) 2009-09-21 2016-04-12 James McNulty Secure information storage and retrieval apparatus and method
IL201351A0 (en) 2009-10-01 2010-05-31 Michael Feldbau Device and method for electronic signature via proxy
US9043877B2 (en) 2009-10-06 2015-05-26 International Business Machines Corporation Temporarily providing higher privileges for computing system to user identifier
US8572369B2 (en) * 2009-12-11 2013-10-29 Sap Ag Security for collaboration services
CN101741547B (zh) 2009-12-18 2012-05-23 西安西电捷通无线网络通信股份有限公司 节点间保密通信方法及***
EP2513832A1 (en) 2009-12-18 2012-10-24 Koninklijke Philips Electronics N.V. Digital rights management using attribute-based encryption
US8478996B2 (en) 2009-12-21 2013-07-02 International Business Machines Corporation Secure Kerberized access of encrypted file system
GB201000288D0 (en) 2010-01-11 2010-02-24 Scentrics Information Security System and method of enforcing a computer policy
US8650129B2 (en) 2010-01-20 2014-02-11 American Express Travel Related Services Company, Inc. Dynamically reacting policies and protections for securing mobile financial transaction data in transit
JP5375976B2 (ja) 2010-01-22 2013-12-25 富士通株式会社 認証方法、認証システムおよび認証プログラム
JP5070305B2 (ja) 2010-01-29 2012-11-14 株式会社日本総合研究所 取引中継方法および取引中継システム
US20110213971A1 (en) 2010-03-01 2011-09-01 Nokia Corporation Method and apparatus for providing rights management at file system level
US8370648B1 (en) 2010-03-15 2013-02-05 Emc International Company Writing and reading encrypted data using time-based encryption keys
US8667269B2 (en) 2010-04-02 2014-03-04 Suridx, Inc. Efficient, secure, cloud-based identity services
US8555059B2 (en) 2010-04-16 2013-10-08 Microsoft Corporation Secure local update of content management software
EP2378451B1 (en) 2010-04-19 2018-07-04 Vodafone Holding GmbH User authentication in a tag-based service
US8650657B1 (en) * 2010-05-18 2014-02-11 Google Inc. Storing encrypted objects
US9160738B2 (en) 2010-05-27 2015-10-13 Microsoft Corporation Delegation-based authorization
US20120079289A1 (en) 2010-09-27 2012-03-29 Skymedi Corporation Secure erase system for a solid state non-volatile memory device
JP2012073374A (ja) 2010-09-28 2012-04-12 Fujikura Ltd 光ファイバ切断装置
US8504837B2 (en) 2010-10-15 2013-08-06 Rockwell Automation Technologies, Inc. Security model for industrial devices
US9961550B2 (en) 2010-11-04 2018-05-01 Itron Networked Solutions, Inc. Physically secured authorization for utility applications
US20120114118A1 (en) 2010-11-05 2012-05-10 Samsung Electronics Co., Ltd. Key rotation in live adaptive streaming
US8832726B2 (en) 2010-11-17 2014-09-09 Verizon Patent And Licensing Inc. Video streaming entitlement determined based on the location of the viewer
US8401186B2 (en) 2010-11-29 2013-03-19 Beijing Z&W Technology Consulting Co., Ltd. Cloud storage data access method, apparatus and system based on OTP
US8565422B2 (en) 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
KR101145766B1 (ko) 2010-12-10 2012-05-16 고려대학교 산학협력단 보안 서비스 제공 시스템 및 방법
CN102130768B (zh) 2010-12-20 2012-11-07 西安西电捷通无线网络通信股份有限公司 一种具有链路层加解密能力的终端设备及其数据处理方法
US8478858B2 (en) 2011-02-01 2013-07-02 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8588426B2 (en) 2011-02-21 2013-11-19 Blackberry Limited Methods and apparatus to secure communications in a mobile network
JP5564453B2 (ja) 2011-02-25 2014-07-30 株式会社エヌ・ティ・ティ・データ 情報処理システム、及び情報処理方法
AU2012225621B2 (en) 2011-03-07 2015-10-29 Security First Corp. Secure file sharing method and system
US8379857B1 (en) 2011-03-30 2013-02-19 Google Inc. Secure key distribution for private communication in an unsecured communication channel
US8789210B2 (en) 2011-05-04 2014-07-22 International Business Machines Corporation Key usage policies for cryptographic keys
US8850593B2 (en) * 2011-05-12 2014-09-30 Hewlett-Packard Development Company, L.P. Data management using a virtual machine-data image
US9076020B2 (en) 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
US8544070B2 (en) 2011-05-16 2013-09-24 Novell, Inc. Techniques for non repudiation of storage in cloud or shared storage environments
US9690941B2 (en) 2011-05-17 2017-06-27 Microsoft Technology Licensing, Llc Policy bound key creation and re-wrap service
US9049023B2 (en) 2011-05-24 2015-06-02 Zeutro Llc Outsourcing the decryption of functional encryption ciphertexts
US8880886B2 (en) 2011-05-26 2014-11-04 First Data Corporation Systems and methods for authenticating mobile devices
KR20120134509A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 어플리케이션 개발 시스템에서 디바이스용 어플리케이션을 생성 및 설치하기 위한 장치 및 방법
US8516244B2 (en) 2011-06-10 2013-08-20 Zeutro Llc System, apparatus and method for decentralizing attribute-based encryption information
US20120323990A1 (en) 2011-06-15 2012-12-20 Microsoft Corporation Efficient state reconciliation
US8769304B2 (en) 2011-06-16 2014-07-01 OneID Inc. Method and system for fully encrypted repository
US8891772B2 (en) 2011-06-17 2014-11-18 Microsoft Corporation Cloud key escrow system
US8751807B2 (en) 2011-06-23 2014-06-10 Azuki Systems Inc. Method and system for secure over-the-top live video delivery
US9009315B2 (en) 2011-07-28 2015-04-14 Telefonaktiebolaget L M Ericsson (Publ) Hierarchical delegation and reservation of lookup keys
US8798273B2 (en) 2011-08-19 2014-08-05 International Business Machines Corporation Extending credential type to group Key Management Interoperability Protocol (KMIP) clients
US8788843B2 (en) 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
US8774403B2 (en) 2011-12-08 2014-07-08 Dark Matter Labs, Inc. Key creation and rotation for data encryption
US8639951B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation States for breakout appliance in a mobile data network
US8954758B2 (en) 2011-12-20 2015-02-10 Nicolas LEOUTSARAKOS Password-less security and protection of online digital assets
EP2792104B1 (en) 2011-12-21 2021-06-30 SSH Communications Security Oyj Automated access, key, certificate, and credential management
US9449183B2 (en) 2012-01-28 2016-09-20 Jianqing Wu Secure file drawer and safe
CN104169935B (zh) * 2012-03-28 2017-10-31 索尼公司 信息处理装置、信息处理***、信息处理方法
US8964990B1 (en) 2012-05-17 2015-02-24 Amazon Technologies, Inc. Automating key rotation in a distributed system
US9237446B2 (en) 2012-05-24 2016-01-12 Blackberry Limited System and method for controlling access to media content
US9563891B2 (en) 2012-07-09 2017-02-07 Google Inc. Systems, methods, and computer program products for integrating third party services with a mobile wallet
US9400890B2 (en) 2012-08-10 2016-07-26 Qualcomm Incorporated Method and devices for selective RAM scrambling
WO2014070134A2 (en) 2012-10-29 2014-05-08 Empire Technology Development Llc Quorum-based virtual machine security
US9137222B2 (en) 2012-10-31 2015-09-15 Vmware, Inc. Crypto proxy for cloud storage services
US8713311B1 (en) 2012-11-07 2014-04-29 Google Inc. Encryption using alternate authentication key
US8997197B2 (en) 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module

Also Published As

Publication number Publication date
BR112015019378A2 (pt) 2017-07-18
EP3585032A1 (en) 2019-12-25
WO2014126813A1 (en) 2014-08-21
AU2017204853A1 (en) 2017-08-03
CN105103119B (zh) 2020-01-17
EP3585032B1 (en) 2024-04-03
KR101769282B1 (ko) 2017-08-18
EP2956852A1 (en) 2015-12-23
KR102055116B1 (ko) 2020-01-22
US20140229729A1 (en) 2014-08-14
US9590959B2 (en) 2017-03-07
EP2956852A4 (en) 2016-09-21
SG10201709421SA (en) 2018-01-30
CA2898995C (en) 2022-12-20
JP6606156B2 (ja) 2019-11-13
CN111147255B (zh) 2023-08-18
SG10202108884YA (en) 2021-09-29
CA3173681A1 (en) 2014-08-21
JP6941146B2 (ja) 2021-09-29
AU2014216607A1 (en) 2015-08-06
KR20150119112A (ko) 2015-10-23
US20170134348A1 (en) 2017-05-11
CN111147255A (zh) 2020-05-12
CN105103119A (zh) 2015-11-25
KR20170095404A (ko) 2017-08-22
JP2018049650A (ja) 2018-03-29
AU2014216607B2 (en) 2017-04-13
JP6290932B2 (ja) 2018-03-07
AU2017204853B2 (en) 2019-05-30
JP2020009500A (ja) 2020-01-16
EP2956852B1 (en) 2019-09-04
SG11201505742PA (en) 2015-08-28
JP2016508643A (ja) 2016-03-22
US10404670B2 (en) 2019-09-03
CA2898995A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
US11470054B2 (en) Key rotation techniques
JP6941146B2 (ja) データセキュリティサービス
US11036869B2 (en) Data security with a security module
EP2957063B1 (en) Policy enforcement with associated data
JP6678457B2 (ja) データセキュリティサービス
US20200082110A1 (en) Automatic key rotation

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 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 07/02/2014, OBSERVADAS AS CONDICOES LEGAIS.