Usługa BranchCache — omówienie

 

Dotyczy: Windows Server 2012, Windows 8

Ten temat, przeznaczony dla specjalistów IT, zawiera przegląd informacji dotyczących usługi BranchCache, łącznie z opisem jej trybów pracy, możliwości i funkcji, jak również opis funkcji usług BranchCache dostępnych w różnych systemach operacyjnych.

Osoby zainteresowane usługą BranchCache

Jeśli jesteś administratorem systemu, architektem sieci lub rozwiązań pamięci masowej albo też innym specjalistą IT, usługa BranchCache może Cię zainteresować, jeżeli:

  • Projektujesz lub obsługujesz infrastrukturę IT w organizacji mającej co najmniej dwie lokalizacje fizyczne oraz używającej połączeń WAN do komunikacji pomiędzy oddziałami firmy a siedzibą główną.

  • Projektujesz lub obsługujesz infrastrukturę IT w organizacji korzystającej z technologii chmury, której pracownicy w zdalnych lokalizacjach używają połączeń WAN do dostępu do danych i aplikacji.

  • Chcesz optymalizować wykorzystanie przepustowości sieci WAN przez zmniejszenie ilości ruchu sieciowego między oddziałami a siedzibą główną.

  • Wdrożono lub planowane jest wdrażanie serwerów zawartości w siedzibie głównej przy wykorzystaniu konfiguracji opisanych w tym temacie.

  • Komputery klienckie w oddziałach używają programów Windows® 8 lub Windows® 7.

Ten temat zawiera następujące sekcje:

  • Co to jest usługa BranchCache?

  • Tryby usługi BranchCache

  • Serwery zawartości obsługujące usługę BranchCache

  • Usługa BranchCache a chmura

  • Wersje informacji o zawartości

  • Jak usługa BranchCache obsługuje aktualizacje zawartości w plikach

  • Przewodnik po instalacji usługi BranchCache

  • Wersje systemu operacyjnego dla usługi BranchCache

  • Zabezpieczenia usługi BranchCache

  • Przepływ zawartości i procesy

  • Zabezpieczenia pamięci podręcznej

Co to jest usługa BranchCache?

BranchCache to technologia optymalizacji przepustowości sieci WAN, będąca składnikiem niektórych wersji systemów operacyjnych Windows Server® 2012 i Windows® 8, jak również niektórych wersji systemów Windows Server® 2008 R2 i Windows® 7. W celu zoptymalizowania przepustowości sieci WAN w sytuacji, gdy użytkownicy uzyskują dostęp do zawartości na serwerach zdalnych, usługa BranchCache kopiuje zawartość z serwerów zawartości znajdujących się w siedzibie głównej lub hostowanych w chmurze i przechowuje ją w oddziałach, umożliwiając komputerom klienckim uzyskanie dostępu do zawartości lokalnie, a nie przez sieć WAN.

W oddziałach zawartość jest przechowywana na serwerach, które są skonfigurowane jako hosty pamięci podręcznej, lub, w przypadku braku serwera w oddziale, na komputerach klienckich z oprogramowaniem Windows 8 bądź Windows 7. Gdy komputer kliencki zażąda zawartości z siedziby głównej i otrzyma ją, zaś zawartość zostanie zbuforowana w oddziale, inne komputery w tym samym oddziale korzystają z lokalnego dostępu do zawartości, bez konieczności pobierania jej poprzez łącze WAN z serwera zawartości.

Każde kolejne wywołanie tej samej zawartości przez komputery klienckie powoduje pobranie przez klientów informacji o zawartości z serwera zamiast rzeczywistej zawartości. Informacje o zawartości składają się z wartości skrótu, które są obliczane przy użyciu fragmentów oryginalnej zawartości, i są bardzo małe w porównaniu z zawartością w oryginalnych danych. Następnie komputery klienckie używają informacji o zawartości do zlokalizowania zawartości w pamięci podręcznej w oddziale, w zależności od tego, czy pamięć podręczna znajduje się na komputerze klienckim, czy na serwerze. Komputery klienckie i serwery używają także informacji o zawartości do zabezpieczania zawartości pamięci podręcznej, aby uniemożliwić korzystanie z niej przez nieautoryzowanych użytkowników.

Usługa BranchCache zwiększa wydajność użytkownika końcowego, skracając czas odpowiedzi na zapytania o zawartość wysyłane przez klientów i serwery w oddziałach, a także może zwiększyć wydajność sieci, zmniejszając ruch przez łącza WAN.

Tryby usługi BranchCache

Usługa BranchCache ma dwa tryby działania: tryb rozproszonej pamięci podręcznej i tryb hostowanej pamięci podręcznej.

Podczas wdrażania usługi BranchCache w trybie rozproszonej pamięci podręcznej pamięć podręczna zawartości w biurze oddziału jest rozdzielana między komputery klienckie.

Podczas wdrażania usługi BranchCache w trybie hostowanej pamięci podręcznej pamięć podręczna zawartości w biurze oddziału jest przechowywana na jednym lub większej liczbie komputerów serwera, które są nazywane serwerami hostowanej pamięci podręcznej.

Uwaga

Usługę BranchCache można wdrożyć w obu tych trybach, jednak w danym oddziale może być używany tylko jeden z nich. Na przykład, jeśli użytkownik ma dwa oddziały, z których pierwszy zawiera serwer, a drugi nie, usługę BranchCache można wdrożyć w trybie hostowanej pamięci podręcznej w oddziale zawierającym serwer i w trybie rozproszonej pamięci podręcznej w oddziale zawierającym wyłączenie komputery klienckie.

Na poniższej ilustracji pokazano usługę BranchCache wdrożoną w obu trybach.

Tryby usługi BranchCache

Tryb rozproszonej pamięci podręcznej jest najodpowiedniejszy dla małych oddziałów, które nie mają lokalnego serwera, który mógłby zostać użyty jako serwer hostowanej pamięci podręcznej. Tryb rozproszonej pamięci podręcznej umożliwia wdrażanie usługi BranchCache bez konieczności stosowania dodatkowych urządzeń w oddziałach.

Jeśli oddział, w którym chcesz wdrożyć usługę BranchCache, zawiera dodatkową infrastrukturę, taką jak co najmniej jeden serwer, który jest obciążony przez inne zadania, wdrożenie usługi BranchCache w trybie hostowanej pamięci podręcznej jest korzystne z następujących powodów:

