Descrição Geral do BranchCache

 

Aplica-se A: Windows Server 2012, Windows 8

Este tópico, que se destina a profissionais das Tecnologias de Informação (TI), disponibiliza informações gerais sobre o BranchCache, incluindo respetivos modos, funcionalidades e capacidades, bem como sobre as funções do BranchCache que estão disponíveis nos diferentes sistemas operativos.

Quem poderá ter interesse no BranchCache?

O BranchCache poderá interessar a administradores de sistemas, arquitetos de redes ou de soluções de armazenamento ou a outros profissionais de TI, nas seguintes circunstâncias:

  • Se conceber ou suportar infraestruturas de TI numa organização que tenha duas ou mais localizações físicas e uma ligação de rede alargada (WAN) das sucursais para a sede.

  • Se conceber ou suportar infraestruturas de TI numa organização que tenha implementado tecnologias de nuvem e na qual os colaboradores utilizam uma ligação WAN para aceder aos dados e às aplicações em localizações remotas.

  • Se pretender otimizar a utilização da largura de banda WAN, ao reduzir a quantidade do tráfego de rede entre as sucursais e a sede.

  • Se tiver implementado ou planear implementar servidores de conteúdo na sede que correspondam às configurações descritas neste tópico.

  • Se os computadores cliente das sucursais executarem o Windows® 8 ou o Windows® 7.

Este tópico inclui as secções seguintes:

  • O que é o BranchCache?

  • Modos BranchCache

  • Servidores de conteúdo com capacidade para BranchCache

  • O BranchCache e a nuvem

  • Versões das informações dos conteúdos

  • Como o BranchCache processa as atualizações de conteúdo nos ficheiros

  • Guia de instalação do BranchCache

  • Versões do sistema operativo para o BranchCache

  • Segurança do BranchCache

  • Fluxo e processos dos conteúdos

  • Segurança da Cache

O que é o BranchCache?

O BranchCache é uma tecnologia de otimização de largura de banda de redes alargadas (WAN) que está incluída em algumas edições dos sistemas operativos Windows Server® 2012 e Windows® 8, bem como em algumas edições do Windows Server® 2008 R2 e do Windows® 7. Para otimizar a largura de banda WAN quando os utilizadores acedem a conteúdos em servidores remotos, o BranchCache copia os conteúdos dos servidores de conteúdo da sede ou da nuvem alojada e coloca-os em cache nas localizações das sucursais, permitindo aos computadores cliente dessas sucursais aceder aos conteúdos localmente e não através da WAN.

Nas sucursais, os conteúdos são armazenados em servidores que estão configurados para alojar a cache ou, se não houver servidores disponíveis nas sucursais, em computadores cliente que executem o Windows 8 ou o Windows 7. Depois de um computador cliente pedir e receber conteúdos da sede e estes forem colocados em cache na sucursal, os outros computadores da mesma sucursal podem obter os conteúdos localmente em vez de terem de os transferir do servidor de conteúdos através da ligação WAN.

Se os computadores cliente fizerem pedidos subsequentes para os mesmos conteúdos, os clientes transferem as informações dos conteúdos do servidor e não os conteúdos propriamente ditos. As informações dos conteúdos consistem em hashes que são calculados através de segmentos dos conteúdos originais e são extremamente pequenas quando comparadas com os conteúdos dos dados originais. Posteriormente, os computadores cliente utilizam as informações dos conteúdos para os localizar numa cache na sucursal, independentemente de a cache estar localizada num computador cliente ou num servidor. Os computadores cliente e os servidores também utilizam as informações dos conteúdos para proteger conteúdos colocados em cache, para que não possam ser acedidos por utilizadores não autorizados.

O BranchCache aumenta a produtividade do utilizador final, ao melhorar os tempos de resposta das consultas de conteúdos dos clientes e servidores nas sucursais, e também pode ajudar a otimizar o desempenho da rede, ao reduzir o tráfego através de ligações WAN.

Modos BranchCache

O BranchCache tem dois modos de funcionamento: o modo de cache distribuída e o modo de cache alojada.

Se implementar o BranchCache no modo de cache distribuída, a cache de conteúdos nas sucursais é distribuída entre os computadores cliente.

Se implementar o BranchCache no modo de cache alojada, a cache de conteúdos nas sucursais é alojada num ou mais computadores servidor, que são denominados servidores de cache alojada.

Nota

Pode utilizar ambos os modos para implementar o BranchCache; contudo, só pode ser utilizado um modo por sucursal. Por exemplo, se tiver duas sucursais e uma delas tiver um servidor e a outra não, pode implementar o BranchCache no modo de cache alojada na localização que tem o servidor e no modo de cache distribuída na localização que tem apenas computadores cliente.

Na imagem abaixo, o BranchCache está implementado nos dois modos.

Modos BranchCache

O modo de cache distribuída é mais adequado para pequenas sucursais que não têm um servidor local que possa ser utilizado como servidor de cache alojada. Este modo permite implementar o BranchCache sem precisar de hardware adicional nas sucursais.

Se a sucursal na qual pretende implementar o BranchCache tiver outras infraestruturas, como um ou mais servidores que executem outras cargas de trabalho, é vantajoso implementá-lo no modo de cache alojada, pelos seguintes motivos:

Maior disponibilidade da cache

