BranchCache

pt-PT: Este tópico, destinado a profissionais de Tecnologia da Informação (TI), fornece uma visão geral sobre o BranchCache, incluindo os modos de operação, características, capacidades e a funcionalidade do BranchCache disponível em diferentes sistemas operativos.

Note

Além deste tópico, a seguinte documentação do BranchCache está disponível.

Quem estará interessado no BranchCache?

Se você for um administrador de sistema, arquiteto de soluções de rede ou armazenamento ou outro profissional de TI, o BranchCache pode interessá-lo nas seguintes circunstâncias:

  • Você projeta ou dá suporte à infraestrutura de TI para uma organização que tem dois ou mais locais físicos e uma conexão de rede de longa distância (WAN) das filiais para o escritório principal.

  • Você projeta ou dá suporte à infraestrutura de TI para uma organização que implantou tecnologias de nuvem e uma conexão WAN é usada pelos trabalhadores para acessar dados e aplicativos em locais remotos.

  • Você deseja otimizar o uso da largura de banda da WAN reduzindo a quantidade de tráfego de rede entre as filiais e o escritório principal.

  • Você implantou ou está planejando implantar servidores de conteúdo em seu escritório principal que correspondem às configurações descritas neste tópico.

  • Os computadores clientes em suas filiais estão executando o Windows 10, Windows 8.1, Windows 8 ou Windows 7 .

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

O que é o BranchCache?

O BranchCache é uma tecnologia de otimização de largura de banda de rede de longa distância (WAN) incluída em algumas edições dos sistemas operacionais Windows Server 2016 e Windows 10, bem como em algumas edições do Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2 e Windows 7. Para otimizar a largura de banda da WAN quando os usuários acessam o conteúdo em servidores remotos, o BranchCache busca o conteúdo do escritório principal ou dos servidores de conteúdo em nuvem hospedados e armazena o conteúdo em cache nas filiais, permitindo que os computadores clientes nas filiais acessem o conteúdo localmente em vez de pela WAN.

Nas filiais, o conteúdo é armazenado em servidores configurados para hospedar o cache ou, quando nenhum servidor está disponível na filial, em computadores clientes que executam o Windows 10, Windows 8.1, Windows 8 ou Windows 7. Depois que um computador cliente solicita e recebe conteúdo do escritório principal e o conteúdo é armazenado em cache na filial, outros computadores na mesma filial podem obter o conteúdo localmente em vez de baixar o conteúdo do servidor de conteúdo pelo link WAN.

Quando solicitações subsequentes para o mesmo conteúdo são feitas por computadores cliente, os clientes baixam informações de conteúdo do servidor em vez do conteúdo real. As informações de conteúdo consistem em hashes que são calculados usando partes do conteúdo original e são extremamente pequenos em comparação com o conteúdo nos dados originais. Em seguida, os computadores clientes usam as informações de conteúdo para localizar o conteúdo de um cache na filial, independentemente de o cache estar localizado em um computador cliente ou em um servidor. Os computadores e servidores clientes também usam informações de conteúdo para proteger o conteúdo armazenado em cache para que ele não possa ser acessado por usuários não autorizados.

O BranchCache aumenta a produtividade do usuário final melhorando os tempos de resposta de consulta de conteúdo para clientes e servidores em filiais, e também pode ajudar a melhorar o desempenho da rede reduzindo o tráfego em links WAN.

Modos BranchCache

O BranchCache tem dois modos de operação: modo de cache distribuído e modo de cache hospedado.

Quando você implanta o BranchCache no modo de cache distribuído, o cache de conteúdo em uma filial é distribuído entre computadores cliente.

Quando você implanta o BranchCache no modo de cache hospedado, o cache de conteúdo em uma filial é hospedado em um ou mais computadores servidores, que são chamados de servidores de cache hospedado.

Note

Você pode implantar o BranchCache usando ambos os modos, no entanto, apenas um modo pode ser usado por filial. Por exemplo, se você tiver duas filiais, uma que tenha um servidor e outra que não tenha, você poderá implantar o BranchCache no modo de cache hospedado no escritório que contém um servidor, enquanto implanta o BranchCache no modo de cache distribuído no escritório que contém apenas computadores cliente.

Na ilustração a seguir, o BranchCache é implantado em ambos os modos.

Modos do BranchCache

O modo de cache distribuído é mais adequado para filiais pequenas que não contêm um servidor local para uso como um servidor de cache hospedado. O modo de cache distribuído permite implantar o BranchCache sem hardware adicional nas filiais.

Se a filial onde você deseja implantar o BranchCache contiver infraestrutura adicional, como um ou mais servidores que estejam executando outras cargas de trabalho, implantar o BranchCache no modo de cache hospedado será benéfico pelos seguintes motivos:

Maior disponibilidade de cache

O modo de cache hospedado aumenta a eficiência do cache porque o conteúdo está disponível mesmo se o cliente que solicitou e armazenou os dados originalmente em cache estiver offline. Como o servidor de cache hospedado está sempre disponível, mais conteúdo é armazenado em cache, proporcionando maior economia de largura de banda da WAN, e a eficiência do BranchCache é melhorada.

Cache centralizado para filiais de várias sub-redes