Zwiększona dostępność pamięci podręcznej

Tryb hostowanej pamięci podręcznej zwiększa wydajność pamięci podręcznej, ponieważ zawartość jest dostępna, nawet jeśli klient, który pierwotnie żądał danych i umieścił je w pamięci podręcznej, jest w trybie offline. Ponieważ serwer hostowanej pamięci podręcznej jest zawsze dostępny, buforowane jest więcej zawartości, co zapewnia większą oszczędność przepustowości sieci WAN oraz większą wydajność usługi BranchCache.

Buforowanie scentralizowane w przypadku oddziałów z wieloma podsieciami

Tryb rozproszonej pamięci podręcznej działa w jednej podsieci. W przypadku oddziału z wieloma podsieciami skonfigurowanego do pracy w trybie rozproszonej pamięci podręcznej plik pobrany do jednej podsieci nie może być udostępniony komputerom klienckim w innych podsieciach. W związku z tym klienci w innych podsieciach nie mogą wykryć, że plik został już pobrany, i pobierają go z serwera zawartości w siedzibie głównej, wykorzystując przy tym przepustowość sieci WAN. Podczas wdrażania trybu hostowanej pamięci podręcznej taka sytuacje nie zdarza się — wszyscy klienci w oddziale z wieloma podsieciami mają dostęp do jednej pamięci podręcznej, która znajduje się na serwerze hostowanej pamięci podręcznej, nawet jeśli klienci są w różnych podsieciach. Ponadto usługa BranchCache w systemie Windows Server 2012 umożliwia wdrożenie więcej niż jednego serwera hostowanej pamięci podręcznej w każdym oddziale.

Ostrzeżenie

Jeśli usługa BranchCache jest używana do buforowania SMB plików i folderów, nie należy wyłączać plików trybu offline. Po wyłączeniu plików trybu offline buforowanie SMB usługi BranchCache nie działa prawidłowo.

Serwery zawartości obsługujące usługę BranchCache

Po wdrożeniu usługi BranchCache zawartość źródłowa jest przechowywana w serwerach zawartości obsługujących usługę BranchCache w siedzibie głównej. Następujące typy serwerów zawartości obsługują usługę BranchCache:

Uwaga

Tylko zawartość źródłowa (zawartość otrzymana początkowo przez klientów z serwerów zawartości obsługujących usługę BranchCache) jest przyspieszana przez usługę BranchCache. Zawartość, którą komputery klienckie uzyskują bezpośrednio z innych źródeł, takich jak serwery sieci Web w Internecie lub usługa Windows Update, nie jest buforowana przez komputery klienckie ani serwery hostowanej pamięci podręcznej serwerów, nie jest też następnie udostępniana innym komputerom w oddziale. W celu przyspieszenia zawartości usługi Windows Update można jednak zainstalować serwer aplikacji WSUS (Windows Server Update Services) w siedzibie głównej i skonfigurować go jako serwer zawartości BranchCache.

Serwery sieci Web

Obsługiwane serwery sieci Web obejmują komputery z systemem Windows Server 2012 lub Windows Server® 2008 R2 z zainstalowaną rolą serwera sieci Web (IIS) i korzystające z protokołu HTTP (Hypertext Transfer Protocol) lub HTTP Secure (HTTPS). Ponadto na serwerze sieci Web musi być zainstalowana funkcja BranchCache. Aby uzyskać więcej informacji o serwerze sieci Web (IIS) w systemie Windows Server 2012, zobacz Serwer sieci Web (IIS).

Serwery plików

Obsługiwane serwery plików obejmują komputery z systemem Windows Server 2012 lub Windows Server 2008 R2 pełniące rolę serwera usługi plików z zainstalowaną usługą roli BranchCache dla plików sieciowych. Te serwery plików używają protokołu SMB (Server Message Block) do wymiany informacji pomiędzy komputerami. Po zakończeniu instalacji serwera plików należy udostępnić foldery i włączyć generowanie wartości skrótu dla folderów udostępnianych, używając zasad grupy lub zasad komputera lokalnego do włączenia usługi BranchCache. Aby uzyskać więcej informacji na temat usługi plików i magazynowania w systemie Windows Server 2012, zobacz Usługi plików i magazynowania.

Serwery aplikacji

Obsługiwane serwery aplikacji obejmują komputery z systemem Windows Server 2012 lub Windows Server 2008 R2 z zainstalowaną i włączoną usługą BITS (Background Intelligent Transfer Service). Ponadto na serwerze aplikacji musi być zainstalowana funkcja BranchCache. Na przykład jako serwery zawartości BranchCache można wdrożyć serwery Microsoft Windows Server Update Services (WSUS) i Microsoft System Center Configuration Manager Branch Distribution Point.

Usługa BranchCache a chmura

Chmura ma ogromny potencjał zmniejszania kosztów operacyjnych i zwiększania skalowalności, ale przeniesienie obciążeń od osób, którym na nich zależy, może zwiększyć koszty sieci i obniżyć wydajność. Użytkownicy oczekują wysokiej wydajności i nie jest dla nich istotne, gdzie znajdują się dane i aplikacje. Usługa BranchCache może zwiększyć wydajność aplikacji sieciowych i zmniejszyć wykorzystanie przepustowości dzięki udostępnionej pamięci podręcznej danych. Powoduje to zwiększenie wydajności w oddziałach oraz w siedzibie głównej, gdzie pracownicy korzystają z serwerów wdrożonych w chmurze.

Ponieważ usługa BranchCache nie wymaga nowego sprzętu ani zmiany topologii sieci, jest idealnym rozwiązaniem służącym do poprawy komunikacji między lokalizacjami, w których znajdują się biura, a chmurami publicznymi i prywatnymi.

Aby uzyskać więcej informacji na temat technologii chmurowych w systemie Windows Server 2012, zobacz Budowanie infrastruktury w chmurze.

Wersje informacji o zawartości

