Delen via


BranchCache

Dit onderwerp, dat is bedoeld voor IT-professionals (Information Technology), biedt overzichtsinformatie over BranchCache, waaronder BranchCache-modi, functies, mogelijkheden en de BranchCache-functionaliteit die beschikbaar is in verschillende besturingssystemen.

Opmerking

Naast dit onderwerp is de volgende BranchCache-documentatie beschikbaar.

Wie is geïnteresseerd in BranchCache?

Als u een systeembeheerder, netwerk- of opslagoplossingsarchitect of andere IT-professional bent, kan BranchCache u onder de volgende omstandigheden interesseren:

  • U ontwerpt of ondersteunt IT-infrastructuur voor een organisatie met twee of meer fysieke locaties en een WAN-verbinding (Wide Area Network) van de filialen naar het hoofdkantoor.

  • U ontwerpt of ondersteunt it-infrastructuur voor een organisatie die cloudtechnologieën heeft geïmplementeerd en een WAN-verbinding wordt gebruikt door werknemers voor toegang tot gegevens en toepassingen op externe locaties.

  • U wilt het gebruik van WAN-bandbreedte optimaliseren door het netwerkverkeer tussen filialen en het hoofdkantoor te verminderen.

  • U hebt geïmplementeerd of bent van plan om inhoudsservers op uw hoofdkantoor te implementeren die overeenkomen met de configuraties die in dit onderwerp worden beschreven.

  • Op de clientcomputers in uw filialen wordt Windows 10, Windows 8.1, Windows 8 of Windows 7 uitgevoerd.

Dit onderwerp bevat de volgende secties:

Wat is BranchCache?

BranchCache is een WAN-technologie (Wide Area Network) die is opgenomen in sommige edities van de besturingssystemen Windows Server 2016 en Windows 10, evenals in sommige edities van Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2 en Windows 7. Om wan-bandbreedte te optimaliseren wanneer gebruikers toegang hebben tot inhoud op externe servers, haalt BranchCache inhoud op van uw hoofdkantoor of gehoste cloudinhoudsservers en slaat de inhoud op locaties van filialen in de cache op, zodat clientcomputers in filialen lokaal toegang hebben tot de inhoud in plaats van via het WAN.

In filialen wordt inhoud opgeslagen op servers die zijn geconfigureerd voor het hosten van de cache of, wanneer er geen server beschikbaar is in het filiaal, op clientcomputers met Windows 10, Windows 8.1, Windows 8 of Windows 7. Nadat een clientcomputer inhoud van het hoofdkantoor aanvraagt en ontvangt en de inhoud in de cache wordt opgeslagen in het filiaal, kunnen andere computers in hetzelfde filiaal de inhoud lokaal verkrijgen in plaats van de inhoud van de inhoudsserver via de WAN-koppeling te downloaden.

Wanneer volgende aanvragen voor dezelfde inhoud worden gedaan door clientcomputers, downloaden de clients inhoudsgegevens van de server in plaats van de werkelijke inhoud. Inhoudsinformatie bestaat uit hashes die worden berekend met segmenten van de oorspronkelijke inhoud en zijn uiterst klein in vergelijking met de inhoud in de oorspronkelijke gegevens. Clientcomputers gebruiken vervolgens de inhoudsgegevens om de inhoud te vinden uit een cache in het filiaal, ongeacht of de cache zich op een clientcomputer of op een server bevindt. Clientcomputers en -servers gebruiken ook inhoudsinformatie om inhoud in de cache te beveiligen, zodat deze niet toegankelijk is voor onbevoegde gebruikers.

BranchCache verhoogt de productiviteit van eindgebruikers door de reactietijden van inhoudsquery's voor clients en servers in filialen te verbeteren en kan ook helpen de netwerkprestaties te verbeteren door verkeer via WAN-koppelingen te verminderen.

BranchCache-modi

BranchCache heeft twee bewerkingsmodi: gedistribueerde-cachemodus en gehoste cachemodus.

Wanneer u BranchCache implementeert in de modus gedistribueerde cache, wordt de inhoudscache op een filiaal verdeeld over clientcomputers.

Wanneer u BranchCache implementeert in de gehoste-cachemodus, wordt de inhoudscache op een filiaal gehost op een of meer servercomputers, die gehoste cacheservers worden genoemd.

Opmerking

U kunt BranchCache implementeren met beide modi, maar er kan slechts één modus per filiaal worden gebruikt. Als u bijvoorbeeld twee filialen hebt, een met een server en een die dat niet doet, kunt u BranchCache implementeren in de gehoste-cachemodus op kantoor die een server bevat, terwijl BranchCache wordt geïmplementeerd in de modus gedistribueerde cache in het kantoor dat alleen clientcomputers bevat.

In de volgende afbeelding wordt BranchCache in beide modi geïmplementeerd.

BranchCache-modi

De gedistribueerde-cachemodus is het meest geschikt voor kleine filialen die geen lokale server bevatten voor gebruik als gehoste cacheserver. Met de modus Gedistribueerde cache kunt u BranchCache implementeren zonder extra hardware in filialen.

Als het filiaal waar u BranchCache wilt implementeren, extra infrastructuur bevat, zoals een of meer servers waarop andere workloads worden uitgevoerd, is het implementeren van BranchCache in de gehoste-cachemodus nuttig om de volgende redenen:

Verbeterde beschikbaarheid van de cache

De gehoste-cachemodus verhoogt de cache-efficiëntie omdat inhoud beschikbaar is, zelfs als de client die de gegevens oorspronkelijk heeft aangevraagd en in de cache heeft opgeslagen, offline is. Omdat de gehoste cacheserver altijd beschikbaar is, wordt er meer inhoud in de cache opgeslagen, waardoor er meer WAN-bandbreedtebesparing wordt geboden en de efficiëntie van BranchCache wordt verbeterd.

Gecentraliseerd opslaan in cache voor filialen met meerdere subnetten