O modo de cache distribuído opera em uma única sub-rede. Em uma filial de várias sub-redes configurada para o modo de cache distribuído, um arquivo baixado para uma sub-rede não pode ser compartilhado com computadores clientes em outras sub-redes.

Devido a isso, os clientes em outras sub-redes, incapazes de descobrir que o arquivo já foi baixado, obtêm o arquivo do servidor de conteúdo do escritório principal, usando a largura de banda WAN no processo.

Quando você implanta o modo de cache hospedado, no entanto, esse não é o caso - todos os clientes em uma filial de várias sub-redes podem acessar um único cache, que é armazenado no servidor de cache hospedado, mesmo que os clientes estejam em sub-redes diferentes. Além disso, o BranchCache no Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012 oferece a capacidade de implantar mais de um servidor de cache hospedado por filial.

Caution

Se você usar o BranchCache para armazenamento em cache SMB de arquivos e pastas, não desabilite Arquivos Offline. Se você desabilitar Arquivos Offline, o cache SMB do BranchCache não funcionará corretamente.

Servidores de conteúdo habilitados para BranchCache

Quando você implanta o BranchCache, o conteúdo de origem é armazenado em servidores de conteúdo habilitados para BranchCache em seu escritório principal ou em um data center na nuvem. Os seguintes tipos de servidores de conteúdo são suportados pelo BranchCache:

Note

Somente o conteúdo de origem - ou seja, o conteúdo que os computadores clientes obtêm inicialmente de um servidor de conteúdo habilitado para BranchCache - é acelerado pelo BranchCache. O conteúdo que os computadores clientes obtêm diretamente de outras fontes, como servidores Web na Internet ou no Windows Update, não é armazenado em cache por computadores cliente ou servidores de cache hospedado e, em seguida, compartilhado com outros computadores na filial. No entanto, se quiser acelerar o conteúdo do Windows Update, você pode instalar um servidor de aplicativos do Windows Server Update Services (WSUS) em seu escritório principal ou data center na nuvem e configurá-lo como um servidor de conteúdo do BranchCache.

Servidores Web

Os servidores Web suportados incluem computadores que executam o Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 ou Windows Server 2008 R2 que têm a função de servidor Servidor Web (IIS) instalada e que usam HTTP (Hypertext Transfer Protocol) ou HTTP Secure (HTTPS).

Além disso, o servidor Web deve ter o recurso BranchCache instalado.

Servidores de ficheiros

Os servidores de ficheiros suportados incluem computadores que estão a executar o Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 ou Windows Server 2008 R2 e que têm a função de servidor Serviços de Ficheiros e o serviço de função BranchCache para Ficheiros de Rede instalados.

Esses servidores de arquivos usam o Server Message Block (SMB) para trocar informações entre computadores. Depois de concluir a instalação do servidor de arquivos, você também deve compartilhar pastas e habilitar a geração de hash para pastas compartilhadas usando a Diretiva de Grupo ou a Diretiva do Computador Local para habilitar o BranchCache.

Servidores de aplicações

Os servidores de aplicativos suportados incluem computadores que executam o Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 ou Windows Server 2008 R2 com o BITS (Serviço de Transferência Inteligente em Segundo Plano) instalado e habilitado.

Além disso, o servidor de aplicativos deve ter o recurso BranchCache instalado. Como exemplos de servidores de aplicativos, você pode implantar o Microsoft Windows Server Update Services (WSUS) e os servidores de Ponto de Distribuição de Filial do Microsoft Endpoint Configuration Manager como servidores de conteúdo do BranchCache.

BranchCache e a nuvem

A nuvem tem um enorme potencial para reduzir as despesas operacionais e alcançar novos níveis de escala, mas afastar as cargas de trabalho das pessoas que dependem delas pode aumentar os custos de rede e prejudicar a produtividade. Os usuários esperam alto desempenho e não se importam onde seus aplicativos e dados estão hospedados.

O BranchCache pode melhorar o desempenho de aplicativos em rede e reduzir o consumo de largura de banda com um cache compartilhado de dados. Ele melhora a produtividade nas filiais e na sede, onde os trabalhadores estão usando servidores implantados na nuvem.

Como o BranchCache não requer novas alterações de hardware ou topologia de rede, é uma excelente solução para melhorar a comunicação entre locais de escritório e nuvens públicas e privadas.

Note

Como alguns proxies da Web não podem processar cabeçalhos de codificação de conteúdo não padrão, é recomendável usar o BranchCache com HTTPS (Hyper Text Transfer Protocol Secure) e não HTTP.

======= Para obter mais informações sobre tecnologias de nuvem no Windows Server 2016, consulte Software Defined Networking (SDN).