Istnieją dwie wersje informacji o zawartości:

  • Informacja o zawartości, która jest zgodna z komputerami z systemem Windows Server 2008 R2 i Windows 7, nosi nazwę wersji 1 lub V1. W przypadku segmentacji plików usługi BranchCache w wersji V1 segmenty pliku są większe niż w wersji V2 i mają stały rozmiar. Duży, stały rozmiar segmentów powoduje, że w przypadku przeprowadzanej przez użytkownika zmiany modyfikującej długość pliku będzie ona powodowała unieważnienie nie tylko zmienianego segmentu, ale również wszystkich następujących po nim segmentów aż do końca pliku. Z tego powodu kolejne wywołanie zmienionego pliku przez innego użytkownika w oddziale spowoduje zmniejszenie uzyskanych oszczędności przepustowości sieci WAN, ponieważ zmieniona zawartość i cała zawartości po niej następująca są wysyłane przez łącze sieci WAN.

  • Informacja o zawartości, która jest zgodna z komputerami z systemem Windows Server 2012 i Windows 8, nosi nazwę wersji 2 lub V2. Informacje o zawartości w wersji 2 używają mniejszych segmentów o zmiennej długości, które są bardziej odporne na zmiany w pliku. Dzięki temu rośnie prawdopodobieństwo, że segmenty pochodzące ze starszej wersji pliku mogą zostać ponownie użyte w przypadku dostępu użytkownika do zaktualizowanej wersji, co powoduje, że z serwera zawartości są pobierane tylko zmienione porcje danych, i zmniejsza użycie przepustowości sieci WAN.

Poniższa tabela zawiera informacje o używanej wersji informacji o zawartości w zależności od klienta, serwera zawartości i systemu operacyjnego serwera hostowanej pamięci podręcznej w przypadku wdrożenia usługi BranchCache.

Uwaga

W poniższej tabeli przedstawiono odpowiednie informacje.

System operacyjny klienta System operacyjny serwera zawartości System operacyjny serwera hostowanej pamięci podręcznej Wersja informacji o zawartości
Windows Server 2008 R2 i Windows 7 Windows Server 2012 lub Windows Server 2008 R2 Windows Server 2012 lub Windows Server 2008 R2; brak dla trybu rozproszonej pamięci podręcznej V1
Windows Server 2012 i Windows 8 Windows Server 2008 R2 Windows Server 2012 lub Windows Server 2008 R2; brak dla trybu rozproszonej pamięci podręcznej V1
Windows Server 2012 i Windows 8 Windows Server 2012 Windows Server 2008 R2; brak dla trybu rozproszonej pamięci podręcznej V1
Windows Server 2012 i Windows 8 Windows Server 2012 Windows Server 2012; brak dla trybu rozproszonej pamięci podręcznej V2

Jeśli serwery zawartości i serwery hostowanej pamięci podręcznej używają systemu Windows Server 2012, wykorzystywana jest wersja informacji o zawartości odpowiednia dla systemu operacyjnego klienta usługi BranchCache, który żąda informacji. Gdy zawartości żądają komputery z systemem Windows Server 2012 i Windows 8, serwery zawartości i serwery hostowanej pamięci podręcznej używają informacji o zawartości w wersji 2; gdy zawartości żądają komputery z systemem Windows Server 2008 R2 i Windows 7, serwery zawartości i serwery hostowanej pamięci podręcznej używają informacji o zawartości w wersji 1.

Po wdrożeniu usługi BranchCache w trybie rozproszonej pamięci podręcznej klienci korzystający z różnych wersji nie mogą sobie nawzajem udostępniać informacji.

Jak usługa BranchCache obsługuje aktualizacje zawartości w plikach

Gdy użytkownicy w oddziałach modyfikują lub aktualizują zawartość dokumentów, zmiany są zapisywane bezpośrednio na serwerze zawartości w siedzibie głównej bez korzystania z usługi BranchCache. Dzieje się tak niezależnie od tego, czy użytkownik pobrał dokument z serwera zawartości, czy też z pamięci podręcznej (hostowanej lub rozproszonej) w oddziale.

Jeśli inny klient w oddziale zażądał zmodyfikowanego pliku, nowe segmenty pliku są pobierane z serwera w siedzibie głównej i dodawane do rozproszonej lub hostowanej pamięci podręcznej w oddziale. W związku z tym użytkownicy w oddziałach zawsze dysponują najnowszymi wersjami zawartości pamięci podręcznej.

Przewodnik po instalacji usługi BranchCache

Programu Menedżer serwera systemu Windows Server 2012 można użyć do zainstalowania funkcji BranchCache lub usługi roli BranchCache dla plików sieciowych dla roli serwera usługi plików. Poniższa tabela służy do określenia, czy należy zainstalować usługę roli, czy też funkcję.

Funkcja Lokalizacja komputera Zainstaluj następujący element BranchCache
Serwer zawartości (serwer aplikacji oparty o BITS) Siedziba główna lub centrum danych w chmurze Funkcja BranchCache
Serwer zawartości (serwer sieci Web) Siedziba główna lub centrum danych w chmurze Funkcja BranchCache
Serwer zawartości (serwer plików używający protokołu SMB) Siedziba główna lub centrum danych w chmurze Usługa BranchCache dla usługi roli plików sieciowych roli serwera usługi plików
Serwer hostowanej pamięci podręcznej Oddział Funkcja BranchCache z włączonym trybem hostowanej pamięci podręcznej
Komputer kliencki obsługujący usługę BranchCache Oddział Instalacja nie jest wymagana; po prostu włącz na kliencie usługę BranchCache i tryb BranchCache (rozproszony lub hostowany)

Aby zainstalować usługę roli lub funkcję, otwórz Menedżera serwera, a następnie wybierz komputery, na których chcesz włączyć funkcjonalność BranchCache. W Menedżerze serwera kliknij polecenie Zarządzaj, a następnie kliknij przycisk Dodaj role i funkcje. Zostanie otwarty kreator Dodaj role i funkcje. Podczas pracy z kreatorem wybierz następujące opcje:

  • Na stronie kreatora Wybieranie typu instalacji wybierz opcję Instalacja oparta na rolach lub oparta na funkcjach.

  • W przypadku instalowania serwera plików z obsługą usługi BranchCache na stronie kreatora Wybieranie ról serwera wybierz opcję Usługi plików. W dalszej części procesu kreatora konfiguracji wybierz również opcję BranchCache dla plików sieciowych. Jeśli nie chcesz zainstalować serwera plików z obsługą usługi BranchCache, nie instaluj roli usługi plików ze składnikiem BranchCache dla usługi roli plików sieciowych.

  • W przypadku instalowania serwera zawartości, który nie jest serwerem plików, lub instalowania serwera hostowanej pamięci podręcznej na stronie kreatora Wybieranie funkcji wybierz opcję BranchCache. Jeśli nie chcesz zainstalować serwera zawartości innego niż serwer plików lub serwer hostowanej pamięci podręcznej, nie instaluj funkcji BranchCache.

