Share via


BranchCache-översikt

 

Gäller för: Windows Server 2012, Windows 8

Det här avsnittet som är avsett för IT-proffs innehåller översiktsinformation om BranchCache, inklusive BranchCache-lägen, funktioner och BranchCache-funktionen som finns i olika operativsystem.

Vem är intresserad av BranchCache?

Om du är systemadministratör, nätverks- eller lagringslösningsarkitekt eller IT-proffs inom något annat område kan BranchCache vara av intresse för dig under följande omständigheter:

  • Du utformar eller stöder IT-infrastruktur för en organisation som har två eller flera fysiska platser och en anslutning för WAN-nätverk från olika avdelningskontor till huvudkontoret.

  • Du utformar eller stöder IT-infrastruktur för en organisation som har distribuerat molntekniker och en WAN-anslutning används av anställda för åtkomst till data och program på fjärrplatser.

  • Du vill optimera användningen av WAN-bandbredden genom att minska nätverkstrafiken mellan olika avdelningskontor och huvudkontoret.

  • Du har distribuerat eller planerar att distribuera innehållsservrar på huvudkontoret som matchar de konfigurationer som beskrivs i det här avsnittet.

  • Klientdatorerna på ditt avdelningskontor kör antingen Windows® 8 eller Windows® 7.

Det här ämnet innehåller följande avsnitt:

  • Vad är BranchCache?

  • BranchCache-lägen

  • BranchCache-aktiverade innehållsservrar

  • BranchCache och molnet

  • Informationsinnehållets versioner

  • Så här hanterar BranchCache innehållsuppdateringar i filer

  • Installationshandbok för BranchCache

  • Versioner av operativsystem för BranchCache

  • BranchCache-säkerhet

  • Innehållsflöde och processer

  • Cachesäkerhet

Vad är BranchCache?

BranchCache är en teknik för optimering av WAN-bandbredd (wide area network) som ingår i vissa versioner av operativsystemen Windows Server® 2012 och Windows® 8, samt i vissa versioner av Windows Server® 2008 R2 och Windows® 7. I syfte att optimera WAN-bandbredden när användare har åtkomst till innehållet på fjärrservrar, kopierar BranchCache innehåll från ert huvudkontor eller från värdbaserade molninnehållsservrar och cachelagrar innehållet på avdelningskontor, vilket gör att klientdatorer på avdelningskontoren kommer åt innehållet lokalt istället för via WAN.

På avdelningskontoren lagras innehållet antingen på servrar som är konfigurerade att innehålla cachen eller, om ingen server är tillgänglig på avdelningskontoret, på klientdatorer som kör Windows 8 eller Windows 7. När en klientdator begär och tar emot innehåll från huvudkontoret och innehållet cachelagras på avdelningskontoret kan andra datorer på samma avdelningskontor hämta innehållet lokalt istället för att hämta innehållet från innehållsservern via WAN-länken.

När efterföljande begäranden om samma innehåll görs av klientdatorer hämtar klienterna innehållsinformation från servern istället för det faktiska innehållet. Innehållsinformationen består av hashvärden som beräknas med hjälp av bitar av det ursprungliga innehållet och den är mycket liten jämfört med innehållet i den ursprungliga informationen. Klientdatorerna använder sedan innehållsinformationen för att hitta innehåll från en cache på avdelningskontoret, oavsett om cachen finns på en klientdator eller på en server. Klientdatorerna och servrarna använder också innehållsinformationen för att skydda det cachelagrade innehållet så att det inte kan nås av obehöriga användare.

BranchCache ökar slutanvändarens produktivitet genom att förbättra svarstiden vid innehållsfrågor för klienter och servrar på avdelningskontor och kan också hjälpa till att förbättra nätverkets prestanda genom att minska trafiken över WAN-länkar.

BranchCache-lägen

BranchCache har två arbetslägen: distribuerat cache- och värdbaserat cacheläge.

När du distribuerar BranchCache i läget för distribuerad cache fördelas innehållscachen på ett avdelningskontor mellan klientdatorer.

När du distribuerar BranchCache i läget för värdbaserad cache finns innehållscachen på en eller flera serverdatorer som kallas värdbaserade cacheservrar.

Anteckning

Du kan distribuera BranchCache i båda lägena, men endast ett läge kan användas per avdelningskontor. Om du har två avdelningskontor, ett som har en server och ett som inte har det, kan du distribuera BranchCache i läget för värdbaserad cache på kontoret som innehåller en server medan du distribuerar BranchCache i läget för distribuerad cache på kontoret som bara innehåller klientdatorer.

I följande illustration distribueras BranchCache i båda lägena.

BranchCache-lägen

Läget för distribuerad cache passar bäst för små avdelningskontor där det inte finns en lokal server som kan användas som värdbaserad cacheserver. I läget för distribuerad cache kan du distribuera BranchCache utan ytterligare maskinvara på avdelningskontoren.