De modus Gedistribueerde cache werkt op één subnet. Op een filiaal met meerdere subnetten dat is geconfigureerd voor de modus gedistribueerde cache, kan een bestand dat naar het ene subnet is gedownload, niet worden gedeeld met clientcomputers op andere subnetten.

Hierdoor kunnen clients op andere subnetten niet ontdekken dat het bestand al is gedownload en halen ze het bestand op van de inhoudsserver van het hoofdkantoor, waarbij ze WAN-bandbreedte gebruiken.

Wanneer u de gehoste-cachemodus implementeert, is dit echter niet het geval. Alle clients in een filiaal met meerdere subnetten hebben toegang tot één cache, die is opgeslagen op de gehoste cacheserver, zelfs als de clients zich op verschillende subnetten bevinden. Daarnaast biedt BranchCache in Windows Server 2016, Windows Server 2012 R2 en Windows Server 2012 de mogelijkheid om meer dan één gehoste cacheserver per filiaal te implementeren.

Waarschuwing

Als u BranchCache gebruikt voor SMB-caching van bestanden en mappen, schakelt u offlinebestanden niet uit. Als u Offlinebestanden uitschakelt, werkt BranchCache SMB-caching niet correct.

Servers met BranchCache-inhoud

Wanneer u BranchCache implementeert, wordt de broninhoud opgeslagen op inhoudsservers met BranchCache in uw hoofdkantoor of in een datacenter in de cloud. De volgende typen inhoudsservers worden ondersteund door BranchCache:

Opmerking

Alleen broninhoud, dat wil gezegd, inhoud die clientcomputers in eerste instantie verkrijgen van een BranchCache-inhoudsserver, wordt versneld door BranchCache. Inhoud die clientcomputers rechtstreeks verkrijgen uit andere bronnen, zoals webservers op internet of Windows Update, wordt niet in de cache opgeslagen door clientcomputers of gehoste cacheservers en vervolgens gedeeld met andere computers in het filiaal. Als u Windows Update-inhoud wilt versnellen, kunt u echter een WSUS-toepassingsserver (Windows Server Update Services) installeren op uw hoofdkantoor of in het clouddatacentrum en deze configureren als een BranchCache-inhoudsserver.

Webservers

Ondersteunde webservers zijn computers met Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 of Windows Server 2008 R2 waarop de webserverfunctie (IIS) is geïnstalleerd en die gebruikmaken van Hypertext Transfer Protocol (HTTP) of HTTP Secure (HTTPS).

Daarnaast moet op de webserver de BranchCache-functie zijn geïnstalleerd.

Bestandsservers

Ondersteunde bestandsservers zijn computers met Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 of Windows Server 2008 R2 waarop de functieservice Bestandsservices en de functieservice BranchCache voor netwerkbestanden zijn geïnstalleerd.

Deze bestandsservers gebruiken Server Message Block (SMB) om informatie uit te wisselen tussen computers. Nadat u de installatie van uw bestandsserver hebt voltooid, moet u ook mappen delen en hash-generatie voor gedeelde mappen inschakelen met behulp van Groepsbeleid of Lokaal computerbeleid om BranchCache in te schakelen.

Toepassingsservers

Ondersteunde toepassingsservers zijn computers met Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 of Windows Server 2008 R2 waarop BITS (Background Intelligent Transfer Service) is geïnstalleerd en ingeschakeld.

Daarnaast moet op de toepassingsserver de BranchCache-functie zijn geïnstalleerd. Als voorbeelden van toepassingsservers kunt u Microsoft Windows Server Update Services (WSUS) en Microsoft Endpoint Configuration Manager Branch Distribution Point-servers implementeren als BranchCache-inhoudsservers.

BranchCache en de cloud

De cloud heeft een enorm potentieel om de operationele kosten te verlagen en nieuwe schaalniveaus te bereiken, maar het verplaatsen van workloads van de mensen die ervan afhankelijk zijn, kan de netwerkkosten verhogen en de productiviteit schaden. Gebruikers verwachten hoge prestaties en het maakt niet uit waar hun toepassingen en gegevens worden gehost.

BranchCache kan de prestaties van toepassingen in het netwerk verbeteren en het bandbreedteverbruik verminderen met een gedeelde cache met gegevens. Het verbetert de productiviteit in filialen en het hoofdkantoor, waarbij werknemers servers gebruiken die in de cloud zijn geïmplementeerd.

Omdat BranchCache geen nieuwe hardware- of netwerktopologiewijzigingen vereist, is het een uitstekende oplossing voor het verbeteren van de communicatie tussen kantoorlocaties en zowel openbare als privéclouds.

Opmerking

Omdat sommige webproxy's geen niet-standaard Content-Encoding-headers kunnen verwerken, wordt u aangeraden BranchCache te gebruiken met Hyper Text Transfer Protocol Secure (HTTPS) en niet HTTP.

======= Zie Software Defined Networking (SDN) voor meer informatie over cloudtechnologieën in Windows Server 2016.

Inhoudsinformatieversies

Er zijn twee versies van inhoudsinformatie:

  • Informatie over inhoud die compatibel is met computers met Windows Server 2008 R2 en Windows 7 wordt versie 1 of V1 genoemd. Met V1 BranchCache-bestandssegmentatie zijn bestandssegmenten groter dan in V2 en hebben ze een vaste grootte. Als een gebruiker een wijziging aanbrengt die de bestandsgrootte wijzigt vanwege grote vaste segmentgrootten, is niet alleen het segment met de wijziging ongeldig, maar worden alle segmenten aan het einde van het bestand ongeldig gemaakt. De volgende aanroep voor het gewijzigde bestand door een andere gebruiker in het filiaal leidt daarom tot een lagere WAN-bandbreedtebesparing omdat de gewijzigde inhoud en alle inhoud nadat de wijziging via de WAN-koppeling is verzonden.

  • Informatie over inhoud die compatibel is met computers met Windows Server 2016, Windows 10, Windows Server 2012 R2, Windows 8.1, Windows Server 2012 en Windows 8 wordt versie 2 of V2 genoemd. V2-inhoudsinformatie maakt gebruik van kleinere segmenten van variabele grootte die toleranter zijn voor wijzigingen in een bestand. Dit verhoogt de kans dat segmenten van een oudere versie van het bestand opnieuw kunnen worden gebruikt wanneer gebruikers toegang hebben tot een bijgewerkte versie, waardoor ze alleen het gewijzigde gedeelte van het bestand van de inhoudsserver kunnen ophalen en minder WAN-bandbreedte gebruiken.