Wersje systemu operacyjnego dla usługi BranchCache

Poniżej znajduje się lista systemów operacyjnych, które obsługują różne funkcje usługi BranchCache.

Systemy operacyjne obsługujące funkcje komputera klienckiego usługi BranchCache

  • Windows® 8 Enterprise

  • Windows ® 7 Enterprise

  • Windows® 7 Ultimate

Systemy operacyjne obsługujące funkcje serwera zawartości usługi BranchCache

Rodzina systemów operacyjnych Windows Server 2012 może pełnić rolę serwerów zawartości usługi BranchCache.

Ponadto również rodzina systemów operacyjnych Windows Server® 2008 R2 może pełnić rolę serwerów zawartości usługi BranchCache, z następującymi wyjątkami:

  • Usługa BranchCache nie jest obsługiwana w instalacjach Server Core systemów Windows Server® 2008 R2 Enterprise z funkcją Hyper-V.

  • Usługa BranchCache nie jest obsługiwana w instalacjach Server Core systemów Windows Server® 2008 R2 Datacenter z funkcją Hyper-V.

Systemy operacyjne obsługujące funkcje serwera hostowanej pamięci podręcznej usługi BranchCache

Rodzina systemów operacyjnych Windows Server 2012 może pełnić rolę serwerów hostowanej pamięci podręcznej usługi BranchCache.

Ponadto następujące systemy operacyjne Windows Server® 2008 R2 mogą służyć jako serwery pamięci podręcznej usługi BranchCache:

  • Windows Server® 2008 R2 Enterprise

  • Serwer Windows Server 2008 R2 Enterprise z funkcją Hyper-V

  • Instalacja Server Core systemu Windows Server 2008 R2 Enterprise

  • Instalacja Server Core systemu Windows Server 2008 R2 Enterprise z funkcją Hyper-V

  • Windows Server 2008 R2 for Itanium-Based Systems

  • Windows Server® 2008 R2 Datacenter

  • Serwer Windows Server® 2008 R2 Datacenter z funkcją Hyper-V

  • Instalacja Server Core systemu Windows Server 2008 R2 Datacenter z funkcją Hyper-V

Zabezpieczenia usługi BranchCache

Na etapie projektowania w usłudze BranchCache wdrożono zabezpieczenia działające niezależnie od istniejącej architektury zabezpieczeń sieci, dzięki czemu nie są wymagane dodatkowe urządzenia ani złożone dodatkowe konfiguracje zabezpieczeń.

Usługa BranchCache jest nieinwazyjna i nie wpływa na żadne procesy uwierzytelniania i autoryzacji systemu Windows. Po wdrożeniu usługi BranchCache uwierzytelnianie jest nadal wykonywane przy użyciu poświadczeń domeny i nie ulega zmianie sposób, w jaki funkcje uwierzytelniające korzystają z list kontroli dostępu (ACL). Ponadto inne konfiguracje nadal działają tak samo jak przed wdrożeniem usługi BranchCache.

Model zabezpieczeń usługi BranchCache jest oparty na tworzeniu metadanych, które mają postać serii skrótów. Te wartości skrótu są również nazywane informacjami o zawartości.

Usługa BranchCache nie wysyła rzeczywistych danych, lecz utworzone na ich podstawie informacje o zawartości, które są przesyłane za pomocą obsługiwanych protokołów (HTTP, HTTPS i SMB).

Buforowane dane są przechowywane w postaci zaszyfrowanej i nie są dostępne dla klientów, którzy nie mają uprawnień dostępu do zawartości oryginalnego źródła. Aby móc pobrać metadane zawartości, klienci muszą zostać uwierzytelnieni i upoważnieni przez źródło oryginalnej zawartości, muszą także posiadać metadane zawartości, aby uzyskać dostęp do pamięci podręcznej w biurze oddziału.

Generowanie informacji o zawartości przez usługę BranchCache

Informacja o zawartości jest tworzona na podstawie wielu elementów, dlatego też wartość informacji o zawartości jest zawsze unikatowa. Są to następujące elementy:

  • Rzeczywista zawartość (np. strony sieci Web lub udostępnione pliki), na podstawie której tworzone są skróty.

  • Parametry konfiguracji, takie jak algorytm funkcji skrótu i rozmiar bloku. Aby wygenerować informacje o zawartości, serwer zawartości dzieli zawartość na segmenty, a następnie dzieli te segmenty na bloki. Usługa BranchCache używa bezpiecznych kryptograficznych funkcji skrótu do identyfikowania i sprawdzania poprawności każdego bloku i segmentu, wykorzystując algorytm obliczania skrótu SHA256.

  • Tajny klucz serwera. Na wszystkich serwerach zawartości musi być skonfigurowany tajny klucz serwera, który jest wartością binarną o dowolnej długości.

Uwaga

Dzięki wykorzystaniu tajnego klucza serwera komputery klienckie nie mogą samodzielnie generować informacji o zawartości. Uniemożliwia to złośliwym użytkownikom przeprowadzanie ataków siłowych przy użyciu komputerów klienckich z obsługą usługi BranchCache, polegających na próbie wykrycia niewielkich zmian w zawartości poszczególnych wersji w sytuacji, w której klient miał dostęp do poprzedniej wersji, ale nie ma dostępu do wersji bieżącej.

Szczegóły informacji o zawartości

Usługa BranchCache używa tajnego klucza serwera jako klucza służącego do uzyskania skrótu zawartości, który zostaje wysłany do autoryzowanych klientów. Ten skrót jest wynikiem zastosowania algorytmu funkcji skrótu do połączonego tajnego klucza serwera i skrótu danych.

Ten skrót jest nazywany tajnym kluczem segmentu. Usługa BranchCache używa tajnych kluczy segmentów do zabezpieczania komunikacji. Ponadto usługa BranchCache tworzy listę skrótów bloków, będącą listą skrótów bloków danych, oraz skrót danych, który jest wynikiem obliczenia wartości skrótu listy skrótów bloków.