O modo de cache alojada aumenta a eficiência da cache, porque os conteúdos estão disponíveis mesmo se o cliente que inicialmente pediu e colocou em cache os dados estiver offline. Uma vez que o servidor de cache alojada está sempre disponível, são colocados em cache mais conteúdos, o que permite poupanças maiores na largura de banda WAN, e a eficiência do BranchCache é melhorada.

Colocação em cache centralizada em sucursais com várias sub-redes

O modo de cache distribuída funciona numa sub-rede individual. Em sucursais que tenham várias sub-redes e que estejam configuradas para o modo de cache distribuída, não é possível partilhar ficheiros transferidos para uma sub-rede com computadores cliente noutras sub-redes. Por este motivo, os clientes nas outras sub-redes, incapazes de detetar que os ficheiros já foram transferidos, obtêm-nos do servidor de conteúdos da sede e utilizam largura de banda WAN nesse processo. Contudo, isto não se passa se implementar o modo de cache alojada. Neste caso, todos os clientes numa sucursal com várias sub-redes podem aceder a uma cache individual, que está armazenada no servidor de cache alojada, mesmo se os clientes estiverem em sub-redes diferentes. Além disso, o BranchCache no Windows Server 2012 oferece a capacidade de implementar mais de um servidor de cache alojada por sucursal.

Aviso

Se utilizar o BranchCache para a colocação em cache SMB de ficheiros e pastas, não desative os Ficheiros Offline. Se os desativar, a colocação em cache SMB do BranchCache não funcionará corretamente.

Servidores de conteúdo com capacidade para BranchCache

Quando implementa o BranchCache, o conteúdo de origem é armazenado em servidores de conteúdo com capacidade para BranchCache na sede. O BranchCache suporta os tipos de servidores de conteúdo seguintes:

Nota

Apenas conteúdos de origem, ou seja, conteúdos que os computadores cliente obtêm inicialmente a partir de um servidor de conteúdos com capacidade para BranchCache, são acelerados pelo BranchCache. Os conteúdos que os computadores cliente obtêm a partir de outras origens, como servidores Web na Internet ou o Windows Update, não são colocados em cache por aqueles nem pelos servidores de cache alojada e, depois, partilhados com outros computadores na sucursal. No entanto, se pretender acelerar os conteúdos do Windows Update, pode instalar um servidor de aplicações do Windows Server Update Services (WSUS) na sede e configurá-lo como servidor de conteúdos do BranchCache.

Servidores Web

Os servidores Web suportados incluem computadores com o Windows Server 2012 ou o Windows Server® 2008 R2, que têm a função de servidor do Servidor da Web (IIS) e que utilizam o Protocolo HTTP (Hypertext Transfer Protocol) ou HTTPS (HTTP Secure). Além disso, o servidor Web tem de ter instalada a funcionalidade BranchCache. Para obter mais informações sobre o Servidor Web (IIS) no Windows Server 2012, consulte Web Server (IIS).

Servidores de ficheiros

Os servidores de ficheiros suportados incluem computadores com o Windows Server 2012 ou o Windows Server 2008 R2 e que têm instalados a função de servidor Serviços de Ficheiros e o serviço de função BranchCache para Ficheiros de Rede. Estes servidores de ficheiros utilizam o Protocolo SMB (Server Message Block) para trocar informações entre os computadores. Depois de concluir a instalação do servidor de ficheiros, tem também de partilhar as pastas e ativar a geração de hashes para as pastas partilhadas ao utilizar a Política de Grupo ou a Política de Computador Local, de modo a ativar o BranchCache. Para obter mais informações sobre os Serviços de Ficheiros e Armazenamento no Windows Server 2012, consulte Serviços de Ficheiros e Armazenamento.

Servidores de aplicações

Os servidores de aplicações suportados incluem os computadores com o Windows Server 2012 ou o Windows Server 2008 R2 com o Serviço de Transferência Inteligente em Segundo Plano (Background Intelligent Transfer Service, BITS) instalado e ativado. Além disso, o servidor de aplicações tem de ter instalada a funcionalidade BranchCache. Por exemplo, pode implementar os servidores Microsoft Windows Server Update Services (WSUS) e Ponto de Distribuição Secundário do Microsoft System Center Configuration Manager como servidores de conteúdo do BranchCache.

O BranchCache e a nuvem

A nuvem tem um potencial enorme para reduzir os custos operacionais e obter novos níveis de dimensionamento, mas retirar as cargas de trabalho às pessoas que delas dependem pode aumentar os gastos com a rede e prejudicar a produtividade. Os utilizadores contam com elevado desempenho e não estão preocupados em saber onde é que as aplicações e os dados estão alojados. O BranchCache pode melhorar o desempenho das aplicações em rede e reduzir o consumo da largura de banda com uma colocação em cache dos dados partilhada. Melhora a produtividade nas sucursais e na sede, onde os colaboradores utilizam servidores que estão implementados na nuvem.

Visto que o BranchCache não requer hardware novo nem alterações à topologia de rede, é uma excelente solução para melhorar a comunicação entre as localizações da organização e entre nuvens públicas e privadas.

Para obter mais informações sobre as tecnologias de nuvem no Windows Server 2012, consulte Criar a Infraestrutura de Nuvem.

Versões das informações dos conteúdos