Om det avdelningskontor där du vill distribuera BranchCache innehåller ytterligare infrastruktur, till exempel en eller flera servrar som kör andra arbetsbelastningar, är distributionen av BranchCache i läget för värdbaserad cache fördelaktig av följande skäl:

Ökad tillgänglighet för cachen

Läget för värdbaserad cache ökar cachens effektivitet eftersom innehållet är tillgängligt även om klienten som ursprungligen begärde och cachelagrade data är offline. Eftersom den värdbaserade cacheservern alltid är tillgänglig cachelagras mer innehåll, vilket innebär besparingar i bandbredden på WAN-nätverket och förbättrar effektiviteten i BranchCache.

Centraliserad cachelagring för avdelningskontor med flera undernät

I läget för distribuerad cache används ett enda undernät. En fil som hämtas till ett undernät kan inte delas med datorer i andra undernät på ett avdelningskontor med flera undernät som har konfigurerats för distribuerat cacheläge. Därför kan klienter i andra undernät som inte upptäcker att filen redan har hämtats, hämta filen från huvudkontorets innehållsserver, och då används WAN-bandbredd. Om du distribuerar det värdbaserade cacheläget är detta dock inte fallet – alla klienter på ett avdelningskontor med flera undernät kan komma åt ett enda cacheminne som lagras på servern för värdbaserad cache, även om klienterna finns i olika undernät. Dessutom ger BranchCache i Windows Server 2012 möjlighet att distribuera fler än en värdbaserad cacheserver per avdelningskontor.

Varning

Om du använder BranchCache för SMB-cachelagring av filer och mappar ska du inte inaktivera offlinefiler. Om du inaktiverar offlinefiler fungerar BranchCache SMB-cachelagringen inte korrekt.

BranchCache-aktiverade innehållsservrar

När du distribuerar BranchCache lagras källinnehållet på BranchCache-aktiverade innehållsservrar på huvudkontoret. Följande typer av innehållsservrar stöds av BranchCache:

Anteckning

Det är bara källinnehållet – det vill säga innehåll som klientdatorer inledningsvis hämtar från en BranchCache-aktiverad innehållsserver – som accelereras med BranchCache. Innehåll som klientdatorer hämtar direkt från andra källor, till exempel webbservrar på Internet eller Windows Update, cachelagras inte av klientdatorer eller värdbaserade cacheservrar för att sedan delas med andra datorer på avdelningskontoret. Om du vill accelerera Windows Update-innehållet kan du emellertid installera en programserver för WSUS (Windows Server Update Services) på huvudkontoret och konfigurera den som en BranchCache-innehållsserver.

Webbservrar

De webbservrar som stöds är bland annat datorer som kör Windows Server 2012 eller Windows Server® 2008 R2, som har rollen webbserver (IIS) installerad och som använder HTTP (Hypertext Transfer Protocol) eller HTTPS (HTTP-säkerhet). Webbservern måste dessutom ha BranchCache-funktionen installerad. Mer information om webbservern (IIS) i Windows Server 2012 finns i Web Server (IIS).

Filservrar

De filservrar som stöds är bland annat datorer som kör Windows Server 2012 eller Windows Server 2008 R2 och som har serverrollen Filtjänster samt rolltjänsten BranchCache för nätverksfiler installerad. De här filservrarna använder SMB (Server Message Block) för att utbyta information mellan datorer. När du har slutfört installationen av filservern måste du också dela mappar och aktivera hashgenerering för delade mappar med hjälp av Grupprincip eller Lokal datorprincip för att aktivera BranchCache. Mer information om fil- och lagringstjänster i Windows Server 2012 finns i Fil- och lagringstjänster.

Programservrar

De programservrar som stöds är bland annat datorer som kör Windows Server 2012 eller Windows Server 2008 R2 med BITS (Background Intelligent Transfer Service) installerad och aktiverad. Programservern måste dessutom ha BranchCache-funktionen installerad. Du kan till exempel distribuera servrar med WSUS (Microsoft Windows Server Update Services) och Microsoft System Center Configuration Manager Branch Distribution Point som BranchCache-innehållsservrar.

BranchCache och molnet

Molnet innebär enorma möjligheter att minska driftskostnader och uppnå nya skalnivåer, men att flytta arbetsbelastningar från personer som är beroende av dem kan öka nätverkskostnaderna och skada produktiviteten. Användarna förväntar sig höga prestanda och bryr sig inte om var deras program och data finns. BranchCache kan förbättra prestanda för nätverksprogram och minska bandbreddsförbrukningen med delade cachelagrade data. Det förbättrar produktiviteten på avdelnings- och huvudkontor där de anställda använder servrar som distribueras i molnet.

Eftersom BranchCache inte kräver ny maskinvara eller ändringar i nätverkstopologin är det en utmärkt lösning för att förbättra kommunikationen mellan kontor samt både offentliga och privata moln.

Mer information om molntekniker i Windows Server 2012 finns i Skapa din molninfrastruktur.

Informationsinnehållets versioner