Versões de informações sobre conteúdo

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

  • As informações de conteúdo compatíveis com computadores que executam o Windows Server 2008 R2 e o Windows 7 são chamadas de versão 1 ou V1. Com a segmentação de arquivos do V1 BranchCache, os segmentos de arquivo são maiores do que na V2 e são de tamanho fixo. Devido aos grandes tamanhos de segmento fixo, quando um usuário faz uma alteração que modifica o comprimento do arquivo, não apenas o segmento com a alteração é invalidado, mas todos os segmentos até o final do arquivo são invalidados. A solicitação seguinte para aceder ao ficheiro alterado por outro utilizador na filial resulta, por isso, numa menor poupança de largura de banda da WAN, pois o conteúdo alterado e todo o conteúdo subsequente são enviados através do link WAN.

  • As informações de conteúdo compatíveis com computadores que executam o Windows Server 2016, Windows 10, Windows Server 2012 R2, Windows 8.1, Windows Server 2012 e Windows 8 são chamadas de versão 2 ou V2. As informações de conteúdo V2 usam segmentos menores e de tamanho variável que são mais tolerantes a alterações dentro de um arquivo. Isso aumenta a probabilidade de que segmentos de uma versão mais antiga do arquivo possam ser reutilizados quando os usuários acessam uma versão atualizada, fazendo com que recuperem apenas a parte alterada do arquivo do servidor de conteúdo e usando menos largura de banda WAN.

A tabela a seguir fornece informações sobre a versão de informações de conteúdo que é usada dependendo de quais sistemas operacionais cliente, servidor de conteúdo e servidor de cache hospedado você está usando em sua implantação do BranchCache.

Note

Na tabela abaixo, a sigla "OS" significa sistema operacional.

Sistema Operativo Cliente SO do Servidor de Conteúdo SO do Servidor de Cache Alojado Versão de informações de conteúdo
Windows Server 2008 R2 e Windows 7 Windows Server 2012 ou posterior Windows Server 2012 ou posterior; Nenhum para o modo de cache distribuído V1
Windows Server 2012 ou posterior; Windows 8 ou posterior Windows Server 2008 R2 Windows Server 2012 ou posterior; Nenhum para o modo de cache distribuído V1
Windows Server 2012 ou posterior; Windows 8 ou posterior Windows Server 2012 ou posterior Windows Server 2008 R2 V1
Windows Server 2012 ou posterior; Windows 8 ou posterior Windows Server 2012 ou posterior Windows Server 2012 ou posterior; Nenhum para o modo de cache distribuído V2

Quando você tem servidores de conteúdo e servidores de cache hospedado que executam o Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012, eles usam a versão de informações de conteúdo apropriada com base no sistema operacional do cliente BranchCache que solicita informações.

Quando computadores que executam sistemas operacionais Windows Server 2012 e Windows 8 ou posteriores solicitam conteúdo, os servidores de conteúdo e cache hospedado usam informações de conteúdo V2; quando computadores que executam o Windows Server 2008 R2 e o Windows 7 solicitam conteúdo, os servidores de conteúdo e cache hospedado usam informações de conteúdo V1.

Important

Quando você implanta o BranchCache no modo de cache distribuído, os clientes que usam versões diferentes de informações de conteúdo não compartilham conteúdo entre si. Por exemplo, um computador cliente com o Windows 7 e um computador cliente com o Windows 10 instalados na mesma filial não partilham conteúdo entre si.

Como o BranchCache lida com atualizações de conteúdo em arquivos

Quando os usuários da filial modificam ou atualizam o conteúdo dos documentos, suas alterações são gravadas diretamente no servidor de conteúdo do escritório principal sem o envolvimento do BranchCache. Isso é verdadeiro se o usuário baixou o documento do servidor de conteúdo ou o obteve de um cache hospedado ou distribuído na filial.

Quando o arquivo modificado é solicitado por um cliente diferente em uma filial, os novos segmentos do arquivo são baixados do servidor do escritório principal e adicionados ao cache distribuído ou hospedado nessa filial. Por isso, os usuários de filiais sempre recebem as versões mais recentes do conteúdo armazenado em cache.

Guia de instalação do BranchCache

Você pode usar o Gerenciador do Servidor no Windows Server 2016 para instalar o recurso BranchCache ou o serviço de função BranchCache para Arquivos de Rede da função de servidor Serviços de Arquivos. Você pode usar a tabela a seguir para determinar se deve instalar o serviço de função ou o recurso.

Functionality Localização do computador Instale este elemento BranchCache
Servidor de conteúdo (servidor de aplicativos baseado em BITS) Escritório principal ou centro de dados na nuvem Recurso BranchCache
Servidor de conteúdo (servidor Web) Escritório principal ou centro de dados na nuvem Recurso BranchCache
Servidor de conteúdo (servidor de arquivos usando o protocolo SMB) Escritório principal ou centro de dados na nuvem Serviço de função BranchCache para Ficheiros de Rede da função de servidor Serviços de Ficheiros
Servidor de cache hospedado Sucursal Recurso BranchCache com modo de cache de servidor hospedado habilitado
Computador cliente habilitado para BranchCache Sucursal Não é necessária instalação; basta habilitar o BranchCache e um modo BranchCache (distribuído ou hospedado) no cliente