Existem duas versões de informações dos conteúdos:

  • As informações dos conteúdos compatíveis com computadores com o Windows Server 2008 R2 e o Windows 7 são denominadas versão 1, ou V1. Com a segmentação de ficheiros V1 do BranchCache, os segmentos de ficheiros são maiores do que na V2 e de tamanho fixo. Devido aos tamanhos grandes e fixos dos segmentos, sempre que um utilizador efetuar uma alteração que modifique o comprimento do ficheiro, não só o segmento com a alteração é invalidado, como todos os segmentos até ao fim do ficheiro são também invalidados. Consequentemente, o pedido seguinte pelo ficheiro alterado por parte de outro utilizador na sucursal resulta em poupanças na largura de banda WAN inferiores, porque o conteúdo alterado e todos os conteúdos posteriores à alteração são enviados através da ligação WAN.

  • As informações dos conteúdos compatíveis com computadores com o Windows Server 2012 e o Windows 8 são denominadas versão 2, ou V2. As informações dos conteúdos V2 utilizam segmentos de tamanho mais pequeno e variável e que são mais tolerantes a alterações em ficheiros, o que aumenta a probabilidade de ser possível reutilizar segmentos de uma versão mais antiga do ficheiro se os utilizadores acederem a uma versão atualizada, permitindo-lhes obter apenas a parte alterada do mesmo a partir do servidor de conteúdos e utilizar menos largura de banda WAN.

A tabela abaixo disponibiliza informações sobre a versão das informações dos conteúdos que é utilizada consoante os sistemas operativos do cliente, do servidor de conteúdos e do servidor de cache alojada que utilizar na sua implementação do BranchCache.

Nota

Na tabela seguinte, o acrónimo "SO" significa sistema operativo.

SO do Cliente SO do Servidor de Conteúdos SO do Servidor de Cache Alojada Versão das Informações dos Conteúdos
Windows Server 2008 R2 e Windows 7 Windows Server 2012 ou Windows Server 2008 R2 Windows Server 2012 ou Windows Server 2008 R2; nenhum para o modo de cache distribuída V1
Windows Server 2012 e Windows 8 Windows Server 2008 R2 Windows Server 2012 ou Windows Server 2008 R2; nenhum para o modo de cache distribuída V1
Windows Server 2012 e Windows 8 Windows Server 2012 Windows Server 2008 R2; nenhum para o modo de cache distribuída V1
Windows Server 2012 e Windows 8 Windows Server 2012 Windows Server 2012; nenhum para o modo de cache distribuída V2

Se tiver servidores de conteúdo e servidores de cache alojada com o Windows Server 2012, estes utilizam a versão das informações dos conteúdos que é adequada, com base no sistema operativo do cliente BranchCache que solicita as informações. Quando os computadores com o Windows Server 2012 e o Windows 8 solicitam conteúdos, os servidores de conteúdo e de cache aloja utilizam as informações dos conteúdos V2; quando os computadores com o Windows Server 2008 R2 e o Windows 7 solicitam conteúdos, os servidores de conteúdo e de cache alojada utilizam as informações dos conteúdos V1.

Na implementação do BranchCache no modo de cache distribuída, os clientes que utilizam versões de informações dos conteúdos diferentes não partilham os conteúdos entre eles.

Como o BranchCache processa as atualizações de conteúdo nos ficheiros

Se os utilizadores da sucursal modificarem ou atualizarem os conteúdos de documentos, as alterações são escritas diretamente no servidor de conteúdos da sucursal, sem o envolvimento do BranchCache. Isto verifica-se, quer o utilizador tenha transferido o documento a partir do servidor de conteúdos, quer o tenha obtido a partir de uma cache alojada ou distribuída, na sucursal.

Quando o ficheiro modificado é solicitado por um cliente diferente numa sucursal, os segmentos novos do ficheiro são transferidos a partir do servidor da sede e adicionados à cache distribuída ou alojada nessa sucursal. Por esse motivo, os utilizadores da sucursal recebem sempre as versões mais recentes do conteúdo em cache.

Guia de instalação do BranchCache

Pode utilizar o Gestor de Servidores no Windows Server 2012 para instalar a funcionalidade BranchCache ou o serviço de função BranchCache para Ficheiros de Rede da função de servidor dos Serviços de Ficheiros. Pode utilizar a tabela abaixo para saber se deve instalar o serviço de função ou a funcionalidade.

Funcionalidade Localização do computador Instalar este elemento do BranchCache
Servidor de conteúdos (servidor de aplicações baseado em BITS) Sede ou centro de dados na nuvem Funcionalidade BranchCache
Servidor de conteúdos (servidor Web) Sede ou centro de dados na nuvem Funcionalidade BranchCache
Servidor de conteúdos (servidor de ficheiros a utilizar o protocolo SMB) Sede ou centro de dados na nuvem Serviço de função BranchCache para Ficheiros de Rede da função de servidor dos Serviços de Ficheiros
Servidor de cache alojada Sucursal Funcionalidade BranchCache com o modo de servidor de cache alojada ativado
Computador cliente com capacidade para BranchCache Sucursal Não é necessário instalar; basta ativar o BranchCache e um modo BranchCache (distribuído ou alojado) no cliente

