BR112012002847B1 - Equipamento, método e suporte físico para proteção de cache - Google Patents

Equipamento, método e suporte físico para proteção de cache Download PDF

Info

Publication number
BR112012002847B1
BR112012002847B1 BR112012002847-2A BR112012002847A BR112012002847B1 BR 112012002847 B1 BR112012002847 B1 BR 112012002847B1 BR 112012002847 A BR112012002847 A BR 112012002847A BR 112012002847 B1 BR112012002847 B1 BR 112012002847B1
Authority
BR
Brazil
Prior art keywords
data
cache
caches
entity
entities
Prior art date
Application number
BR112012002847-2A
Other languages
English (en)
Other versions
BR112012002847A2 (pt
Inventor
Roee Hay
Adi Sharabani
Original Assignee
International Business Machines Corporation
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 International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of BR112012002847A2 publication Critical patent/BR112012002847A2/pt
Publication of BR112012002847B1 publication Critical patent/BR112012002847B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/145Detection or countermeasures against cache poisoning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

equipamento, método e programa de computador para proteção de cache protegendo os computadores contra o envenenamento de cache, incluindo uma tabela de entidade-cache configurada para manter uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos caches é associado com uma entidade diferente, e um gerenciador de cache é configurado para receber dados que estão associados com qualquer uma das entidades e armazenar os dados recebidos em qualquer um dos caches que a tabela de entidade-cache indica que está associado com a entidade, e receber uma solicitação de dados que está associado com qualquer das entidades e recuperar os dados solicitados a partir de qualquer uma dos caches que a tabela de entidade-cache indica que está associado com a entidade solicitante, onde qualquer um da tabela de entidade-cache e gerenciador de cache são implementados tanto em qualquer hardware de computador quanto software de computador concretizado em um meio legível por computador.

Description

CAMPO DA INVENÇÃO
[001] A invenção refere-se à segurança do computador em geral, e maisparticularmente à proteção dos computadores contra o envenenamento de cache.
ANTECEDENTES DA INVENÇÃO
[002] Muitos sistemas de computadores empregam um mecanismo decache, a fim de melhorar a seu desempenho, onde as cópias de dados frequentemente acessados são armazenados em uma área de armazenamento temporário que fornece acesso rápido, reduzindo então o tempo de acesso e/ ou custos envolvidos na frequente recuperação dos dados a partir de sua localização original. Por exemplo, computadores agindo como Protocolo de transferência de hipertexto (HTTP) procuram as páginas cache da rede, a fim de reduzir o tráfego da rede e melhorar a latência, enquanto os computadores atuando como resolvedores de Sistema de Nomes de Domínio (DNS) que mapeiam os nomes de dispositivos conectados a rede aos seus endereços de Protocolo de Internet numéricos (IP) armazenam em cache mapeamentos nome-endereço do dispositivo pela mesma razão.
[003] Computadores que utilizam caches são, no entanto, vulneráveis a umtipo de ataque conhecido como envenenamento de cache no qual é feita uma tentativa para introduzir uma entrada falsa para dentro do cache. Por exemplo, no envenenamento do cache DNS um mapeamento armazenado em cache entre um dispositivo de rede e seu endereço IP é alterado para indicar um endereço IP que é fornecido pelo atacante, cuja localização frequentemente inclui conteúdo malicioso, como um “worm” (verme) de computador ou um vírus de computador. Para um cliente que posteriormente solicita o endereço para o dispositivo de rede é, então, dado o endereço errado, expondo o cliente ao conteúdo malicioso. Infelizmente, onde um computador mantém um cache que é compartilhado por vários clientes, uma instância única de envenenamento de cache pode ludibriar muitas vítimas.
SUMÁRIO DA INVENÇÃO
[004] A invenção em suas concretizações revela novos equipamentos emétodos para a proteção de sistemas de computadores contra o envenenamento de cache.
[005] Em um aspecto da invenção um equipamento ou sistema é fornecidopara proteger os computadores contra o envenenamento de cache, o sistema incluindo uma tabela de cache-entidade configurada para manter uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos caches é associado com uma das diferentes entidades, e um gerenciador de cache configurado para receber dados que estão associados com qualquer uma das entidades e armazenar os dados recebidos em qualquer um dos caches que a tabela de cache-entidade indicar que está associado com a entidade, e receber uma solicitação de dados que está associada com qualquer uma das entidades e recuperar os dados solicitados a partir de qualquer um dos caches que a tabela de cache-entidade indicar que está associado com a entidade solicitante, onde qualquer um da tabela de cache-entidade e gerenciador de cache são implementados tanto em qualquer hardware de computador quanto software de computador concretizado em um meio legível por computador.
[006] Em outro aspecto da invenção o sistema ainda inclui um processadorde solicitação de dados configurado para fornecer para o gerenciador de cache com quaisquer dos dados.
[007] Em outro aspecto da invenção o processador de solicitação de dadosé configurado para receber a solicitação de dados a partir de qualquer uma das entidades e consulta o gerenciador de cache para determinar se os dados solicitados estão disponíveis a partir de qualquer um dos caches.
[008] Em outro aspecto da invenção o gerenciador de cache é configuradopara identificar qualquer entrada que aparece em pelo menos um número predefinido de caches, mover a entrada dos caches para um cache global, e recuperar os dados solicitados a partir do cache global.
[009] Em outro aspecto da invenção um método é fornecido para protegeros computadores contra o envenenamento de cache, o método incluindo a manutenção de uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos caches é associado com uma das diferentes entidades, o recebimento de dados que estão associados com qualquer uma das entidades, o armazenamento dos dados recebidos em qualquer um dos caches que a tabela de cache-entidade indica que está associado com a entidade, o recebimento de uma solicitação de dados que está associada com qualquer uma das entidades, e a recuperação dos dados solicitados a partir de qualquer um dos caches que a tabela de cache-entidade indica que está associado com a entidade solicitante.
[0010] Em outro aspecto da invenção um método é fornecido para proteger os computadores contra o envenenamento de cache, o método incluindo a manutenção de uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos caches é associado com uma das diferentes entidades, o recebimento de dados que estão associado com qualquer uma das entidades, o armazenamento dos dados recebidos em qualquer um dos caches que a tabela de cache-entidade indica que está associado com a entidade, a identificação de qualquer entrada que aparece em pelo menos um número predefinido de caches, o deslocamento da entrada dos caches para um cache global, o recebimento de uma solicitação de dados que está associado com qualquer uma das entidades, a recuperação dos dados solicitados a partir do cache global se o dado solicitado estiver no cache global, e a recuperação dos dados solicitados a partir de qualquer um dos caches que a tabela de cache- entidade indica que está associado com a entidade solicitante se os dados solicitados não estiverem no cache global.
[0011] Em outro aspecto da invenção um produto programa de computador é fornecido para proteger os computadores contra o envenenamento de cache, o produto programa de computador incluindo um meio legível por computador, e as instruções de programa de computador operacionais para manter uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos caches é associado com uma das diferentes entidades, receber dados que estão associados com qualquer uma das entidades, armazenar os dados recebidos em qualquer um dos caches que a tabela de cache entidade indica que está associado com a entidade, identificar qualquer entrada que aparece em pelo menos um número predefinido de caches, mover (ou deslocar) a entrada dos caches para um cache global, receber uma solicitação de dados que está associada com qualquer uma das entidades, recuperar os dados solicitados a partir do cache global se os dados solicitados estiverem no cache global, e recuperar os dados solicitados a partir de qualquer um dos caches que a tabela de cache-entidade indica que está associado com a entidade solicitante se os dados solicitados não estiverem no cache global, onde as instruções do programa são armazenadas em meio legível por computador.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] A invenção será compreendida e apreciada mais completamente a partir da descrição detalhada seguinte analisada em conjunto com os desenhos anexos em que:
[0013] A Fig. 1 é uma ilustração conceitual simplificada de um equipamento ou sistema de proteção contra o envenenamento de cache, construído e operacional de acordo com uma concretização da invenção;
[0014] A Fig. 2 é uma ilustração de fluxograma simplificada de um método exemplificativo de operação do sistema da Fig. 1, operacional de acordo com concretizações da invenção;
[0015] A Fig. 3 é uma ilustração conceitual simplificada de um sistema de proteção contra o envenenamento de cache, construído e operacional de acordo com uma concretização da invenção;
[0016] As Figs. 4A, 4B, e 4C, analisadas em conjunto, formam uma ilustração de fluxograma simplificada de um método exemplificativo de operação do sistema da Fig. 3, operacional de acordo com concretizações da invenção; e
[0017] A Fig. 5 é uma ilustração de diagrama de blocos simplificada de uma implementação de hardware exemplificativo de um sistema de computação, construído e operacional de acordo com uma concretização da invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[0018] A invenção será descrita agora dentro do contexto de uma ou mais concretizações, embora a descrição pretenda ilustrar a invenção como um todo, e não deve ser interpretada como limitando a invenção às concretizações mostradas. É entendido que várias modificações podem ocorrer para aqueles versados na técnica, e que embora não estejam especificamente indicadas aqui, estas estão, contudo, dentro do escopo da invenção.
[0019] Como será percebido por aqueles versados na técnica, a invenção pode ser incorporada como um equipamento ou sistema, método ou produto programa de computador. Assim, a invenção pode assumir a forma de uma concretização totalmente de hardware, uma concretização totalmente de software (incluindo firmware, software residente, micro-código, etc.) ou uma concretização da combinação de aspectos de software e hardware, todos os quais podendo ser aqui referidos geralmente como um "circuito", "módulo" ou "sistema". Além disso, a invenção pode assumir a forma de um produto programa de computador concretizado em qualquer meio tangível de expressão tendo código de programa utilizável por computador concretizado em tal meio.
[0020] Qualquer combinação de um ou mais meio(s) legível por computador ou utilizável por computador podem ser utilizados. O meio de computador utilizável ou legível por computador pode ser, por exemplo, mas não se limitando a, um meio de propagação, dispositivo, aparelhos, equipamentos ou sistema semicondutor eletrônico, magnético, óptico, eletromagnético, ou infravermelho. Exemplos mais específicos (lista não exaustiva) do meio legível por computador incluem os seguintes: uma conexão elétrica tendo um ou mais fios, um disquete de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória somente de leitura (ROM), uma memória programável apagável somente de leitura (EPROM ou memória flash), uma fibra óptica, um disco portátil compacto de memória somente de leitura (CD ROM), um dispositivo de armazenamento óptico, um meio de transmissão tal como aqueles que apoiam a Internet ou intranet, ou um dispositivo de armazenamento magnético. Note-se que o meio utilizável ou legível por computador poderia até ser papel ou outro meio adequado sobre o qual o programa é impresso, como o programa pode ser capturado eletronicamente, via, por exemplo, digitalização óptica do papel ou de outro meio, e então compilado, interpretado, ou processado de outra forma adequada, se necessário, e depois armazenado em uma memória de computador. No contexto deste documento, um meio utilizável por computador ou meio legível por computador pode ser de qualquer meio que possa conter, armazenar, comunicar, propagar, ou transportar o programa para uso por ou em conexão com o sistema, equipamento, aparelho ou dispositivo de execução de instrução. O meio utilizável por computador pode incluir um sinal de dados propagados com o código de programa utilizável por computador, nele concretizado com os mesmos, tanto em banda base ou como parte de uma onda transportadora.
[0021] O código de programa utilizável por computador pode ser transmitido usando qualquer meio adequado, incluindo, mas não limitando-se a sem fio (wireless), com fio de cabo, cabo de fibra óptica, RF, etc.
[0022] O código de programa de computador para a realização de operações da invenção pode ser escrito em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada por objeto como Java, Smalltalk, C ++ ou similares, e linguagens de programação procedurais convencionais e similares, como a linguagem de programação "C" ou linguagens de programação similares. O código do programa pode ser executado inteiramente no computador do usuário, em parte no computador do usuário, como um pacote de software autônomo, em parte no computador do usuário e, em parte em um computador remoto ou inteiramente no computador ou servidor remoto. No último cenário, o computador remoto pode ser conectado ao computador do usuário através de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede de área ampla (WAN), ou a conexão pode ser feita para um computador externo (por exemplo, através da Internet usando um Provedor de Serviços de Internet).
[0023] A invenção é descrita a seguir, com referência às ilustrações de fluxograma e/ ou diagramas em blocos dos métodos, aparelhos (sistemas) e produtos programa de computador de acordo com concretizações da invenção. Será entendido que cada bloco das ilustrações do fluxograma e / ou diagramas de blocos, e combinações de blocos nas ilustrações do fluxograma e / ou diagramas de blocos, pode ser implementado por instruções do programa de computador. Estas instruções de programa de computador podem ser fornecidas para um processador de um computador de uso/ propósito geral, computador de propósito específico, ou outros aparelhos de processamento de dados programáveis para produzir uma máquina, de modo que as instruções, que executam através do processador do computador ou outros aparelhos de processamento de dados programáveis, criem meios para implementação das funções/ atos especificados no fluxograma e/ ou blocos de diagrama de bloco ou blocos.
[0024] Estas instruções de programa de computador também podem ser armazenadas em um meio legível por computador que pode direcionar um computador ou outros aparelhos de processamento de dados programáveis para funcionar de uma maneira particular, de tal forma que as instruções armazenadas no meio legível por computador produzam um artigo de manufatura, incluindo meios de instrução que implementem as funções/ atos especificados no fluxograma e/ ou blocos de diagrama de bloco ou blocos.
[0025] As instruções do programa de computador também podem ser carregadas em um computador ou outro aparelho de processamento de dados programável para causar uma série de passos operacionais que serão executados no computador ou outro equipamento programável para produzir um processo implementado por computador de tal forma que as instruções que executam no computador ou outro aparelho programável forneçam processos para implementação das funções/ atos especificados no fluxograma e/ ou blocos de diagrama de bloco ou blocos.
[0026] Agora faz-se referência a Fig. 1, que é uma ilustração conceitual simplificada de um sistema ou equipamento para proteger computadores contra envenenamento de cache, construído e operacional de acordo com uma concretização da invenção. No sistema da Fig. 1, um gerenciador de cache 100 gerencia múltiplos caches 102, 104 e 106. Embora apenas três caches 102, 104 e 106 sejam mostrados para fins de ilustração, o gerenciador de cache 100 pode gerenciar qualquer número de caches. Os caches 102, 104 e 106 estão todos configurados para incluir dados do mesmo tipo, de tal forma que cada um dos caches 102, 104 e 106 está configurado para armazenar os mapeamentos de endereços DNS, páginas da web, ou qualquer outro tipo de dados conhecidos que podem ser armazenados em cache. O gerenciador de cache 100 administra cada um dos caches 102, 104 e 106, de acordo com as técnicas de gestão de caches convencionais exceto quando é descrita de forma diferente aqui. O gerenciador de cache 100 também é configurado para manter em uma tabela de cache-entidade 108 num dispositivo de armazenamento de dados as associações entre cada um dos caches 102, 104 e 106 e uma entidade, onde uma entidade pode ser um usuário de computador, um computador cliente, um aplicativo de software cliente, uma rede, ou qualquer outro canal, provedor, ou o destinatário dos dados de cache ou qualquer agrupamento de tais canais, provedores ou destinatários. De preferência, dois caches não estarão associados com a mesma entidade.
[0027] Um processador de solicitação de dados 110 recebe uma solicitação de dados de uma entidade e consulta o gerenciador de cache 100 para determinar se os dados solicitados estão disponíveis a partir do cache. O gerenciador de cache 100 identifica a entidade solicitante, determina se algum dos caches 102, 104 e 106 está associado com a entidade, determina se os dados solicitados podem ser recuperados a partir do cache que está associado com a entidade, e recupera os dados solicitados a partir do cache, mediante o que o processador de solicitação de dados 110 fornece os dados recuperados para a entidade. Se os dados solicitados não estiverem disponíveis a partir do cache, o processador de solicitação de dados 110 processa a solicitação de acordo com as técnicas convencionais. Por exemplo, quando a solicitação de dados é para o endereço de Protocolo de Internet (IP) associado a um domínio de Internet, e o endereço não estiver disponível a partir do cache, o processador de solicitação de dados 110 preferencialmente executa uma pesquisa de endereço no Serviço de Nomes de Domínio (DNS) para determinar o endereço IP do domínio. O processador de solicitação de dados 110 em seguida fornece o endereço para a entidade, assim como para o gerenciador de cache 100, para armazenamento conforme descrito daqui em diante com referência à Fig. 2.
[0028] Qualquer um dos caches 102, 104 e 106 e a tabela de cache-entidade 108 são preferencialmente armazenados em um ou mais dispositivos de armazenamento de dados, tais como, mas sem que constitua limitação, dispositivos de armazenamento de dados ópticos ou magnéticos.
[0029] Qualquer um dos elementos mostrados na Figura. 1 acima, e nas Figs. 2, 3, 4A, 4B, 4C e 5 abaixo, são preferencialmente executados por, ou feitos de outra forma acessível a um computador 112, tal como através da implementação de qualquer um dos elementos de hardware de computador e/ ou no software de computador concretizado em um meio legível por computador, de acordo com as técnicas convencionais.
[0030] Referência adicional é feita agora a Fig. 2, que é uma ilustração de fluxograma simplificada de um método exemplificativo de operação do sistema da Fig. 1, operacional de acordo com uma concretização da invenção. No método da Fig. 2, o processador de solicitação de dados 110 recebe uma solicitação de dados de uma entidade, tal como na forma de uma solicitação de pesquisa de endereços DNS a partir de uma aplicação de navegador de rede (web browser) rodando em um computador (não mostrado). O processador de solicitação de dados 110 em seguida consulta o gerenciador de cache 100 para determinar se os dados estão no cache. O gerenciador de cache 100 determina a identidade da entidade, como por exemplo determinando o endereço IP da entidade tal como foi recebido com a solicitação de dados. Se a entidade estiver associada com um cache específico, como por exemplo onde o gerenciador de cache 100 encontra uma associação na tabela cache-entidade 108 entre a entidade e um cache específico, então é feita uma tentativa para encontrar os dados solicitados no cache associado com a entidade solicitante. Se os dados forem encontrados no cache, o processador de solicitação de dados 110 fornece os dados para a entidade solicitante. Se a entidade não estiver associada com um cache específico, o gerenciador de cache 100 preferencialmente criará um cache para a entidade e cria uma associação na tabela cache-entidade 108 entre a entidade e o cache recém-criado. O processador de solicitação de dados 110 então processa a solicitação de dados de acordo com as técnicas convencionais, fornece os dados solicitados à entidade solicitante, e fornece os dados solicitados para o gerenciador de cache 100, que armazena os dados no cache associado com a entidade.
[0031] Será percebido a partir do sistema da Fig. 1 e método da Fig. 2 que os dados que estão associados com uma solicitação de uma entidade "A" são armazenados em um cache que é especificamente associado com a entidade "A", enquanto os dados que estão associados com uma solicitação de uma entidade "B" são armazenados em um cache que é especificamente associado com a entidade "B", onde cada entidade cache é associada a uma entidade diferente. Além disso, quando as solicitações para os dados são recebidos da entidade "A", os dados são recuperados do cache que está associado com a entidade "A", e quando as solicitações para os dados são recebidos de entidade "B", os dados são recuperado do cache que está associado com a entidade "B". Desta forma, uma tentativa de envenenamento de cache que fosse feita em conexão com uma solicitação de dados pela entidade "A", se bem sucedida, apenas afetaria o cache que estivesse associado com a entidade "A", enquanto a entidade "B" não seria afetada.
[0032] Referência agora é feita a Fig. 3, que é uma ilustração conceitualsimplificada de um sistema de proteção contra o envenenamento de cache, construído e operacional de acordo com uma concretização da invenção. O sistema da Fig. 3 é substancialmente semelhante ao sistema da Fig. 1, com a exceção notável de, além do gerenciador de cache 100 gerenciar os caches 102, 104 e 106 para entidades correspondentes, o gerenciador de cache 100 também gerenciar um cache global 300. O gerenciador de cache 100 desloca de qualquer caches 102, 104 e 106 associados à entidade para o cache global 300 qualquer entrada de cache que apareça em pelo menos um número predefinido de caches associados à entidade. Assim, por exemplo, se cada um dos caches 102, 104 e 106 estiver configurado para armazenar os mapeamentos de endereços DNS, e um número predefinido desses caches, como pelo menos dois deles, incluírem o mesmo mapeamento de endereço para www.elhjtypzw.com, o gerenciador de cache 100 preferencialmente moverá o mapeamento de endereços dos caches associados à entidade nos quais a entrada for encontrada para o cache global 300.
[0033] Referência adicional é feita agora as Fig. 4A, 4B e 4C, que, em conjunto, formam uma ilustração de fluxograma simplificada de um método exemplificativo de operação do sistema da Fig. 3, operacional de acordo com uma concretização da invenção. O método da Figura. 4A, 4B, 4C é substancialmente semelhante ao método da Fig. 2, com a notável exceção de que, quando uma solicitação de dados for recebida de uma entidade, o gerenciador de cache 100 primeiramente tenta encontrar os dados solicitados no cache global 300 antes de pesquisar pelos dados em um cache associado a entidade, e onde uma entrada que estiver armazenada em pelo menos um número predefinido de caches associados a entidade é, de preferência, movida, ou deslocada, pelo gerenciador de cache 100 para o cache global 300.
[0034] Referindo-se agora a Fig. 5, o diagrama de blocos 500 ilustra uma implementação de hardware exemplificativo de um sistema ou equipamento de computação, de acordo com o qual um ou mais componentes/ metodologias da invenção (por exemplo, componentes/ metodologias descritas no contexto das Figs. 1, 2, 3, 4A, 4B, e 4C) pode ser implementado, de acordo com uma concretização da invenção.
[0035] Como é demonstrado, as técnicas para controlar o acesso a pelo menos um recurso podem ser implementadas de acordo com um processador 510, uma memória 512, dispositivos de entrada e saída I/O 514, e uma interface de rede 516, acoplada através de um barramento de computador 518 ou arranjo de conexão alternativa. Deve ser compreendido que o termo "processador", tal como aqui é utilizado tem a intenção de incluir qualquer dispositivo de processamento, como, por exemplo, um que inclua uma CPU (unidade central de processamento) e / ou outros circuitos de processamento. Também é preciso entender que o termo "processador" pode se referir a mais de um dispositivo de processamento e que vários elementos associados a um dispositivo de processamento podem ser compartilhados por outros dispositivos de processamento.
[0036] O termo "memória" como é aqui utilizado tem a intenção de incluir memória associada com um processador ou CPU, como, por exemplo, RAM, ROM, um dispositivo de memória fixo (por exemplo, um disco rígido), um dispositivo de memória removível (por exemplo, um disquete), memória flash, etc. Tal memória pode ser considerada um meio de armazenamento legível por computador.
[0037] Além disso, a frase "dispositivo de entrada/ saída" ou "dispositivos I/O" como aqui são utilizados, tem a intenção de incluir, por exemplo, um ou mais dispositivos de entrada (por exemplo, teclado, mouse, scanner, etc.) para inserir dados para a unidade de processamento, e/ ou um ou mais dispositivos de saída (por exemplo, alto-falante, monitor, impressora, etc.) para a apresentação dos resultados associados à unidade de processamento.
[0038] O fluxograma e diagramas de blocos nas Figuras ilustram a arquitetura, funcionalidade e operação de possíveis implementações de sistemas, métodos e produtos programa de computador de acordo com várias concretizações da invenção. Neste sentido, cada bloco no fluxograma e diagramas de bloco pode representar um módulo, segmento, ou parte do código, que compreende uma ou mais instruções executáveis para implementação da função lógica especificada(s). Também deve ser notado que, em algumas implementações alternativas, as funções observadas no bloco podem ocorrer fora da ordem observadas nas figuras. Por exemplo, dois blocos mostrados em sucessão podem, de fato, ser executados substancialmente ao mesmo tempo, ou os blocos às vezes podem ser executados na ordem inversa, dependendo da funcionalidade envolvida. Também será notado que cada bloco do diagrama de blocos e/ ou ilustração do fluxograma, e combinações de blocos no diagrama de blocos e/ ou ilustração do fluxograma, pode ser implementado por sistemas baseados em hardware de propósito específico que desempenham as funções ou atos especificados, ou combinações de hardware de propósito específico e as instruções de computador.
[0039] Apesar de os métodos e aparelhos aqui mencionados poderem ou não ter sido descritos com referência a hardware ou software de computador específicos, percebe-se que os métodos e aparelhos descritos neste documento podem ser facilmente implementados em hardware ou software de computador utilizando técnicas convencionais.
[0040] Embora a invenção tenha sido descrita com referência a uma ou mais concretizações específicas, a descrição tem a intenção de ser ilustrativa da invenção como um todo e não deve ser interpretada como limitando a invenção às concretizações mostradas. É perceptível que várias modificações podem ocorrer para aqueles versados na técnica e que, apesar de não estarem especificamente indicadas, estão, contudo, dentro do escopo da invenção.