Na informacje o zawartości składają się następujące elementy:

  • Lista skrótów bloków:

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

  • Skrót danych (HoD):

    HoD = Hash(BlockHashList)

  • Tajny klucz segmentu (Kp):

    Kp = HMAC(Ks, HoD)

Usługa BranchCache używa protokołów Peer Content Caching i Retrieval Framework do implementacji procesów wymaganych w celu zapewnienia bezpiecznego buforowania i pobierania danych między pamięciami podręcznymi zawartości.

Ponadto podczas obsługi informacji o zawartości usługa BranchCache stosuje ten sam stopień zabezpieczeń, co podczas obsługi i przesyłania samej zawartości.

Przepływ zawartości i procesy

Przepływ informacji o zawartości i rzeczywistej zawartości jest podzielony na cztery fazy:

  1. Procesy usługi BranchCache: żądanie zawartości

  2. Procesy usługi BranchCache: znajdowanie zawartości

  3. Procesy usługi BranchCache: pobieranie zawartości

  4. Procesy usługi BranchCache: zawartość pamięci podręcznej

Fazy te opisano w poniższych sekcjach.

Procesy usługi BranchCache: żądanie zawartości

W pierwszej fazie komputer kliencki w biurze oddziału żąda od serwera zawartości znajdującego się w zdalnej lokalizacji, takiej jak siedziba główna, przesłania zawartości, na przykład pliku lub strony sieci Web. Serwer zawartości sprawdza, czy komputer kliencki jest autoryzowany do odbierania żądanej zawartości. Jeśli komputer kliencki jest autoryzowany oraz zarówno na serwerze zawartości jak i na kliencie jest włączona usługa BranchCache, serwer zawartości generuje informacje o zawartości.

Następnie serwer zawartości wysyła informacje o zawartości do komputera klienckiego przy użyciu tego samego protokołu, który byłby używany do przesyłania rzeczywistej zawartości. Na przykład jeśli komputer kliencki zażądał przesłania strony sieci Web przy użyciu protokołu HTTP, serwer zawartości wysyła informacje o zawartości przy użyciu protokołu HTTP. W związku z tym gwarantowany poziom zabezpieczeń transmisji jest taki sam dla zawartości i dla informacji o zawartości.

Po odebraniu początkowego fragmentu informacji o zawartości (skrót danych + tajny klucz segmentu) komputer kliencki wykonuje następujące czynności:

  • Używa tajnego klucza segmentu (Kp) jako klucza szyfrowania (Ke).

  • Generuje identyfikator segmentu (HoHoDk) na podstawie HoD i Kp:

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

Podstawowym zagrożeniem w tej warstwie jest ryzyko odkrycia tajnego klucza segmentu, jednak usługa BranchCache szyfruje bloki zawartości danych, aby go chronić. Usługa BranchCache dokonuje tego przy użyciu klucza szyfrowania tworzonego na podstawie tajnego klucza segmentu zawartości, w którym znajdują się bloki zawartości. Dzięki tej metodzie osoby nieposiadające tajnego klucza serwera nie mogą odczytać rzeczywistej zawartości bloku danych. Tajny klucz segmentu ma taki sam poziom zabezpieczeń jak segment tekstu jawnego, ponieważ wiedza o tajnym kluczu danego segmentu umożliwia jednostce otrzymanie segmentu od jednostek równorzędnych i następnie jego odszyfrowanie. Znajomość tajnego klucza serwera nie umożliwia natychmiastowego poznania tekstu jawnego, ale może zostać wykorzystana do ustalenia niektórych typów danych z zaszyfrowanego tekstu, po czym może nastąpić atak siłowy na częściowo znane dane. Z tego powodu tajny klucz serwera powinien być poufny.

Procesy usługi BranchCache: znajdowanie zawartości

Po otrzymaniu przez komputer kliencki informacji o zawartości klient używa identyfikatora segmentu do zlokalizowania żądanej zawartości w pamięci podręcznej w oddziale lokalnym, niezależnie od tego, czy pamięć podręczna jest rozdzielona między komputerami klienckimi, czy też znajduje się na serwerze hostowanej pamięci podręcznej.

Jeśli komputer kliencki jest skonfigurowany do pracy w trybie hostowanej pamięci podręcznej, jego konfiguracja zawiera nazwę komputera serwera hostowanej pamięci podręcznej, i komputer kliencki kontaktuje się z tym serwerem w celu pobrania zawartości.

Jeśli jednak komputer kliencki jest skonfigurowany do pracy w trybie rozproszonej pamięci podręcznej, zawartość może być przechowywana w wielu pamięciach podręcznych na wielu komputerach w biurze oddziału. Przed pobraniem zawartości komputer kliencki musi znaleźć lokalizację, w której się ona znajduje.

Po skonfigurowaniu do pracy w trybie rozproszonej pamięci podręcznej komputery klienckie lokalizują zawartość przy użyciu protokołu odnajdowania, który jest oparty o protokół usługi odnajdowania WS (WS-Discovery). Klienci wysyłają pakiety sondujące multiemisji protokołu WS-Discovery w celu wykrycia w sieci zawartości przechowywanej w pamięci podręcznej. Wiadomości sondujące zawierają identyfikator segmentu, który umożliwia klientom sprawdzenie, czy żądana zawartość odpowiada zawartości przechowywanej w pamięci podręcznej. Klienci, którzy otrzymali początkową wiadomość sondującą, odpowiadają wysyłającemu ją klientowi przy użyciu wiadomości emisji pojedynczej z potwierdzeniem zgodności, jeżeli identyfikator segmentu jest zgodny z zawartością przechowywaną lokalnie w pamięci podręcznej.

Powodzenie usługi odnajdowania WS zależy od tego, czy klient, który przeprowadza odnajdowanie, ma poprawne informacje o żądanej zawartości, które zostały dostarczone przez serwer zawartości.

Głównym zagrożeniem dla danych podczas fazy żądania zawartości jest ujawnienie informacji, ponieważ dostęp do informacji o zawartości oznacza autoryzowany dostęp do zawartości. Aby zmniejszyć to zagrożenie, proces odnajdowania nie udostępnia informacji o zawartości innych niż identyfikator segmentu, który nie ujawnia niczego o segmencie tekstu jawnego zawierającym daną zawartość.