Det finns två versioner av innehållsinformation:

  • Innehållsinformation som är kompatibel med datorer som kör Windows Server 2008 R2 och Windows 7 kallas version 1 eller V1. Med filsegmenteringen i V1 BranchCache är filsegmenten större än i V2 och har fast storlek. När en användare gör en ändring som ändrar fillängden blir inte bara segmentet med ändringen ogiltig utan även alla segment till filslutet på grund av stora fasta segmentstorlekar.. Nästa anrop av den ändrade filen av en annan användare på avdelningskontoret innebär därför minskade besparingar av WAN-bandbredd eftersom det ändrade innehållet och allt innehåll efter ändringen skickas över WAN-länken.

  • Innehållsinformation som är kompatibel med datorer som kör Windows Server 2012 och Windows 8 kallas version 2 eller V2. V2-innehållsinformation använder mindre segment av variabel storlek som är mer toleranta gentemot ändringar i en fil. Detta ökar sannolikheten för att segment från en äldre version av filen kan återanvändas när användare använder en uppdaterad version, vilket gör att de bara hämtar den ändrade delen av filen från innehållsservern och därmed använder mindre WAN-bandbredd.

Följande tabell innehåller information om den version av innehållsinformation som används beroende på vilken klient, innehållsserver och operativsystem för värdbaserade cacheservrar som används i BranchCache-distributionen.

Anteckning

I tabellen nedan betyder förkortningen ”OS” operativsystem.

Klientens OS Innehållsserverns OS Den värdbaserade cacheserverns OS Version av innehållsinformation
Windows Server 2008 R2 och Windows 7 Windows Server 2012 eller Windows Server 2008 R2 Windows Server 2012 eller Windows Server 2008 R2 – ingen för läget för distribuerad cache V1
Windows Server 2012 och Windows 8 Windows Server 2008 R2 Windows Server 2012 eller Windows Server 2008 R2 – ingen för läget för distribuerad cache V1
Windows Server 2012 och Windows 8 Windows Server 2012 Windows Server 2008 R2 – ingen för läget för distribuerad cache V1
Windows Server 2012 och Windows 8 Windows Server 2012 Windows Server 2012 – ingen för läget för distribuerad cache V2

Om du har innehållsservrar och värdbaserade cacheservrar som kör Windows Server 2012 använder de den version av innehållsinformationen som är lämplig baserat på operativsystemet hos den BranchCache-klient som begär information. När datorer som kör Windows Server 2012 och Windows 8 begär innehåll, använder innehållsservern och den värdbaserade cacheservern V2-innehållsinformation. När datorer som kör Windows Server 2008 R2 och Windows 7 begär innehåll använder innehållsservern och den värdbaserade cacheservern V1-innehållsinformation.

När du distribuerar BranchCache i distribuerat cacheläge delar klienter som använder olika versioner av innehållsinformation inte innehåll med varandra.

Så här hanterar BranchCache innehållsuppdateringar i filer

När användare på ett avdelningskontor ändrar eller uppdaterar innehållet i dokument skrivs deras ändringar direkt till innehållsservern på huvudkontoret utan att BranchCache blandas in. Detta gäller oavsett om användaren laddade ned dokumentet från innehållsservern eller hämtade det från en värdbaserad eller distribuerad cache på avdelningskontoret.

När den ändrade filen efterfrågas av en annan klient på ett avdelningskontor laddas de nya segmenten i filen ned från huvudkontoret och läggs till i den distribuerade eller värdbaserade cachen på det kontoret. På så vis får användare på avdelningskontoren alltid tillgång till den aktuella versionen av det cachelagrade innehållet.

Installationshandbok för BranchCache

Du kan använda Serverhanteraren i Windows Server 2012 för att antingen installera BranchCache-funktionen eller rolltjänsten BranchCache för nätverksfiler för filtjänsternas serverroll. Med följande tabell kan du avgöra om du ska installera rolltjänsten eller funktionen.

Funktioner Datorns placering Installera det här BranchCache-elementet
Innehållsserver (BITS-baserad programserver) Huvudkontor eller molndatacenter BranchCache-funktion
Innehållsserver (webbserver) Huvudkontor eller molndatacenter BranchCache-funktion
Innehållsserver (filserver med SMB-protokollet) Huvudkontor eller molndatacenter BranchCache för rolltjänsten Nätverksfiler för filtjänsternas serverroll
Värdbaserad cache-server Avdelningskontor BranchCache-funktion med aktiverat läge för värdbaserad cacheserver
BranchCache-aktiverad klientdator Avdelningskontor Kräver ingen installation. Aktivera BranchCache och ett BranchCache-läge (distribuerat eller värdbaserat) på klienten