De volgende tabel bevat informatie over de inhoudsgegevensversie die wordt gebruikt, afhankelijk van welke client-, inhoudsserver- en gehoste cacheserverbesturingssystemen u gebruikt in uw BranchCache-implementatie.

Opmerking

In de onderstaande tabel betekent het acroniem 'OS' het besturingssysteem.

Client besturingssysteem Besturingssysteem voor contentserver Besturingssysteem van gehoste cache-server Versie van inhoudsgegevens
Windows Server 2008 R2 en Windows 7 Windows Server 2012 of hoger Windows Server 2012 of hoger; geen voor gedistribueerde cache-modus V1
Windows Server 2012 of hoger; Windows 8 of hoger Windows Server 2008 R2 Windows Server 2012 of hoger; geen voor gedistribueerde cachemodus V1
Windows Server 2012 of hoger; Windows 8 of hoger Windows Server 2012 of hoger Windows Server 2008 R2 V1
Windows Server 2012 of hoger; Windows 8 of hoger Windows Server 2012 of hoger Windows Server 2012 of hoger; geen voor gedistribueerde cachemodus V2

Wanneer u inhoudsservers en gehoste cacheservers hebt waarop Windows Server 2016, Windows Server 2012 R2 en Windows Server 2012 worden uitgevoerd, wordt de inhoudsgegevensversie gebruikt die geschikt is op basis van het besturingssysteem van de BranchCache-client die informatie aanvraagt.

Wanneer computers met Windows Server 2012 en Windows 8 of hoger inhoud aanvragen, gebruiken de inhoud en gehoste cacheservers V2-inhoudsgegevens; wanneer computers met Windows Server 2008 R2 en Windows 7 inhoud aanvragen, gebruiken de inhoud en gehoste cacheservers V1-inhoudsgegevens.

Belangrijk

Wanneer u BranchCache implementeert in de modus gedistribueerde cache, delen clients die verschillende inhoudsgegevensversies gebruiken geen inhoud met elkaar. Een clientcomputer met Windows 7 en een clientcomputer met Windows 10 die in hetzelfde filiaal zijn geïnstalleerd, delen bijvoorbeeld geen inhoud met elkaar.

Hoe BranchCache inhoudsupdates in bestanden verwerkt

Wanneer gebruikers van filialen de inhoud van documenten wijzigen of bijwerken, worden hun wijzigingen rechtstreeks naar de inhoudsserver in het hoofdkantoor geschreven zonder tussenkomst van BranchCache. Dit is waar of de gebruiker het document heeft gedownload van de inhoudsserver of het heeft verkregen uit een gehoste of gedistribueerde cache in het filiaal.

Wanneer het gewijzigde bestand wordt aangevraagd door een andere client in een filiaal, worden de nieuwe segmenten van het bestand gedownload van de hoofdkantoorserver en toegevoegd aan de gedistribueerde of gehoste cache in die vertakking. Hierdoor ontvangen filiaalgebruikers altijd de meest recente versies van inhoud in de cache.

Installatiehandleiding voor BranchCache

U kunt Serverbeheer in Windows Server 2016 gebruiken om de functie BranchCache of de rollenservice BranchCache voor netwerkbestanden van de serverrol Bestandsservices te installeren. U kunt de volgende tabel gebruiken om te bepalen of u de rolservice of de functie wilt installeren.

Functionaliteit Computerlocatie Dit BranchCache-element installeren
Inhoudsserver (BITS-toepassingsserver) Hoofdkantoor- of clouddatacenter BranchCache-functie
Inhoudsserver (webserver) Hoofdkantoor- of clouddatacenter BranchCache-functie
Inhoudsserver (bestandsserver met behulp van het SMB-protocol) Hoofdkantoor- of clouddatacenter BranchCache voor de functieservice Netwerkbestanden van de serverfunctie Bestandsservices
Gehoste cacheserver Filiaal BranchCache-functie waarvoor de gehoste cacheservermodus is ingeschakeld
BranchCache-ingeschakelde clientcomputer Kantoorfiliaal Geen installatie nodig; Schakel BranchCache en een BranchCache-modus (gedistribueerd of gehost) in op de client

Als u de rolservice of de functie wilt installeren, opent u Server Beheer en selecteert u de computers waarop u BranchCache-functionaliteit wilt inschakelen. Klik in Serverbeheer op beheren en klik vervolgens op Functies en onderdelen toevoegen. De functies en onderdelen toevoegen wizard wordt geopend. Wanneer u de wizard uitvoert, moet u de volgende selecties maken:

  • Selecteer op de wizardpagina InstallatietypeInstallatie op basis van rollen of onderdelen.

  • Als u een bestandsserver met BranchCache installeert, vouwt u Bestands- en opslagservices enbestands- en iSCSI-services uit op de wizardpagina Serverfuncties en selecteert u BranchCache voor netwerkbestanden. Als u schijfruimte wilt besparen, kunt u ook de functieservice voor gegevensontdubbeling selecteren en vervolgens doorgaan met de wizard om te installeren en te voltooien. Als u geen bestandsserver met BranchCache wilt installeren, moet u de functie Bestands- en opslagservices niet installeren met de functieservice BranchCache voor netwerkbestanden.

  • Op de tovenaarspagina Selecteer functies, als u een inhoudsserver installeert die geen bestandsserver is of als u een gehoste cacheserver installeert, selecteert u BranchCache en gaat u vervolgens verder met de wizard tot de installatie is voltooid. Als u geen andere inhoudsserver dan een bestandsserver of een gehoste cacheserver wilt installeren, installeert u de BranchCache-functie niet.