Para instalar o serviço de função ou a funcionalidade, abra o Gestor de Servidores e selecione os computadores nos quais pretende ativar a funcionalidade BranchCache. No Gestor de Servidores, clique em Gerir e, em seguida, clique em Adicionar Funções e Funcionalidades. É aberto o assistente Adicionar Funções e Funcionalidades. Ao percorrer o assistente, faça as seleções seguintes:

  • Na página Selecionar Tipo de Instalação do assistente, selecione Instalação Baseada em Funções ou Funcionalidades.

  • Na página Selecionar Funções de Servidor do assistente, se estiver a instalar um servidor de ficheiros com capacidade para BranchCache, selecione Serviços de Ficheiros. Mais à frente no processo de configuração do assistente, selecione também BranchCache para Ficheiros de Rede. Se não pretender instalar um servidor de ficheiros com capacidade para BranchCache, não instale a função Serviços de Ficheiros com o serviço de função BranchCache para Ficheiros de Rede.

  • Na página Selecionar funcionalidades do assistente, se estiver a instalar um servidor de conteúdos que não é um servidor de ficheiros ou a instalar um servidor de cache alojada, selecione BranchCache. Se não pretender instalar um servidor de conteúdos que não seja um servidor de ficheiros ou um servidor de cache alojada, não instale a funcionalidade BranchCache.

Versões do sistema operativo para o BranchCache

A lista seguinte apresenta os sistemas operativos que suportam diferentes tipos da funcionalidade BranchCache.

Sistemas operativos para a funcionalidade de computador cliente BranchCache

  • Windows® 8 Enterprise

  • Windows® 7 Enterprise

  • Windows® 7 Ultimate

Sistemas operativos para a funcionalidade de servidor de conteúdos BranchCache

A família de sistemas operativos Windows Server 2012 pode ser utilizada como servidor de conteúdos BranchCache.

Além disso, é possível utilizar a família de sistemas operativos Windows Server® 2008 R2 como servidor de conteúdos BranchCache, com as exceções seguintes:

  • O BranchCache não é suportado em instalações Server Core do Windows Server® 2008 R2 Enterprise com Hyper-V.

  • O BranchCache não é suportado em instalações Server Core do Windows Server® 2008 R2 Datacenter com Hyper-V.

Sistemas operativos para a funcionalidade de servidor de cache alojada BranchCache

A família de sistemas operativos Windows Server 2012 pode ser utilizada como servidor de cache alojada BranchCache.

Além disso, os sistemas operativos Windows Server® 2008 R2 seguintes podem ser utilizados como servidor de cache alojada BranchCache:

  • Windows Server® 2008 R2 Enterprise

  • Windows Server 2008 R2 Enterprise com Hyper-V

  • Instalação Server Core do Windows Server 2008 R2 Enterprise

  • Instalação Server Core do Windows Server 2008 R2 Enterprise com Hyper-V

  • Windows Server 2008 R2 para Sistemas Baseados em Itanium

  • Windows Server® 2008 R2 Datacenter

  • Windows Server® 2008 R2 Datacenter com Hyper-V

  • Instalação Server Core do Windows Server 2008 R2 Datacenter com Hyper-V

Segurança do BranchCache

O BranchCache põe em prática uma abordagem de conceção segura, que funciona consistentemente em paralelo com as suas arquiteturas de segurança de rede, sem precisar de equipamentos adicionais nem configurações de segurança complexas extra.

O BranchCache não é invasivo e não altera nenhum processo de autenticação ou autorização do Windows. Depois de implementar o BranchCache, a autenticação continua a ser feita por meio de credenciais de domínio e a forma de funcionamento da autorização com Listas de Controlo de Acesso (ACLs) não é alterada. Além disso, as outras configurações continuam a funcionar da forma que funcionavam antes da implementação do BranchCache.

O modelo de segurança do BranchCache baseia-se na criação de metadados, que assumem a forma de uma série de hashes. Estes hashes também são denominados informações dos conteúdos.

Após a criação das informações dos conteúdos, estas são utilizadas nas trocas de mensagens do BranchCache em vez dos dados propriamente ditos, sendo que essas trocas utilizam os protocolos suportados (HTTP, HTTPS e SMB).

Os dados em cache são mantidos encriptados e não podem ser acedidos por clientes que não tenham permissão para aceder a conteúdos a partir da origem original. Antes de poderem obter os metadados dos conteúdos, os clientes têm de ser autenticados e autorizados pela origem dos conteúdos original e têm de processar esses metadados para aceder à cache no escritório local.

Como o BranchCache gera as informações dos conteúdos

Uma vez que as informações dos conteúdos são criadas a partir de vários elementos, o valor das mesmas é sempre único. Estes elementos são:

  • Os conteúdos propriamente ditos (como páginas Web ou ficheiros partilhados) a partir dos quais os hashes derivam.

  • Parâmetros de configuração, como o algoritmo hash e o tamanho do bloco. Para gerar as informações dos conteúdos, o servidor de conteúdos divide os conteúdos em segmentos e, depois, subdivide-os em blocos. O BranchCache utiliza hashes criptográficos seguros para identificar e verificar cada bloco e segmento, e suporta o algoritmo hash SHA256.

  • Um segredo de servidor. Todos os servidores de conteúdos têm de ser configurados com um segredo de servidor, que é um valor binário de comprimento arbitrário.