Öppna Serverhanteraren för att installera antingen rolltjänsten eller funktionen och välj de datorer som du vill aktivera BranchCache-funktionen för. I Serverhanteraren klickar du på Hantera och sedan på Lägg till roller och funktioner. Guiden Lägg till roller och funktioner öppnas. Gör följande val när du kör guiden:

  • På guidesidan Välj installationstyp väljer du Rollbaserad eller funktionsbaserad installation.

  • På guidesidan Välj serverroller väljer du Filtjänster om du installerar en BranchCache-aktiverad filserver. Senare i guidens konfigurationsprocess väljer du även BranchCache för nätverksfiler. Om du inte vill installera en BranchCache-aktiverad filserver installerar du inte rollen Filtjänster tillsammans med rolltjänsten BranchCache för nätverksfiler.

  • På guidesidan Välj funktioner väljer du BranchCache om du installerar en innehållsserver som inte är en filserver eller om du installerar en värdbaserad cacheserver. Om du inte vill installera en innehållsserver förutom en filserver eller en värdbaserad cacheserver ska du inte installera BranchCache-funktionen.

Versioner av operativsystem för BranchCache

Det här är en lista över operativsystem som stöder olika typer av BranchCache-funktioner.

Operativsystem för klientdatorfunktioner i BranchCache

  • Windows® 8 Enterprise

  • Windows® 7 Enterprise

  • Windows® 7 Ultimate

Operativsystem för innehållsserverfunktioner i BranchCache

Windows Server 2012-operativsystemen kan användas som BranchCache-innehållsservrar.

Dessutom kan Windows Server® 2008 R2-operativsystemen användas som BranchCache-innehållsservrar med följande undantag:

  • BranchCache stöds inte i Server Core-installationer av Windows Server® 2008 R2 Enterprise med Hyper-V.

  • BranchCache stöds inte i Server Core-installationer av Windows Server® 2008 R2 Datacenter med Hyper-V.

Operativsystem för BranchCache-funktioner för värdbaserade cacheservrar

Windows Server 2012-operativsystemen kan användas som BranchCache-värdbaserade cacheservrar.

Dessutom kan följande Windows Server® 2008 R2-operativsystem användas som BranchCache-värdbaserade cacheservrar:

  • Windows Server® 2008 R2 Enterprise

  • Windows Server 2008 R2 Enterprise med Hyper-V

  • Windows Server 2008 R2 Enterprise Server Core-installation

  • Windows Server 2008 R2 Enterprise Server Core-installation med Hyper-V

  • Windows Server 2008 R2 för Itanium-baserade system

  • Windows Server® 2008 R2 Datacenter

  • Windows Server® 2008 R2 Datacenter med Hyper-V

  • Windows Server 2008 R2 Datacenter Server Core-installation med Hyper-V

BranchCache-säkerhet

BranchCache implementerar en metod av typen ”säkerhet genom design” som fungerar friktionsfritt tillsammans med dina befintliga säkerhetsarkitekturer för nätverk utan krav på ytterligare utrustning eller komplex, extra säkerhetskonfiguration.

BranchCache är icke-inkräktande och ändrar inte Windows-autentisering eller auktoriseringsprocesser. När du har distribuerat BranchCache utförs autentisering fortfarande med domänautentiseringsuppgifter och det sätt på vilket auktorisering med åtkomstkontrollistor (ACL) fungerar är oförändrat. Dessutom fortsätter andra konfigurationer att fungera på samma sätt som de gjorde före BranchCache-distributionen.

BranchCache-säkerhetsmodellen bygger på skapandet av metadata i form av en serie hashvärden. Dessa hashvärden kallas också innehållsinformation.

När innehållsinformation har skapats används den för BranchCache-meddelandeutbyten istället för faktiska data och utväxlas med hjälp av de protokoll som stöds (HTTP, HTTPS och SMB).

Cachelagrade data förblir krypterade och kan inte nås av klienter som inte har behörighet att komma åt innehållet från den ursprungliga källan. Klienter måste autentiseras och godkännas av den ursprungliga innehållskällan innan de kan hämta innehållsmetadata och de måste ha innehållsmetadata för att komma åt cachen på avdelningskontor.

Så här genererar BranchCache innehållsinformation

Eftersom innehållsinformationen skapas med utgångspunkt från flera element är värdet hos innehållsinformationen alltid unikt. Dessa element är:

  • Det faktiska innehållet (till exempel webbsidor eller delade filer) från vilket hashvärden kommer.

  • Konfigurationsparametrar som hashalgoritm och blockstorlek. Om du vill generera innehållsinformation delar innehållsservern upp innehållet i segment och delar sedan upp dessa segment i block. BranchCache använder säkra kryptografiska hashvärden för att identifiera och kontrollera varje block och segment, vilket stöder SHA256-hashalgoritmen.

  • En serverhemlighet. Alla innehållsservrar måste konfigureras med en serverhemlighet som är ett binärt värde av godtycklig längd.

Anteckning

Serverhemligheten används för att se till att klientdatorerna inte ska kunna generera innehållsinformationen själva. Det förhindrar att obehöriga användare genomför nyckelsökningsangrepp mot BranchCache-aktiverade klientdatorer i syfte att gissa mindre ändringar i innehållet tvärs över versioner i situationer där klienten hade tillgång till en tidigare version, men inte har tillgång till den aktuella versionen.