Para instalar o serviço de função ou o recurso, abra o Gerenciador do Servidor e selecione os computadores onde deseja habilitar a funcionalidade do BranchCache. No Gerenciador do Servidor, clique em Gerenciare, em seguida, clique em Adicionar Funções e Recursos. O assistente Adicionar funções e funcionalidades é aberto. Ao executar o assistente, faça as seguintes seleções:

  • Na página do assistente Selecionar Tipo de Instalação, selecione Instalação por Função ou Recurso.

  • Na página do assistente Selecionar Funções de Servidor, se estiver instalando um servidor de arquivos habilitado para BranchCache, expanda Serviços de Arquivo e Armazenamento e Serviços de Arquivo e iSCSI e selecione BranchCache para Arquivos de Rede. Para poupar espaço em disco, pode também selecionar a função Eliminação de Duplicação de Dados e depois continuar pelo assistente até concluir a instalação. Caso não pretenda instalar um servidor de ficheiros com BranchCache ativado, não instale a função Serviços de Ficheiros e Armazenamento com o serviço de função BranchCache para Ficheiros de Rede.

  • Na página do assistente Selecione recursos, se estiver instalando um servidor de conteúdo que não seja um servidor de arquivos ou estiver instalando um servidor de cache hospedado, selecione BranchCache e continue pelo assistente até a instalação e conclusão. Se você não quiser instalar um servidor de conteúdo que não seja um servidor de arquivos ou um servidor de cache hospedado, não instale o recurso BranchCache.

Versões do sistema operacional para o BranchCache

A seguir está uma lista de sistemas operacionais que suportam diferentes tipos de funcionalidade do BranchCache.

Sistemas operacionais para a funcionalidade do computador cliente BranchCache

Os seguintes sistemas operacionais fornecem ao BranchCache suporte para BITS (Serviço de Transferência Inteligente em Segundo Plano), HTTP (Hyper Text Transfer Protocol) e SMB (Server Message Block).

  • Windows 10 Empresarial

  • Windows 10 Educação

  • Windows 8.1 Enterprise

  • Windows 8 Empresarial

  • Windows 7 Empresarial

  • Windows 7 Ultimate

Nos seguintes sistemas operativos, o BranchCache não suporta a funcionalidade HTTP e SMB, mas suporta a funcionalidade BITS do BranchCache.

  • Windows 10 Pro, suporte apenas BITS

  • Windows 8.1 Pro, suporte apenas BITS

  • Windows 8 Pro, apenas suporte BITS

  • Windows 7 Pro, suporte apenas para BITS

Note

O BranchCache não está disponível por padrão nos sistemas operacionais Windows Server 2008 ou Windows Vista. Nesses sistemas operacionais, no entanto, se você baixar e instalar a atualização do Windows Management Framework, a funcionalidade do BranchCache estará disponível apenas para o protocolo BITS (Serviço de Transferência Inteligente em Segundo Plano). Para obter mais informações e baixar o Windows Management Framework, consulte Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 e BITS 4.0) em /powershell/scripting/windows-powershell/install/installing-the-windows-powershell-2.0-engine.

Sistemas operacionais para a funcionalidade do servidor de conteúdo do BranchCache

Você pode usar as famílias de sistemas operacionais Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012 como servidores de conteúdo do BranchCache.

Além disso, a família de sistemas operacionais Windows Server 2008 R2 pode ser usada como servidores de conteúdo do BranchCache, com as seguintes exceções:

  • 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 operacionais para a funcionalidade do servidor de cache hospedado do BranchCache

Você pode usar as famílias de sistemas operacionais Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012 como servidores de cache hospedado do BranchCache.

Além disso, os seguintes sistemas operacionais Windows Server 2008 R2 podem ser usados como servidores de cache hospedado do BranchCache:

  • Windows Server 2008 R2 Enterprise

  • Windows Server 2008 R2 Enterprise com Hyper-V

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

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

  • Windows Server 2008 R2 para sistemas baseados em Itanium

  • Centro de dados do Windows Server 2008 R2

  • Windows Server 2008 R2 Datacenter com Hyper-V

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

Segurança do BranchCache

O BranchCache implementa uma abordagem segura por projeto que funciona perfeitamente junto com suas arquiteturas de segurança de rede existentes, sem a necessidade de equipamentos adicionais ou configuração de segurança adicional complexa.

O BranchCache não é invasivo e não altera nenhum processo de autenticação ou autorização do Windows. Depois de implantar o BranchCache, a autenticação ainda é executada usando credenciais de domínio e a maneira como a autorização com funções de ACLs (Listas de Controle de Acesso) permanece inalterada. Além disso, outras configurações continuam a funcionar exatamente como antes da implantação do BranchCache.

O modelo de segurança do BranchCache é baseado na criação de metadados, que assumem a forma de uma série de hashes. Esses hashes também são chamados de informações de conteúdo.

Depois que as informações de conteúdo são criadas, elas são usadas em trocas de mensagens do BranchCache, em vez dos dados reais, e são trocadas usando os protocolos suportados (HTTP, HTTPS e SMB).

Os dados armazenados em cache são mantidos criptografados e não podem ser acessados por clientes que não têm permissão para acessar o conteúdo da fonte original. Os clientes devem ser autenticados e autorizados pela fonte de conteúdo original antes de poderem recuperar metadados de conteúdo e devem possuir metadados de conteúdo para acessar o cache no escritório local.

Como o BranchCache gera informações de conteúdo

