Overzicht van BranchCache

 

Is van toepassing op: Windows Server 2012, Windows 8

Dit onderwerp is bestemd voor IT-professionals en bevat overzichtsinformatie over BranchCache, waaronder de modi, functies en mogelijkheden van BranchCache, evenals informatie over de BranchCache-functionaliteit die beschikbaar is op verschillende besturingssystemen.

Voor wie is BranchCache interessant?

Als u een systeembeheerder bent of een architect van netwerk- of opslagoplossingen, of een andere IT-professional, is BranchCache waarschijnlijk voor u interessant bij de volgende omstandigheden:

  • 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 heeft geïmplementeerd, en er wordt een WAN-verbinding gebruikt door medewerkers voor het verkrijgen van toegang tot gegevens en toepassingen op externe locaties.

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

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

  • Op de clientcomputers in uw filialen wordt Windows® 8 of Windows® 7 uitgevoerd.

Dit onderwerp bevat de volgende secties:

  • Wat is BranchCache?

  • BranchCache-modi

  • Inhoudsservers waarop BranchCache is ingeschakeld

  • BranchCache en de cloud

  • Informatieversies voor inhoud

  • Hoe BranchCache updates van inhoud in bestanden verwerkt

  • Installatiehandleiding voor BranchCache

  • Besturingssysteemversies voor BranchCache

  • Beveiliging in BranchCache

  • Stroom van de inhoud en processen

  • Cachebeveiliging

Wat is BranchCache?

BranchCache is een technologie voor het optimaliseren van de bandbreedte van WAN's (Wide Area Network), en maakt deel uit van sommige edities van de besturingssystemen Windows Server® 2012 en Windows® 8, evenals van sommige edities van Windows Server® 2008 R2 en Windows® 7. Om WAN-bandbreedte te optimaliseren wanneer gebruikers inhoud op externe servers gebruiken, kopieert BranchCache de inhoud van de cloudservers van uw hoofdkantoor of van de gehoste cloudservers en slaat deze op in de caches van de filialen, zodat de clientcomputers van de filialen lokaal toegang tot de inhoud hebben in plaats van via het WAN.

In filialen wordt inhoud opgeslagen op servers die zijn geconfigureerd om de cache te hosten of, als er geen server in het filiaal beschikbaar is, op clientcomputers waarop Windows 8 of Windows 7 wordt uitgevoerd. Nadat een clientcomputer inhoud aanvraagt en ontvangt van het hoofdkantoor en deze in de cache van het filiaal opslaat, kunnen andere computers in hetzelfde filiaal lokaal de inhoud verkrijgen in plaats van dat ze de inhoud van de inhoudsserver via de WAN-verbinding moeten downloaden.

Bij elke volgende keer dat dezelfde inhoud wordt aangevraagd door clientcomputers, downloaden de clients informatie over de inhoud van de server in plaats van de daadwerkelijke inhoud. Informatie over de inhoud bestaat uit hashes die zijn berekend met behulp van delen van de oorspronkelijke inhoud en die zeer klein zijn vergeleken met de inhoud van de oorspronkelijke gegevens. De clientcomputers gebruiken de informatie over de inhoud vervolgens om de inhoud in een cache in het filiaal te vinden, ongeacht of de cache zich op een client of op een server bevindt. Clientcomputers en servers maken ook gebruik van informatie over inhoud om inhoud in caches te beveiligen zodat deze niet kan worden geopend door onbevoegde gebruikers.

BranchCache verhoogt de productiviteit van de eindgebruiker door de responstijden voor inhoudsquery's voor clients en servers in filialen te verbeteren. BranchCache kan ook helpen bij de verbetering van netwerkprestaties door het verkeer dat via WAN-verbindingen verloopt, te verminderen.

BranchCache-modi

BranchCache beschikt over twee modi: de gedistribueerde-cachemodus en de gehoste-cachemodus.

Wanneer u BranchCache in de gedistribueerde-cachemodus implementeert, wordt de cache met de inhoud over de clientcomputers in een filiaal verdeeld.

Wanneer u BranchCache in de gehoste-cachemodus gebruikt, wordt de inhoud van een cache in een filiaal gehost op een of meer servercomputers, die gehoste cacheservers worden genoemd.

Notitie

U kunt BranchCache in beide modi gebruiken, maar er kan slechts één modus per filiaal worden gebruikt. Als u bijvoorbeeld twee filialen hebt waarvan er één een server heeft en de ander niet, dan kunt u in het filiaal met een server BranchCache in de gehoste-cachemodus gebruiken, en kunt u in het filiaal met alleen clientcomputers BranchCache in de gedistribueerde-cachemodus gebruiken.

Op de volgende afbeelding wordt BranchCache in beide modi gebruikt.

BranchCache-modi

De gedistribueerde-cachemodus is het meest geschikt voor kleine filialen die niet over een lokale server beschikken die als gehoste-cacheserver kan worden gebruikt. Door de gedistribueerde-cachemodus te gebruiken, is het niet nodig om voor de filialen extra hardware aan te schaffen als u BranchCache gebruikt.

Als het filiaal waar u BranchCache wilt gebruiken over extra infrastructuur geschikt, zoals een of meer servers die andere werklasten verwerken, is het om de volgende redenen nuttig BranchCache in de gehoste-cachemodus te gebruiken:

Verbeterde beschikbaarheid van caches