Information om innehållsinformation

BranchCache använder serverhemligheten som en nyckel för att härleda innehållsspecifika hashvärden som skickas till auktoriserade klienter. Genom att använda en hashalgoritm för kombinationen av serverhemlighet och hashdata genereras hashvärdet.

Det här hashvärdet kallas segmenthemlighet. BranchCache använder segmenthemligheter för säker kommunikation. BranchCache skapar dessutom en blockhashlista, vilket är en lista över hashformaterade datablock och hashdata som genereras av hashformatering av blockhashlistan.

Innehållsinformation omfattar följande:

  • Blockhashlistan:

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

  • Hashdata (HoD):

    HoD = Hash(BlockHashList)

  • Segmenthemlighet (Kp):

    Kp = HMAC(Ks, HoD)

BranchCache använder protokollet Peer Content Caching och protokollet Retrieval Framework för att implementera processer som krävs för att säkerställa säker cachelagring och hämtning av data mellan innehållscacheminnen.

BranchCache hanterar dessutom innehållsinformation med samma grad av säkerhet som används vid hantering och överföring av själva innehållet.

Innehållsflöde och processer

Innehållsinformationsflödet och själva innehållet är indelat i fyra faser:

  1. BranchCache-processer: Begära innehåll

  2. BranchCache-processer: Söka efter innehåll

  3. BranchCache-processer: Hämta innehåll

  4. BranchCache-processer: Cacheinnehåll

Faserna beskrivs i följande avsnitt.

BranchCache-processer: Begära innehåll

I den första fasen begär klientdatorn på avdelningskontoret innehåll, till exempel en fil eller en webbsida, från en innehållsserver på en fjärrplats, till exempel ett huvudkontor. Innehållsservern verifierar att klientdatorn är behörig att ta emot det begärda innehållet. Om klientdatorn har behörighet och både innehållsservern och klienten är BranchCache-aktiverade genererar innehållsservern innehållsinformation.

Innehållsservern skickar sedan innehållsinformationen till klientdatorn med hjälp av samma protokoll som skulle ha använts för själva innehållet. Om klientdatorn exempelvis begär en webbsida via HTTP skickar innehållsservern innehållsinformationen via HTTP. Till följd av detta garanterar säkerheten på kabelnivå att innehållet och innehållsinformationen är identiska.

När den första delen av innehållsinformationen (hashdata + segmenthemlighet) tas emot utför klientdatorn följande åtgärder:

  • Använder segmenthemligheten (Kp) som krypteringsnyckel (Ke).

  • Genererar segment-ID (HoHoDk) med utgångspunkt från HoD och Kp:

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

Det primära hotet på den här nivån är att segmenthemligheten riskeras, men BranchCache krypterar innehållsdatablocken för att skydda segmenthemligheten. BranchCache åstadkommer detta genom att använda krypteringsnyckeln som härleds från segmenthemligheten hos det innehållssegment inom vilket innehållsblocken finns. Den här metoden gör att en enhet som inte har en serverhemlighet inte kan identifiera det faktiska innehållet i ett datablock. Segmenthemligheten behandlas med samma grad av säkerhet som själva klartextsegmentet, eftersom kännedom om segmenthemligheten för ett visst segment möjliggör att en enhet kan hämta segmentet från peer-datorer och sedan dekryptera den. Kännedom om serverhemligheten ger ingen klartext omedelbart, men den kan användas för att härleda vissa typer av data från chiffertext och eventuellt exponera vissa delvis kända data för ett nyckelsökningsangrepp. Serverhemligheten ska därför behandlas konfidentiellt.

BranchCache-processer: Söka efter innehåll

När innehållsinformationen har tagits emot av klientdatorn använder klienten segment-ID:t för att hitta det begärda innehållet i cachen på avdelningskontoret, oavsett om cachen distribueras mellan klientdatorer eller finns på en värdbaserad cacheserver.

Om klienten är konfigurerad för värdbaserat cacheläge har den konfigurerats med datornamnet på den värdbaserade cacheservern och kontaktar servern för att hämta innehållet.

Om klienten är konfigurerad för distribuerat cacheläge kan dock innehållet lagras över flera cacheminnen på flera datorer på avdelningskontoret. Klientdatorn måste upptäcka var innehållet finns innan innehållet hämtas.

När klientdatorer har konfigurerats för distribuerat cacheläge letar de efter innehåll med hjälp av ett identifieringsprotokoll som baseras på protokollet WS-Discovery (Web Services Dynamic Discovery). Klienter skickar WS-Discovery multicast-meddelanden för avsökning i syfte att upptäcka cachelagrat innehåll i nätverket. Avsökningsmeddelanden innehåller segment-ID, vilket gör att klienter kan kontrollera om det begärda innehållet stämmer med innehållet som lagras i respektive cache. Klienter som tar emot det första avsökningsmeddelandet svarar klienten som frågar med unicast-meddelanden angående avsökning/matchning om segment-ID:t stämmer överens med innehåll som cachelagras lokalt.

