BR112014033155B1 - Aparelho que é uma primeira máquina, método para assegurar uma comunicação, sistema e aparelho que é uma segunda máquina - Google Patents

Aparelho que é uma primeira máquina, método para assegurar uma comunicação, sistema e aparelho que é uma segunda máquina Download PDF

Info

Publication number
BR112014033155B1
BR112014033155B1 BR112014033155-3A BR112014033155A BR112014033155B1 BR 112014033155 B1 BR112014033155 B1 BR 112014033155B1 BR 112014033155 A BR112014033155 A BR 112014033155A BR 112014033155 B1 BR112014033155 B1 BR 112014033155B1
Authority
BR
Brazil
Prior art keywords
cryptographic information
instructions
proxy server
component
server
Prior art date
Application number
BR112014033155-3A
Other languages
English (en)
Other versions
BR112014033155A2 (pt
Inventor
Charles E. Gero
Jeremy N. Shapiro
Dana J. Burd
Original Assignee
Akamai 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 Akamai Technologies, Inc. filed Critical Akamai Technologies, Inc.
Publication of BR112014033155A2 publication Critical patent/BR112014033155A2/pt
Publication of BR112014033155B1 publication Critical patent/BR112014033155B1/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • 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
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

TERMINAÇÃO DE CONEXÕES DE SSL SEM CHAVES PRIVADAS ACESSÍVEIS LOCALMENTE. Uma plataforma de entrega de infraestrutura de Internet (por exemplo, operada por um provedor de serviços) provê um "serviço" de proxy de RSA como um melhoramento para o protocolo de SSL que descarrega a desencriptação do segredo pré-mestre encriptado (ePMS) para um servidor externo. Usando este dispositivo, ao invés de desencriptar o ePMS "localmente", o servidor de SSL (encaminha) o ePMS para um componente de servidor de proxy de RSA e recebe, em resposta, o segredo pré-mestre desencriptado. Desta maneira, a chave de desencriptação não precisa ser armazenada em associação com o servidor de SSL.

Description

[001] Este pedido é baseado em e reivindica prioridade para o N° de Série 61/554.571, depositado em 16 de dezembro de 2011.
ANTECEDENTES DA INVENÇÃO Campo Técnico
[002] Este pedido se refere geralmente a comunicações baseadas em rede segura usando protocolos criptográficos, tal como SSL.
Breve Descrição da Técnica Relacionada
[003] Os sistemas de computador distribuídos são bem conhecidos na técnica anterior. Um sistema de computador distribuído como esse é uma “rede de entrega de conteúdo” ou “CDN” que é operada e gerenciada por um provedor de serviços. O provedor de serviços tipicamente provê o serviço de entrega de conteúdo em nome de terceiros (consumidores) que usam a infraestrutura do provedor de serviços. Um sistema distribuído deste tipo tipicamente se refere a uma coleção de computadores autônomos ligados por uma rede ou por redes, em conjunto com o sistema, sistemas, protocolos e técnicas projetados para facilitarem vários serviços, tais como entrega de conteúdo, aceleração de aplicativo da web, ou outro suporte de infraestrutura de sítio de origem terceirizado. Um provedor de serviços de CDN tipicamente provê uma entrega de serviço através de propriedades digitais (tal como um website), as quais são aprovisionadas em um portal de consumidor e, então, empregadas para a rede. Uma propriedade digital tipicamente é ligada a uma ou mais configurações de borda que permitem que o provedor de serviços contabilize o tráfego e tribute seu consumidor.
[004] A camada de soquetes segura (SSL) é um protocolo criptográfico bem conhecido que é usado para assegurar comunicações por redes, tal como a Internet. Os protocolos criptográficos, tal como SSL, são baseados frequentemente em sistemas criptográficos de chave pública, tal como o algoritmo de encriptação de RSA (Rivest, Shamir e Adelman). Para uma sessão de SSL baseada em RSA tradicional, os dois lados de uma conexão concordam sobre um “segredo pré- mestre” (PMS), o qual é usado para a geração dos parâmetros para o restante da sessão. Tipicamente, os dois lados usam encriptação assimétrica de RSA para o estabelecimento do segredo pré-mestre sem troca do valor real em texto simples. Em operação, o cliente de SSL gera o segredo pré- mestre e o encripta com a chave de RSA disponível publicamente de servidor de SSL. Isto gera um segredo pré- mestre encriptado (ePMS), o qual então é provido para o servidor de SSL. O servidor de SSL tem uma chave de desencriptação privada, a qual então é usada para desencriptar o segredo pré-mestre encriptado. Neste ponto, o cliente e o servidor têm o segredo pré-mestre original e podem usá-lo para a geração da chave simétrica usada para uma troa de dados encriptada real e segura.
[005] A desencriptação do segredo pré-mestre encriptado é o único momento na conexão de SSL em que a chave privada é necessária. Esta desencriptação ocorre em um assim denominado ponto de terminação e SSL. Em muitos casos, o ponto de terminação de SSL é inseguro e, assim, o armazenamento e o uso daquela chave ali apresentam riscos de segurança significativos.
BREVE SUMÁRIO
[006] Uma plataforma de entrega de infraestrutura de Internet (por exemplo, operada por um provedor de serviços) provê um “serviço” de proxy de RSA como um melhoramento para o protocolo de SSL que descarrega a desencriptação do segredo pré-mestre encriptado (ePMS) para um servidor externo. Usando este serviço, ao invés da desencriptação do ePMS “localmente” o servidor de SSL (encaminha) o ePMS para um componente de servidor de proxy de RSA e recebe, em resposta, o segredo pré-mestre encriptado. Desta maneira, a chave de desencriptação não precisa ser armazenada em associação com o servidor de SSL.
[007] Em uma modalidade de sistema, pelo menos uma máquina em uma primeira localização acessível de rede inclui um programa de software de servidor de proxy de RSA e pelo menos uma máquina em uma segunda localização acessível de rede inclui um programa de software de cliente de proxy de RSA. O programa de software de servidor de proxy de RSA e o programa de software de cliente de proxy de RSA incluem, cada um, um código para o estabelecimento e a manutenção de uma conexão segura (por exemplo, uma SSL mutuamente autenticada) entre eles. O software de cliente de proxy de RSA tipicamente é executado em associação com um componente de servidor de SSL (tal como OpenSSL). De acordo com esta exposição, contudo, as chaves de desencriptação de SSL não são acessíveis para o software de cliente de proxy de RSA. Ao invés disso, uma desencriptação de segredos pré-mestre encriptados é descarregada para o programa de software de servidor de proxy de RSA. Em uma operação, o programa de software de cliente de proxy de RSA recebe e encaminha para o programa de software de servidor de proxy de RSA pela conexão de SSL mutuamente autenticada um segredo pré-mestre encriptado associado a uma nova requisição de cumprimento de SSL recebida (no cliente de proxy de RSA) a partir de um programa de cliente de usuário final (por exemplo, um navegador da web habilitado para SSL, um aplicativo de móvel nativo ou similar). O programa de software de servidor de proxy de RSA desencripta o segredo pré-mestre encriptado usando uma chave de desencriptação que é mantida no programa de software de servidor de proxy de RSA e não acessível de outra forma para o programa de software de cliente de proxy de RSA. O programa de software de servidor de proxy de RSA então retorna um segredo pré-mestre desencriptado para o programa de software de cliente de proxy de RSA pela conexão de SSL mutuamente autenticada. O programa de cliente de usuário final e o componente de servidor de SSL então estão ambos de posse do segredo pré-mestre (e pode usá-lo para gerar a chave simétrica usada para encriptação da conexão entre elas).
[008] Embora não tendo por significado ser limitante, a primeira localização acessível de rede é um centro de dados associado a uma entidade, e a segunda localização acessível de rede é uma localização física remota da primeira localização acessível de rede. Como entre as duas localizações, o centro de dados (no qual o componente de servidor de proxy de RSA é executado) é mais seguro.
[009] O precedente destacou alguns dos recursos mais pertinentes da invenção. Estes recursos devem ser construídos para serem meramente ilustrativos. Muitos outros resultados benéficos podem ser obtidos pela aplicação da invenção exposta de uma maneira diferente ou pela modificação da invenção, conforme será descrito.
BREVE DESCRIÇÃO DOS DESENHOS
[010] Para um entendimento mais completo da presente invenção e das vantagens da mesma, uma referência agora é feita às descrições a seguir tomadas em conjunto com os desenhos associados, nos quais: a figura 1 é um diagrama de blocos que ilustra um sistema de computador distribuído conhecido configurado como uma rede de entrega de conteúdo (CDN); a figura 2 é uma configuração de máquina de borda de CDN representativa; a figura 3 ilustra uma configuração de rede atrás do firewall de representação em que a exposição em questão pode ser praticada em uma modalidade; e a figura 4 ilustra a técnica de proxy de RSA desta exposição.
DESCRIÇÃO DETALHADA
[011] A figura 1 ilustra um sistema de computador distribuído conhecido que (conforme descrito abaixo) é estendido pelas técnicas aqui para a provisão de uma única plataforma baseada em HTTP com a capacidade de entregar um vídeo HD online em uma escala de audiência de difusão para os ambientes de tempo de execução mais populares e para os últimos dispositivos em ambientes de linha fixa e móveis.
[012] Em um sistema conhecido, tal como mostrado na figura 1, um sistema de computador distribuído 100 é configurado como uma CDN e é assumido como tendo um conjunto de máquinas 102a-n distribuídas pela Internet. Tipicamente, a maioria das máquinas é de servidores localizados perto da borda da Internet, isto é, em ou adjacentes a redes de acesso de usuário final. Um centro de comando de operações de rede (NOCC) 104 gerencia operações das várias máquinas no sistema. Sítios de terceiros, tal como o website 106, descarregam a entrega de conteúdo (por exemplo, HTML, objetos de página embutida, mídia de transmissão contínua, transferências (via download) de software, e similares) para o sistema de computador distribuído 100 e, em particular, para servidores de “borda”. Tipicamente, os provedores de conteúdo descarregam sua entrega de conteúdo pela alternância (por exemplo, por um DNS CNAME) de dados domínios de provedor de conteúdo ou subdomínios para domínios que são gerenciados pelo serviço de nome de domínio autoritário de provedor de serviços. Os usuários finais que desejam o conteúdo são dirigidos para o sistema de computador distribuído para a obtenção daquele conteúdo de forma mais confiável e eficiente. Embora não mostrado em detalhes, o sistema de computador distribuído também pode incluir outra infraestrutura, tal como um sistema de coleta de dados distribuído 108 que coleta dados de uso e outros a partir de servidores de borda, agrega aqueles dados através de uma região ou de um conjunto de regiões, e passa aqueles dados para outros sistemas de extremidade traseira 110, 112, 114 e 116 para facilitar a monitoração, a perfilagem, os alertas, a tributação, o gerenciamento e outras funções operacionais e administrativas. Os agentes de rede distribuída 118 monitoram a rede, bem como as cargas de servidor e proveem dados de rede, tráfego e carga para um mecanismo de manipulação de consulta de DNS 115, o qual está autorizado para domínios de conteúdo sendo gerenciados pela CDN. Um mecanismo de transporte de dados distribuído 120 pode ser usado para a distribuição de uma informação de controle (por exemplo, metadados para gerenciamento de conteúdo, para facilitar o equilíbrio de carga, e similares) para os servidores de borda.
[013] Conforme ilustrado na figura 2, uma dada máquina 200 compreende um hardware industrializado (por exemplo, um processador Intel Pentium) 202 rodando um kernel de sistema operacional (tal como Linux ou uma variante) 204 que suporta um ou mais aplicativos 206a-n. Para facilitar serviços de entrega de conteúdo, por exemplo, dadas máquinas tipicamente rodam um conjunto de aplicativos, tal como um proxy de HTTP 207 (referido às vezes como um processo de “host global” ou “ghost”), um servidor de nome 208, um processo de monitoração local 210, um processo de coleta de dados distribuído 212 e similares. Para mídia de transmissão contínua, a máquina tipicamente inclui um ou mais servidores de mídia, tal como Windows Media Server (WMS) ou um servidor Flash, conforme requerido pelos formatos de mídia suportados.
[014] Um servidor de borda de CDN é configurado para prover um ou mais recursos de entrega de conteúdo estendido, preferencialmente em uma base específica de domínio, específica de consumidor, preferencialmente usando-se arquivos de configuração que são distribuídos para os servidores de borda usando um sistema de configuração. Um dado arquivo de configuração preferencialmente é baseado em XML e inclui um conjunto de regras de manipulação de conteúdo e diretivas que facilita um ou mais recursos de manipulação de conteúdo avançados. O arquivo de configuração pode ser entregue ao servidor de borda de CDN através do mecanismo de transporte de dados. A Patente U.S. N° 7.111.057 ilustra uma infraestrutura útil para entrega e gerenciamento de informação de controle de conteúdo de servidor de borda, e esta e outra informação de controle de servidor de borda podem ser aprovisionadas pelo provedor de serviços de CDN em si, ou (através de extranet ou similar) o consumidor de provedor de conteúdo que opera o servidor de origem.
[015] A CDN pode incluir um subsistema de armazenamento, tal como descrito na Patente U.S. N° 7.472.178, cuja exposição é incorporada aqui como referência.
[016] A CDN pode operar uma hierarquia de cache de servidor para prover um armazenamento em cache intermediário de conteúdo de consumidor; um subsistema de hierarquia de cache como esse é descrito na Patente U.S. N° 7.376.716, cuja conteúdo é incorporada aqui como referência.
[017] A CDN pode prover uma entrega de conteúdo segura dentre um navegador de cliente, um servidor de borda e um servidor de origem de consumidor da maneira descrita na Publicação U.S. N° 20040093419. A entrega de conteúdo segura, conforme descrito aqui, impinge links baseados em SSL entre o cliente e o processo de servidor de borda, por um lado, e entre o processo de servidor de borda e um processo de servidor de origem, por outro lado. Isto permite que uma página da web protegida de SSL e/ou componentes da mesma sejam entregues através do servidor de borda.
[018] Como uma superposição, os recursos de CDN podem ser usados para facilitarem serviços de aceleração de rede de área ampla (WAN) entre centros de dados de empresa (os quais podem ser gerenciados de forma privada) e provedores de software como um serviço (SaaS) de terceiros.
[019] Em uma operação típica, um provedor de conteúdo identifica um domínio de provedor de conteúdo ou subdomínio que ele deseja ter servido pela CDN. O provedor de serviços de CDN associa (por exemplo, através de um nome canônico, ou CNAME) o domínio de provedor de conteúdo com um hostname de rede de borda (CDN), e o provedor de CDN então provê aquele hostname de rede de borda para o provedor de conteúdo. Quando uma consulta de DNS para o domínio ou subdomínio de provedor de conteúdo é recebida nos servidores de nome de domínio de provedor de conteúdo, aqueles servidores respondem a retornarem o hostname de rede de borda. O hostname de rede de borda aponta para a CDN, e aquele hostname de rede de borda então é resolvido através do serviço de nome de CDN. Para essa finalidade, o serviço de nome de CDN retorna um ou mais endereços de IP. O navegador de cliente requisitante então faz uma requisição de conteúdo (por exemplo, através de HTTP ou HTTPS) para um servidor de borda associado ao endereço de IP. A requisição inclui um cabeçalho de host que inclui o domínio ou subdomínio de provedor de conteúdo original. Mediante o recebimento da requisição com o cabeçalho de host, o servidor de borda checa seu arquivo de configuração para determinar se o domínio ou subdomínio de conteúdo requisitado está realmente sendo manipulado pela CDN. Se assim for, o servidor de borda aplica suas regras de manipulação de conteúdo e diretivas para aquele domínio ou subdomínio, conforme especificado na configuração. Estas regras de manipulação de conteúdo e diretivas podem estar localizadas em um arquivo de configuração de “metadados” baseado em XML.
[020] A título de antecedentes adicionais, os consumidores de CDN podem assinar um produto de serviço gerenciado “atrás do firewall” para a aceleração de aplicativos de web de Intranet que são hospedados atrás do firewall de empresa de consumidor, bem como para aceleração de aplicativos da web que formam pontes entre seus usuários atrás do firewall para um aplicativo hospedado na nuvem de internet. Para a realização destes dois casos de uso, um software de CDN pode ser executado em máquinas virtuais hospedadas em um ou mais centros de dados de consumidor, e em máquinas virtuais hospedadas em “filiais” remotas. O software de CDN em execução no centro de dados de consumidor tipicamente provê uma configuração de serviço, um gerenciamento de serviço, um relatório de serviço, um acesso de gerenciamento remoto, um gerenciamento de certificado de SSL de consumidor, bem como outras funções para configuração de aplicativos da web. O software em execução nas filiais provê uma aceleração da web de última milha para usuários localizados ali. A CDN em si tipicamente provê um hardware de CDN hospedado em centros de dados de CDN para a provisão de um gateway entre os nós rodando atrás do firewall de consumidor e a outra infraestrutura de provedor de serviços (por exemplo, instalações de rede e operação). Este tipo de solução gerenciada provê uma empresa com a oportunidade de tirar vantagem de tecnologias de CDN com respeito à intranet de sua companhia. A figura 3 ilustra uma arquitetura básica deste tipo. Em uma implementação representativa, uma rede de BTF é gerenciada por um gateway de gerenciamento (AMG) 300 e um ou mais gateways de gerenciamento de empresa (EMGs) 302. O AMG está localizado em uma localização de operação de CDN e serviço de rede. Gerencia um banco de dados de consumidores existentes e tem acesso aos EMGs. Os EMGs 302 existem dentro do firewall de consumidor e gerenciam os nós de extremidade individuais 304 da rede de BTF. Os nós finais correspondem aos nós de borda em uma CDN tradicional. Um AMG autoriza um EMG (etapa 1), e o EMG autoriza nós de borda A e B (etapas 2 e 3). Ambos os nós de borda agora confiam em cada outro e no EMG para a criação de uma zona de consumidor de confiança, conforme descrito (etapas 4). De acordo com este modelo de confiança básico, o AMG 300 concede autoridade a um EMG 302 para a execução de funções de BTF para uma companhia. O EMG 302 então pode conceder autoridade a cada um dos nós de extremidade para a execução de vários papéis ou tarefas. Uma vez que a confiança seja estabelecida através desta cadeia de autorização, os dados privados e segredos podem ser trocados de forma segura pela rede. Nesta abordagem, os nós de borda tipicamente são instalados em filiais remotas (perto dos usuários finais) e o EMG (nós / regiões pais) são instalados em centros corporativos (tipicamente onde os servidores de aplicativo estão localizados). Conforme citado acima, a solução estende a aceleração para a empresa para aplicativos servidos em qualquer lugar na Internet, tais como aplicativos de SaaS (software como um serviço). Pela formação da ponte de rede de superposição privada baseada em CDN de empresa com a rede de superposição de internet pública de CDN existente, um usuário final em uma filial remota obtém um aplicativo acelerado de ponta a ponta.
[021] Para um BTF acelerar apropriadamente o tráfego de SSL, precisa das chaves de SSL e dos certificados nos nós de extremidade. Conforme descrito acima, a SSL usa uma desencriptação de RSA de uma vez para o estabelecimento de um segredo pré-mestre privado entre o cliente e o servidor. De acordo com esta exposição, esta desencriptação de RSA é descarregada para um nó de extremidade seguro ou outro serviço o qual contém a chave privada, enquanto o restante do cumprimento e da conexão de SSL continua como normal. Este processo é descrito, agora. Terminação de Conexões de SSL Sem Chaves Privadas Acessíveis Localmente
[022] Com o dito acima como antecedente, o assunto em questão desta exposição é descrito, agora. Uma familiaridade com cumprimento de SSL é presumida.
[023] De acordo com esta exposição, o cumprimento de SSL convencional e, em particular, a desencriptação do segredo pré-mestre encriptado ocorrem externamente a (isto é, remotamente do) ponto de terminação de SSL normal (o servidor de SSL). Conforme ilustrado na figura 4, o servidor de SSL 400 no ponto de terminação inclui um “componente de cliente” 402 de um servidor de proxy, cujo “componente de servidor” 404 está localizado remotamente. O componente de servidor 404 tem associado a ele um armazenamento de dados 406 no qual a(s) chave(s) de encriptação 408 é (são) mantida(s). Estas chaves de desencriptação 408 não são acessíveis para o componente de cliente 402. Conforme será descrito, durante um cumprimento de SSL e ao invés da desencriptação do segredo pré-mestre encriptado em si, o componente de cliente 402 encaminha um segredo pré-mestre encriptado que ele recebe (a partir de um cliente de SSL convencional 410) para o componente de servidor 404 e recebe, em retorno, um segredo pré-mestre desencriptado. O restante da transação de SSL (entre o servidor de SSL 400 e o cliente de SSL 410) se completa normalmente. Nesta abordagem, as chaves privadas de SSL não estão armazenadas no servidor de SSL (ou, mais geralmente, no ponto de terminação de SSL).
[024] Preferencialmente, o componente de cliente 402 e o componente de servidor 404 do servidor de proxy são baseados em encriptação de RSA; assim, estes componentes às vezes são referidos aqui como componentes de um proxy de RSA. O encaminhamento do segredo pré-mestre encriptado (a partir do componente de cliente para o componente de servidor) às vezes é referido como uma requisição de proxy de RSA. Embora RSA seja um algoritmo preferido, outros algoritmos de encriptação assimétricos podem ser usados, da mesma forma.
[025] Agora, com referência de volta à figura 3, máquinas de filial e centro de dados preferencialmente usam uma conexão segura (por exemplo, conexões de SSL mutuamente autenticadas) para comunicação e passagem de tráfego. Outros tipos de conexão segura (por exemplo, IPSec VPN) podem ser usados. Estas conexões são usadas para resistência de proxy de RSA, dados de usuário e outros tráfegos. Conforme citado acima, o componente de cliente de proxy de RSA é executado no centro de dados (mais seguro). Em uma modalidade, toda máquina tem um certificado de cliente único e um par de chaves usado para comunicação com os pares. Quando uma nova máquina é aprovisionada (por exemplo, pelo portal de consumidor de CDN), a máquina gera uma chave privada e uma CSR (requisição de sinalização de certificado) e envia a última para o AMG. A CSR preferencialmente contém um par de identificadores, tal como um número de série único para a filial ou a máquina de centro de dados, bem como um número serial para a versão de CSR. O AMG assina a CSR (preferencialmente usando uma autoridade de certificado (CA) associada à CDN) e envia o certificado para a máquina de filial. Adicionalmente, o AMG envia uma mensagem contendo os detalhes de certificado (par de número de série) para qualquer centro de dados que possa se comunicar com a filial (com base na configuração de par no portal). O AMG usando outra infraestrutura de gerenciamento de chave de CDN assina as CSRs de cliente e servidor (preferencialmente usando uma CA associada à CDN). Preferencialmente, a máquina de filial e a máquina de centro de dados mantêm uma coleção de pares válidos e CAs. Esta coleção é atualizada pelo AMG para suportar rotação e revogação. Mais ainda, preferencialmente, cada caixa tem uma cópia da CA, bem como uma lista branca dos pares aceitáveis, identificados por caixa e número de série de certificado. Para o estabelecimento da autenticação mútua, ambos os lados da conexão de SSL mútua (em outras palavras, o componente de cliente de proxy de RSA em um lado, e o componente de servidor de proxy de RSA, no outro) verificam que a cadeia de certificado de par tem um nó de raiz que combina com a CA e contém um par de número de série admissível. Os componentes de cliente e de servidor também verificam que o certificado de par contém o número de série de máquina esperado.
[026] Conforme mostrado na figura 4, o cliente de proxy de RSA 402 faz parte do módulo de transporte de SSL. Em operação, quando um ClientHello é recebido (a partir de uma requisição de cumprimento de SSL entrando), o módulo de SSL checa uma tabela de aprendizado de endereços de IP (porta mais) e certifica. Se a entrada não existir, os dados serão transmitidos não modificados. Se a máquina de centro de dados puder realizar um encaminhamento de RSA para o IP e a porta, ela enviará de volta uma nova mensagem contendo o certificado de servidor encaminhado de RSA. O módulo de SSL adiciona o endereço de IP e o certificado para a tabela de aprendizado. Em uma próxima nova transação de SSL (não retomada) para aquele endereço de IP, o módulo de SSL encontra a entrada e sabe que estará executando uma transação de proxy de RSA. As entradas de tabela de aprendizado são removidas se elas forem usadas para uma requisição de proxy de RSA a qual falha (ou na alternativa, após um período não sendo usada). Estas entradas podem ser atualizadas pela máquina de centro de dados em qualquer tempo, por exemplo, pelo cliente de proxy enviando uma outra mensagem com o novo certificado para um IP em particular e porta.
[027] Durante o cumprimento, o módulo termina a conexão de SSL e envia um ServerCertificate para o cliente requisitante com o certificado a partir da tabela de aprendizado. Quando a mensagem ClientKeyExchange e o ePMS são recebidos, o módulo envia a requisição de proxy de RSA para o centro de dados correto. De acordo com esta exposição, e conforme citado acima, a requisição de proxy de RSA e a resposta são manipuladas pelo componente de servidor do servidor de proxy de RSA 404, o qual envia e recebe os dados pela conexão de SSL mutuamente autenticada. Se o componente de servidor 404 do servidor de proxy de RSA retornar uma falha ou expirar, o módulo de SSL (o componente de cliente 402) terminará a conexão de cliente e o cumprimento não será bem sucedido.
[028] Sem limitação, o módulo de SSL é implementado como um terminador de protocolo de SSL. Em uma modalidade, é um código de programa embutido no topo de padrão OpenSSL.
[029] O componente de cliente de proxy de RSA (o módulo de SSL na filial) usa uma interface de mensagem para enviar a requisição de proxy de RSA e a resposta pela conexão de SSL mutuamente autenticada. Preferencialmente, a requisição de cliente de RSA é um pacote que inclui os campos de informação a seguir: {comprimento de ePMS, ePMS, prova de um certificado de servidor}. O pacote de resposta retornado a partir do componente de servidor de proxy de RSA (o módulo de SSL no centro de dados) tem os campos de informação a seguir: {status, comprimento de PMS desencriptado, segredo pré-mestre desencriptado}.
[030] Uma modalidade do componente de servidor de proxy de RSA em execução na instalação de centro de dados é descrita, agora. Conforme citado, sua operação básica é receber pacotes não encriptados contendo a requisição especificada acima e responder com o pacote de resposta definido. Preferencialmente, o servidor de proxy de RSA mantém um cache menos recentemente usado (LRU) de valores de ePMS. Antes da execução de uma desencriptação, o módulo checa o cache para ver se o ePMS requisitado foi visto. Esta checagem pode ser realizada usando-se um esquema de consulta de prova. Se a prova do segredo pré-mestre encriptado já existir no cache, um status ruim será retornado para o componente de cliente de proxy de RSA (e um erro ou alerta é gerado para o administrador). Preferencialmente, o componente de servidor da taxa de servidor de proxy de RSA limita as requisições, para evitar que uma máquina comprometida use um ataque tipo de descarga para remover um segredo previamente desencriptado. Preferencialmente, o componente de servidor do servidor de proxy de RSA também mantém uma tabela do certificado e pares de chave para o que pode atuar como um proxy. Usar esta tabela (o que também pode ser implementado como uma tabela de prova) permite que o servidor de proxy eficientemente consulte pares de chave de servidor (por exemplo, pela prova do certificado o qual é enviado pelo componente de cliente). Uma vez que o componente de servidor do servidor de proxy de RSA tenha verificado que o ePMS é novo, ele o adiciona ao cache, consulta a chave privada de servidor em sua tabela, desencripta o ePMS e envia a resposta.
[031] A técnica descrita aqui tem muitas vantagens. A vantagem primária é que as chaves privadas de SSL não são armazenadas no servidor de SSL. Em uma solução distribuída, tal como descrito acima, isto significa que as chaves privadas não são armazenadas na caixa de filial que está terminando uma SSL, mas, ao invés disso, na caixa de centro de dados que está hospedando o componente de servidor do servidor de proxy de RSA. Com uma proteção de repetição implementada, um atacante não pode usar um servidor de SSL comprometido para desencriptar transações de SSL prévias. Em um servidor de SSL normal, se a chave for comprometida, outras tecnologias (tais como listas de revogação de certificado ou OCSP no navegador de cliente) devem ser usadas para se evitar o uso da chave de SSL roubada. Com o proxy de RSA, o provedor de serviços apenas precisa fazer uma mudança de configuração no servidor de proxy de RSA. Usando esta abordagem distribuída, a parte computacionalmente extensiva da transação de SSL, a desencriptação de RSA, pode ser feita em uma máquina com um hardware personalizado no centro de dados.
[032] Se um nó de proxy da web (em uma filial) for descoberto como estando comprometido, o administrador simplesmente precisará remover as credenciais autenticadas para o nó comprometido. Para SSL padrão, a revogação precisaria ser feita em cada sistema de usuário final, o que pode ser mais difícil de administrar. Adicionalmente, uma rotação de chave apenas precisa ocorrer na máquina de proxy de RSA, ao invés de em todas as máquinas de proxy da web, conforme seria requerido com a SSL padrão.
[033] A modalidade atrás do firewall não é pretendida para limitação desta exposição. A abordagem de proxy de RSA pode ser usada sempre que uma empresa usar tecnologias de CDN (tal como descrito acima) por links de Internet conforme uma otimização de WAN conectando ramificações, centro de dados, teletrabalhos e usuários móveis a aplicativos pela Internet. Ainda mais geralmente, a abordagem pode ser usada sempre que uma parte (o cliente) desejar encriptar comunicações via SSL baseada em RSA com uma outra parte (o servidor) e o servidor não for de confiança para o armazenamento da chave privada de RSA diretamente.
[034] Em uma implementação representativa, o proxy de RSA é implementado em software, como instruções de programa de computador executadas por um processador.
[035] Mais geralmente, as técnicas descritas aqui são providas usando-se um conjunto de uma ou mais entidades relacionadas à computação (sistemas, máquinas, processos, programas, bibliotecas, funções ou similares) que em conjunto facilitam ou proveem a funcionalidade descrita acima. Em uma implementação típica, uma máquina representativa na qual o software é executado compreende um hardware comercial, um sistema operacional, um ambiente de tempo de rodada de aplicativo e um conjunto de aplicativos ou processos e dados associados, que proveem a funcionalidade de um dado sistema ou subsistema. Conforme descrito, a funcionalidade pode ser implementada em uma máquina independente, ou através de um conjunto distribuído de máquinas. A funcionalidade pode ser provida como um serviço, por exemplo, como uma solução de SaaS.
[036] Embora o dito acima descreva uma ordem em particular de operações executadas por certas modalidades da invenção, deve ser entendido que essa ordem é um exemplo, já que modalidades alternativas podem executar as operações em uma ordem diferente, combinar certas operações, sobrepor certas operações ou similares. As referências no relatório descritivo a uma cada modalidade indicam que a modalidade descrita pode incluir um recurso em particular, uma estrutura ou característica, mas toda modalidade pode não necessariamente incluir o recurso em particular, a estrutura ou a característica.
[037] Embora o assunto exposto tenha sido descrito no contexto de um método ou processo, a exposição em questão também se refere a um aparelho para a execução das operações aqui. Este aparelho pode ser especificamente construído para as finalidades requeridas, ou pode compreender um computador de finalidade geral seletivamente ativado ou reconfigurado por um programa de computador armazenado no computador. Um programa de computador como esse pode ser armazenado em um meio de armazenamento que pode ser lido em computador, tal como, mas não limitando, qualquer tipo de disco incluindo um disco ótico, um CD-ROM, e um disco magnético-ótico, uma memória apenas de leitura (ROM), uma memória de acesso randômico (RAM), uma placa magnética ou ótica, ou qualquer tipo de mídia adequada para o armazenamento de instruções eletrônicas, e cada uma acoplada a um barramento de sistema de computador. Embora dados componentes do sistema tenham sido descritos separadamente, alguém de conhecimento comum apreciará que algumas das funções podem ser combinadas ou compartilhadas em dadas instruções, sequências de programa, porções de código e similares.
[038] Preferencialmente, a funcionalidade é implementada em uma solução de camada de aplicativo, embora isto não seja uma limitação, já que porções das funções identificadas podem ser construídas em um sistema operacional ou similar.
[039] A funcionalidade pode ser implementada com outros protocolos de camada de aplicativo além de HTTPS, tal como SSL VPN ou qualquer outro protocolo tendo características similares de operação.
[040] Não há limitação quanto ao tipo de entidade de computação que pode implementar o lado de cliente e ou lado de servidor da conexão. Qualquer entidade de computação (sistema, máquina, dispositivo, programa, processo, utilitário ou similar) pode atuar como o cliente ou o servidor.
[041] Embora as técnicas aqui sejam descritas no contexto de um proxy de RSA para uso em comunicação de SSL, isto não é uma limitação. Mais ainda, o esquema pode ser implementado em outros protocolos de transporte (tal como TLS) que são protegidos por técnicas criptográficas. Mais geralmente, as técnicas aqui podem ser usadas em qualquer contexto em que dados de segredo precisam ser trocados a partir de um par para um outro usando criptografia assimétrica e em que o par recebendo não é de confiança para ter a chave privada.

Claims (20)

1. Aparelho que é uma primeira máquina, CARACTERIZADO pelo fato de compreender: um processador; uma memória de computador mantendo instruções adaptadas para serem executadas pelo processador, as instruções configuradas como um componente de cliente de um servidor de proxy dividido, o servidor de proxy dividido também tendo um componente de servidor distinto do componente de cliente e que é executado em uma segunda máquina remota da primeira máquina, compreendendo: instruções configuradas para o estabelecimento de uma conexão segura para o componente de servidor remoto do servidor de proxy dividido pelo menos em parte mediante verificação de que uma cadeia de certificados tem um nó raiz que corresponde a uma determinada autoridade de certificação; instruções para o recebimento de uma requisição de cumprimento seguro de um cliente; instruções configuradas para, em resposta ao recebimento da requisição de cumprimento seguro do cliente, determinar se uma troca de chave associada à requisição de cumprimento seguro pode ser processada, pelo menos em parte, usando uma chave privada mantida em associação com o componente de servidor do servidor de proxy dividido, a chave privada não sendo de outro modo acessível ao componente de cliente do servidor de proxy dividido; instruções configuradas para, em resposta à determinação com base nas informações de uma tabela de aprendizado de que a troca de chaves associada à requisição de cumprimento seguro pode ser processada pelo menos em parte usando a chave privada mantida em associação com o componente de servidor do servidor de proxy dividido, encaminhar primeira informação criptográfica a partir do componente de cliente do servidor de proxy dividido para o componente de servidor do servidor de proxy dividio através da conexão segura, a primeira informação criptográfica configurada para ser processada usando a chave privada que é mantida em associação ao componente de servidor do servidor de proxy dividido; e instruções configuradas para receber, a partir do componente de servidor do servidor de proxy dividido através da conexão segura, uma primeira resposta e uma segunda resposta, primeira resposta incluindo uma segunda informação, a segunda informação criptográfica, a segunda informação criptográfica tendo sido gerada no componente de servidor do servidor de proxy dividido mediante geração de uma prova da primeira informação criptográfica, usar a prova como um índice em um cache da primeira informação criptográfica, determinar com base na prova se ou não a primeira informação criptográfica já está presente no cache, quando a primeira informação criptográfica ainda não está presente no cache, armazenar a primeira informação criptográfica no cache, procurar e obter a chave privada e aplicar a chave privada à primeira informação criptográfica, a segunda resposta sendo uma indicação de erro gerada quando a primeira informação criptográfica já está presente no cache, a segunda informação criptográfica, quando recebida, sendo configurada para uso na primeira máquina para promover a troca de chave durante o processamento da requisição de cumprimento seguro.
2. Aparelho, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a primeira informação criptográfica é um segredo pré-mestre encriptado e a segunda informação criptográfica é um segredo pré-mestre desencriptado e em que as instruções incluem instruções para uso da segredo pré-mestre desencriptado para a geração de um segredo mestre.
3. Aparelho, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de ainda incluir instruções para retornar o segredo mestre para o cliente.
4. Aparelho, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de ainda incluir o segredo pré- mestre ser estabelecido usando-se Rivest-Shamir-Adelman (RSA) assimétrica.
5. Aparelho, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de a conexão segura ser uma conexão mutuamente autenticada.
6. Método para assegurar uma comunicação, CARACTERIZADO pelo fato de compreender: estabelecer uma conexão segura entre um componente de cliente de um servidor de proxy dividido em execução em uma primeira máquina, e um componente de servidor do servidor de proxy dividido em execução em uma segunda máquina, a segunda máquina localizada remotamente da primeira máquina, a conexão segura sendo estabelecida pelo menos em parte por cada um dentre o componente de cliente e o componente de servidor do servidor de proxy dividido verificando que uma cadeia de certificados possui um nó raiz que corresponde a uma determinada autoridade de certificação; receber, pelo componente cliente do servidor de proxy dividido em execução na primeira máquina, uma requisição de cumprimento seguro; mediante o recebimento da requisição de cumprimento seguro, determinar, pelo componente de cliente do servidor de proxy dividido, e com base nas informações em uma tabela de aprendizado, se ou não uma troca de chave associada à requisição de cumprimento seguro pode ser processada pelo menos em parte usando uma chave privada que é mantida remotamente e em associação com o componente de servidor do servidor de proxy dividido; com base na determinação de que a requisição de cumprimento seguro pode ser processada, pelo menos em parte, usando a chave privada que é mantida remotamente, fazer proxy da primeira informação criptográfica através da conexão segura a partir do componente de cliente do servidor de proxy dividido para o componente de servidor do servidor de proxy dividido; receber a partir do componente de servidor do servidor de proxy dividido, através da conexão segura, uma primeira resposta ou uma segunda resposta, a primeira resposta sendo uma que inclui a segunda informação criptográfica, a segunda informação criptográfica tendo sido gerada no componente de servidor do servidor proxy dividido mediante geração de uma prova da primeira informação criptográfica, usar a prova como um índice em um cache da primeira informação criptográfica, determinar com base na prova se ou não a primeira informação criptográfica já está presente no cache, quando a primeira informação criptográfica ainda não está presente no cache, armazenar a primeira informação criptográfica no cache, procurar e obter a chave privada, e aplicar a chave privada à primeira informação criptográfica, a segunda informação criptográfica sendo configurada para uso na primeira máquina para promover a troca de chave durante processamento da requisição de cumprimento seguro, a segunda resposta sendo uma indicação de erro gerada quando a primeira informação criptográfica já está presente no cache; e quando a primeira resposta é recebida, usar a segunda informação criptográfica para promover a troca de chaves.
7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de a conexão segura ser uma conexão mutuamente autenticada.
8. Sistema, CARACTERIZADO pelo fato de compreender: pelo menos uma máquina em uma primeira localização acessível por rede e que inclui instruções de componente de servidor de proxy que são executadas em hardware; pelo menos uma máquina em uma segunda localização acessível por rede e que inclui instruções de cliente de proxy que são executadas em hardware; as instruções de componente de servidor de proxy e as instruções de componente de cliente de proxy compreendendo cada uma um proxy dividido incluindo instruções para o estabelecimento e a manutenção de uma conexão segura entre eles, a conexão segura sendo estabelecida pelo menos em parte por cada uma dentre as instruções de componente de cliente de proxy e as instruções de componente de servidor de proxy do servidor proxy dividido verificando que uma cadeia de certificados tem um nó raiz que corresponde a uma determinada autoridade de certificação; as instruções de componente de cliente de proxy configuradas para receber uma requisição de cumprimento seguro a partir de um cliente; as instruções de componente de cliente de proxy configuradas para determinar, com base nas informações em uma tabela de aprendizado, se uma troca de chave associada à requisição de cumprimento seguro pode ser processada usando uma chave privada que é mantida remotamente e em associação com as instruções de componente de servidor de proxy; as instruções de componente de cliente de proxy, mediante determinação de que a requisição de cumprimento seguro pode ser processada usando a chave privada mantida remotamente, encaminham para as instruções de componente de servidor de proxy através da conexão segura uma primeira informação criptográfica; as instruções de servidor de proxy adaptadas para receber a primeira informação criptográfica encaminhada a partir das instruções de cliente de proxy; as instruções de componente de servidor de proxy ainda configuradas para retornar para as instruções de cliente de proxy através da conexão segura uma primeira resposta ou uma segunda resposta, a primeira resposta sendo uma que inclui uma segunda informação criptográfica, a segunda informação criptográfica tendo sido gerada nas instruções de componente de servidor de proxy mediante recepção da primeira informação criptográfica, gerar uma prova da primeira informação criptográfica, usar a prova como um índice em um cache da primeira informação criptográfica, determinar com base na prova se ou não a primeira informação criptográfica já está presente no cache, quando a primeira informação criptográfica já está presente no cache, retornar uma determinada indicação de status, quando a primeira informação criptográfica ainda não está presente no cache, armazenar a primeira informação criptográfica no cache, procurar e obter a chave privada, e aplicar a chave privada à primeira informação criptográfica para gerar a segunda informação criptográfica, a segunda resposta sendo uma indicação de erro gerada quando a primeira informação criptográfica já está presente no cache; as instruções de componente de cliente de proxy recebem a segunda informação criptográfica e a usam para promover a troca de chave durante o processamento da requisição de cumprimento seguro.
9. Sistema, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de a primeira localização acessível de rede ser um centro de dados associado a uma entidade, a segunda localização acessível de rede sendo uma localização física remota da primeira localização acessível de rede.
10. Sistema, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de, como entre o centro de dados e a localização física, o centro de dados ter um grau mais alto de segurança.
11. Sistema, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de as instruções de componente de servidor de proxy serem associadas a um armazenamento de dados, o armazenamento de dados armazenando segredos pré- mestre encriptados pelo menos a partir das as instruções de componente de cliente de proxy.
12. Sistema, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de o armazenamento de dados ser um cache de segredos pré-mestre encriptados.
13. Sistema, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de as instruções de componente de servidor de proxy receberem um segredo pré-mestre encriptado como a primeira informação criptográfica, geram uma prova do segredo pré-mestre encriptado recebido, usar a prova como um índice para o cache para determinar se o segredo pré-mestre encriptado está presente no cache.
14. Sistema, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de a conexão segura ser uma conexão mutuamente autenticada.
15. Aparelho que é uma segunda máquina, a segunda máquina localizada remotamente de uma primeira máquina, a primeira máquina sendo gerenciada por uma entidade fornecedora, CARACTERIZADO pelo fato de compreender: um processador; uma memória de computador mantendo instruções adaptadas para ser executado pelo processador, as instruções compreendendo instruções configuradas como um componente de servidor de um servidor de proxy dividido, o servidor de proxy dividido também tendo um componente de cliente distinto do componente de servidor e que é executado na primeira máquina remota da segunda máquina, as instruções compreendendo: instruções para o estabelecimento de uma conexão segura para o componente de cliente do servidor de proxy dividido pelo menos em parte mediante verificação que uma cadeia de certificados tem um nó raiz que corresponde a uma determinada autoridade de certificação associada à entidade fornecedora; instruções para receber a partir do componente de cliente do servidor de proxy dividido uma primeira informação criptográfica associada a uma nova requisição de cumprimento seguro, a requisição de cumprimento seguro tendo sido recebida no componente de cliente do servidor de proxy dividido a partir de um cliente, a primeira informação criptográfica tendo sido recebida através da conexão segura após uma determinação no componente de cliente do servidor de proxy dividido que uma troca de chave associada à requisição de cumprimento pode ser processada pelo menos em parte usando uma chave privada que é mantida remotamente e em associação com o componente de servidor do servidor de proxy dividido; instruções para gerar uma prova da primeira informação criptográfica, usar a prova como um índice em um cache, determinar com base na prova se ou não a primeira informação criptográfica já está presente no cache, quando a primeira informação criptográfica já está presente no cache, retornar uma determinada indicação de status, quando a primeira informação criptográfica ainda não está presente no cache, armazenar a primeira informação criptográfica no cache, procurar e obter a chave privada, e aplicar a chave privada à primeira informação criptográfica para gerar uma segunda informação criptográfica; instruções para retornar uma resposta para o componente de cliente do servidor de proxy dividido através da conexão segura, a resposta incluindo a segunda informação criptográfica, a segunda informação criptográfica sendo útil para facilitar adicionalmente a troca de chave durante o processamento da requisição de cumprimento seguro.
16. Aparelho, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de ainda incluir um armazenamento de dados, o armazenamento de dados armazenando segredos pré-mestre encriptados pelo menos a partir do componente de cliente do servidor de proxy dividido.
17. Aparelho, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de o armazenamento de dados ser um ache de segredos pré-mestre encriptados.
18. Aparelho, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de instruções recebem um segredo pré-mestre encriptado como a primeira informação criptográfica, geram uma prova do segredo pré-mestre encriptado recebido, e usam a prova como um índice para o cache para determinar se o segredo pré-mestre encriptado está presente no cache.
19. Aparelho, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de o segredo pré-mestre ser estabelecido usando-se encriptação de RSA assimétrica.
20. Aparelho, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de a conexão segura ser uma conexão mutuamente autenticada.
BR112014033155-3A 2011-12-16 2012-12-17 Aparelho que é uma primeira máquina, método para assegurar uma comunicação, sistema e aparelho que é uma segunda máquina BR112014033155B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161576378P 2011-12-16 2011-12-16
US61/576,378 2011-12-16
US13/714,656 US9647835B2 (en) 2011-12-16 2012-12-14 Terminating SSL connections without locally-accessible private keys
US13/714,656 2012-12-14
PCT/US2012/070075 WO2013090894A1 (en) 2011-12-16 2012-12-17 Terminating ssl connections without locally-accessible private keys

Publications (2)

Publication Number Publication Date
BR112014033155A2 BR112014033155A2 (pt) 2017-08-01
BR112014033155B1 true BR112014033155B1 (pt) 2022-04-12

Family

ID=48610147

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014033155-3A BR112014033155B1 (pt) 2011-12-16 2012-12-17 Aparelho que é uma primeira máquina, método para assegurar uma comunicação, sistema e aparelho que é uma segunda máquina

Country Status (9)

Country Link
US (2) US9647835B2 (pt)
EP (1) EP2792102A4 (pt)
JP (1) JP6113183B2 (pt)
KR (1) KR102069642B1 (pt)
CN (1) CN104081711B (pt)
AU (2) AU2012351909A1 (pt)
BR (1) BR112014033155B1 (pt)
CA (1) CA2859285C (pt)
WO (1) WO2013090894A1 (pt)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2316071A4 (en) * 2008-06-19 2011-08-17 Servicemesh Inc CLOUD DATA PROCESSING GATEWAY, CLOUD DATA PROCESSING HYPERVISOR, AND METHOD FOR IMPLEMENTING THEM
US9069599B2 (en) 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9015469B2 (en) 2011-07-28 2015-04-21 Cloudflare, Inc. Supporting secure sessions in a cloud-based proxy service
US9531691B2 (en) 2011-12-16 2016-12-27 Akamai Technologies, Inc. Providing forward secrecy in a terminating TLS connection proxy
US9531685B2 (en) 2011-12-16 2016-12-27 Akamai Technologies, Inc. Providing forward secrecy in a terminating SSL/TLS connection proxy using Ephemeral Diffie-Hellman key exchange
US8782774B1 (en) * 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9026783B2 (en) * 2013-03-07 2015-05-05 Google Inc. Low latency server-side redirection of UDP-based transport protocols traversing a client-side NAT firewall
KR101737747B1 (ko) * 2013-08-30 2017-05-29 맥아피 인코퍼레이티드 집계된 데이터의 탬퍼 방지 개선
US10110592B2 (en) * 2013-10-09 2018-10-23 Digicert, Inc. Reducing latency for certificate validity messages using private content delivery networks
US9887982B2 (en) 2013-10-09 2018-02-06 Digicert, Inc. Accelerating OCSP responses via content delivery network collaboration
EP3085008B1 (en) * 2013-12-18 2020-01-08 Akamai Technologies, Inc. Providing forward secrecy in a terminating tls connection proxy
US8996873B1 (en) * 2014-04-08 2015-03-31 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9184911B2 (en) 2014-04-08 2015-11-10 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US8966267B1 (en) 2014-04-08 2015-02-24 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
WO2016073552A1 (en) * 2014-11-04 2016-05-12 Akamai Technologies, Inc. Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
US10516532B2 (en) 2015-01-22 2019-12-24 Micro Focus Llc Session key repository
US10404475B2 (en) 2015-01-22 2019-09-03 Visa International Service Association Method and system for establishing a secure communication tunnel
CN105471896B (zh) * 2015-12-28 2019-01-15 深信服科技股份有限公司 基于ssl的代理方法、装置及系统
US10904229B2 (en) 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment, with pre-positioning
US10904332B2 (en) 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment
CN105471916B (zh) * 2016-01-13 2018-08-17 西安电子科技大学 防范安全套接层潜信道密钥恢复的方法
US10447658B2 (en) * 2016-01-22 2019-10-15 Citrix Systems, Inc. System and method for providing improved optimization for secure session connections
CN107172001B (zh) * 2016-03-07 2020-09-01 阿里巴巴集团控股有限公司 网站代理服务器的控制方法及装置、密钥代理服务器
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains
CN105871858A (zh) * 2016-04-15 2016-08-17 浪潮集团有限公司 一种保证数据安全的方法及系统
CN106230782A (zh) 2016-07-20 2016-12-14 腾讯科技(深圳)有限公司 一种基于内容分发网络的信息处理方法及装置
CN110808989B (zh) * 2016-09-30 2022-01-21 贵州白山云科技股份有限公司 一种基于内容分发网络的https加速方法和系统
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
US10587586B2 (en) 2017-01-10 2020-03-10 Mocana Corporation System and method for a multi system trust chain
CN107707517B (zh) * 2017-05-09 2018-11-13 贵州白山云科技有限公司 一种HTTPs握手方法、装置和系统
CN108401011B (zh) * 2018-01-30 2021-09-24 网宿科技股份有限公司 内容分发网络中握手请求的加速方法、设备及边缘节点
US11418352B2 (en) * 2018-02-21 2022-08-16 Akamai Technologies, Inc. Certificate authority (CA) security model in an overlay network supporting a branch appliance
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
CN108449346B (zh) * 2018-03-22 2021-07-27 北京可信华泰科技有限公司 一种密钥生成客户端
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
CN109213744A (zh) * 2018-06-20 2019-01-15 中译语通科技(青岛)有限公司 一种基于大数据的智能运维技术
US11483347B2 (en) 2018-12-05 2022-10-25 Akamai Technologies, Inc. High performance distributed system of record with secure interoperability to external systems
US11595217B2 (en) 2018-12-06 2023-02-28 Digicert, Inc. System and method for zero touch provisioning of IoT devices
CN111404668B (zh) * 2019-01-02 2023-07-21 中国移动通信有限公司研究院 一种信息处理方法、设备及存储介质
US10903990B1 (en) 2020-03-11 2021-01-26 Cloudflare, Inc. Establishing a cryptographic tunnel between a first tunnel endpoint and a second tunnel endpoint where a private key used during the tunnel establishment is remotely located from the second tunnel endpoint
CN113254989B (zh) * 2021-04-27 2022-02-15 支付宝(杭州)信息技术有限公司 目标数据的融合方法、装置和服务器
US11991291B1 (en) * 2022-03-31 2024-05-21 Amazon Technologies, Inc. Content-based domain name enconding, encryption, and routing system

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094485A (en) * 1997-09-18 2000-07-25 Netscape Communications Corporation SSL step-up
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
JP2000312203A (ja) 1999-04-27 2000-11-07 Nippon Telegr & Teleph Corp <Ntt> 暗号通信の通過制御方法およびシステム
EP1113617B1 (en) 1999-12-21 2008-05-28 ContentGuard Holdings, Inc. Method for transferring the right to decode messages
US7340532B2 (en) 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6996616B1 (en) 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US7111057B1 (en) 2000-10-31 2006-09-19 Akamai Technologies, Inc. Method and system for purging content from a content delivery network
US7221370B1 (en) * 2001-01-26 2007-05-22 Palmsource, Inc. Adaptive content delivery
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
WO2002079905A2 (en) 2001-04-02 2002-10-10 Akamai Technologies, Inc. Scalable, high performance and highly available distributed storage system for internet content
US6996841B2 (en) 2001-04-19 2006-02-07 Microsoft Corporation Negotiating secure connections through a proxy server
US7640434B2 (en) * 2001-05-31 2009-12-29 Trend Micro, Inc. Identification of undesirable content in responses sent in reply to a user request for content
US7043632B2 (en) * 2001-12-12 2006-05-09 Nortel Networks Limited End-to-end security in data networks
US7254634B1 (en) 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7133905B2 (en) 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7529933B2 (en) * 2002-05-30 2009-05-05 Microsoft Corporation TLS tunneling
US7007163B2 (en) 2002-05-31 2006-02-28 Broadcom Corporation Methods and apparatus for accelerating secure session processing
US7082534B2 (en) 2002-05-31 2006-07-25 Broadcom Corporation Method and apparatus for performing accelerated authentication and decryption using data blocks
US20040093419A1 (en) 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
US7873829B2 (en) * 2002-11-06 2011-01-18 International Business Machines Corporation Offload processing for secure data transfer
JP2004206573A (ja) 2002-12-26 2004-07-22 Toshiba Corp データ転送装置、サーバー装置、情報提供システム、データ転送方法及びプログラム
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
US7660896B1 (en) 2003-04-15 2010-02-09 Akamai Technologies, Inc. Method of load balancing edge-enabled applications in a content delivery network (CDN)
US7480794B2 (en) * 2004-09-22 2009-01-20 Cisco Technology, Inc. System and methods for transparent encryption
WO2006046289A1 (ja) 2004-10-28 2006-05-04 Mitsubishi Denki Kabushiki Kaisha 通信装置および通信方法
US7657940B2 (en) * 2004-10-28 2010-02-02 Cisco Technology, Inc. System for SSL re-encryption after load balance
JP4371982B2 (ja) * 2004-11-08 2009-11-25 キヤノン株式会社 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8438628B2 (en) * 2005-08-10 2013-05-07 Riverbed Technology, Inc. Method and apparatus for split-terminating a secure network connection, with client authentication
US20070074282A1 (en) * 2005-08-19 2007-03-29 Black Jeffrey T Distributed SSL processing
EP1777907B1 (de) * 2005-10-20 2007-12-12 Ubs Ag Vorrichtungen und Verfahren zum Durchführen von kryptographischen Operationen in einem Server-Client-Rechnernetzwerksystem
WO2007078329A2 (en) 2005-12-30 2007-07-12 Skyetek, Inc. Seamless rfid tag security system
US20080052770A1 (en) 2006-03-31 2008-02-28 Axalto Inc Method and system of providing security services using a secure device
FR2899749B1 (fr) 2006-04-07 2008-07-04 Groupe Ecoles Telecomm Procede de protection d'identite, dispositifs, et produit programme d'ordinateur correspondants.
WO2007134082A2 (en) 2006-05-08 2007-11-22 Intelligent Compression Technologies, Inc. Security-preserving proxy tunnel
US7966646B2 (en) 2006-07-31 2011-06-21 Aruba Networks, Inc. Stateless cryptographic protocol-based hardware acceleration
US8352728B2 (en) * 2006-08-21 2013-01-08 Citrix Systems, Inc. Systems and methods for bulk encryption and decryption of transmitted data
US8095787B2 (en) * 2006-08-21 2012-01-10 Citrix Systems, Inc. Systems and methods for optimizing SSL handshake processing
US8230214B2 (en) * 2006-08-21 2012-07-24 Citrix Systems, Inc. Systems and methods for optimizing SSL handshake processing
US8200960B2 (en) * 2006-10-20 2012-06-12 Oracle America, Inc. Tracking of resource utilization during cryptographic transformations
JP4386926B2 (ja) * 2007-02-16 2009-12-16 富士通株式会社 暗号通信プログラム、暗号通信方法および暗号通信装置
US20100031337A1 (en) 2007-04-09 2010-02-04 Certeon, Inc. Methods and systems for distributed security processing
US8225085B2 (en) * 2007-06-05 2012-07-17 Blue Coat Systems, Inc. System and method for distributed SSL processing between co-operating nodes
US8549282B2 (en) * 2007-06-22 2013-10-01 Trend Micro Incorporated Method and system for monitoring encrypted data transmissions
US8145768B1 (en) * 2008-02-26 2012-03-27 F5 Networks, Inc. Tuning of SSL session caches based on SSL session IDS
JP2009206568A (ja) 2008-02-26 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> サービス妨害攻撃に耐性を持つssl/tls準拠システム、方法、サーバ、プログラムおよび記録媒体
US8788805B2 (en) * 2008-02-29 2014-07-22 Cisco Technology, Inc. Application-level service access to encrypted data streams
KR101528855B1 (ko) * 2008-03-04 2015-06-15 삼성전자주식회사 홈 네트워크에서 인증 정보를 관리하는 방법 및 그 장치
US8700892B2 (en) * 2010-03-19 2014-04-15 F5 Networks, Inc. Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion
US8543805B2 (en) * 2010-04-21 2013-09-24 Citrix Systems, Inc. Systems and methods for split proxying of SSL via WAN appliances
US20140244998A1 (en) * 2010-11-09 2014-08-28 Secure64 Software Corporation Secure publishing of public-key certificates
US8649275B2 (en) * 2011-01-19 2014-02-11 Ixia Fast SSL testing using precalculated cryptographyc data
US8806609B2 (en) * 2011-03-08 2014-08-12 Cisco Technology, Inc. Security for remote access VPN
US8782774B1 (en) 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key

Also Published As

Publication number Publication date
JP6113183B2 (ja) 2017-04-12
AU2017200724A1 (en) 2017-02-23
KR20140103342A (ko) 2014-08-26
CN104081711A (zh) 2014-10-01
US20130156189A1 (en) 2013-06-20
US9647835B2 (en) 2017-05-09
CN104081711B (zh) 2018-01-12
BR112014033155A2 (pt) 2017-08-01
WO2013090894A1 (en) 2013-06-20
JP2015505994A (ja) 2015-02-26
CA2859285C (en) 2020-06-09
AU2012351909A1 (en) 2014-07-03
EP2792102A1 (en) 2014-10-22
KR102069642B1 (ko) 2020-01-23
CA2859285A1 (en) 2013-06-20
US11038854B2 (en) 2021-06-15
US20170244681A1 (en) 2017-08-24
EP2792102A4 (en) 2015-07-29

Similar Documents

Publication Publication Date Title
US11038854B2 (en) Terminating SSL connections without locally-accessible private keys
US11477037B2 (en) Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange
US10091240B2 (en) Providing forward secrecy in a terminating TLS connection proxy
US10298615B2 (en) Splicing into an active TLS session without a certificate or private key
BR112013016797B1 (pt) Roteador de conteúdo, método implementado em um aparelho de rede e aparelho
JP2012182812A (ja) インターネットのための対称鍵配信フレームワーク
EP3216163B1 (en) Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
EP3085008B1 (en) Providing forward secrecy in a terminating tls connection proxy
Cisco Configuring Certification Authority Interoperability
Huda et al. A Proposed Cryptography Key Management in Software-Defined Networking (SDN)
KHINE TLS Cross Credential (TLS-CC) for Authentication in Delegated Networks

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 17/12/2012, OBSERVADAS AS CONDICOES LEGAIS.