Ponadto inny komputer kliencki w tej samej podsieci opanowany przez złośliwego użytkownika może śledzić ruch sieciowy związany z odnajdowaniem przesyłany przez usługę BranchCache do oryginalnego źródła zawartości za pośrednictwem routera.

Jeśli w biurze oddziału nie odnaleziono żądanej zawartości, klient żąda zawartości bezpośrednio od serwera zawartości przez łącze WAN.

Po odebraniu zawartości zostaje ona dodana do lokalnej pamięci podręcznej na komputerze klienckim albo na serwerze hostowanej pamięci podręcznej. W takim przypadku informacje o zawartości uniemożliwiają klientowi lub serwerowi hostowanej pamięci podręcznej dodawanie do lokalnej pamięci podręcznej zawartości niezgodnej z wartością skrótu. Proces weryfikacji zawartości przez dopasowanie skrótów zapewnia, że jedynie prawidłowa zawartość jest dodawana do pamięci podręcznej, a integralność lokalnej pamięci podręcznej jest zachowana.

Procesy usługi BranchCache: pobieranie zawartości

Po zlokalizowaniu przez komputer kliencki żądanej zawartości na hoście zawartości, który jest serwerem hostowanej pamięci podręcznej lub komputerem klienckim pracującym w trybie rozproszonej pamięci podręcznej, na komputerze klienckim rozpoczyna się proces pobierania zawartości.

Najpierw komputer kliencki wysyła żądanie do hosta zawartości dotyczące pierwszego wymaganego bloku. Żądanie zawiera identyfikator segmentu i zakres bloków, który identyfikuje żądaną zawartość. Ponieważ zwracany jest tylko jeden blok, zakres bloków obejmuje tylko jeden blok. (Żądania dotyczące wielu bloków nie są obecnie obsługiwane). Klient przechowuje żądanie także na lokalnej liście żądań oczekujących.

Po odebraniu prawidłowego komunikatu żądania od klienta host zawartości sprawdza, czy określony w żądaniu blok istnieje w pamięci podręcznej zawartości hosta zawartości.

Jeśli host zawartości ma blok zawartości, wysyła on odpowiedź, która zawiera identyfikator segmentu, identyfikator bloku, blok zaszyfrowanych danych i wektor inicjowania używany do szyfrowania bloku.

Jeśli host zawartości nie ma bloku zawartości, wysyła w odpowiedzi pusty komunikat. W ten sposób komputer kliencki otrzymuje informację, że host zawartości nie ma żądanego bloku. Pusty komunikat odpowiedzi zawiera identyfikator segmentu i identyfikator żądanego bloku oraz blok danych o rozmiarze zero.

Po odebraniu na komputerze klienckim odpowiedzi z hosta zawartości klient sprawdza, czy komunikat odpowiada komunikatowi żądania na liście żądań oczekujących. (Identyfikator segmentu i indeks bloku muszą być zgodne z odpowiednimi informacjami zawartymi w żądaniu oczekującym).

Jeśli ten proces sprawdzania poprawności zakończy się niepowodzeniem, a na liście żądań oczekujących komputera klienckiego nie ma odpowiedniego komunikatu żądania, komputer kliencki odrzuca komunikat.

Jeśli ten proces sprawdzania poprawności zakończy się powodzeniem, a na liście żądań oczekujących komputera klienckiego znajduje się odpowiedni komunikat żądania, komputer kliencki odszyfrowuje blok. Następnie klient sprawdza poprawność odszyfrowanego bloku względem odpowiedniej wartości skrótu bloku na podstawie informacji o zawartości, które klient początkowo uzyskał z oryginalnego serwera zawartości.

Po pomyślnym zakończeniu sprawdzania poprawności bloku odszyfrowany blok jest przechowywany w pamięci podręcznej.

Ten proces jest powtarzany do momentu, gdy klient zawiera wszystkie wymagane bloki.

Uwaga

Jeśli na jednym komputerze nie istnieją kompletne segmenty zawartości, zawartość będzie pobierana i składana przy użyciu protokołu pobierania z kombinacji źródeł, takich jak: zestaw komputerów klienckich działających w trybie rozproszonej pamięci podręcznej, serwer hostowanej pamięci podręcznej i — jeśli oddział firmy nie dysponuje kompletną zawartością — oryginalny serwer zawartości w głównej siedzibie firmy.

Przed wysłaniem informacji o zawartości lub zawartości za pośrednictwem usługi BranchCache dane są szyfrowane. Usługa BranchCache szyfruje blok w komunikacie odpowiedzi. W systemie Windows 7 domyślny algorytm szyfrowania używany przez usługę BranchCache to AES-128, klucz szyfrowania to Ke, a rozmiar klucza to 128 bitów — zgodnie z ustawieniami algorytmu szyfrowania. Usługa BranchCache generuje wektor inicjowania odpowiadający algorytmowi szyfrowania i szyfruje blok przy użyciu klucza szyfrowania. Następnie usługa BranchCache rejestruje algorytm szyfrowania i wektor inicjowania w komunikacie. Serwery i komputery klienckie nigdy nie wymieniają, udostępniają ani nie wysyłają do siebie klucza szyfrowania. Klient odbiera klucz szyfrowania z serwera zawartości, który obsługuje zawartość źródłową. Następnie przy użyciu algorytmu szyfrowania i wektora inicjowania otrzymanego z serwera klient odszyfrowuje blok. Protokół pobierania nie ma innych wbudowanych uwierzytelnień ani autoryzacji jawnych.

Zagrożenia bezpieczeństwa