WS-Discovery-processens framgång beror på det faktum att den klient som utför identifieringen har rätt innehållsinformation, vilken tillhandahölls av innehållsservern, för det innehåll som begärs.

Det huvudsakliga hotet mot data under fasen för begäran om innehåll är avslöjande av information, eftersom åtkomst till innehållsinformation innebär auktoriserad åtkomst till innehåll. För att minska denna risk avslöjar identifieringsprocessen inte annan innehållsinformation än segment-ID:t, vilket inte avslöjar något om klartextsegmentet där innehållet finns.

En annan klientdator som körs av en obehörig användare på samma undernät i nätverket kan dessutom se BranchCache-identifieringstrafiken till den ursprungliga innehållskällan som passerar routern.

Om det inte går att hitta det begärda innehållet på avdelningskontoret begär klienten innehållet direkt från innehållsservern över WAN-länken.

När innehållet har tagits emot, läggs den till i den lokala cachen, antingen på klientdatorn eller på en värdbaserad cacheserver. I det här fallet förhindrar innehållsinformationen att en klient eller värdbaserad cacheserver lägger till innehåll som inte stämmer överens med hashvärdena i den lokala cachen. Processen där innehållet verifieras genom att matcha hashvärden säkerställer att endast giltigt innehåll läggs till i cachen och att den lokala cachens integritet skyddas.

BranchCache-processer: Hämta innehåll

När en klientdator hittar önskat innehåll på innehållsvärden, som antingen är en värdbaserad cacheserver eller klientdator i distribuerat cacheläge, börjar klientdatorn hämta innehållet.

Först skickar klientdatorn en begäran till innehållsvärden om det första block som krävs. Begäran innehåller det segment-ID och blockintervall som identifierar önskat innehåll. Eftersom bara ett block returneras innehåller blockintervallet bara ett enda block. (Begäran om flera block stöds inte för tillfället.) Klienten lagrar också begäran på den lokala listan över utestående begäranden.

När ett giltigt meddelande om begäran tas emot från en klient kontrollerar innehållsvärden om blocket som anges i begäran finns i innehållsvärdens innehållscache.

Om innehållsblocket finns i innehållsvärden skickar den ett svar som innehåller segment-ID, block-ID, det krypterade datablocket och initieringsvektorn som används för kryptering av blocket.

Om innehållsblocket inte finns i innehållsvärden skickar den ett tomt svarsmeddelande. Det informerar klientdatorn om att innehållsvärden inte har det begärda blocket. Ett tomt svarsmeddelande innehåller segment-ID och block-ID för det begärda blocket, tillsammans med ett datablock av nollstorlek.

När klientdatorn tar emot svaret från innehållsvärden verifierar klienten att meddelandet motsvarar ett meddelande om begäran på listan över utestående begäranden. (Segment-ID och blockindex måste matcha en utestående begäran.)

Om verifieringsprocessen inte genomförs och klientdatorn inte har ett motsvarande meddelande om begäran på listan över utestående begäranden ignorerar klientdatorn meddelandet.

Om verifieringsprocessen genomförs och klientdatorn har ett motsvarande meddelande om begäran på listan över utestående begäranden avkrypterar klientdatorn blocket. Klienten verifierar sedan det avkrypterade blocket jämfört med tillämpliga blockhashvärden från innehållsinformationen som klienten inledningsvis fick från den ursprungliga innehållsservern.

Om blockverifieringen lyckas lagras det avkrypterade blocket i cacheminnet.

Den här processen upprepas tills klienten har alla nödvändiga block.

Anteckning

Om de kompletta innehållssegment inte finns på en dator, hämtar och monterar protokollet innehåll från en kombination av källor: en uppsättning distribuerade klientdatorer i cacheläge, en värdbaserad cacheserver och – om avdelningskontorets cacheminnen inte innehåller hela innehållet – den ursprungliga innehållsservern på huvudkontoret.

Innan BranchCache skickar informationsinnehåll eller innehåll krypteras data. BranchCache krypterar blocken i svarsmeddelandet.Windows 7 är standardkrypteringsalgoritmen som BranchCache använder AES-128, krypteringsnyckeln är Ke och nyckelns storlek är 128 bitar enligt krypteringsalgoritmen. BranchCache genererar en initieringsvektor som lämpar sig för krypteringsalgoritmen och som använder krypteringsnyckeln för att kryptera blocket. BranchCache registrerar sedan krypteringsalgoritmen och initieringsvektorn i meddelandet. Servrar och klienter utbyter, delar eller skickar aldrig krypteringsnyckeln till varandra. Klienten tar emot krypteringsnyckeln från den innehållsserver som är värd för källinnehållet. Sedan avkrypterar den blocket med hjälp av den krypteringsalgoritm och initieringsvektor som togs emot från servern. Det finns ingen annan inbyggd explicit autentisering eller auktorisering i hämtningsprotokollet.