Besturingssysteemversies voor BranchCache

Hieronder volgt een lijst met besturingssystemen die verschillende typen BranchCache-functionaliteit ondersteunen.

Besturingssystemen voor de functionaliteit van de BranchCache-clientcomputer

De volgende besturingssystemen bieden BranchCache ondersteuning voor Background Intelligent Transfer Service (BITS), Hyper Text Transfer Protocol (HTTP) en Server Message Block (SMB).

  • Windows 10 Enterprise

  • Windows 10 Education

  • Windows 8.1 Enterprise

  • Windows 8 Enterprise

  • Windows 7 Enterprise

  • Windows 7 Ultimate

In de volgende besturingssystemen biedt BranchCache geen ondersteuning voor HTTP- en SMB-functionaliteit, maar ondersteunt BranchCache BITS-functionaliteit.

  • Windows 10 Pro, alleen BITS-ondersteuning

  • Windows 8.1 Pro, alleen BITS-ondersteuning

  • Alleen Ondersteuning voor Windows 8 Pro, BITS

  • Alleen Windows 7 Pro, BITS-ondersteuning

Opmerking

BranchCache is standaard niet beschikbaar in de besturingssystemen Windows Server 2008 of Windows Vista. Als u echter op deze besturingssystemen de Update van Windows Management Framework downloadt en installeert, is de BranchCache-functionaliteit alleen beschikbaar voor het BITS-protocol (Background Intelligent Transfer Service). Zie Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 en BITS 4.0) op /powershell/scripting/windows-powershell/install/install-the-windows-powershell-2.0-engine voor meer informatie en om Windows Management Framework te downloaden.

Besturingssystemen voor de functionaliteit van de BranchCache-inhoudsserver

U kunt de Windows Server 2016-, Windows Server 2012 R2- en Windows Server 2012-families van besturingssystemen als BranchCache-inhoudsservers gebruiken.

Bovendien kan de Windows Server 2008 R2-serie van besturingssystemen worden gebruikt als BranchCache-inhoudsservers, met de volgende uitzonderingen:

  • BranchCache wordt niet ondersteund in Server Core-installaties van Windows Server 2008 R2 Enterprise met Hyper-V.

  • BranchCache wordt niet ondersteund in Server Core-installaties van Windows Server 2008 R2 Datacenter met Hyper-V.

Besturingssystemen voor gehoste cacheserverfunctionaliteit voor BranchCache

U kunt de Windows Server 2016-, Windows Server 2012 R2- en Windows Server 2012-families van besturingssystemen gebruiken als gehoste BranchCache-cacheservers.

Bovendien kunnen de volgende Windows Server 2008 R2-besturingssystemen worden gebruikt als gehoste Cacheservers van BranchCache:

  • Windows Server 2008 R2 Enterprise

  • Windows Server 2008 R2 Enterprise met Hyper-V

  • Windows Server 2008 R2 Enterprise Server Core-installatie

  • Windows Server 2008 R2 Enterprise Server Core-installatie met Hyper-V

  • Windows Server 2008 R2 voor Itanium-Based-systemen

  • Windows Server 2008 R2 Datacenter

  • Windows Server 2008 R2 Datacenter met Hyper-V

  • Windows Server 2008 R2 Datacenter Server Core-installatie met Hyper-V

BranchCache-beveiliging

BranchCache implementeert een veilige benadering die naadloos samen met uw bestaande netwerkbeveiligingsarchitecturen werkt, zonder dat er extra apparatuur of complexe aanvullende beveiligingsconfiguratie nodig is.

BranchCache is niet-invasief en wijzigt geen Windows-verificatie- of autorisatieprocessen. Nadat u BranchCache hebt geïmplementeerd, wordt verificatie nog steeds uitgevoerd met domeinreferenties en de manier waarop autorisatie met ACL's (Access Control Lists) ongewijzigd blijft. Daarnaast blijven andere configuraties werken net als vóór de implementatie van BranchCache.

Het BranchCache-beveiligingsmodel is gebaseerd op het maken van metagegevens, die de vorm hebben van een reeks hashes. Deze hashes worden ook wel inhoudsinformatie genoemd.

Nadat inhoudsinformatie is gemaakt, wordt deze gebruikt in BranchCache-berichtenuitwisseling in plaats van de werkelijke gegevens en wordt deze uitgewisseld met behulp van de ondersteunde protocollen (HTTP, HTTPS en SMB).

Gegevens in de cache worden versleuteld bewaard en kunnen niet worden geopend door clients die geen toegang hebben tot inhoud van de oorspronkelijke bron. Clients moeten worden geverifieerd en geautoriseerd door de oorspronkelijke inhoudsbron voordat ze metagegevens van inhoud kunnen ophalen en moeten beschikken over metagegevens van inhoud om toegang te krijgen tot de cache in het lokale kantoor.

Hoe BranchCache inhoudsinformatie genereert