Claims (9)

1. EQUIPAMENTO DE COMPUTADOR PARA PROTEÇÃO DE CACHE caracterizado por compreender:um ou mais processadores;uma memória acessível por pelo menos um dos processadores;uma tabela de cache-entidade configurada para manter uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos ditos caches está associado a uma distinta das ditas entidades, eum gerenciador de cache configurado parareceber dados que estão associados a qualquer uma das ditas entidades e armazenar os ditos dados recebidos em qualquer um dos ditos caches de dados que a dita tabela de cache-entidade indicar que esteja associada a dita entidade;receber uma solicitação de dados de qualquer das ditas entidades e recuperar os ditos dados solicitados de qualquer um dos ditos caches de dados que a dita tabela cache-entidade indicar que esteja associada a dita entidade solicitante,identificar qualquer entrada que apareça em pelo menos um número predefinido de ditos caches de dados, e mover dita entrada identificada dos ditos caches de dados para um cache global, dito cache global estando separado de ditos caches de dados, onde solicitações posteriores de dados da dita entrada identificada serão atendidas mediante a recuperação de dita entrada identificada diretamente do dito cache global; e onde qualquer uma das ditas tabela de cache-entidade e gerenciador de cache são implementados tanto em hardware quanto em um conjunto de instruções embutido em um meio legível por computador.
2. EQUIPAMENTO DE COMPUTADOR PARA PROTEÇÃO DE CACHE, de acordo com a reivindicação 1, caracterizado por compreender ainda:um processador de solicitação de dados configurado para fornecer ao dito gerenciador de cache qualquer um dos ditos dados.
3. EQUIPAMENTO DE COMPUTADOR PARA PROTEÇÃO DE CACHE, de acordo com a reivindicação 2, caracterizado por:dito processador de solicitação de dados ser configurado para receber a dita solicitação de dados de qualquer das ditas entidades e consultar o dito gerente de cache para determinar se os ditos dados solicitados estão disponíveis de qualquer dos ditos caches de dados e do dito cache global.
4. EQUIPAMENTO DE COMPUTADOR PARA PROTEÇÃO DE CACHE, de acordo com a reivindicação 1, caracterizado por:dito número predefinido de ditos caches de dados compreender pelo menos dois de ditos caches de dados.
5. MÉTODO PARA PROTEÇÃO DE CACHE caracterizado pelas etapas de:manutenção, em uma tabela cache-entidade, de uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, em que cada um dos ditos caches esteja associado a uma das diferentes ditas entidades;recepção de dados que estejam associados a qualquer uma das ditas entidades;armazenamento dos dados recebidos em qualquer um dos caches que a dita tabela cache-entidade indicar que esteja associado a essa entidade;recebimento de uma solicitação de dados de qualquer uma das ditas entidades;recuperação dos ditos dados solicitados de qualquer dos ditos caches de dados que a dita tabela cache-entidade indicar que esteja associado a dita entidade solicitante; eidentificação de qualquer entrada que apareça em pelo menos um número predefinido de ditos caches de dados e movimentação de dita entrada identificada dos ditos caches de dados para um cache global, dito cache global estando separado de ditos caches de dados onde solicitações subsequentes de dados para dita entrada identificada serão atendidas mediante a recuperação de dita entrada identificada diretamente de dito cache global.
6. MÉTODO PARA PROTEÇÃO DE CACHE, de acordo com a reivindicação 5, caracterizado por:dito número predefinido de ditos caches de dados compreender pelo menos dois de ditos caches de dados.
7. MÉTODO PARA PROTEÇÃO DE CACHE caracterizado pelas etapas de:manter, em uma tabela cache-entidade, uma pluralidade de associações entre uma pluralidade de caches de dados e uma pluralidade de entidades, onde cada um dos ditos caches de dados esteja associado a uma distinta das ditas entidades;receber dados que estejam associados a qualquer uma das ditas entidades;armazenar os ditos dados recebidos em qualquer um dos ditos caches de dados que a dita tabela de cache-entidade indicar que esteja associado a dita entidade;identificar qualquer entrada que apareça em pelo menos um número predefinido de ditos caches de dados;deslocar dita entrada dos ditos caches de dados para um cache global, dito cache global estando separado dos ditos caches de dados;receber uma solicitação de dados de qualquer uma das ditas entidades;atender dita solicitação de dados mediante a recuperação de ditos dados solicitados diretamente do dito cache global se os ditos dados solicitados estiverem no dito cache global; eem resposta a determinação de que ditos dados solicitados não estão no cache global, recuperar ditos dados solicitados de qualquer um dos ditos caches que a dita tabela de cache entidade indicar que esteja associado a dita entidade solicitante.
8. MÉTODO PARA PROTEÇÃO DE CACHE, de acordo com a reivindicação 7, caracterizado por:dito número predefinido de ditos caches de dados compreender pelo menos dois de ditos caches de dados.
9. SUPORTE FÍSICO PARA PROTEÇÃO DE CACHE caracterizado por:conter gravado quaisquer dos métodos das reivindicações 5, 6, 7 e 8.
BR112012002847-2A 2009-09-14 2010-08-31 Equipamento, método e suporte físico para proteção de cache BR112012002847B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/559122 2009-09-14
US12/559,122 US8806133B2 (en) 2009-09-14 2009-09-14 Protection against cache poisoning
PCT/EP2010/062731 WO2011029748A1 (en) 2009-09-14 2010-08-31 Cache protection