Säkerhetshot

De primära säkerhetshoten på den här nivån är:

  • Manipulering av data:

    En klient som lämnar data till en beställare manipulerar data. I BranchCache-säkerhetsmodellen används hashvärden för att bekräfta att varken klienten eller servern har ändrat data.

  • Avslöjande av information:

    BranchCache skickar krypterat innehåll till alla klienter som anger tillämpligt segment-ID. Segment-ID:n är offentliga så alla klienter kan ta emot krypterat innehåll. Om en obehörig person kommer över det krypterade innehållet måste denne känna till krypteringsnyckeln för avkryptering av innehållet. Protokollet på den övre nivån utför autentiseringen och lämnar sedan innehållsinformationen till den autentiserade och auktoriserade klienten. Säkerheten för innehållsinformationen motsvarar den säkerhet som själva innehållet omfattas av och BranchCache visar aldrig innehållsinformationen.

    En angripare lyssnar på kabeln för att få tillgång till innehållet. BranchCache krypterar alla överföringar mellan klienter genom att använda AES128 där den hemliga nyckeln är Ke, vilket förhindrar att någon lyssnar på data från kabeln. Innehållsinformation som hämtas från innehållsservern skyddas på exakt samma sätt som själva uppgifterna skulle ha skyddats och är därför varken mer eller mindre skyddad från informationsavslöjande än om BranchCache inte alls hade använts.

  • Denial of Service (nekad tjänst):

    En klient blir överbelastad till följd av begäranden om data. I BranchCache-protokoll finns räknare och timers för köhantering i syfte att förhindra att klienter överbelastas.

BranchCache-processer: Cacheinnehåll

På klientdatorer för distribuerat cacheläge och värdbaserade cacheservrar som finns på avdelningskontor byggs innehållscachar upp med tiden i takt med att innehåll hämtas över WAN-länkar.

När klientdatorer har konfigurerats med värdbaserat cacheläge lägger de till innehåll i sina egna lokala cacheminnen och erbjuder även data till den värdbaserade cacheservern. Protokollet för värdbaserad cache är en mekanism för klienter så att de kan informera den värdbaserade cacheservern om tillgängligt innehåll och segment. I syfte att överföra innehåll till den värdbaserade cacheservern informerar klienten servern om att den har ett segment som är tillgängligt. Den värdbaserade cacheservern hämtar sedan all innehållsinformation som är kopplad till det erbjudna segmentet och hämtar just de block i segmentet som behövs. Den här processen upprepas tills klienten inte har fler segment att erbjuda till den värdbaserade cacheservern.

Om du vill uppdatera den värdbaserade cacheservern med hjälp av protokollet för värdbaserad cache måste följande krav uppfyllas:

  • Klientdatorn måste ha ett antal block i ett segment som den kan erbjuda till den värdbaserade cacheservern. Klienten måste ange innehållsinformation för det erbjudna segmentet. Den består av segment-ID, segmentets hashdata, segmenthemlighet och en lista över alla blockhashvärden som ingår i segmentet.

  • För värdbaserade cacheservrar som kör Windows Server 2008 R2 krävs ett certifikat för värdbaserade cacheservrar samt tillhörande privata nyckel och certifikatutfärdaren (CA) måste vara betrodd av klientdatorerna på avdelningskontoret. Det gör det möjligt för klienten och servern att delta i HTTPS-serverautentiseringen.

    Viktigt

    För värdbaserade cacheservrar som kör Windows Server 2012 krävs inte ett certifikat för värdbaserade cacheservrar samt tillhörande privata nyckel.

  • Klientdatorn har konfigurerats med datornamnet på den värdbaserade cacheservern och TCP-portnumret (Transmission Control Protocol) där den värdbaserade cacheservern lyssnar efter BranchCache-trafik. Den värdbaserade cacheserverns certifikat är bundet till den här porten. Datornamnet på den värdbaserade cacheservern kan vara ett fullständigt kvalificerat domännamn (FQDN) om den värdbaserade cacheservern är en domänmedlemsdator, eller så kan det vara datorns NetBIOS-namn om den värdbaserade cacheservern inte är domänmedlem.

  • Klientdatorn lyssnar aktivt efter inkommande blockbegäranden. Den port som avlyssnas skickas som en del av erbjudandemeddelanden från klienten till den värdbaserade cacheservern. Det gör det möjligt för den värdbaserade cacheservern att använda BranchCache-protokoll för att ansluta till klientdatorn och hämta datablock i segmentet.

  • Den värdbaserade cacheservern börjar lyssna efter inkommande HTTP-begäranden när den initieras.

  • Om den värdbaserade cacheservern är konfigurerad för att kräva klientdatorautentisering, måste både klienten och den värdbaserade cacheservern ha stöd för HTTPS-autentisering.

Cachepopulation i det värdbaserade cacheläget