Omdat inhoudsinformatie wordt gemaakt op basis van meerdere elementen, is de waarde van de inhoudsgegevens altijd uniek. Deze elementen zijn:

  • De werkelijke inhoud (zoals webpagina's of gedeelde bestanden) waaruit de hashes worden afgeleid.

  • Configuratieparameters, zoals het hash-algoritme en de blokgrootte. Voor het genereren van inhoudsinformatie verdeelt de inhoudsserver de inhoud in segmenten en splitst deze segmenten vervolgens in blokken. BranchCache maakt gebruik van beveiligde cryptografische hashes om elk blok en segment te identificeren en te verifiëren, met ondersteuning voor het SHA256-hashalgoritme.

  • Een servergeheim. Alle inhoudsservers moeten worden geconfigureerd met een servergeheim. Dit is een binaire waarde van willekeurige lengte.

Opmerking

Het gebruik van een servergeheim zorgt ervoor dat clientcomputers de inhoudsgegevens zelf niet kunnen genereren. Dit voorkomt dat kwaadwillende gebruikers brute force-aanvallen gebruiken met clientcomputers met BranchCache om kleine wijzigingen in inhoud in verschillende versies te raden in situaties waarin de client toegang had tot een eerdere versie, maar geen toegang heeft tot de huidige versie.

Details van inhoudsgegevens

BranchCache gebruikt het servergeheim als sleutel om een inhoudsspecifieke hash af te leiden die wordt verzonden naar geautoriseerde clients. Door een hash-algoritme toe te passen op het gecombineerde servergeheim en de hash van gegevens wordt deze hash gegenereerd.

Deze hash wordt het segmentgeheim genoemd. BranchCache maakt gebruik van segmentgeheimen om communicatie te beveiligen. Daarnaast maakt BranchCache een blok-hashlijst, een lijst met gehashte gegevensblokken en de hash van gegevens, die wordt gegenereerd door hashing van de blok-hashlijst.

De inhoudsinformatie bevat het volgende:

  • De lijst met blokhashes:

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

  • De hash van gegevens (HoD):

    HoD = Hash(BlockHashList)

  • Segmentgeheim (Kp):

    Kp = HMAC(Ks, HoD)

BranchCache maakt gebruik van het protocol Peer Content Caching en het Protocol Retrieval Framework om de processen te implementeren die nodig zijn om ervoor te zorgen dat gegevens veilig worden opgeslagen en opgehaald tussen inhoudscaches.

Daarnaast verwerkt BranchCache inhoudsinformatie met dezelfde mate van beveiliging die wordt gebruikt bij het verwerken en verzenden van de werkelijke inhoud zelf.

Inhoudsstroom en -processen

De stroom van inhoudsinformatie en werkelijke inhoud is onderverdeeld in vier fasen:

  1. BranchCache-processen: Inhoud aanvragen

  2. BranchCache-processen: inhoud zoeken

  3. BranchCache-processen: inhoud ophalen

  4. BranchCache-processen: Cache-inhoud

In de volgende secties worden deze fasen beschreven.

BranchCache-processen: Inhoud aanvragen

In de eerste fase vraagt de clientcomputer in het filiaal inhoud op, zoals een bestand of webpagina, vanaf een inhoudsserver op een externe locatie, zoals een hoofdkantoor. De inhoudsserver controleert of de clientcomputer is gemachtigd om de aangevraagde inhoud te ontvangen. Als de clientcomputer is geautoriseerd en zowel de inhoudsserver als de client BranchCache is ingeschakeld, genereert de inhoudsserver inhoudsgegevens.

De inhoudsserver verzendt vervolgens de inhoudsgegevens naar de clientcomputer met hetzelfde protocol als dat voor de werkelijke inhoud zou zijn gebruikt.

Als de clientcomputer bijvoorbeeld een webpagina via HTTP heeft aangevraagd, verzendt de inhoudsserver de inhoudsgegevens via HTTP. Daarom zijn de beveiligingsgaranties op wire-level van de inhoud en de inhoudsinformatie identiek.

Nadat het eerste gedeelte van inhoudsinformatie (Hash of Data + Segment Secret) is ontvangen, voert de clientcomputer de volgende acties uit:

  • Gebruikt het segmentgeheim (Kp) als de versleutelingssleutel (Ke).

  • Genereert de segment-id (HoHoDk) van de HoD en Kp:

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

De primaire bedreiging op deze laag is het risico voor het segmentgeheim, maar BranchCache versleutelt de inhoudsgegevensblokken om het segmentgeheim te beveiligen. BranchCache doet dit met behulp van de versleutelingssleutel die is afgeleid van het segmentgeheim van het inhoudssegment waarin de inhoudsblokken zich bevinden.

Deze aanpak zorgt ervoor dat een entiteit die niet in het bezit is van het servergeheim, de werkelijke inhoud in een gegevensblok niet kan detecteren. Het segmentgeheim wordt behandeld met hetzelfde beveiligingsniveau als het segment zonder opmaak, omdat kennis van het segmentgeheim voor een bepaald segment een entiteit in staat stelt het segment te verkrijgen van peers en het vervolgens te decoderen. Kennis van het servergeheim levert niet onmiddellijk een bepaalde tekst zonder opmaak op, maar kan worden gebruikt om bepaalde typen gegevens af te leiden van de coderingstekst en vervolgens om mogelijk enkele gedeeltelijk bekende gegevens bloot te stellen aan een brute-force schattingsaanval. Het servergeheim moet daarom vertrouwelijk worden bewaard.

BranchCache-processen: inhoud zoeken

Nadat de inhoudsgegevens zijn ontvangen door de clientcomputer, gebruikt de client de segment-id om de aangevraagde inhoud te vinden in de lokale filiaalcache, ongeacht of die cache wordt gedistribueerd tussen clientcomputers of zich op een gehoste cacheserver bevindt.

Als de clientcomputer is geconfigureerd voor de gehoste-cachemodus, wordt deze geconfigureerd met de computernaam van de gehoste cacheserver en neemt contact op met die server om de inhoud op te halen.

Als de clientcomputer is geconfigureerd voor de modus gedistribueerde cache, kan de inhoud echter worden opgeslagen in meerdere caches op meerdere computers in het filiaal. De clientcomputer moet detecteren waar de inhoud zich bevindt voordat de inhoud wordt opgehaald.

Wanneer ze zijn geconfigureerd voor de gedistribueerde-cachemodus, zoeken clientcomputers inhoud met behulp van een detectieprotocol dat is gebaseerd op het protocol dynamische detectie van webservices (WS-Discovery). Clients verzenden WS-Discovery multicasttestberichten om inhoud in de cache via het netwerk te detecteren. Testberichten bevatten de segment-id, waarmee clients kunnen controleren of de aangevraagde inhoud overeenkomt met de inhoud die is opgeslagen in de cache. Clients die het eerste testbericht ontvangen, beantwoorden de queryclient met unicast-Probe-Match berichten als de segment-id overeenkomt met inhoud die lokaal in de cache is opgeslagen.

Het succes van het WS-Discovery proces is afhankelijk van het feit dat de client die de detectie uitvoert de juiste inhoudsinformatie heeft, die is verstrekt door de inhoudsserver, voor de inhoud die wordt aangevraagd.

De belangrijkste bedreiging voor gegevens tijdens de fase Inhoud aanvragen is openbaarmaking van informatie, omdat de toegang tot de inhoudsinformatie impliceert dat geautoriseerde toegang tot inhoud is. Om dit risico te beperken, worden in het detectieproces niet de inhoudsgegevens weergegeven, behalve de segment-id, waardoor er niets wordt weergegeven over het segment zonder opmaak dat de inhoud bevat.

Bovendien kan een andere cliëntcomputer die bediend wordt door een kwaadwillende gebruiker in hetzelfde subnetwerk het BranchCache-ontdekkingstraffic zien naar de oorspronkelijke inhoudsbron die via de router gaat.

Als de aangevraagde inhoud niet wordt gevonden in het filiaal, vraagt de client de inhoud rechtstreeks aan bij de inhoudsserver via de WAN-koppeling.

Nadat de inhoud is ontvangen, wordt deze toegevoegd aan de lokale cache, op de clientcomputer of op een gehoste cacheserver. In dit geval voorkomt de inhoudsinformatie dat een client of gehoste cacheserver inhoud toevoegt aan de lokale cache die niet overeenkomt met de hashes. Het proces voor het verifiëren van inhoud door overeenkomende hashes zorgt ervoor dat alleen geldige inhoud wordt toegevoegd aan de cache en dat de integriteit van de lokale cache wordt beveiligd.

BranchCache-processen: inhoud ophalen

Nadat een clientcomputer de gewenste inhoud op de inhoudshost heeft gevonden. Dit is een gehoste cacheserver of een clientcomputer in de gedistribueerde-cachemodus. De clientcomputer begint met het ophalen van de inhoud.

Eerst verzendt de clientcomputer een aanvraag naar de inhoudshost voor het eerste blok dat nodig is. De aanvraag bevat de segment-id en het blokbereik waarmee de gewenste inhoud wordt geïdentificeerd. Omdat er slechts één blok wordt geretourneerd, bevat het blokbereik slechts één blok. (Aanvragen voor meerdere blokken worden momenteel niet ondersteund.) De client slaat de aanvraag ook op in de lokale lijst met openstaande aanvragen.

Na ontvangst van een geldig aanvraagbericht van een client controleert de inhoudshost of het blok dat is opgegeven in de aanvraag aanwezig is in de inhoudscache van de inhoudshost.

Als de inhoudshost in het bezit is van het inhoudsblok, verzendt de inhoudshost een antwoord met de segment-id, de blok-id, het versleutelde gegevensblok en de initialisatievector die wordt gebruikt voor het versleutelen van het blok.

Als de inhoudshost niet in het bezit is van het inhoudsblok, verzendt de inhoudshost een leeg antwoordbericht. Hiermee wordt de clientcomputer geïnformeerd dat de inhoudshost niet over het aangevraagde blok beschikt. Een leeg antwoordbericht bevat de segment-id en blok-id van het aangevraagde blok, samen met een gegevensblok met de grootte nul.

Wanneer de clientcomputer het antwoord van de inhoudshost ontvangt, controleert de client of het bericht overeenkomt met een aanvraagbericht in de lijst met openstaande aanvragen. (De segment-id en blokindex moeten overeenkomen met die van een openstaande aanvraag.)

Als dit verificatieproces mislukt en de clientcomputer geen bijbehorend aanvraagbericht in de lijst met openstaande aanvragen heeft, wordt het bericht genegeerd door de clientcomputer.

Als dit verificatieproces is geslaagd en de clientcomputer een bijbehorend aanvraagbericht in de lijst met openstaande aanvragen heeft, ontsleutelt de clientcomputer het blok. De client valideert vervolgens het ontsleutelde blok tegen de juiste blok-hash van de inhoudsgegevens die de client aanvankelijk heeft verkregen van de oorspronkelijke inhoudsserver.

Als de blokvalidatie is geslaagd, wordt het ontsleutelde blok opgeslagen in de cache.

Dit proces wordt herhaald totdat de client alle vereiste blokken heeft.

Opmerking

Als de volledige segmenten van inhoud niet bestaan op één computer, haalt het ophaalprotocol inhoud op uit een combinatie van bronnen: een set clientcomputers in de gedistribueerde-cachemodus, een gehoste cacheserver en - als het filiaalcaches niet de volledige inhoud bevatten - de oorspronkelijke inhoudsserver in het hoofdkantoor.

Voordat BranchCache inhoudsinformatie of inhoud verzendt, worden de gegevens versleuteld. BranchCache versleutelt het blok in het antwoordbericht. In Windows 7 is het standaardversleutelingsalgoritmen dat BranchCache gebruikt AES-128, de versleutelingssleutel Ke en de sleutelgrootte is 128 bits, zoals bepaald door het versleutelingsalgoritmen.

BranchCache genereert een initialisatievector die geschikt is voor het versleutelingsalgoritmen en gebruikt de versleutelingssleutel om het blok te versleutelen. BranchCache registreert vervolgens het versleutelingsalgoritmen en de initialisatievector in het bericht.

Servers en clients wisselen, delen of verzenden elkaar nooit de versleutelingssleutel. De client ontvangt de versleutelingssleutel van de inhoudsserver die als host fungeert voor de broninhoud. Vervolgens ontsleutelt het blok met behulp van het versleutelingsalgoritmen en de initialisatievector die het van de server heeft ontvangen. Er is geen andere expliciete verificatie of autorisatie ingebouwd in het downloadprotocol.

Beveiligingsbedreigingen

De belangrijkste beveiligingsrisico's op deze laag zijn:

  • Knoeien met gegevens:

    Een client die gegevens aan een aanvrager levert, manipuleert de gegevens. Het BranchCache-beveiligingsmodel gebruikt hashes om te bevestigen dat noch de client noch de server de gegevens heeft gewijzigd.

  • Openbaarmaking van informatie:

    BranchCache verzendt versleutelde inhoud naar elke client die de juiste segment-id opgeeft. Segment-id's zijn openbaar, zodat elke client versleutelde inhoud kan ontvangen. Als een kwaadwillende gebruiker echter versleutelde inhoud verkrijgt, moet deze de versleutelingssleutel kennen om de inhoud te ontsleutelen. Het protocol van de bovenste laag voert verificatie uit en geeft vervolgens de inhoudsinformatie aan de geverifieerde en geautoriseerde client. De beveiliging van de inhoudsgegevens is gelijk aan de beveiliging die aan de inhoud zelf wordt geleverd en BranchCache maakt de inhoudsgegevens nooit beschikbaar.

    Een aanvaller onderschept het dataverkeer om de inhoud te verkrijgen. BranchCache versleutelt alle overdrachten tussen clients met behulp van AES128, waarbij de geheime sleutel Ke is, om te voorkomen dat gegevens worden gesniffed vanaf de kabel. Inhoudsinformatie die wordt gedownload van de inhoudsserver, wordt op exact dezelfde manier beveiligd als de gegevens zelf zouden zijn en is daarom niet meer of minder beschermd tegen openbaarmaking van informatie dan als BranchCache helemaal niet is gebruikt.

  • Dienstweigering:

    Een client wordt overweldigd door aanvragen voor gegevens. BranchCache-protocollen bevatten wachtrijbeheertellers en timers om te voorkomen dat clients overbelast raken.

BranchCache-processen: Cache-inhoud

Op clientcomputers in de gedistribueerde cachemodus en gehoste cacheservers die zich in filialen bevinden, worden inhoudscaches in de loop van de tijd opgebouwd wanneer inhoud wordt opgehaald via WAN-koppelingen.

Wanneer clientcomputers zijn geconfigureerd met de gehoste-cachemodus, voegen ze inhoud toe aan hun eigen lokale cache en bieden ze ook gegevens aan de gehoste cacheserver. Het Hosted Cache Protocol biedt een mechanisme voor clients om de gehoste cacheserver te informeren over de beschikbaarheid van inhoud en segmenten.

Als u inhoud wilt uploaden naar de gehoste cacheserver, informeert de client de server dat het een segment heeft dat beschikbaar is. De gehoste cacheserver haalt vervolgens alle inhoudsgegevens op die zijn gekoppeld aan het aangeboden segment en downloadt de blokken binnen het segment dat het daadwerkelijk nodig heeft. Dit proces wordt herhaald totdat de client geen segmenten meer heeft om de gehoste cacheserver aan te bieden.

Als u de gehoste cacheserver wilt bijwerken met behulp van het Protocol voor gehoste cache, moet aan de volgende vereisten worden voldaan:

  • De clientcomputer moet een set blokken binnen een segment hebben die het kan aanbieden aan de gehost cacheserver. De klant moet inhoudsinformatie opgeven voor het aangeboden segment; dit bestaat uit de segment-id, de segment-hash van gegevens, het segmentgeheim en een lijst met alle blokhashes die zich in het segment bevinden.

  • Voor gehoste cacheservers waarop Windows Server 2008 R2 wordt uitgevoerd, zijn een gehost cacheservercertificaat en de bijbehorende persoonlijke sleutel vereist. De certificeringsinstantie (CA) die het certificaat heeft uitgegeven, moet worden vertrouwd door clientcomputers in het filiaal. Hierdoor kunnen de client en server met succes deelnemen aan HTTPS-serververificatie.

    Belangrijk

    Gehoste cacheservers met Windows Server 2016, Windows Server 2012 R2 of Windows Server 2012 vereisen geen gehost cacheservercertificaat en de bijbehorende persoonlijke sleutel.

  • De clientcomputer is geconfigureerd met de computernaam van de gehoste cacheserver en het TCP-poortnummer (Transmission Control Protocol) waarop de gehoste cacheserver luistert naar BranchCache-verkeer. Het certificaat van de gehoste cacheserver is gebonden aan deze poort. De computernaam van de gehoste cacheserver kan een FQDN (Fully Qualified Domain Name) zijn, als de gehoste cacheserver een domeinlidcomputer is; of kan de NetBIOS-naam van de computer zijn als de gehoste cacheserver geen domeinlid is.

  • De clientcomputer luistert actief naar binnenkomende blokaanvragen. De poort waarop deze luistert, wordt doorgegeven als onderdeel van de aanbiedingsberichten van de client naar de gehoste cacheserver. Hierdoor kan de gehoste cacheserver BranchCache-protocollen gebruiken om verbinding te maken met de clientcomputer om gegevensblokken in het segment op te halen.

  • De gehoste cacheserver begint te luisteren naar binnenkomende HTTP-aanvragen wanneer deze wordt geïnitialiseerd.

  • Als de gehoste cacheserver is geconfigureerd voor clientcomputerverificatie, zijn zowel de client als de gehoste cacheserver vereist voor ondersteuning van HTTPS-verificatie.

Populatie van cache in gehoste cachemodus

Het proces voor het toevoegen van inhoud aan de cachecache van de gehoste cacheserver in een filiaal begint wanneer de client een INITIAL_OFFER_MESSAGE verzendt, waaronder de segment-id. De segment-id in de INITIAL_OFFER_MESSAGE aanvraag wordt gebruikt om de bijbehorende segment-hash van gegevens op te halen, een lijst met blokhashes en het segmentgeheim uit de blokcache van de gehoste cacheserver. Als de gehoste cacheserver al alle inhoudsgegevens voor een bepaald segment bevat, is het antwoord op de INITIAL_OFFER_MESSAGE ok en vindt er geen verzoek om downloadblokken plaats.

Als de gehoste cache-server niet alle aangeboden datablokken bevat die zijn gekoppeld aan de blok-hashes in het segment, is het antwoord op de INITIAL_OFFER_MESSAGE GEÏNTERESSEERD. De client verzendt vervolgens een SEGMENT_INFO_MESSAGE waarin het segment wordt beschreven dat wordt aangeboden. De gehoste cacheserver reageert met een OK-bericht en initieert het downloaden van de ontbrekende blokken van de aanbiedende clientcomputer.

De segment-hash van gegevens, de lijst met blokhashes en het segmentgeheim worden gebruikt om ervoor te zorgen dat de inhoud die wordt gedownload niet is gemanipuleerd of anderszins is gewijzigd. De gedownloade blokken worden vervolgens toegevoegd aan de blokcache van de gehoste cacheserver.

Cachebeveiliging

Deze sectie bevat informatie over hoe BranchCache gegevens in de cache beveiligt op clientcomputers en op gehoste cacheservers.

Cachebeveiliging van clientcomputers

De grootste bedreiging voor gegevens die zijn opgeslagen in BranchCache, is manipulatie. Als een aanvaller kan knoeien met inhouds- en inhoudsgegevens die zijn opgeslagen in de cache, is het mogelijk om dit te gebruiken om te proberen een aanval uit te voeren op de computers die BranchCache gebruiken. Aanvallers kunnen een aanval starten door schadelijke software in te voegen in plaats van andere gegevens. BranchCache beperkt deze bedreiging door alle inhoud te valideren met blok-hashes in de inhoudsgegevens. Als een aanvaller probeert te knoeien met deze gegevens, wordt deze verwijderd en vervangen door geldige gegevens uit de oorspronkelijke bron.

Een secundaire bedreiging voor gegevens die zijn opgeslagen in BranchCache is openbaarmaking van informatie. In de gedistribueerde-cachemodus slaat de client alleen de inhoud op die de client zelf heeft aangevraagd; deze gegevens worden echter opgeslagen in duidelijke tekst en lopen mogelijk gevaar. Om de cachetoegang tot de BranchCache-service alleen te beperken, wordt de lokale cache beveiligd door bestandssysteemmachtigingen die zijn opgegeven in een ACL.

Hoewel de ACL effectief is om te voorkomen dat onbevoegde gebruikers toegang hebben tot de cache, is het mogelijk dat een gebruiker met beheerdersbevoegdheden toegang krijgt tot de cache door handmatig de machtigingen te wijzigen die zijn opgegeven in de ACL. BranchCache beschermt niet tegen het schadelijke gebruik van een beheerdersaccount.

Gegevens die zijn opgeslagen in de inhoudscache worden niet versleuteld, dus als het lekken van gegevens een probleem is, kunt u versleutelingstechnologieën zoals BitLocker of het EFS (Encrypting File System) gebruiken. De lokale cache die wordt gebruikt door BranchCache verhoogt niet de bedreiging voor openbaarmaking van informatie die wordt gedragen door een computer in het filiaal; de cache bevat alleen kopieën van bestanden die zich elders op de schijf bevinden.

Het versleutelen van de hele schijf is met name belangrijk in omgevingen waarin de fysieke beveiliging van de clients moeilijk te garanderen is. Als u bijvoorbeeld de hele schijf versleutelt, kunt u gevoelige gegevens beveiligen op mobiele computers die mogelijk worden verwijderd uit de filiaalomgeving.

Cachebeveiliging van gehoste cacheserver

In de gehoste-cachemodus is de grootste bedreiging voor de beveiliging van de gehoste cacheserver openbaarmaking van informatie. BranchCache in een gehoste cacheomgeving gedraagt zich op een vergelijkbare manier als de gedistribueerde-cachemodus, met bestandssysteemmachtigingen voor het beveiligen van de gegevens in de cache. Het verschil is dat de gehoste cacheserver alle inhoud opslaat die een branchCache-computer in de filialen aanvraagt, in plaats van alleen de gegevens die door één client worden aangevraagd. De gevolgen van onbevoegde inbraak in deze cache kunnen veel ernstiger zijn, omdat er veel meer gegevens in gevaar zijn.

In een gehoste cacheomgeving waarop windows Server 2008 R2 wordt uitgevoerd op de gehoste cacheserver, is het gebruik van versleutelingstechnologieën zoals BitLocker of EFS raadzaam als een van de clients in het filiaal toegang heeft tot gevoelige gegevens via de WAN-koppeling. Het is ook nodig om fysieke toegang tot de gehoste cache te voorkomen, omdat schijfversleuteling alleen werkt wanneer de computer wordt uitgeschakeld wanneer de aanvaller fysieke toegang krijgt. Als de computer is ingeschakeld of zich in de slaapstand bevindt, biedt schijfversleuteling weinig bescherming.

Opmerking

Gehoste cacheservers met Windows Server 2016, Windows Server 2012 R2 of Windows Server 2012 versleutelen standaard alle gegevens in de cache, dus het gebruik van aanvullende versleutelingstechnologieën is niet vereist.

Zelfs als een client is geconfigureerd in de gehoste-cachemodus, worden er nog steeds gegevens lokaal in de cache opgeslagen en kunt u stappen ondernemen om de lokale cache te beveiligen naast de cache op de gehoste cacheserver.