Nota

A utilização do segredo de servidor garante que os computadores cliente não conseguem gerar eles próprios as informações dos conteúdos, o que impede os utilizadores mal intencionados de fazerem ataques de força bruta aos computadores cliente com capacidade para BranchCache, para tentarem adivinhar pequenas alterações nos conteúdos em várias versões, em situações nas quais o cliente tinha acesso a uma versão anterior, mas não o tem à versão atual.

Detalhes das informações dos conteúdos

O BranchCache utiliza o segredo de servidor como chave, de modo a gerir um hash específico de conteúdo, que é enviado para os clientes autorizados. A geração deste hash resulta da aplicação de um algoritmo hash ao segredo de servidor e ao Hash dos Dados combinados.

Este hash é denominado segredo do segmento. O BranchCache utiliza os segredos do segmento para proteger as comunicações. Além disso, o BranchCache cria uma Lista de Hashes de Blocos, que é uma lista dos blocos de dados com hash, e o Hash dos Dados, que é gerado ao criar os hashes da Lista de Hashes de Blocos.

As informações dos conteúdos incluem o seguinte:

  • A Lista de Hashes de Blocos:

    BlockHashi = Hash(dataBlocki) 1<=i<=n

  • Os Hashes dos Dados (Hash of Data, HoD):

    HoD = Hash(BlockHashList)

  • Segredo do Segmento (Kp):

    Kp = HMAC(Ks, HoD)

O BranchCache utiliza o protocolo PCC (Peer Content Caching) e o protocolo Retrieval Framework para implementar os processos necessários para garantir a colocação em cache e a obtenção segura dos dados entre caches de conteúdos.

Ademais, o BranchCache processa as informações dos conteúdos com o mesmo nível de segurança com que processa e transmite os conteúdos propriamente ditos.

Fluxo e processos dos conteúdos

O fluxo das informações dos conteúdos e dos conteúdos propriamente ditos está dividido em quatro fases:

  1. Processos do BranchCache: solicitar conteúdos

  2. Processos do BranchCache: localizar conteúdos

  3. Processos do BranchCache: obter conteúdos

  4. Processos do BranchCache: colocar conteúdos em cache

A secção seguinte descreve essas fases.

Processos do BranchCache: solicitar conteúdos

Na primeira fase, o computador cliente na sucursal solicita o conteúdo, como um ficheiro ou uma página Web, de um servidor de conteúdos numa localização remota, como a sede. O servidor de conteúdos verifica se o computador cliente está autorizado a receber os conteúdos solicitados. Se estiver autorizado e, tanto o servidor de conteúdos, como o cliente, tiverem capacidade para BranchCache, o servidor de conteúdos gera as informações do conteúdo.

Depois, o servidor de conteúdos envia as informações do conteúdo para o computador cliente através do mesmo protocolo que teria sido utilizado para o conteúdo propriamente dito. Por exemplo, se o computador cliente tiver solicitado uma página Web através de HTTP, o servidor de conteúdos utiliza HTTP para enviar as informações do conteúdo. Por este motivo, as garantias de segurança ao nível da rede do conteúdo e das informações do conteúdo são idênticas.

Depois de recebida a parte inicial das informações do conteúdo (Hash dos Dados + Segredo do Segmento), o computador cliente efetua as ações seguintes:

  • Utiliza o Segredo do Segmento (Kp) como a chave de encriptação (ke).

  • Gera o ID do Segmento (HoHoDk) a partir do HoD e do Kp:

    HoHoDk = HMAC(Kp, HoD + C), where C is the ASCII string “MS_P2P_CACHING” with NUL terminator.

A principal ameaça nesta camada é o risco para o Segredo do Segmento; no entanto, o BranchCache encripta os blocos de dados dos conteúdos para protegê-lo. Para tal, utiliza a chave de encriptação que provém do Segredo do Segmento do segmento do conteúdo no qual estão localizados os blocos do conteúdo. Esta abordagem garante que uma entidade que não esteja na posse do segredo do servidor não consegue detetar o conteúdo propriamente dito num bloco de dados. O Segredo do Segmento é processado com o mesmo nível de segurança que o segmento em texto não encriptado, porque o conhecimento desse Segredo relativo a um determinado segmento por parte de uma entidade permite obter o segmento a partir de outros elementos e, depois, desencriptá-lo. O conhecimento do Segredo do Servidor não produz de imediato texto não encriptado particular, mas pode ser utilizado para obter determinados tipos de dados a partir do texto cifrado e, depois, expor possivelmente alguns dados parcialmente conhecidos a um ataque de deteção de força bruta. Consequentemente, o segredo do servidor deve ser mantido confidencial.

Processos do BranchCache: localizar conteúdos

Após o computador cliente ter recebido as informações dos conteúdos, o cliente utiliza o ID do Segmento para localizar os conteúdos solicitados na cache da sucursal local, independentemente de a cache estar distribuída entre computadores clientes ou localizada num servidor de cache alojada.

Se o computador cliente estiver configurado no modo de cache alojada, está configurado com o nome do computador do servidor de cache alojada e contacta esse servidor para obter os conteúdos.

Contudo, se o computador cliente estiver configurado no modo de cache distribuída, os conteúdos poderão ser armazenados em várias caches em muitos computadores da sucursal. Antes de os conteúdos serem obtidos, o computador cliente tem de detetar onde estão localizados.