Processen för att lägga till innehåll i den värdbaserade cacheserverns cacheminne på ett avdelningskontor börjar när klienten skickar en INITIAL_OFFER_MESSAGE-begäran som innehåller segment-ID:t. Segment-ID:t i INITIAL_OFFER_MESSAGE-begäran används för att hämta motsvarande segments hashdata, en lista över hashvärden för block och segmenthemlighet från den värdbaserade cacheserverns blockcache. Om den värdbaserade cacheservern redan har all innehållsinformation för ett visst segment är svaret på INITIAL_OFFER_MESSAGE OK och ingen begäran om att hämta block uppstår.

Om den värdbaserade cacheservern inte har alla de erbjudna datablock som är kopplade till hashvärden för block i segmentet är svaret på INITIAL_OFFER_MESSAGE INTERESTED (intresserad). Klienten skickar sedan SEGMENT_INFO_MESSAGE som beskriver det enda segment som erbjuds. Den värdbaserade cacheservern svarar med meddelandet OK och initierar hämtning av saknade block från den erbjudande klientdatorn.

Segmentets hashdata, en lista över hashvärden för block och segmenthemligheten används för att säkerställa att innehållet som hämtas inte har manipulerats eller på annat sätt ändrats. De hämtade blocken läggs sedan till i den värdbaserade cacheserverns blockcache.

Cachesäkerhet

Det här avsnittet innehåller information om hur BranchCache skyddar cachelagrade data på klientdatorer och värdbaserade cacheservrar.

Klientdatorns cachesäkerhet

Det största hotet mot data som lagras i BranchCache är manipulation. Om en angripare kan manipulera innehåll och innehållsinformation som lagras i cacheminnet kan det sedan vara möjligt att använda detta för att försöka starta ett angrepp mot datorer som använder BranchCache. Angripare kan inleda ett angrepp genom att infoga skadlig programvara istället för andra data. BranchCache minskar risken från det här hotet genom att verifiera allt innehåll med hjälp av hashvärden för block som finns i innehållsinformationen. Om en angripare försöker manipulera data tas de bort och ersätts med giltiga data från den ursprungliga källan.

Ett sekundärt hot mot data som lagras i BranchCache är avslöjande av information. I distribuerat cacheläge cachelagrar klienten endast det innehåll som den själv har begärt men informationen lagras dock i klartext och kan vara hotad. I syfte att begränsa cacheåtkomst endast till BranchCache-tjänsten skyddas den lokala cachen av behörigheter för filsystem som har angetts på en ACL (åtkomstkontrollista). Även om åtkomstkontrollistan är effektiv för att hindra obehöriga användare från att komma åt cachen, är det möjligt för en användare med administratörsbehörighet att få åtkomst till cachen genom att manuellt ändra de behörigheter som anges på åtkomstkontrollistan. BranchCache skyddar inte mot skadlig användning av ett administrationskonto.

Data som lagras i innehållscachen är inte krypterade. Om dataläckage är ett problem kan du använda krypteringstekniker som BitLocker eller EFS (Encrypting File System). Den lokala cachen som används av BranchCache ökar inte hotet mot avslöjande av information på en dator på avdelningskontoret – cachen innehåller endast kopior av filer som finns okrypterade någon annanstans på disken. Det är särskilt viktigt att kryptera hela disken i miljöer där den fysiska säkerheten för klienterna är svår att säkerställa. Exempelvis hjälper kryptering av hela hårddisken till att skydda känsliga data på bärbara datorer som kan tas bort från avdelningskontoret.

Cachesäkerhet för värdbaserad cacheserver

I värdbaserat cacheläge är avslöjande av information det största hotet mot den värdbaserade cacheserverns säkerhet. BranchCache i en värdbaserad cachemiljö fungerar på ett liknande sätt som i distribuerat cacheläge, där filsystemsbehörighet skyddar cachelagrade data. Skillnaden är att den värdbaserade cacheservern lagrar allt innehåll som alla BranchCache-aktiverade datorer på avdelningskontoret begär, istället för bara de data som en enda klient begär. Följderna av obehöriga intrång i cacheminnet kan vara mycket allvarligare, eftersom en mycket större datamängd hotas.

I en värdbaserad cachemiljö där den värdbaserade servern kör Windows Server 2008 R2 är det lämpligt att använda krypteringstekniker som BitLocker eller EFS om någon av klienterna på avdelningskontoret kan komma åt känsliga data över WAN-länken. Det är också nödvändigt att förhindra fysisk åtkomst till den värdbaserade cachen eftersom hårddiskkryptering endast fungerar om datorn är avstängd när angriparen har fysisk åtkomst. Om datorn är igång eller i viloläge ger hårddiskkryptering mycket lite skydd.

Anteckning

Värdbaserade cacheservrar som kör Windows Server 2012 krypterar alla data i cacheminnet som standard så att användning av ytterligare krypteringstekniker inte krävs.

Även om en klient konfigureras i det värdbaserade cacheläget cachelagras fortfarande data lokalt och du kanske vill vidta åtgärder för att skydda det lokala cacheminnet förutom cacheminnet i den värdbaserade cacheservern.