De gehoste-cachemodus verhoogt de efficiëntie van caches omdat inhoud beschikbaar is zelfs als de client die de oorspronkelijke aanvraag heeft ingediend en de gegevens in de cache heeft geplaatst, offline is. Omdat de gehoste-cacheserver altijd beschikbaar is, wordt er meer inhoud in de cache geplaatst, waardoor er minder WAN-bandbreedte wordt gebruikt en de efficiëntie van BranchCache verbetert.

De cachebewerkingen voor filialen met meerdere subnetten worden gecentraliseerd uitgevoerd

De gedistribueerde-cachemodus wordt op één subnet uitgevoerd. In een filiaal met meerdere subnetten waarvoor de gedistribueerde-cachemodus is geconfigureerd, kan een bestand dat naar een bepaald subnet is gedownload niet worden gedeeld met clientcomputers in andere subnetten. Als gevolg hiervan halen clients op andere subnets, die niet kunnen zien dat het bestand al is gedownload, het bestand vanaf de inhoudsserver van het hoofdkantoor op, en gebruiken hiervoor WAN-bandbreedte. Wanneer u de gehoste-cachemodus gebruikt, is dit echter niet het geval: alle clients in een filiaal met meerdere subnetten hebben toegang tot een enkele cache die is opgeslagen op de gehoste cacheserver, zelfs als de clients zich op verschillende subnetten bevinden. Daarnaast biedt BranchCache in Windows Server 2012 de mogelijkheid om meer dan één gehoste cacheserver per filiaal te gebruiken.

Waarschuwing

Als u BranchCache voor het opslaan van bestanden en mappen via SMB gebruikt, moet u Offlinebestanden niet uitschakelen. Als u Offlinebestanden uitschakelt, werkt het opslaan in cache via SMB van BranchCache niet correct.

Inhoudsservers waarop BranchCache is ingeschakeld

Wanneer u BranchCache implementeert, wordt de broninhoud opgeslagen op inhoudsservers op uw hoofdkantoor waarop BranchCache is ingeschakeld. De volgende typen inhoudsservers worden ondersteund door BranchCache:

Notitie

Alleen broninhoud – dat wil zeggen inhoud die clientcomputers in eerste instantie van een server ophalen waar BranchCache is ingeschakeld – wordt versneld verwerkt door BranchCache. Inhoud die clientcomputers rechtstreeks uit andere bronnen ophalen, zoals webservers op internet of Windows Update, wordt niet door clientcomputers of gehoste cacheservers in caches geplaatst en vervolgens gedeeld met andere computers in het filiaal. Als u echter wilt dat u Windows Update-inhoud sneller wordt verwerkt, kunt u een Windows Server Update Services WSUS-toepassingsserver (Windows Server Update Services) op uw kantoor installeren en als een inhoudsserver van BranchCache configureren.

Webservers

Ondersteunde webservers zijn onder andere computers waarop Windows Server 2012 of Windows Server® 2008 R2 wordt uitgevoerd, waarop de serverfunctie Webserver (IIS) is geïnstalleerd, en die gebruikmaken van Hypertext Transfer Protocol (HTTP) of HTTP Secure (HTTPS). Bovendien moet op de webserver de BranchCache-functie zijn geïnstalleerd. Voor meer informatie over Web Server (IIS) in Windows Server 2012, zie Webserver (IIS).

Bestandsservers

Ondersteund bestandsservers zijn computers waarop Windows Server 2012 of Windows Server 2008 R2 wordt uitgevoerd, en waarop de serverfunctie Bestandsservices en de functieservice BranchCache voor netwerkbestanden zijn geïnstalleerd. Deze bestandsservers gebruiken Server Message Block (SMB) voor het uitwisselen van gegevens tussen computers. Nadat u de installatie van de bestandsserver hebt voltooid, moet u, om BranchCache in te schakelen, ook mappen delen en het genereren van hashes voor gedeelde mappen inschakelen via groepsbeleid of via het beleid voor lokale computers. Voor meer informatie over Bestands- en opslagservices in Windows Server 2012, zie Bestands- en opslagservices.

Toepassingsservers

Ondersteunde toepassingsservers zijn computers waarop Windows Server 2012 of Windows Server 2008 R2 wordt uitgevoerd en waarop Background Intelligent Transfer Service (BITS) is geïnstalleerd en ingeschakeld. Bovendien moet op de toepassingsserver de BranchCache-functie zijn geïnstalleerd. U kunt bijvoorbeeld WSUS-servers (Microsoft Windows Server Update Services) en Microsoft System Center Configuration Manager Branch Distribution Point-servers gebruiken als BranchCache-inhoudsservers.

BranchCache en de cloud

De cloud heeft een enorm potentieel waar het gaat om het verminderen van de operationele kosten en bij het realiseren van nieuwe schaalniveaus, maar werklasten weghalen bij de mensen die ervan afhankelijk zijn, kan leiden tot hogere netwerkkosten en een lagere productiviteit. Gebruikers verwachten krachtige prestaties en vinden het niet belangrijk waar hun toepassingen en gegevens worden gehost. BranchCache kan de prestaties verbeteren van toepassingen in netwerken en het verbruik van bandbreedte verminderen door gebruik te maken van een gedeelde cache met gegevens. Het verbetert de productiviteit in filialen en hoofdkantoren, waar werknemers met servers werken die in de cloud zijn geïmplementeerd.