Como as informações de conteúdo são criadas a partir de vários elementos, o valor das informações de conteúdo é sempre exclusivo. Estes elementos são os seguintes:

  • O conteúdo real (como páginas da Web ou arquivos compartilhados) do qual os hashes são derivados.

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

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

Note

O uso de um segredo de servidor garante que os computadores clientes não sejam capazes de gerar as informações de conteúdo por conta própria. Isso impede que usuários mal-intencionados usem ataques de força bruta com computadores cliente habilitados para BranchCache para adivinhar pequenas alterações no conteúdo entre versões em situações em que o cliente tinha acesso a uma versão anterior, mas não tem acesso à versão atual.

Detalhes das informações de conteúdo

O BranchCache usa o segredo do servidor como uma chave para derivar um hash específico do conteúdo que é enviado para clientes autorizados. A aplicação de um algoritmo de hash ao segredo combinado do servidor e ao Hash of Data gera esse hash.

Esse hash é chamado de segredo de segmento. O BranchCache usa segredos de segmento para proteger as comunicações. Além disso, o BranchCache cria uma Lista de Hash de Blocos, que é uma lista de blocos de dados encriptados, e o Hash dos Dados, que é gerado a partir da encriptação da Lista de Hash de Blocos.

As informações de conteúdo incluem o seguinte:

  • A lista de hash de bloco:

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

  • O Hash de Dados (HoD):

    HoD = Hash(BlockHashList)

  • Segmento Secreto (Kp):

    Kp = HMAC(Ks, HoD)

O BranchCache usa o protocolo Peer Content Caching e o protocolo Retrieval Framework para implementar os processos necessários para garantir o cache seguro e a recuperação de dados entre caches de conteúdo.

Além disso, o BranchCache lida com informações de conteúdo com o mesmo grau de segurança que usa ao manipular e transmitir o próprio conteúdo.

Fluxo de conteúdo e processos

O fluxo de informações de conteúdo e conteúdo real é dividido em quatro fases:

  1. Processos do BranchCache: solicitar conteúdo

  2. Processos do BranchCache: localizar conteúdo

  3. Processos do BranchCache: recuperar conteúdo

  4. Processos do BranchCache: conteúdo em cache

As seções a seguir descrevem essas fases.

Processos do BranchCache: solicitar conteúdo

Na primeira fase, o computador cliente na filial solicita conteúdo, como um arquivo ou uma página da Web, de um servidor de conteúdo em um local remoto, como um escritório principal. O servidor de conteúdo verifica se o computador cliente está autorizado a receber o conteúdo solicitado. Se o computador cliente estiver autorizado e o servidor de conteúdo e o cliente estiverem habilitados para BranchCache, o servidor de conteúdo gerará informações de conteúdo.

Em seguida, o servidor de conteúdo envia as informações de conteúdo para o computador cliente usando o mesmo protocolo que teria sido usado para o conteúdo real.

Por exemplo, se o computador cliente solicitou uma página da Web sobre HTTP, o servidor de conteúdo enviará as informações de conteúdo usando HTTP. Por isso, as garantias de segurança ao nível da transmissão, tanto do conteúdo quanto das informações de conteúdo, são idênticas.

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

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

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

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

A principal ameaça nessa camada é o risco para o Segredo de Segmento, no entanto, o BranchCache criptografa os blocos de dados de conteúdo para proteger o Segredo de Segmento. O BranchCache faz isso usando a chave de criptografia derivada do segredo do segmento de conteúdo onde os blocos de conteúdo estão localizados.

Essa abordagem garante que uma entidade que não esteja em posse do segredo do servidor não possa descobrir o conteúdo real em um bloco de dados. O Segredo do Segmento é tratado com o mesmo grau de segurança que o próprio segmento de texto simples, porque o conhecimento do Segredo do Segmento para um determinado segmento permite que uma entidade obtenha o segmento a partir de pares e depois o descodifique. O conhecimento do Segredo do Servidor não produz imediatamente nenhum texto simples em particular, mas pode ser usado para derivar certos tipos de dados do texto cifrado e, em seguida, para possivelmente expor alguns dados parcialmente conhecidos a um ataque de adivinhação de força bruta. O segredo do servidor, portanto, deve ser mantido confidencial.

Processos do BranchCache: localizar conteúdo

Depois que as informações de conteúdo são recebidas pelo computador cliente, o cliente usa a ID de segmento para localizar o conteúdo solicitado no cache da filial local, quer esse cache seja distribuído entre computadores cliente ou esteja localizado em um servidor de cache hospedado.

Se o computador cliente estiver configurado para o modo de cache hospedado, ele será configurado com o nome do computador do servidor de cache hospedado e contatará esse servidor para recuperar o conteúdo.

No entanto, se o computador cliente estiver configurado para o modo de cache distribuído, o conteúdo poderá ser armazenado em vários caches em vários computadores na filial. O computador cliente deve descobrir onde o conteúdo está localizado antes que o conteúdo seja recuperado.