Podstawowe zagrożenia bezpieczeństwa w tej warstwie to:

  • Manipulowanie danymi:

    Klient przekazujący dane do żądającego manipuluje tymi danymi. Model zabezpieczeń usługi BranchCache używa wartości skrótów w celu potwierdzenia, że dane nie zostały zmodyfikowane ani na komputerze klienta, ani na serwerze.

  • Ujawnienie informacji:

    Usługa BranchCache wysyła zaszyfrowaną zawartość do każdego klienta z odpowiednim identyfikatorem segmentu. Identyfikatory segmentów są publiczne, dlatego dowolny klient może odbierać zaszyfrowaną zawartość. Jeśli jednak złośliwy użytkownik uzyska dostęp do zaszyfrowanej zawartości, do jej odszyfrowania będzie potrzebować klucza szyfrowania. Protokół górnej warstwy przeprowadza uwierzytelnianie i przekazuje informacje o zawartości do uwierzytelnionego i autoryzowanego klienta. Zabezpieczenia informacji o zawartości są odpowiednikiem zabezpieczeń samej zawartości, a informacje o zawartości nie są nigdy ujawniane przez usługę BranchCache.

    Atakujący podłącza się do komputera, aby uzyskać dostęp do zawartości. Usługa BranchCache szyfruje wszystkie operacje transferu między klientami za pomocą algorytmu AES128, w którym kluczem tajnym jest Ke, zapobiegając w ten sposób uzyskiwaniu dostępu do danych po podłączeniu się do komputera. Informacje o zawartości pobrane z serwera zawartości są chronione tak samo, jak chronione byłyby same dane, dlatego są zabezpieczone przed ujawnieniem w tym samym stopniu, w jakim byłyby zabezpieczone w przypadku rezygnacji z zastosowania usługi BranchCache.

  • Odmowa usługi:

    Klient jest przeciążony żądaniami dotyczącymi danych. W protokołach usługi BranchCache stosowane są czasomierze i liczniki zarządzania kolejkami, dzięki czemu może ona zapobiegać przeciążaniu klientów.

Procesy usługi BranchCache: zawartość pamięci podręcznej

Na komputerach klienckich działających w trybie rozproszonej pamięci podręcznej i serwerach hostowanej pamięci podręcznej, które znajdują się w oddziałach firmy, pamięci podręczne zawartości są tworzone wraz z upływem czasu, gdy zawartość jest pobierana za pośrednictwem linków WAN.

Komputery klienckie skonfigurowane w trybie hostowanej pamięci podręcznej umożliwiają dodawanie zawartości do własnej lokalnej pamięci podręcznej, a także oferowanie danych serwerowi hostowanej pamięci podręcznej. Protokół hostowanej pamięci podręcznej udostępnia klientom mechanizm umożliwiający informowanie serwera hostowanej pamięci podręcznej o dostępności zawartości i segmentów. Aby przekazać zawartość do serwera hostowanej pamięci podręcznej, klient informuje serwer o tym, że ma dostępny segment. Następnie serwer hostowanej pamięci podręcznej pobiera wszystkie informacje o zawartości skojarzone z oferowanym segmentem i pobiera bloki w segmencie, który jest faktycznie potrzebny. Ten proces jest powtarzany, dopóki klient nie ma więcej segmentów do zaoferowania serwerowi hostowanej pamięci podręcznej.

Aby można było zaktualizować serwer hostowanej pamięci podręcznej przy użyciu protokołu hostowanej pamięci podręcznej, muszą zostać spełnione następujące wymagania:

  • Na komputerze klienckim w segmencie, który może zostać zaoferowany serwerowi hostowanej pamięci podręcznej, musi znajdować się zestaw bloków. Klient musi podać informacje o zawartości oferowanego segmentu — składają się one z identyfikatora segmentu, skrótu danych segmentu, klucza tajnego segmentu i listy wszystkich wartości skrótów bloku znajdujących się w segmencie.

  • W przypadku serwerów hostowanej pamięci podręcznej z systemem Windows Server 2008 R2 wymagany jest certyfikat serwera hostowanej pamięci podręcznej i skojarzony klucz prywatny, a urząd certyfikacji, który wystawił certyfikat, musi być zaufany na komputerach klienckich w oddziale firmy. Dzięki temu klient i serwer mogą skutecznie uczestniczyć w uwierzytelnianiu serwera HTTPS.

    Ważne

    Serwery hostowanej pamięci podręcznej z systemem Windows Server 2012 nie wymagają certyfikatu serwera hostowanej pamięci podręcznej i skojarzonego klucza prywatnego.

  • Komputer kliencki jest konfigurowany z nazwą komputera serwera hostowanej pamięci podręcznej i numerem portu protokołu TCP (Transmission Control Protocol), na którym serwer hostowanej pamięci podręcznej nasłuchuje ruchu usługi BranchCache. Certyfikat serwera hostowanej pamięci podręcznej jest powiązany z tym portem. Nazwa komputera serwera hostowanej pamięci podręcznej może być w pełni kwalifikowaną nazwą domeny (FQDN), jeśli serwer hostowanej pamięci podręcznej jest komputerem członkowskim domeny, lub nazwą NetBIOS komputera, jeśli serwer hostowanej pamięci podręcznej nie jest elementem członkowskim domeny.

  • Komputer kliencki aktywnie nasłuchuje przychodzących żądań bloku. Port, na którym odbywa się nasłuchiwanie, jest przekazywany jako część komunikatów ofertowych od klienta do serwera hostowanej pamięci podręcznej. Dzięki temu serwer hostowanej pamięci podręcznej może łączyć się z komputerem klienckim za pomocą protokołów usługi BranchCache w celu pobrania bloków danych w segmencie.

  • Po zainicjowaniu serwer hostowanej pamięci podręcznej rozpoczyna nasłuchiwanie przychodzących żądań HTTP.

  • Jeśli serwer hostowanej pamięci podręcznej został skonfigurowany tak, aby wymagane było uwierzytelnianie komputera klienckiego, klient i serwer hostowanej pamięci podręcznej muszą obsługiwać uwierzytelnianie protokołu HTTPS.

Wypełnianie pamięci podręcznej działającej w trybie hostowanej pamięci podręcznej

Proces dodawania zawartości do pamięci podręcznej serwera hostowanej pamięci podręcznej w oddziale rozpoczyna się, gdy klient wysyła początkowy komunikat udostępniania INITIAL_OFFER_MESSAGE, który zawiera identyfikator segmentu. Identyfikator segmentu w żądaniu INITIAL_OFFER_MESSAGE jest używany do pobierania następujących informacji o odpowiadającym segmencie: skrót danych, lista skrótów bloków oraz klucz tajny segmentu z pamięci podręcznej bloku na serwerze hostowanej pamięci podręcznej. Jeśli serwer hostowanej pamięci podręcznej ma już wszystkie informacje o zawartości określonego segmentu, odpowiedzią na komunikat INITIAL_OFFER_MESSAGE będzie OK i nie zostaną utworzone żadne żądania pobrania bloku.