Omdat BranchCache geen nieuwe hardware of wijzigingen in de netwerktopologie vereist, is het een uitstekende oplossing voor het verbeteren van de communicatie tussen kantoorvestigingen en openbare en persoonlijke clouds.

Voor meer informatie over cloudtechnologie in Windows Server 2012, zie Uw cloudinfrastructuur opzetten.

Informatieversies voor inhoud

Er zijn twee informatieversies voor inhoud:

  • Inhoud over informatie die compatibel is met computers waarop Windows Server 2008 R2 en Windows 7 worden uitgevoerd, wordt versie 1 of V1 genoemd. Met V1 BranchCache-bestandssegmentatie zijn bestandssegmenten groter dan in V2 en ze hebben een vaste grootte. De omvangrijke vaste grootte van segmenten zorgt ervoor dat wanneer een gebruiker een wijziging maakt die gevolgen heeft voor de bestandslengte, niet alleen het segment met de wijziging ongeldig wordt gemaakt, maar dat alle segmenten tot aan het einde van het bestand ongeldig worden gemaakt. De volgende keer dat het gewijzigde bestand door een andere gebruiker in het filiaal wordt aangevraagd, heeft om die reden tot gevolg dat er minder WAN-bandbreedte wordt bespaard omdat de gewijzigde inhoud en alle inhoud na de wijziging via de WAN-verbinding worden verzonden.

  • Inhoud over informatie die compatibel is met computers waarop Windows Server 2012 en Windows 8 worden uitgevoerd, wordt versie 2 of V2 genoemd. V2-inhoudsinformatie maakt gebruik van kleinere segmenten met een variabele grootte die een grotere tolerantie hebben voor wijzigingen in een bestand. Dit verhoogt de kans dat segmenten van een oudere versie van het bestand opnieuw kunnen worden gebruikt als gebruikers een bijgewerkte versie ervan openen, omdat ze dan alleen het gewijzigde gedeelte van het bestand van de inhoudsserver ophalen en zo minder WAN-bandbreedte gebruiken.

De volgende tabel bevat informatie over de inhoudsinformatieversie die wordt gebruikt, wat afhankelijk is van het besturingssysteem dat er op de client, de inhoudsserver en de gehoste-cacheserver van de BranchCache-installatie wordt uitgevoerd.

Notitie

In de onderstaande tabel betekent de afkorting 'BS' besturingssysteem.

BS client BS inhoudsserver BS gehoste-cacheserver Inhoudsinformatieversie
Windows Server 2008 R2 en Windows 7 Windows Server 2012 of Windows Server 2008 R2 Windows Server 2012 of Windows Server 2008 R2; geen voor de gedistribueerde-cachemodus V1
Windows Server 2012 en Windows 8 Windows Server 2008 R2 Windows Server 2012 of Windows Server 2008 R2; geen voor de gedistribueerde-cachemodus V1
Windows Server 2012 en Windows 8 Windows Server 2012 Windows Server 2008 R2; geen voor de gedistribueerde-cachemodus V1
Windows Server 2012 en Windows 8 Windows Server 2012 Windows Server 2012; geen voor de gedistribueerde-cachemodus V2

Als u inhoudsservers en gehoste cacheservers hebt waarop Windows Server 2012 wordt uitgevoerd, gebruiken deze de inhoudsinformatieversie die past bij het besturingssysteem van de BranchCache-client die informatie opvraagt. Als computers met Windows Server 2012 en Windows 8 inhoud aanvragen, gebruiken de inhoudsserver en de gehoste cacheserver de V2-inhoudsinformatie; als computers met Windows Server 2008 R2 en Windows 7 inhoud aanvragen, gebruiken de inhoudsserver en de gehoste cacheserver de V1-inhoudsinformatie.

Wanneer u BranchCache in de gedistribueerde-cachemodus gebruikt, delen clients met andere inhoudsinformatieversies geen inhoud met elkaar.

Hoe BranchCache updates van inhoud in bestanden verwerkt

Wanneer gebruikers in een filiaal de inhoud van documenten wijzigen of bijwerken, worden hun wijzigingen rechtstreeks en zonder tussenkomst van BranchCache naar de inhoudsserver op het hoofdkantoor geschreven. Dit geldt als de gebruiker het document heeft gedownload van de inhoudsserver of dit heeft verkregen van een gehoste dan wel een gedistribueerde cache in het filiaal.

Als het gewijzigde bestand wordt aangevraagd door een andere client in een filiaal, worden de nieuwe segmenten van het bestand gedownload van de server in het hoofdkantoor en toegevoegd aan de gedistribueerde of gehoste cache in dat filiaal. Hierdoor ontvangen gebruikers in een filiaal altijd de meest recente versies van in de cache opgeslagen inhoud.

Installatiehandleiding voor BranchCache

U kunt Serverbeheer in Windows Server 2012 gebruiken om de BranchCache-functie of de functieservice BranchCache voor netwerkbestanden van de serverfunctie Bestandsservices te installeren. U kunt de volgende tabel gebruiken om te bepalen of u de functieservice of de functie moet installeren.