Quando são configurados para o modo de cache distribuído, os computadores cliente localizam o conteúdo usando um protocolo de descoberta baseado no protocolo de descoberta dinâmica de serviços da Web (WS-Discovery). Os clientes enviam mensagens Probe multicast WS-Discovery para descobrir conteúdo em cache através da rede. As mensagens de teste incluem o ID de segmento, que permite que os clientes verifiquem se o conteúdo solicitado corresponde ao conteúdo armazenado em seu cache. Clientes que recebem a mensagem inicial de Probe respondem ao cliente que fez a consulta com mensagens unicast Probe-Match, se a ID do segmento corresponder ao conteúdo armazenado em cache localmente.

O sucesso do processo de WS-Discovery depende do fato de que o cliente que está executando a descoberta tem as informações de conteúdo corretas, que foram fornecidas pelo servidor de conteúdo, para o conteúdo que está solicitando.

A principal ameaça aos dados durante a fase de solicitação de conteúdo é a divulgação de informações, porque o acesso às informações de conteúdo implica acesso autorizado ao conteúdo. Para reduzir esse risco, o processo de descoberta não revela as informações de conteúdo, além do ID de segmento, que não revela nada sobre o segmento de texto sem formatação que contém o conteúdo.

Além disso, outro computador cliente executado por um usuário mal-intencionado na mesma sub-rede de rede pode ver o tráfego de descoberta do BranchCache para a fonte de conteúdo original passando pelo roteador.

Se o conteúdo solicitado não for encontrado na filial, o cliente solicitará o conteúdo diretamente do servidor de conteúdo através do link WAN.

Depois que o conteúdo é recebido, ele é adicionado ao cache local, no computador cliente ou em um servidor de cache hospedado. Nesse caso, as informações de conteúdo impedem que um cliente ou servidor de cache hospedado adicione ao cache local qualquer conteúdo que não corresponda aos hashes. O processo de verificação de conteúdo por meio de hashes correspondentes garante que apenas conteúdo válido seja adicionado ao cache e que a integridade do cache local seja protegida.

Processos do BranchCache: recuperar conteúdo

Depois que um computador cliente localiza o conteúdo desejado no host de conteúdo, que é um servidor de cache hospedado ou um computador cliente de modo de cache distribuído, o computador cliente inicia o processo de recuperação do conteúdo.

Primeiro, o computador cliente envia uma solicitação ao host de conteúdo para o primeiro bloco necessário. A solicitação contém o ID do segmento e o intervalo de blocos que identificam o conteúdo desejado. Como apenas um bloco é retornado, o intervalo de blocos contém apenas um único bloco. (Solicitações para vários blocos não são suportadas no momento.) O cliente também armazena o pedido na sua Lista de Pedidos Pendentes local.

Ao receber uma mensagem de solicitação válida de um cliente, o host de conteúdo verifica se o bloco especificado na solicitação existe no cache de conteúdo do host de conteúdo.

Se o host de conteúdo estiver em posse do bloco de conteúdo, o host de conteúdo enviará uma resposta que contém a ID de segmento, a ID de bloco, o bloco de dados criptografados e o vetor de inicialização usado para criptografar o bloco.

Se o host de conteúdo não estiver em posse do bloco de conteúdo, o host de conteúdo enviará uma mensagem de resposta vazia. Isso informa ao computador cliente que o host de conteúdo não tem o bloco solicitado. Uma mensagem de resposta vazia contém a ID do Segmento e a ID do Bloco do bloco solicitado, juntamente com um bloco de dados de tamanho zero.

Quando o computador cliente recebe a resposta do host de conteúdo, o cliente verifica se a mensagem corresponde a uma mensagem de solicitação em sua Lista de Solicitações Pendentes. (O ID do segmento e o índice de bloco devem corresponder ao de uma solicitação pendente.)

Se esse processo de verificação não for bem-sucedido e o computador cliente não tiver uma mensagem de solicitação correspondente em sua Lista de Solicitações Pendentes, o computador cliente descartará a mensagem.

Se esse processo de verificação for bem-sucedido e o computador cliente tiver uma mensagem de solicitação correspondente em sua Lista de Solicitações Pendentes, o computador cliente descriptografará o bloco. Em seguida, o cliente valida o bloco descriptografado em relação ao hash de bloco apropriado das informações de conteúdo que o cliente obteve inicialmente do servidor de conteúdo original.

Se a validação do bloco for bem-sucedida, o bloco descriptografado será armazenado no cache.

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

Note

Se os segmentos completos de conteúdo não existirem em um computador, o protocolo de recuperação recuperará e montará conteúdo de uma combinação de fontes: um conjunto de computadores cliente de modo de cache distribuído, um servidor de cache hospedado e, se os caches da filial não contiverem o conteúdo completo, o servidor de conteúdo original no escritório principal.

Antes de o BranchCache enviar informações de conteúdo ou conteúdo, os dados são criptografados. O BranchCache criptografa o bloco na mensagem de resposta. No Windows 7, o algoritmo de criptografia padrão que o BranchCache usa é AES-128, a chave de criptografia é Ke, e o tamanho da chave é de 128 bits, conforme ditado pelo algoritmo de criptografia.

O BranchCache gera um vetor de inicialização adequado para o algoritmo de criptografia e usa a chave de criptografia para criptografar o bloco. Em seguida, o BranchCache registra o algoritmo de criptografia e o vetor de inicialização na mensagem.