Se estiverem configurados no modo de cache distribuída, os computadores cliente localizam os conteúdos através de um protocolo de deteção baseado no protocolo WS-Discovery (Web Services Dynamic Discovery). Os clientes enviam mensagens de deteção multicast WS-Discovery para detetar os conteúdos em cache através da rede. As mensagens de deteção incluem o ID do Segmento, que permite aos clientes verificar se os conteúdos solicitados correspondem aos conteúdos armazenados nas respetivas caches. Os clientes que recebem a mensagem de deteção inicial respondem ao cliente que efetua a consulta com mensagens de deteção/correspondência unicast, caso o ID do Segmento corresponda a conteúdos colocados em cache localmente.

O êxito do processo WS-Discovery depende do facto de o cliente que está a efetuar a deteção ter as informações dos conteúdos corretas, que foram fornecidas pelo servidor de conteúdos, relativas aos conteúdos que está a solicitar.

Durante a fase de Solicitar conteúdos, a maior ameaça aos dados é a divulgação de informações, porque o acesso às informações dos conteúdos implicam acesso autorizado aos conteúdos. Para mitigar este risco, o processo de deteção não revela as informações dos conteúdos, exceto o ID do Segmento, o qual não expõe nada sobre os segmentos em texto não encriptado que contêm os conteúdos.

Além disso, outro computador cliente executado por um utilizador mal intencionado na mesma sub-rede da rede pode ver o tráfego de deteção do BranchCache para a origem dos conteúdos original a percorrer o tráfego.

Se os conteúdos solicitados não forem localizados na sucursal, o cliente solicita-os diretamente a partir do servidor de conteúdos através da ligação WAN.

Depois de recebidos, os conteúdos são adicionados à cache local, seja no computador cliente ou num servidor de cache alojada. Neste caso, as informações dos conteúdos impedem que os clientes ou os servidores de cache alojada adicionem à cache local conteúdos que não correspondem aos hashes. O processo de verificar os conteúdos por hashes correspondentes assegura que só são adicionados à cache conteúdos válidos e que a integridade da cache local está protegida.

Processos do BranchCache: obter conteúdos

Depois de localizar os conteúdos pretendidos no anfitrião de conteúdos, que é um servidor de cache alojada ou um computador cliente no modo de cache distribuída, o computador cliente inicia o processo de obtenção dos conteúdos.

O computador cliente começa por enviar um pedido ao anfitrião de conteúdos relativamente ao primeiro bloco de que precisa. O pedido contém o ID do Segmento e o intervalo de blocos que identificam os conteúdos pretendidos. Uma vez que só é devolvido um bloco, o intervalo de blocos contém apenas um único bloco (atualmente, os pedidos de vários blocos não são suportados). O cliente também armazena o pedido na respetiva Lista de Pedidos Pendentes.

Após receber uma mensagem de pedido válido de um cliente, o anfitrião de conteúdos verifica se o bloco indicado no pedido existe na respetiva cache de conteúdos.

Se o anfitrião de conteúdos estiver na posse do bloco do conteúdo, envia uma resposta que inclui o ID do Segmento, o ID do Bloco, o bloco de dados encriptados e o vetor de inicialização utilizado para encriptar o bloco.

Se o anfitrião de conteúdos não estiver na posse do bloco do conteúdo, envia uma mensagem de resposta vazia, que informa o computador cliente de que não tem o bloco solicitado. As mensagens de respostas vazias contêm o ID do Segmento e o ID do Bloco do bloco solicitado, juntamente com um bloco de dados de tamanho zero.

Quando o computador cliente recebe a resposta do anfitrião de conteúdos, verifica se a mensagem corresponde a uma mensagem solicitada na respetiva Lista de Pedidos Pendentes (o ID do Segmento e o índice do bloco têm de corresponder aos de um pedido pendente).

Se o processo de verificação não tiver êxito e o computador cliente não tiver uma mensagem de pedido correspondente na Lista de Pedidos Pendentes, este rejeita a mensagem.

Se o processo de verificação tiver êxito e o computador cliente tiver uma mensagem de pedido correspondente na Lista de Pedidos Pendentes, este desencripta o bloco. Depois, o cliente valida o bloco desencriptado face ao hash de bloco adequado das informações do conteúdo que obteve inicialmente a partir do servidor de conteúdos original.

Se a validação do bloco tiver êxito, o bloco desencriptado é armazenado na cache.

Este processo é repetido até que o cliente tenha todos os blocos necessários.

Nota

Se os segmentos completos do conteúdo não existirem num computador, o protocolo de obtenção obtém e assembla o conteúdo a partir de uma combinação de origens: um conjunto de computadores cliente no modo de cache distribuída, um servidor de cache alojada e, se as caches da sucursal não incluírem o conteúdo completo, o servidor de conteúdos original na sede.