Functionaliteit Locatie van computer Dit element van BranchCache installeren
Inhoudsserver (BITS-toepassingsserver) Datacentrum op hoofdkantoor of in de cloud BranchCache-functie
Inhoudsserver (webserver) Datacentrum op hoofdkantoor of in de cloud BranchCache-functie
Inhoudsserver (bestandsserver met het SMB-protocol) Datacentrum op hoofdkantoor of in de cloud Functieservice BranchCache voor netwerkbestanden van de serverfunctie Bestandsservices
Gehoste cacheserver Filiaal BranchCache-functie met de servermodus Gehoste cache ingeschakeld
Clientcomputer waarop BranchCache is ingeschakeld Filiaal Er is geen installatie nodig; schakel gewoon BranchCache en een BranchCache-modus (gedistribueerd of gehost) in op de client

Om de functieservice of de functie te installeren, opent u Serverbeheer 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 wizard Functies en onderdelen toevoegen wordt weergegeven. Terwijl de wizard wordt uitgevoerd, moet u de volgende selecties maken:

  • Selecteer in de wizard op de pagina Type installatie selecteren, selecteer Installatie die op de functie of het onderdeel is gebaseerd.

  • Selecteer in de wizard op de pagina Serverfuncties selecteren, als u een bestandsserver installeert waarop BranchCache is ingeschakeld, selecteert u Bestandsservices. Later in het configuratieproces van de wizard, selecteert u ook BranchCache voor netwerkbestanden. Als u geen bestandsserver wilt installeren waarop BranchCache is ingeschakeld, moet u de functie Bestandsservices niet installeren met de functieservice BranchCache voor netwerkbestanden.

  • In de wizard op de pagina Onderdelen selecteren, selecteert u BranchCache als u een inhoudsserver installeert die geen bestandsserver is of als u een gehoste cacheserver installeert. Als u geen andere inhoudsserver wilt installeren dan een bestandsserver of een gehoste cacheserver, moet u de BranchCache-functie niet installeren.

Besturingssysteemversies voor BranchCache

Hier volgt een lijst met besturingssystemen die ondersteuning bieden voor verschillende typen BranchCache-functionaliteit.

Besturingssystemen voor functionaliteit van BranchCache-clientcomputer

  • Windows® 8 Enterprise

  • Windows® 7 Enterprise

  • Windows® 7 Ultimate

Besturingssystemen voor functionaliteit van BranchCache-inhoudsserver

De besturingssystemen uit de Windows Server 2012-serie kunnen als inhoudsservers voor BranchCache worden gebruikt.

Daarnaast kunnen de besturingssystemen uit de Windows Server® 2008 R2-serie als inhoudsservers voor BranchCache worden gebruikt, behalve de volgende:

  • 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 van BranchCache

De besturingssystemen uit de Windows Server 2012-serie kunnen als gehoste cacheservers voor BranchCache worden gebruikt.

Daarnaast kunnen de volgende Windows Server® 2008 R2-besturingssystemen worden gebruikt als gehoste cacheservers voor 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 systemen die op Itanium zijn gebaseerd

  • Windows® Server 2008 R2 Datacenter

  • Windows® Server 2008 R2 Datacenter met Hyper-V

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

Beveiliging in BranchCache

BranchCache implementeert een benadering waarbij de beveiliging inherent is aan het ontwerp. Deze benadering sluit naadloos aan op uw bestaande netwerkbeveiligingsarchitecturen, zonder dat er extra apparatuur of aanvullende, complexe beveiligingsconfiguraties nodig zijn.