Publications (2)

Publication Number Publication Date
BR112012002847A2 BR112012002847A2 (pt) 2018-03-13
BR112012002847B1 true BR112012002847B1 (pt) 2021-12-07

Family

ID=43301930

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012002847-2A BR112012002847B1 (pt) 2009-09-14 2010-08-31 Equipamento, método e suporte físico para proteção de cache

Country Status (10)

Country Link
US (1) US8806133B2 (pt)
EP (1) EP2420042B1 (pt)
JP (1) JP5651179B2 (pt)
KR (1) KR101379082B1 (pt)
CN (1) CN102484647B (pt)
BR (1) BR112012002847B1 (pt)
CA (1) CA2774110C (pt)
MX (1) MX2011013052A (pt)
TW (1) TW201122894A (pt)
WO (1) WO2011029748A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404318B (zh) * 2011-10-31 2015-09-09 杭州迪普科技有限公司 一种防范dns缓存攻击的方法及装置
GB2506624A (en) 2012-10-04 2014-04-09 Ibm Correlation of session activities to a browser window in a client-server environment
US9230037B2 (en) 2013-01-16 2016-01-05 Sap Se Identifying and resolving cache poisoning
WO2014142852A1 (en) * 2013-03-13 2014-09-18 Intel Corporation Vulnerability estimation for cache memory
CN105338016B (zh) 2014-06-27 2019-08-23 国际商业机器公司 数据高速缓存方法和装置以及资源请求响应方法和装置
US9805084B2 (en) 2015-05-14 2017-10-31 Walleye Software, LLC Computer data system data source refreshing using an update propagation graph
US10735461B2 (en) * 2015-10-21 2020-08-04 Verisign, Inc. Method for minimizing the risk and exposure duration of improper or hijacked DNS records
US10938878B2 (en) * 2017-05-16 2021-03-02 Red Hat, Inc. Separate cache servers for storing objects in different dedicated size ranges
US10866943B1 (en) 2017-08-24 2020-12-15 Deephaven Data Labs Llc Keyed row selection
US11201853B2 (en) * 2019-01-10 2021-12-14 Vmware, Inc. DNS cache protection
US10855644B1 (en) 2019-09-09 2020-12-01 Vmware, Inc. Address resolution protocol entry verification
US11575646B2 (en) 2020-03-12 2023-02-07 Vmware, Inc. Domain name service (DNS) server cache table validation
US11829190B2 (en) 2021-12-21 2023-11-28 Advanced Micro Devices, Inc. Data routing for efficient decompression of compressed data stored in a cache
US20230195640A1 (en) * 2021-12-21 2023-06-22 Advanced Micro Devices, Inc. Cache Associativity Allocation
US11836088B2 (en) 2021-12-21 2023-12-05 Advanced Micro Devices, Inc. Guided cache replacement

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324623B1 (en) 1997-05-30 2001-11-27 Oracle Corporation Computing system for implementing a shared cache
JP3358655B2 (ja) 1998-12-22 2002-12-24 日本電気株式会社 ディスクアレイ装置におけるキャッシュメモリ管理方法
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US6516388B1 (en) 2000-09-15 2003-02-04 Hewlett-Packard Company Method and apparatus for reducing cache pollution
US7035911B2 (en) * 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US7386110B2 (en) 2003-08-14 2008-06-10 Hewlett-Packard Development Company, L.P. Directory assistance utilizing a personalized cache
JP2005157605A (ja) 2003-11-25 2005-06-16 Hitachi Ltd 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム
JP4141391B2 (ja) 2004-02-05 2008-08-27 株式会社日立製作所 ストレージサブシステム
US7471684B2 (en) 2004-10-21 2008-12-30 International Machines Corporation Preventing asynchronous ARP cache poisoning of multiple hosts
JP4675631B2 (ja) 2005-01-11 2011-04-27 Kddi株式会社 インデックスサーバ及びp2pネットワークシステム
US20060209818A1 (en) 2005-03-18 2006-09-21 Purser Jimmy R Methods and devices for preventing ARP cache poisoning
US7581066B2 (en) 2005-04-29 2009-08-25 Sap Ag Cache isolation model
US8190823B2 (en) * 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
CN101404649B (zh) 2008-11-11 2012-01-11 阿里巴巴集团控股有限公司 一种基于cache的数据处理系统及其方法
US8108620B2 (en) * 2009-03-10 2012-01-31 Hewlett-Packard Development Company, L.P. Cooperative caching technique