Os dados são encriptados antes de o BranchCache enviar as informações do conteúdo ou o conteúdo. O BranchCache encripta o bloco na mensagem de resposta. No Windows 7, o BranchCache utiliza o algoritmo de encriptação predefinido AES-128, a chave de encriptação é Ke e o tamanho da chave é 128 bits, conforme ditado pelo algoritmo de encriptação. O BranchCache gera um vetor de inicialização adequado ao algoritmo de encriptação e utiliza a chave de encriptação para encriptar o bloco. Posteriormente, regista o algoritmo de encriptação e o vetor de inicialização na mensagem. Os servidores e os clientes nunca trocam, partilham nem enviam a chave de encriptação entre si. O cliente recebe a chave de encriptação do servidor de conteúdos que aloja o conteúdo de origem. Depois, utilizando o algoritmo de encriptação e o vetor de inicialização que recebeu do servidor, desencripta o bloco. O protocolo de transferência não contempla outras autenticações ou autorizações explícitas.

Ameaças de segurança

As principais ameaças de segurança nesta camada incluem:

  • Adulteração dos dados:

    Um cliente que envia dados a um autor de pedido adultera os dados. O modelo de segurança do BranchCache utiliza hashes para confirmar que nem o cliente nem o servidor alteraram os dados.

  • Divulgação de informações:

    O BranchCache envia conteúdos encriptados a qualquer cliente que especifique o ID do Segmento adequado. Os IDs de Segmento são públicos, pelo que qualquer cliente pode receber conteúdos encriptados. Contudo, se um utilizador mal intencionado obtiver conteúdos encriptados, tem de saber qual é a chave de encriptação para os desencriptar. O protocolo de camada superior efetua a autenticação e transmite, depois, as informações dos conteúdos ao cliente autenticado e autorizado. A segurança das informações dos conteúdos é equivalente à segurança proporcionada aos conteúdos propriamente ditos, e o BranchCache nunca as expõe.

    Um atacante interceta a rede para obter os conteúdos. O BranchCache encripta todas as transferências entre clientes com AES-128, em que a chave secreta é Ke, impedindo que os dados sejam intercetados na rede. As informações dos conteúdos transferidas a partir do servidor de conteúdos são protegidas exatamente da mesma forma que o são os dados propriamente ditos, pelo que não estão, nem mais, nem menos, protegidas de divulgação de informações do que se o BranchCache não tivesse sido utilizado de todo.

  • Denial of Service:

    Um cliente está assoberbado com pedidos de dados. Os protocolos do BranchCache incorporam contadores de gestão de filas e temporizadores, para impedir que os clientes fiquem assoberbados.

Processos do BranchCache: colocar conteúdos em cache

Em computadores cliente no modo de cache distribuída e em servidores de cache alojada localizados em sucursais, as caches de conteúdo são criadas ao longo do tempo, à medida que são obtidos conteúdos através das ligações WAN.

Se os computadores cliente estiverem configurados com o modo de cache alojada, adicionam os conteúdos à sua própria cache local e oferecem, também, os dados ao servidor de cache alojada. O Protocolo de Cache Alojada proporciona um mecanismo para os clientes informarem o servidor de cache alojada da disponibilidade de conteúdos e segmentos. Para carregar conteúdos para o servidor de cache alojada, o cliente informa o servidor de que tem um segmento disponível. Posteriormente, o servidor de cache alojada obtém todas as informações dos conteúdos associadas ao segmento oferecido e transfere os blocos do segmento de que, efetivamente, precisa. Este processo é repetido até que o cliente deixe de ter segmentos para oferecer ao servidor de cache alojada.

Para atualizar o servidor de cache alojada com o Protocolo de Cache Alojada, têm de ser cumpridos os requisitos seguintes:

  • O computador cliente tem de ter um conjunto de blocos de um segmento que possa oferecer ao servidor de cache alojada. O cliente tem de fornecer informações do conteúdo relativas ao segmento oferecido; estas informações incluem o ID do Segmento, o Hash de Dados do segmento, o Segredo do Segmento e uma lista de todos os hashes de blocos que estão presentes nesse segmento.

  • Para os servidores de cache alojada com o Windows Server 2008 R2, é necessário um certificado de servidor de cache alojada e a respetiva chave privada, e os computadores cliente da sucursal têm de confiar na autoridade de certificação (CA) que emitiu o certificado. Isto permite ao cliente e ao servidor participarem com êxito na autenticação de Servidor HTTPS.

    Importante

    Os servidores de cache alojada com o Windows Server 2012 não precisam do certificado de servidor de cache alojada nem da respetiva chave privada.

  • O computador cliente é configurado com o nome do computador do servidor de cache alojada e o número da porta do Protocolo de Controlo de Transmissão (TCP) na qual o servidor de cache alojada escuta o tráfego do BranchCache. O certificado do servidor de cache alojada está vinculado a esta porta. Se o servidor de cache alojada for um computador membro do domínio, o respetivo nome de computador pode ser um nome de domínio completamente qualificado (FQDN); se não for membro de domínio, pode ser o nome NetBIOS do computador.

  • O computador cliente escuta ativamente os pedidos de blocos recebidos. A porta na qual escuta é transmitida como parte das mensagens oferecidas do cliente para o servidor de cache alojada, o que lhe permite utilizar os protocolos do BranchCache para se ligar ao computador cliente e obter os blocos de dados do segmento.

  • O servidor de cache alojada começa a escutar os pedidos HTTP recebidos quando é inicializado.

  • Se o servidor de cache alojada estiver configurado para precisar da autenticação do computador cliente, quer este, quer aquele, têm de suportar a autenticação HTTPS.