BranchCache is niet-invasief en er worden geen verificatie- of machtigingsprocessen in Windows door gewijzigd. Nadat u BranchCache hebt geïmplementeerd, wordt de verificatie nog steeds uitgevoerd met domeinreferenties. Bovendien blijft de manier waarop machtingsprocessen met behulp van toegangsbeheerlijsten (ACL's) functioneert, ongewijzigd. Bovendien blijven andere configuraties werken net als voordat BranchCache werd geïmplementeerd.

Het beveiligingsmodel van BranchCache is gebaseerd op het aanmaken van metagegevens in de vorm van een reeks hashes. Deze hashes worden ook inhoudsinformatie genoemd.

Nadat er inhoudsinformatie is gemaakt, wordt deze gebruikt bij het uitwisselen van berichten in BranchCache in plaats van dat er feitelijke gegevens worden uitgewisseld. Voor deze uitwisseling worden de ondersteunde protocollen HTTP, HTTPS en SMB gebruikt.

Gegevens in de cache worden versleuteld bewaard en kunnen niet worden benaderd door clients die u geen toestemming hebben voor toegang tot inhoud van de oorspronkelijke bron. Clients moeten worden geverifieerd en gemachtigd door de oorspronkelijke inhoudsbron voordat ze metagegevens van inhoud kunnen ophalen, daarnaast moeten ze beschikken over de metagegevens van inhoud om toegang te krijgen tot de cache in het filiaal.

Hoe in BranchCache inhoudsinformatie wordt gemaakt

Omdat inhoudsinformatie wordt samengesteld uit meerdere elementen, is de waarde van de inhoudsinformatie altijd uniek. Deze elementen zijn:

  • De daadwerkelijke 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 vervolgens de segmenten in blokken. BranchCache maakt gebruik van beveiligde cryptografische hashes om elk blok en segment te kunnen identificeren en controleren, en biedt hierbij ondersteuning voor het SHA256-hash-algoritme.

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

Notitie

Het gebruik van een servergeheim zorgt ervoor dat clientcomputers de inhoudsinformatie niet zelf kunnen genereren. Zo wordt voorkomen dat kwaadwillende gebruikers met brute kracht aanvallen kunnen uitvoeren op clientcomputers waarop BranchCache is ingeschakeld, door te gissen naar kleine wijzigingen in de inhoud van verschillende versies in situaties waarin de client toegang had tot een eerdere versie, maar geen toegang heeft tot de huidige versie.

Inhoudsinformatiegegevens

BranchCache gebruikt het servergeheim als sleutel om er een hash uit af te leiden die specifiek is voor bepaalde inhoud. Deze hash wordt vervolgens naar bevoegde clients gezonden. 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 gebruikt segmentgeheimen ter beveiliging van de communicatie. BranchCache maakt bovendien een lijst met blokhashes, dit is een lijst met gehashte gegevensblokken, en maakt daarnaast de hash van gegevens, die wordt gegenereerd door de lijst met blokhashes van hashes te voorzien.

De inhoudsinformatie omvat onder andere 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 de protocollen Peer Content Hashing en Retrieval Framework voor de implementatie van de processen die vereist zijn om te kunnen garanderen dat opslaan in cache en het ophalen van inhoud tussen inhoudscaches veilig gebeurt.

Bovendien verwerkt BranchCache inhoudsinformatie met dezelfde mate van beveiliging die wordt gebruikt bij het verwerken van en het overdragen van de inhoud zelf.

Stroom van de inhoud en processen

De stroom van de inhoudsinformatie en de daadwerkelijke inhoud wordt in vier fasen verdeeld:

  1. BranchCache-processen: inhoud opvragen

  2. BranchCache-processen: naar inhoud zoeken

  3. BranchCache-processen: inhoud ophalen

  4. BranchCache-processen: cache-inhoud

In de volgende secties worden deze fasen beschreven.

BranchCache-processen: inhoud opvragen

In de eerste fase vraagt de clientcomputer in het filiaal inhoud op, zoals een bestand of een webpagina van een inhoudsserver op een externe locatie, zoals een hoofdkantoor. De inhoudsserver controleert of de clientcomputer toestemming heeft om de gevraagde inhoud te ontvangen. Als de clientcomputer toestemming heeft en op zowel de inhoudsserver als de client BranchCache is ingeschakeld, genereert de inhoudsserver inhoudsinformatie.

De inhoudsserver verzendt vervolgens de inhoudsinformatie naar de clientcomputer met hetzelfde protocol als zou zijn gebruikt voor de daadwerkelijke inhoud. Als de clientcomputer een webpagina aanvraagt via HTTP, verzendt de inhoudsserver de inhoudsinformatie ook via HTTP. Als gevolg hiervan kan worden gegarandeerd dat op wire-niveau het beveiligingsniveau van de inhoud en dat van de inhoudsinformatie identiek zijn.

Nadat het eerste gedeelte van de inhoudsinformatie (hash van gegevens + segmentgeheim) is ontvangen, voert de clientcomputer de volgende acties uit:

  • Het segmentgeheim (Kp) wordt gebruikt als de versleutelingssleutel (Ke).

  • De segment-id (HoHoDk) wordt uit de HoD (hash van gegevens) en Kp gegenereerd:

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

De primaire dreiging op dit niveau is het risico dat het segmentgeheim loopt, maar BranchCache versleutelt de blokken met inhoudsgegevens om het segmentgeheim te beschermen. BranchCache doet dit door de versleutelingssleutel te gebruiken die is afgeleid van het segmentgeheim van het inhoudssegment waarin zich de blokken inhoud bevinden. Deze aanpak zorgt ervoor dat een entiteit die niet in bezit is van het servergeheim de daadwerkelijke inhoud van een gegevensblok niet kan detecteren. Het segmentgeheim wordt met dezelfde mate van beveiliging behandeld als het segment met de platte tekst zelf, omdat kennis van het segmentgeheim voor een bepaald segment een entiteit in staat stelt het segment van peers te verkrijgen en vervolgens te ontsleutelen. Kennis van het servergeheim levert niet onmiddellijk bepaalde platte tekst op, maar kan worden gebruikt om bepaalde soorten gegevens uit de gecodeerde tekst af te leiden om vervolgens via een brute-krachtaanval op een aantal gedeeltelijk bekende gegevens, deze via gispogingen te achterhalen. Het servergeheim moet daarom vertrouwelijk worden behandeld.

BranchCache-processen: naar inhoud zoeken

Nadat de inhoudsinformatie door de clientcomputer is ontvangen, gebruikt de client de segment-id om naar de aangevraagde inhoud in de cache van het filiaal te zoeken. Het doet er daarbij niet toe of de cache is verdeeld over clientcomputers of dat deze zich op een gehoste cacheserver bevindt.

Als de clientcomputer is geconfigureerd voor de gehoste-cachemodus, is geconfigureerd met de naam van de server voor gehoste cache en contactpersonen die server om op te halen van de inhoud.

Als de clientcomputer is geconfigureerd voor de gedistribueerde-cachemodus, 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 deze is geconfigureerd voor de gedistribueerde-cachemodus, zoekt de clientcomputer naar inhoud met behulp van een detectieprotocol dat is gebaseerd op het protocol Web Services Dynamic Discovery (WS Discovery). Clients verzenden multicast-testberichten van WS Discovery om via het netwerk naar inhoud in caches te zoeken. Testberichten bevatten de segment-id, zodat clients kunnen controleren of de gevraagde inhoud overeenkomt met de inhoud die in hun cache is opgeslagen. Clients die de eerste testberichten ontvangen, beantwoorden de client die de query uitvoert met unicast-test-matchberichten als de segment-id overeenkomt met inhoud die lokaal in de cache is opgeslagen.

Of het WS Discovery-proces slaagt, is afhankelijk van het feit of de client die de detectiebewerking uitvoert over de juiste inhoudsinformatie beschikt die voor de aangevraagde inhoud is geleverd door de inhoudsserver.

De belangrijkste bedreiging voor gegevens tijdens de fase waar inhoud wordt aangevraagd, is het vrijgeven van informatie, omdat de toegang tot de inhoudsinformatie geautoriseerde toegang tot inhoud impliceert. Om dit risico te verkleinen wordt tijdens het detectieproces de inhoudsinformatie niet vrijgegeven. De segment-id wordt daarentegen wel vrijgegeven, maar dit laat niets zien van het segment met platte tekst dat de inhoud bevat.

Bovendien kan een andere clientcomputer van een kwaadwillende gebruiker, die op hetzelfde subnet van het netwerk actief is, het detectieverkeer waarnemen dat door BranchCache wordt uitgevoerd en dat via de router naar de oorspronkelijke inhoud gaat.

Als de gevraagde inhoud niet in het filiaal wordt gevonden, vraagt de client de inhoud rechtstreeks vanaf de inhoudsserver via de WAN-verbinding aan.

Nadat de inhoud is ontvangen, wordt deze aan de lokale cache op de clientcomputer of op een gehoste cacheserver toegevoegd. In dit geval voorkomt de inhoudsinformatie dat een client of gehoste cacheserver inhoud aan de lokale cache toevoegt die niet overeenkomt met de hashes. Het proces waarbij inhoud wordt gecontroleerd door overeenkomende hashes te zoeken, zorgt ervoor dat alleen geldige inhoud wordt toegevoegd aan de cache, waardoor de integriteit van de lokale cache wordt beschermd.

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), start de clientcomputer het proces voor het ophalen van de inhoud.

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