Servidores e clientes nunca trocam, compartilham ou enviam a chave de criptografia uns aos outros. O cliente recebe a chave de criptografia do servidor de conteúdo que hospeda o conteúdo de origem. Em seguida, usando o algoritmo de criptografia e o vetor de inicialização que recebeu do servidor, ele descriptografa o bloco. Não há nenhuma outra autenticação ou autorização explícita incorporada no protocolo de download.

Ameaças à segurança

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

  • Adulteração de dados:

    Um cliente que fornece dados a um solicitante adultera os dados. O modelo de segurança do BranchCache usa hashes para confirmar que nem o cliente nem o servidor alteraram os dados.

  • Divulgação de informações:

    O BranchCache envia conteúdo criptografado para qualquer cliente que especifique a ID de segmento apropriada. Os IDs de segmento são públicos, portanto, qualquer cliente pode receber conteúdo criptografado. No entanto, se um usuário mal-intencionado obtiver conteúdo criptografado, ele deve saber a chave de criptografia para descriptografar o conteúdo. O protocolo de camada superior executa a autenticação e, em seguida, fornece as informações de conteúdo para o cliente autenticado e autorizado. A segurança das informações de conteúdo é equivalente à segurança fornecida ao próprio conteúdo, e o BranchCache nunca expõe as informações de conteúdo.

    Um invasor fareja o fio para obter o conteúdo. O BranchCache criptografa todas as transferências entre clientes usando AES128 onde a chave secreta é Ke, impedindo que os dados sejam detetados a partir do fio. As informações de conteúdo baixadas do servidor de conteúdo são protegidas exatamente da mesma maneira que os próprios dados estariam e, portanto, não estão mais ou menos protegidas contra divulgação de informações do que se o BranchCache não tivesse sido usado.

  • Negação de Serviço:

    Um cliente é sobrecarregado por solicitações de dados. Os protocolos do BranchCache incorporam contadores e temporizadores de gerenciamento de filas para evitar que os clientes sejam sobrecarregados.

Processos do BranchCache: conteúdo em cache

Em computadores cliente de modo de cache distribuído e servidores de cache hospedado localizados em filiais, os caches de conteúdo são acumulados ao longo do tempo à medida que o conteúdo é recuperado por links WAN.

Quando os computadores clientes são configurados com o modo de cache hospedado, eles adicionam conteúdo ao seu próprio cache local e também oferecem dados ao servidor de cache hospedado. O Protocolo de Cache Hospedado fornece um mecanismo para que os clientes informem o servidor de cache hospedado sobre a disponibilidade de conteúdo e segmento.

Para carregar conteúdo para o servidor de cache hospedado, o cliente informa ao servidor que ele tem um segmento disponível. Em seguida, o servidor de cache hospedado recupera todas as informações de conteúdo associadas ao segmento oferecido e baixa os blocos dentro do segmento de que ele realmente precisa. Esse processo é repetido até que o cliente não tenha mais segmentos para oferecer o servidor de cache hospedado.

Para atualizar o servidor de cache hospedado usando o protocolo de cache hospedado, os seguintes requisitos devem ser atendidos:

  • O computador cliente precisa ter um conjunto de blocos dentro de um segmento que ele pode oferecer ao servidor de cache hospedado. O cliente deve fornecer informações de conteúdo para o segmento oferecido; isso é composto pelo ID do segmento, o hash de dados do segmento, o Segredo do Segmento e uma lista de todos os hashes de bloco contidos no segmento.

  • Para servidores de cache hospedado que executam o Windows Server 2008 R2, um certificado de servidor de cache hospedado e uma chave privada associada são necessários, e a autoridade de certificação (CA) que emitiu o certificado deve ser confiável para os computadores clientes na filial. Isso permite que o cliente e o servidor participem com êxito da autenticação do Servidor HTTPS.

    Important

    Os servidores de cache hospedado que executam o Windows Server 2016, Windows Server 2012 R2 ou Windows Server 2012 não exigem um certificado de servidor de cache hospedado e chave privada associada.

  • O computador cliente é configurado com o nome do computador do servidor de cache hospedado e o número da porta TCP (Transmission Control Protocol) na qual o servidor de cache hospedado está escutando o tráfego do BranchCache. O certificado do servidor de cache hospedado está vinculado a essa porta. O nome do computador do servidor de cache hospedado pode ser um nome de domínio totalmente qualificado (FQDN), se o servidor de cache hospedado for um computador membro do domínio; ou pode ser o nome NetBIOS do computador se o servidor de cache hospedado não for um membro do domínio.

  • O computador cliente escuta ativamente as solicitações de bloqueio de entrada. A porta na qual está a escutar é transmitida como parte das mensagens de oferta do cliente para o servidor de cache hospedado. Isso permite que o servidor de cache hospedado use protocolos BranchCache para se conectar ao computador cliente para recuperar blocos de dados no segmento.

  • O servidor de cache hospedado começa a escutar solicitações HTTP de entrada quando é inicializado.

  • Se o servidor de cache hospedado estiver configurado para exigir autenticação de computador cliente, tanto o cliente quanto o servidor de cache hospedado serão necessários para oferecer suporte à autenticação HTTPS.

População de cache do modo de cache hospedado