Preenchimento da cache do modo de cache alojada

O processo de adicionar conteúdo à cache do servidor de cache alojada numa sucursal começa quando o cliente envia uma INITIAL_OFFER_MESSAGE, que inclui o ID de Segmento. O ID de Segmento no pedido de INITIAL_OFFER_MESSAGE é utilizado para obter o Hash de Dados do segmento correspondente, a lista de hashes de blocos e o Segredo de Segmento da cache do bloco do servidor de cache alojada. Se este já tiver todas as informações dos conteúdos de um determinado segmento, a resposta à INITIAL_OFFER_MESSAGE será OK e não são feitos pedidos para transferir blocos.

Se o servidor de cache alojada não tiver todos os blocos de dados oferecidos que estão associados aos hashes de blocos do segmento, a resposta à INITIAL_OFFER_MESSAGE é INTERESSADO. O cliente envia, depois, uma SEGMENT_INFO_MESSAGE, que descreve o segmento individual a ser oferecido. O servidor de cache alojada responde com uma mensagem OK e inicia a transferência dos blocos em falta a partir do computador cliente que faz a oferta.

O Hash de Dados, a lista de hashes de blocos e o segredo do segmento são utilizados para garantir que o conteúdo a ser transferido não foi adulterado ou alterado de outra forma. Os blocos transferidos são, subsequentemente, adicionados à cache de blocos do servidor de cache alojada.

Segurança da Cache

Esta secção disponibiliza informações sobre como o BranchCache protege os dados em cache em computadores cliente e em servidores de cache alojada.

Segurança da cache de computadores cliente

A adulteração é a maior ameaça aos dados armazenados no BranchCache. Se um atacante conseguir adulterar conteúdos e informações dos conteúdos armazenados na cache, poderá ser possível utilizá-los para tentar lançar um ataque contra os computadores que utilizam o BranchCache. Para iniciar um ataque, os atacantes podem inserir software maligno em vez dos outros dados. O BranchCache mitiga esta ameaça ao validar todos os conteúdos através de hashes de blocos localizados nas informações dos conteúdos. Se um atacante tentar adulterar os dados, estes são rejeitados e substituídos por dados válidos a partir da origem original.

A divulgação de informações é a segunda principal ameaça aos dados armazenados no BranchCache. No modo de cache distribuída, o cliente só coloca em cache os conteúdos que o próprio solicitou; contudo, esses dados são armazenados em texto não encriptado e poderão estar em risco. Para ajudar a restringir o acesso à cache apenas ao Serviço BranchCache, a cache local é protegida por permissões de sistemas de ficheiros especificadas numa ACL. Embora as ACLs sejam eficazes na prevenção de acessos à cache por utilizadores não autorizados, é possível que um utilizador com privilégios administrativos obtenha acesso à cache ao alterar manualmente as permissões especificadas nas ACLs. O BranchCache não oferece proteção contra a utilização mal-intencionada de contas administrativas.

Os dados armazenados na cache de conteúdos não estão encriptados, pelo que, caso a fuga de dados seja uma preocupação, pode utilizar tecnologias de encriptação, como o BitLocker ou o Sistema de Encriptação de Ficheiros (Encrypting File System, EFS). A cache local que o BranchCache utiliza não aumenta a ameaça de divulgação de informações a que estão sujeitos os computadores na sucursal; a cache contém apenas cópias dos ficheiros que residem, não encriptados, noutra localização no disco. Encriptar o disco inteiro é particularmente importante em ambientes nos quais é difícil garantir a segurança física dos clientes. Por exemplo, encriptar o disco inteiro ajuda a proteger os dados confidenciais em computadores móveis que podem ser levados para fora do ambiente da sucursal.

Segurança da cache do servidor de cache alojada

No modo de cache alojada, a principal ameaça à segurança do servidor de cache alojada é a divulgação de informações. Num ambiente de cache alojada, o BranchCache comporta-se de forma semelhante ao modo de cache distribuída, em que a permissão dos sistemas de ficheiros protegem os dados em cache. A diferença é que, no primeiro modo, são armazenados todos os conteúdos solicitados por qualquer computador com capacidade para BranchCache na sucursal, em vez de apenas os dados solicitados por um cliente individual. As consequências de intrusões não autorizadas nesta cache poderão ser muito mais graves, porque estão em risco muitos mais dados.

Num ambiente de cache alojada, em que o servidor de cache alojada executa o Windows Server 2008 R2, é aconselhável utilizar tecnologias de encriptação, como o BitLocker ou o EFS, se qualquer um dos clientes da sucursal puder aceder a dados sensíveis através da ligação WAN. Também é necessário evitar o acesso físico à cache alojada, porque a encriptação de disco só funciona quando o computador é desligado no momento em que o atacante obtém acesso físico. Se o computador for ligado ou estiver no modo de suspensão, a encriptação de disco não proporciona muita proteção.

Nota

Os servidores de cache alojada que executam o Windows Server 2012 encriptam todos os dados da cache, por predefinição, pelo que não é necessário utilizar outras tecnologias.

Mesmo que um cliente esteja configurado no modo de cache alojada, continua a colocar os dados em cache localmente e poderá ser-lhe útil seguir estes passos para proteger a cache local para além da cache no servidor de cache alojada.