Nadat er een geldig aanvraagbericht van een client is ontvangen, controleert de inhoudshost of het blok dat in de aanvraag is opgegeven, voorkomt in de inhoudscache van de inhoudshost.

Als het blok met inhoud aanwezig is op de inhoudshost, 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 het blok met inhoud niet aanwezig is op de inhoudshost, verzendt de inhoudshost een leeg antwoordbericht. Zo weet de clientcomputer dat de inhoudshost niet over het aangevraagde blok beschikt. Een leeg antwoordbericht bevat de segment-id en de blok-id van het aangevraagde blok, samen met een gegevensblok met een nulgrootte.

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

Als dit verificatieproces niet lukt en de clientcomputer geen overeenkomend aanvraagbericht in de lijst met openstaande aanvragen heeft, verwijdert de clientcomputer het bericht.

Als dit verificatieproces lukt en de clientcomputer een overeenkomend aanvraagbericht in de lijst met openstaande aanvragen heeft, ontsleutelt de clientcomputer het blok. De client controleert vervolgens het ontsleutelde blok met behulp van de juiste hash voor het blok van de inhoudsinformatie die de client in eerste instantie van de oorspronkelijke inhoudsserver heeft verkregen.

Als de validatie van het blok lukt, wordt het ontsleutelde blok in de cache opgeslagen.

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

Notitie

Als de volledige inhoudssegmenten niet aanwezig zijn op één computer, wordt het ophaalprotocol gebruikt om inhoud uit een combinatie van bronnen op te halen en samen te stellen: een set clientcomputers in gedistribueerde-cachemodus, een gehoste cacheserver en, als de cache in het filiaal niet de volledige inhoud bevat, 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 gebruikt BranchCache standaard het versleutelingsalgoritme AES-128, de versleutelingssleutel is Ke en de sleutelgrootte is 128 bits, zoals bepaald door het versleutelingsalgoritme. BranchCache genereert een initialisatievector die geschikt is voor het versleutelingsalgoritme en maakt gebruik van de versleutelingssleutel voor het versleutelen van het blok. BranchCache legt vervolgens het versleutelingsalgoritme en de initialisatievector vast in het bericht. De versleutelingssleutel wordt nooit uitgewisseld tussen servers en clients, ze delen deze nooit met elkaar noch verzenden ze deze naar elkaar. De client ontvangt de versleutelingssleutel van de inhoudsserver die als host fungeert voor de bron van de inhoud. Vervolgens wordt het blok ontsleutelt met het versleutelingsalgoritme en de initialisatievector die de client van de server heeft ontvangen. Er is geen andere expliciete verificatie- of machtigingsprocedure ingebouwd in het downloadprotocol.

Beveiligingsrisico's