O processo de adicionar conteúdo ao cache do servidor de cache hospedado em uma filial começa quando o cliente envia um INITIAL_OFFER_MESSAGE, que inclui a ID de segmento. O ID de Segmento na solicitação de INITIAL_OFFER_MESSAGE é usado para recuperar o Hash de Dados do segmento correspondente, a lista de hashes de bloco e o Segredo de Segmento do cache de bloco do servidor de cache hospedado. Se o servidor de cache hospedado já tiver todas as informações de conteúdo para um segmento específico, a resposta ao INITIAL_OFFER_MESSAGE será OK, e nenhuma solicitação para baixar blocos ocorrerá.

Se o servidor de cache hospedado não tiver todos os blocos de dados oferecidos associados aos hashes de bloco no segmento, a resposta ao INITIAL_OFFER_MESSAGE será INTERESSADA. Em seguida, o cliente envia um SEGMENT_INFO_MESSAGE que descreve o segmento único que está sendo oferecido. O servidor de cache hospedado responde com uma mensagem OK e inicia o download dos blocos ausentes do computador cliente ofertante.

O segmento Hash of Data, a lista de hashes de bloco e o segredo do segmento são usados para garantir que o conteúdo que está sendo baixado não tenha sido adulterado ou alterado de outra forma. Os blocos baixados são então adicionados ao cache de blocos do servidor de cache hospedado.

Segurança de cache

Esta seção fornece informações sobre como o BranchCache protege dados armazenados em cache em computadores clientes e em servidores de cache hospedado.

Segurança do cache do computador cliente

A maior ameaça aos dados armazenados no BranchCache é a adulteração. Se um invasor puder adulterar o conteúdo e as informações de conteúdo armazenadas no cache, talvez seja possível usar isso para tentar iniciar um ataque contra os computadores que estão usando o BranchCache. Os atacantes podem iniciar um ataque inserindo software malicioso no lugar de outros dados. O BranchCache atenua essa ameaça validando todo o conteúdo usando hashes de bloco encontrados nas informações de conteúdo. Se um invasor tentar adulterar esses dados, eles serão descartados e substituídos por dados válidos da fonte original.

Uma ameaça secundária aos dados armazenados no BranchCache é a divulgação de informações. No modo de cache distribuído, o cliente armazena em cache apenas o conteúdo que ele mesmo solicitou; no entanto, esses dados são armazenados em texto não criptografado e podem estar em risco. Para ajudar a restringir o acesso ao cache somente ao Serviço BranchCache, o cache local é protegido por permissões do sistema de arquivos especificadas em uma ACL.

Embora a ACL seja eficaz para impedir que usuários não autorizados acessem o cache, é possível que um usuário com privilégios administrativos obtenha acesso ao cache alterando manualmente as permissões especificadas na ACL. O BranchCache não protege contra o uso mal-intencionado de uma conta administrativa.

Os dados armazenados no cache de conteúdo não são criptografados, portanto, se o vazamento de dados for uma preocupação, você poderá usar tecnologias de criptografia, como o BitLocker ou o EFS (Sistema de Arquivos com Criptografia). O cache local usado pelo BranchCache não aumenta a ameaça de divulgação de informações suportada por um computador na filial; O cache contém apenas cópias de arquivos que residem não criptografados em outro lugar do disco.

Criptografar todo o disco é particularmente importante em ambientes em que a segurança física dos clientes é difícil de garantir. Por exemplo, criptografar todo o disco ajuda a proteger dados confidenciais em computadores móveis que podem ser removidos do ambiente da filial.

Segurança de cache do servidor de cache hospedado

No modo de cache hospedado, a maior ameaça à segurança do servidor de cache hospedado é a divulgação de informações. O BranchCache em um ambiente de cache hospedado se comporta de maneira semelhante ao modo de cache distribuído, com permissão do sistema de arquivos protegendo os dados armazenados em cache. A diferença é que o servidor de cache hospedado armazena todo o conteúdo solicitado por qualquer computador habilitado para BranchCache na filial, em vez de apenas os dados solicitados por um único cliente. As consequências da intrusão não autorizada neste cache podem ser muito mais graves, porque muito mais dados estão em risco.

Em um ambiente de cache hospedado em que o servidor de cache hospedado esteja executando o Windows Server 2008 R2, o uso de tecnologias de criptografia, como BitLocker ou EFS, é aconselhável se qualquer um dos clientes na filial puder acessar dados confidenciais através do link WAN. Também é necessário impedir o acesso físico ao cache hospedado, porque a criptografia de disco funciona somente quando o computador é desligado quando o invasor obtém acesso físico. Se o computador estiver ligado ou em modo de suspensão, a encriptação de disco oferece pouca proteção.

Note

Os servidores de cache hospedado que executam o Windows Server 2016, Windows Server 2012 R2 ou Windows Server 2012 criptografam todos os dados no cache por padrão, portanto, o uso de tecnologias de criptografia adicionais não é necessário.

Mesmo que um cliente esteja configurado no modo de cache hospedado, ele ainda armazenará dados em cache localmente e você pode querer tomar medidas para proteger o cache local, além do cache no servidor de cache hospedado.