Also Published As

Publication number Publication date
EP2420042B1 (en) 2012-09-26
JP2013504798A (ja) 2013-02-07
WO2011029748A1 (en) 2011-03-17
US8806133B2 (en) 2014-08-12
JP5651179B2 (ja) 2015-01-07
KR101379082B1 (ko) 2014-03-28
CN102484647B (zh) 2014-12-03
BR112012002847A2 (pt) 2018-03-13
CA2774110A1 (en) 2011-03-17
EP2420042A1 (en) 2012-02-22
CA2774110C (en) 2018-11-20
KR20120051051A (ko) 2012-05-21
US20110066807A1 (en) 2011-03-17
TW201122894A (en) 2011-07-01
MX2011013052A (es) 2012-01-20
CN102484647A (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
BR112012002847B1 (pt) Equipamento, método e suporte físico para proteção de cache
US10984456B2 (en) Systems and methods to bypass online advertisement blockers
US9569400B2 (en) RDMA-optimized high-performance distributed cache
JP5587732B2 (ja) ドメイン・ネーム・サービス(dns)データベースへのアクセスを管理するコンピュータ実施方法、コンピュータ・プログラム、およびシステム
US12020051B2 (en) Sharable link for remote computing resource access
JP2006172484A (ja) 検索エンジンを利用して汚染を防ぐシステムおよび方法
US9648033B2 (en) System for detecting the presence of rogue domain name service providers through passive monitoring
US6886077B2 (en) Context-sensitive caching
US20070174324A1 (en) Mechanism to trap obsolete web page references and auto-correct invalid web page references
BRPI0607541B1 (pt) Sistema para detectar um software de rede par a par.
JP2007200331A (ja) 構成可能な期間に関するプライベート・データをキャッシュする方法及び装置
de Vries et al. A first look at QNAME minimization in the domain name system
US10425483B2 (en) Distributed client based cache for keys using demand fault invalidation
US20160337163A1 (en) Aliasing of named data objects and named graphs for named data networks
US20230291715A1 (en) System and method for dns tunneling protection
JP7137072B2 (ja) 情報処理システム、負荷分散処理装置および負荷分散処理プログラム
US11520851B2 (en) Passive DNS system
JP5345577B2 (ja) 名前解決装置、名前解決方法および名前解決プログラム
JP2004234122A (ja) サーバ装置
JP5279601B2 (ja) サーバ装置、データ処理システム、フォーム処理方法、及びプログラム
BRPI0618613B1 (pt) Método e sistema para detectar um software de compartilhamento de arquivo par a par que opera em um computador-alvo e sistema para a detecção de um ou mais aplicativos de software de compartilhamento de arquivo par a par que opera em um computador-alvo
JP2012238935A (ja) 名前管理サーバおよびアクセス制御方法
JP2009182603A (ja) ネットワーク監視システム及びネットワーク監視プログラム

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]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 31/08/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.