De primaire beveiligingsrisico's op deze laag omvatten:

  • Gemanipuleerde gegevens:

    Een client die gegevens voor een aanvrager verwerkt, knoeit met de gegevens. Het beveiligingsmodel van BranchCache gebruikt hashes om te bevestigen dat de client noch de server de gegevens hebben gewijzigd.

  • Vrijgeven van informatie:

    BranchCache verzendt versleutelde inhoud naar een client die de juiste segment-id opgeeft. Segment-id's zijn openbaar, dus elke client kan versleutelde inhoud ontvangen. Als een kwaadwillende gebruiker echter versleutelde inhoud weet te bemachtigen, moet deze de versleutelingssleutel kennen om de inhoud te kunnen ontsleutelen. Het protocol van de bovenste laag voert de verificatie uit en verstrekt vervolgens de inhoudsinformatie aan de geverifieerde en gemachtigde client. De beveiliging van de inhoudsinformatie is gelijk aan de beveiliging van de inhoud zelf, en BranchCache geeft de inhoudsinformatie nooit vrij.

    Een aanvaller voert een sniff-onderzoek uit op de wire om de inhoud in handen te krijgen. BranchCache versleutelt alle overdrachten tussen clients met AES128, waar de geheime sleutel Ke is, en voorkomt zo dat gegevens via een sniff-onderzoek op de wire kan worden achterhaald. Inhoudsinformatie die wordt gedownload van de inhoudsserver wordt op dezelfde manier beveiligd als de gegevens zelf zouden worden beveiligd, en is daarom niet meer of minder beveiligd tegen het vrijgeven van informatie dan wanneer BranchCache niet gebruikt was.

  • Denial of Service:

    Een client wordt overbelast door gegevensaanvragen. BranchCache-protocollen omvatten tellers en timers voor wachtrijbeheer, om te voorkomen dat clients worden overbelast.

BranchCache-processen: cache-inhoud

Op clientcomputers in de gedistribueerde-cachemodus en gehoste cacheservers die zich in filialen bevinden, worden in de loop van de tijd inhoudscaches opgebouwd tijdens het ophalen van inhoud via WAN-verbindingen.

Wanneer de clientcomputers zijn geconfigureerd met de gehoste-cachemodus, wordt er inhoud toegevoegd aan hun eigen lokale cache, en worden er ook gegevens aangeboden aan de gehoste cacheserver. Het gehoste-cacheprotocol biedt een mechanisme voor clients voor het sturen van informatie over inhoud en over de beschikbaarheid van een segment naar de gehoste cacheserver. Als u inhoud wilt uploaden naar de gehoste cacheserver, informeert de client de server dat deze een segment heeft dat beschikbaar is. De gehoste cacheserver haalt vervolgens de inhoudsinformatie op die is gekoppeld aan het segment dat wordt aangeboden en downloadt de blokken in het segment die de gehoste cacheserver echt nodig heeft. Dit proces wordt herhaald totdat de client geen segmenten meer heeft voor de gehoste cacheserver.

Om de gehoste cacheserver bij te werken met behulp van het gehoste-cacheprotocol, moet aan de volgende vereisten worden voldaan:

  • De clientcomputer moet over een reeks blokken binnen een segment beschikken, die aan de gehoste cacheserver kunnen worden aangeboden. De client moet inhoudsinformatie verstrekken voor het segment dat wordt aangeboden; deze bevat de segment-id, het segment hash van gegevens (HoD), het segmentgeheim en een lijst met alle blokhashes die deel uitmaken van het segment.

  • Voor gehoste cacheservers waarop Windows Server 2008 R2 wordt uitgevoerd is een certificaat voor de gehoste cacheserver en een bijbehorende persoonlijke sleutel vereist, daarnaast moet de certificeringsinstantie (CA) die het certificaat heeft uitgegeven, voor de clientcomputers in het filiaal een vertrouwde instantie zijn. Hierdoor kan de client en server met succes deelnemen aan de HTTPS-serververificatie.

    Belangrijk

    Gehoste cacheservers waarop Windows Server 2012 wordt uitgevoerd, hoeven niet over een certificaat voor de gehoste cacheserver en een bijbehorende persoonlijke sleutel te beschikken.

  • De clientcomputer is geconfigureerd met de naam van de computer van de gehoste cacheserver en het nummer van de TCP-poort (Transmission Control Protocol) waarop de gehoste cacheserver naar BranchCache-verkeer luistert. Certificaat van de gehoste cacheserver is gebonden aan deze poort. De computernaam van de gehoste cacheserver kan een volledig gekwalificeerde domeinnaam (FQDN) zijn als de gehoste cacheserver een domeinlid is; het kan ook 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 berichten die door de client aan de gehoste cacheserver worden aangeboden. Op die manier kan de gehoste cacheserver via BranchCache-protocollen verbinding maken met de clientcomputer om gegevensblokken in het segment op te halen.

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

  • Als de gehoste cacheserver zo is geconfigureerd dat verificatie van clientcomputer is vereist, moeten zowel de client als de gehoste cacheserver ondersteuning bieden voor HTTPS-verificatie.

Cachepopulatie gehoste-cachemodus

Het proces voor het toevoegen van inhoud aan de cache van de gehoste cacheserver in een filiaal start als de client een INITIAL_OFFER_MESSAGE verzendt met daarin de segment-id. De segment-id in de aanvraag INITIAL_OFFER_MESSAGE wordt gebruikt om het bijbehorende segment hash van gegevens, de lijst met blokhashes en het segmentgeheim uit de blokcache van de gehoste cacheserver op te halen. Als de gehoste cacheserver al over alle inhoudsinformatie voor een bepaald segment beschikt, wordt het INITIAL_OFFER_MESSAGE beantwoord met OK en vindt er geen aanvraag voor het downloaden van blokken plaats.