Jeśli serwer hostowanej pamięci podręcznej nie ma wszystkich oferowanych bloków danych skojarzonych z wartościami skrótów bloku w segmencie, odpowiedzią na komunikat INITIAL_OFFER_MESSAGE będzie INTERESTED (zainteresowanie). Następny krok to wysłanie z komputera klienckiego komunikatu SEGMENT_INFO_MESSAGE opisującego pojedynczy oferowany segment. Serwer hostowanej pamięci podręcznej odpowiada za pomocą komunikatu OK i inicjuje pobieranie brakujących bloków z komputera klienckiego wysyłającego ofertę.

Dzięki użyciu skrótu danych segmentu, listy wartości skrótów bloku i klucza tajnego segmentu można mieć pewność, że pobierana zawartość nie została zmanipulowana ani zmieniona w inny sposób. Pobrane bloki są następnie dodawane do pamięci podręcznej bloku na serwerze hostowanej pamięci podręcznej.

Zabezpieczenia pamięci podręcznej

Ta sekcja zawiera informacje dotyczące sposobu, w jaki usługa BranchCache zabezpiecza dane w pamięci podręcznej na komputerach klienckich oraz na serwerach hostowanej pamięci podręcznej.

Zabezpieczenia pamięci podręcznej komputera klienckiego

Największym zagrożeniem danych przechowywanych w usłudze BranchCache jest manipulowanie nimi. Jeśli osoba przeprowadzająca atak może manipulować zawartością i informacjami o zawartości przechowywanej w pamięci podręcznej, może również podjąć próbę skierowania ataku przeciwko komputerom korzystającym z usługi BranchCache. Atakujący może zainicjować atak, zastępując dane złośliwym oprogramowaniem. Usługa BranchCache zmniejsza zagrożenie tego typu dzięki funkcji sprawdzania poprawności całej zawartości przy użyciu wartości skrótów bloku znalezionych w informacjach o zawartości. Jeśli atakujący podejmie próbę manipulowania tymi danymi, zostaną one odrzucone i zastąpione prawidłowymi danymi pochodzącymi z oryginalnego źródła.

Drugorzędnym zagrożeniem danych przechowywanych w BranchCache jest ujawnienie informacji. W trybie rozproszonej pamięci podręcznej klient umieszcza w pamięci podręcznej tylko zawartość, której sam zażądał. Dane te są jednak przechowywane w postaci zwykłego tekstu, przez co mogą być narażone na ryzyko. W celu ułatwienia ograniczenia dostępu do pamięci podręcznej tylko do usługi BranchCache lokalna pamięć podręczna jest chroniona za pomocą uprawnień systemu plików określonych na liście ACL. Mimo że zastosowanie listy ACL skutecznie zapobiega nieautoryzowanemu dostępowi do pamięci podręcznej, użytkownik z uprawnieniami administracyjnymi może uzyskać dostęp do pamięci podręcznej, ręcznie zmieniając uprawnienia określone na liście ACL. Usługa BranchCache nie chroni przed złośliwym korzystaniem z konta administratora.

Dane przechowywane w pamięci podręcznej zawartości nie są zaszyfrowane, dlatego w przypadku zagrożenia wyciekiem danych można użyć technologii szyfrowania, takiej jak BitLocker lub EFS (Encrypting File System). Lokalna pamięć podręczna używana przez funkcję BranchCache nie zwiększa stopnia zagrożenia ujawnieniem informacji, na które narażony jest komputer w oddziale firmy — pamięć podręczna zawiera tylko kopie plików, które znajdują się jako niezaszyfrowane w innym miejscu na dysku. Szyfrowanie całego dysku jest szczególnie ważne w środowiskach, w których trudno jest zapewnić fizyczne bezpieczeństwo klientów. Zaszyfrowanie całego dysku pomaga na przykład zabezpieczyć poufne dane na komputerach przenośnych, które mogą zostać usunięte ze środowiska oddziału firmy.

Zabezpieczenia pamięci podręcznej serwera hostowanej pamięci podręcznej

W trybie hostowanej pamięci podręcznej największym zagrożeniem bezpieczeństwa serwera hostowanej pamięci podręcznej jest ujawnienie informacji. Usługa BranchCache w środowisku hostowanej pamięci podręcznej działa w sposób podobny do trybu rozproszonej pamięci podręcznej — dane w pamięci podręcznej są chronione za pośrednictwem uprawnień systemu plików. Różnica polega na tym, że na serwerze hostowanej pamięci podręcznej przechowywana jest cała zawartość żądana przez dowolny komputer w oddziale firmy z włączoną usługą BranchCache, a nie tylko dane żądane przez pojedynczego klienta. Konsekwencje uzyskania nieautoryzowanego dostępu do tej pamięci podręcznej mogą być o wiele poważniejsze, ponieważ na atak narażona jest o wiele większa ilość danych.

W środowisku hostowanej pamięci podręcznej, w którym na serwerze hostowanej pamięci podręcznej działa system Windows Server 2008 R2, zaleca się korzystanie z technologii szyfrowania, takich jak BitLocker lub EFS, jeśli z poziomu dowolnego komputera klienckiego w oddziale firmy można uzyskać dostęp do danych poufnych za pośrednictwem linku WAN. Należy również uniemożliwić fizyczny dostęp do hostowanej pamięci podręcznej, ponieważ szyfrowanie dysków działa tylko w sytuacji, gdy komputer jest wyłączony w momencie, gdy osoba atakująca uzyskuje do niego fizyczny dostęp. Jeśli komputer jest włączony lub działa w trybie uśpienia, szyfrowanie dysków oferuje ochronę w małym stopniu.

Uwaga

Serwery hostowanej pamięci podręcznej z systemem Windows Server 2012 domyślnie szyfrują wszystkie dane w pamięci podręcznej, dlatego nie ma potrzeby korzystania z dodatkowych technologii szyfrowania.

Nawet jeśli klient został skonfigurowany do pracy w trybie hostowanej pamięci podręcznej, dane będą nadal przechowywane lokalnie w pamięci podręcznej, a użytkownik może zdecydować się na podjęcie działań mających na celu ochronę lokalnej pamięci podręcznej (oprócz pamięci podręcznej na serwerze hostowanej pamięci podręcznej).