Als de gehoste cacheserver niet beschikt over alle aangeboden gegevensblokken die zijn gekoppeld aan de blokhashes in het segment, dan wordt het INITIAL_OFFER_MESSAGE beantwoord met INTERESTED. De client stuurt dan een SEGMENT_INFO_MESSAGE dat het ene segment beschrijft dat wordt aangeboden. De gehoste cacheserver reageert met een OK-bericht en begint met het downloaden van de ontbrekende blokken van de aanbiedende clientcomputer.

Het segment hash van gegevens, de lijst met blokhashes en het segmentgeheim worden gebruikt om te garanderen dat de inhoud die wordt gedownload niet is gemanipuleerd of op een andere manier gewijzigd. De blokken die zijn gedownload, worden vervolgens toegevoegd aan de blokcache van de gehoste cacheserver.

Cachebeveiliging

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

Beveiliging van caches op clientcomputers

De grootste bedreiging voor gegevens die zijn opgeslagen in BranchCache is dat ze worden gemanipuleerd. Als een aanvaller in staat is om inhoud en inhoudsinformatie die in de cache zijn opgeslagen te manipuleren, dan kan dit mogelijk worden gebruikt om een aanval te starten tegen de computers die BranchCache gebruiken. Aanvallers kunnen een aanval starten door schadelijke software in plaats van andere gegevens in te voegen. BranchCache vermindert deze bedreiging door alle inhoud te valideren met behulp van blokhashes die zich in de inhoudsinformatie bevinden. Als een aanvaller deze gegevens probeert te manipuleren, worden deze verwijderd en vervangen door geldige gegevens van de oorspronkelijke bron.

Een andere bedreiging voor gegevens die zijn opgeslagen in BranchCache is dat ze worden vrijgegeven. In de gedistribueerde-cachemodus slaat de client alleen de inhoud op die deze zelf heeft aangevraagd. Maar deze gegevens worden als ongecodeerde tekst opgeslagen en lopen mogelijk risico. Om te helpen toegang tot de cache te beperken tot alleen de BranchCache-service, wordt de lokale cache beveiligd via machtigingen voor bestandssytemen die zijn opgegeven in een toegangsbeheerlijst (ACL). Hoewel met de toegangsbeheerlijst effectief wordt voorkomen dat onbevoegde gebruikers toegang krijgen tot de cache, is het mogelijk dat een gebruiker met beheerdersbevoegdheden toegang kan krijgen tot de cache door handmatig de machtigingen te wijzigen die zijn opgegeven in de toegangsbeheerlijst. BranchCache biedt geen bescherming tegen kwaadaardig gebruik van een beheerdersaccount.

Gegevens die zijn opgeslagen in de inhoudscache worden niet versleuteld, dus als u zich zorgen maakt over het lekken van gegevens, kunt u versleutelingstechnologieën zoals BitLocker of Encrypting File System (EFS) gebruiken. De lokale cache die wordt gebruikt door BranchCache vergroot niet de dreiging op het vrijgeven van informatie die wordt veroorzaakt door een computer in het filiaal; de cache bevat alleen kopieën van bestanden die zich elders niet-versleuteld op de schijf bevinden. Het versleutelen van de gehele schijf is vooral belangrijk in omgevingen waarin de fysieke beveiliging van de clients moeilijk is te garanderen. Het versleutelen van de hele schijf helpt bijvoorbeeld bij het veiligstellen van gevoelige gegevens op mobiele computers die uit de filiaalomgeving kunnen worden verwijderd.

Cachebeveiliging gehoste cacheserver

In de gehoste-cachemodus is het vrijgeven van informatie de grootste bedreiging voor de beveiliging van de gehoste cacheserver. BranchCache in een gehoste-cacheomgeving gedraagt zich op een soortgelijke manier als in de gedistribueerde-cachemodus, waar de gegevens in de cache worden beschermd met machtigingen voor bestandssytemen. Het verschil is dat de gehoste cacheserver alle inhoud opslaat die wordt aangevraagd door alle computers in het filiaal waarop BranchCache is ingeschakeld, en niet alleen de gegevens die door een enkele client worden aangevraagd. De gevolgen van inbreuk in deze cache door onbevoegden kunnen veel ernstiger zijn omdat er veel meer gegevens risico lopen.

In een gehoste-cacheomgeving waar op de gehoste cacheserver Windows Server 2008 R2 wordt uitgevoerd, wordt aanbevolen gebruik te maken van versleutelingstechnologieën zoals BitLocker- of EFS, als een van de clients in het filiaal toegang heeft tot gevoelige gegevens via de WAN-verbinding. Het is ook nodig om te voorkomen dat er fysieke toegang wordt verkregen tot de gehoste cache, omdat schijfversleuteling alleen werkt als de computer wordt uitgeschakeld op het moment dat de aanvaller zich fysieke toegang verschaft. Als de computer is ingeschakeld of zich in de slaapstand bevindt, biedt schijfversleuteling weinig beveiliging.

Notitie

Gehoste cacheservers waarop Windows Server 2012 wordt uitgevoerd versleutelen standaard alle gegevens in de cache, zodat het gebruik van extra versleutelingstechnologieën niet vereist is.

Zelfs als een client is geconfigureerd in de gehoste-cachemodus, slaat deze toch nog steeds gegevens op in de lokale cache, en misschien is het goed om maatregelen te treffen om niet alleen de lokale cache te beschermen, maar ook die op de gehoste cacheserver.