Modele szyfrowania danych
Zrozumienie różnych modeli szyfrowania i ich zalet i wad jest niezbędne do zrozumienia, jak różni dostawcy zasobów w usłudze Azure implementują szyfrowanie w spoczynku. Te definicje są współużytkowane przez wszystkich dostawców zasobów na platformie Azure w celu zapewnienia wspólnego języka i taksonomii.
Istnieją trzy scenariusze szyfrowania po stronie serwera:
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez usługę
- Dostawcy zasobów platformy Azure wykonują operacje szyfrowania i odszyfrowywania
- Firma Microsoft zarządza kluczami
- Pełna funkcjonalność chmury
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez klienta w usłudze Azure Key Vault
- Dostawcy zasobów platformy Azure wykonują operacje szyfrowania i odszyfrowywania
- Klucze kontroli klienta za pośrednictwem usługi Azure Key Vault
- Pełna funkcjonalność chmury
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez klienta na sprzęcie kontrolowanym przez klienta
- Dostawcy zasobów platformy Azure wykonują operacje szyfrowania i odszyfrowywania
- Klucze kontroli klienta na sprzęcie kontrolowanym przez klienta
- Pełna funkcjonalność chmury
Modele szyfrowania po stronie serwera odnoszą się do szyfrowania wykonywanego przez usługę platformy Azure. W tym modelu dostawca zasobów wykonuje operacje szyfrowania i odszyfrowywania. Na przykład usługa Azure Storage może odbierać dane w operacjach zwykłego tekstu i wykona szyfrowanie i odszyfrowywanie wewnętrznie. Dostawca zasobów może używać kluczy szyfrowania zarządzanych przez firmę Microsoft lub przez klienta w zależności od podanej konfiguracji.
Każde z modeli magazynowanych po stronie serwera oznacza charakterystyczne cechy zarządzania kluczami. Obejmuje to miejsce i sposób tworzenia kluczy szyfrowania oraz ich przechowywania, a także modeli dostępu i procedur rotacji kluczy.
W przypadku szyfrowania po stronie klienta należy wziąć pod uwagę następujące kwestie:
- Usługi platformy Azure nie widzą odszyfrowanych danych
- Klienci zarządzają kluczami i przechowują je lokalnie (lub w innych bezpiecznych magazynach). Klucze nie są dostępne dla usług platformy Azure
- Zmniejszona funkcjonalność chmury
Obsługiwane modele szyfrowania na platformie Azure podzielone na dwie główne grupy: "Szyfrowanie klienta" i "Szyfrowanie po stronie serwera", jak wspomniano wcześniej. Niezależnie od używanego modelu szyfrowania magazynowanych usługi platformy Azure zawsze zaleca korzystanie z bezpiecznego transportu, takiego jak TLS lub HTTPS. W związku z tym szyfrowanie w transporcie powinno być rozwiązywane przez protokół transportowy i nie powinno być głównym czynnikiem w określaniu, który model szyfrowania magazynowanego ma być używany.
Model szyfrowania klienta
Model szyfrowania klienta odnosi się do szyfrowania wykonywanego poza dostawcą zasobów lub platformą Azure przez usługę lub wywołującą aplikację. Szyfrowanie może być wykonywane przez aplikację usługi na platformie Azure lub aplikację działającą w centrum danych klienta. W obu przypadkach podczas korzystania z tego modelu szyfrowania dostawca zasobów platformy Azure odbiera zaszyfrowany obiekt blob danych bez możliwości odszyfrowania danych w jakikolwiek sposób lub dostępu do kluczy szyfrowania. W tym modelu zarządzanie kluczami odbywa się przez wywołanie usługi/aplikacji i jest nieprzezroczyste w usłudze platformy Azure.
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez usługę
W przypadku wielu klientów podstawowym wymaganiem jest zapewnienie, że dane są szyfrowane za każdym razem, gdy są magazynowane. Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez usługę umożliwia klientom oznaczenie określonego zasobu (konta magazynu, bazy danych SQL itp.) na potrzeby szyfrowania i pozostawienia wszystkich aspektów zarządzania kluczami, takich jak wystawianie kluczy, rotacja i tworzenie kopii zapasowych firmie Microsoft. Większość usług platformy Azure, które obsługują szyfrowanie magazynowane, zwykle obsługuje ten model odciążania zarządzania kluczami szyfrowania na platformie Azure. Dostawca zasobów platformy Azure tworzy klucze, umieszcza je w bezpiecznym magazynie i pobiera je w razie potrzeby. Oznacza to, że usługa ma pełny dostęp do kluczy, a usługa ma pełną kontrolę nad zarządzaniem cyklem życia poświadczeń.
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez usługę szybko eliminuje konieczność szyfrowania magazynowanych z niskim obciążeniem dla klienta. Gdy klient zazwyczaj otwiera witrynę Azure Portal dla subskrypcji docelowej i dostawcy zasobów i sprawdza pole wskazujące, że dane mają być szyfrowane. W niektórych menedżerach zasobów szyfrowanie po stronie serwera z kluczami zarządzanymi przez usługę jest domyślnie włączone.
Szyfrowanie po stronie serwera za pomocą kluczy zarządzanych przez firmę Microsoft oznacza, że usługa ma pełny dostęp do przechowywania kluczy i zarządzania nimi. Podczas gdy niektórzy klienci mogą chcieć zarządzać kluczami, ponieważ czują, że zyskują większe bezpieczeństwo, podczas oceniania tego modelu należy rozważyć koszt i ryzyko związane z niestandardowym rozwiązaniem magazynu kluczy. W wielu przypadkach organizacja może określić, że ograniczenia zasobów lub zagrożenia związane z rozwiązaniem lokalnym mogą być większe niż ryzyko zarządzania chmurą szyfrowania w kluczach magazynowanych. Jednak ten model może nie być wystarczający dla organizacji, które mają wymagania dotyczące kontrolowania tworzenia lub cyklu życia kluczy szyfrowania lub zarządzania kluczami szyfrowania przez inny personel niż osoby zarządzające usługą (czyli segregacja zarządzania kluczami z ogólnego modelu zarządzania dla usługi).
Dostęp do klucza
W przypadku użycia szyfrowania po stronie serwera za pomocą kluczy zarządzanych przez usługę wszystkie klucze tworzenia kluczy, magazynu i dostępu do usługi są zarządzane przez usługę. Zazwyczaj podstawowi dostawcy zasobów platformy Azure będą przechowywać klucze szyfrowania danych w magazynie, który znajduje się blisko danych i jest szybko dostępny, gdy klucze szyfrowania kluczy są przechowywane w bezpiecznym magazynie wewnętrznym.
Zalety
- Konfiguracja prosta
- Firma Microsoft zarządza rotacją kluczy, tworzeniem kopii zapasowych i nadmiarowością
- Klient nie ma kosztów związanych z implementacją ani ryzykiem niestandardowego schematu zarządzania kluczami.
Wady
- Brak kontroli klienta nad kluczami szyfrowania (specyfikacja klucza, cykl życia, odwołanie itp.)
- Brak możliwości segregowania zarządzania kluczami z ogólnego modelu zarządzania dla usługi
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez klienta w usłudze Azure Key Vault
W scenariuszach, w których wymagane jest szyfrowanie danych magazynowanych i kontrolowanie kluczy szyfrowania, klienci mogą używać szyfrowania po stronie serwera przy użyciu kluczy zarządzanych przez klienta w usłudze Key Vault. Niektóre usługi mogą przechowywać tylko klucz główny szyfrowania kluczy w usłudze Azure Key Vault i przechowywać zaszyfrowany klucz szyfrowania danych w lokalizacji wewnętrznej bliżej danych. W tym scenariuszu klienci mogą przenieść własne klucze do usługi Key Vault (BYOK — Bring Your Own Key) lub wygenerować nowe i użyć ich do szyfrowania żądanych zasobów. Podczas gdy dostawca zasobów wykonuje operacje szyfrowania i odszyfrowywania, używa skonfigurowanego klucza szyfrowania klucza jako klucza głównego dla wszystkich operacji szyfrowania.
Utrata kluczy szyfrowania kluczy oznacza utratę danych. Z tego powodu klucze nie powinny być usuwane. Kopie zapasowe kluczy powinny być tworzone zawsze po utworzeniu lub rotacji. Ochrona przed usuwaniem nietrwałym i przeczyszczaniem musi być włączona w dowolnym magazynie przechowującym klucze szyfrowania kluczy w celu ochrony przed przypadkowym lub złośliwym wymazywaniem kryptograficznym. Zamiast usuwać klucz, zaleca się ustawienie wartości false dla klucza szyfrowania klucza. Użyj kontroli dostępu, aby odwołać dostęp do poszczególnych użytkowników lub usług w usłudze Azure Key Vault lub zarządzanym module HSM.
Dostęp do klucza
Model szyfrowania po stronie serwera z kluczami zarządzanymi przez klienta w usłudze Azure Key Vault obejmuje dostęp do kluczy w celu szyfrowania i odszyfrowania zgodnie z potrzebami. Szyfrowanie kluczy magazynowanych jest dostępne dla usługi za pośrednictwem zasad kontroli dostępu. Te zasady udzielają dostępu tożsamości usługi do odbierania klucza. Usługę platformy Azure działającą w imieniu skojarzonej subskrypcji można skonfigurować przy użyciu tożsamości w tej subskrypcji. Usługa może przeprowadzić uwierzytelnianie firmy Microsoft Entra i otrzymać token uwierzytelniania identyfikujący się jako ta usługa działająca w imieniu subskrypcji. Ten token można następnie przedstawić usłudze Key Vault, aby uzyskać klucz, do którego udzielono mu dostępu.
W przypadku operacji korzystających z kluczy szyfrowania można udzielić tożsamości usługi dostępu do dowolnej z następujących operacji: odszyfrowywania, szyfrowania, odpakowywaniakey, zawijaniakey, weryfikowania, podpisywania, pobierania, wyświetlania, aktualizowania, tworzenia, importowania, usuwania, tworzenia kopii zapasowej i przywracania.
Aby uzyskać klucz do użycia w szyfrowaniu lub odszyfrowywaniu danych magazynowanych, tożsamość usługi uruchomiona przez wystąpienie usługi Resource Manager musi mieć klucz UnwrapKey (aby uzyskać klucz do odszyfrowywania) i WrapKey (aby wstawić klucz do magazynu kluczy podczas tworzenia nowego klucza).
Uwaga
Aby uzyskać więcej informacji na temat autoryzacji usługi Key Vault, zobacz stronę Zabezpieczanie magazynu kluczy w dokumentacji usługi Azure Key Vault.
Zalety
- Pełna kontrola nad używanymi kluczami — klucze szyfrowania są zarządzane w usłudze Key Vault klienta pod kontrolą klienta.
- Możliwość szyfrowania wielu usług do jednego wzorca
- Może segregować zarządzanie kluczami z ogólnego modelu zarządzania dla usługi
- Może definiować usługę i lokalizację klucza w różnych regionach
Wady
- Klient ponosi pełną odpowiedzialność za zarządzanie dostępem do kluczy
- Klient ponosi pełną odpowiedzialność za zarządzanie cyklem życia kluczy
- Dodatkowe obciążenie związane z konfiguracją i konfiguracją
Szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez klienta w sprzęcie kontrolowanym przez klienta
Niektóre usługi platformy Azure umożliwiają model zarządzania kluczami hosta własnego klucza (HYOK). Ten tryb zarządzania jest przydatny w scenariuszach, w których istnieje potrzeba zaszyfrowania danych magazynowanych i zarządzania kluczami w zastrzeżonym repozytorium poza kontrolą firmy Microsoft. W tym modelu usługa musi użyć klucza z lokacji zewnętrznej, aby odszyfrować klucz szyfrowania danych (DEK). Ma to wpływ na gwarancje dotyczące wydajności i dostępności, a konfiguracja jest bardziej złożona. Ponadto, ponieważ usługa ma dostęp do klucza szyfrowania i odszyfrowywania podczas operacji szyfrowania i odszyfrowywania, ogólne gwarancje zabezpieczeń tego modelu są podobne do kluczy zarządzanych przez klienta w usłudze Azure Key Vault. W związku z tym ten model nie jest odpowiedni dla większości organizacji, chyba że mają określone wymagania dotyczące zarządzania kluczami. Ze względu na te ograniczenia większość usług platformy Azure nie obsługuje szyfrowania po stronie serwera przy użyciu kluczy zarządzanych przez klienta na sprzęcie kontrolowanym przez klienta. Jeden z dwóch kluczy w usłudze Double Key Encryption jest zgodny z tym modelem.
Dostęp do klucza
Gdy używane jest szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez klienta na sprzęcie kontrolowanym przez klienta, klucze szyfrowania kluczy są przechowywane w systemie skonfigurowanym przez klienta. Usługi platformy Azure, które obsługują ten model, zapewniają sposób ustanawiania bezpiecznego połączenia z magazynem kluczy dostarczonym przez klienta.
Zalety
- Pełna kontrola nad używanym kluczem głównym — klucze szyfrowania są zarządzane przez magazyn dostarczony przez klienta
- Możliwość szyfrowania wielu usług do jednego wzorca
- Może segregować zarządzanie kluczami z ogólnego modelu zarządzania dla usługi
- Może definiować usługę i lokalizację klucza w różnych regionach
Wady
- Pełna odpowiedzialność za magazyn kluczy, zabezpieczenia, wydajność i dostępność
- Pełna odpowiedzialność za zarządzanie dostępem do kluczy
- Pełna odpowiedzialność za zarządzanie cyklem życia kluczy
- Znaczne koszty instalacji, konfiguracji i bieżącej konserwacji
- Zwiększona zależność od dostępności sieci między centrum danych klienta i centrami danych platformy Azure.
Usługi obsługujące klucze zarządzane przez klienta (CMKs)
Oto usługi, które obsługują szyfrowanie po stronie serwera przy użyciu kluczy zarządzanych przez klienta:
* Ta usługa nie utrzymuje danych. Przejściowe pamięci podręczne, jeśli istnieją, są szyfrowane przy użyciu klucza firmy Microsoft.
** Ta usługa obsługuje przechowywanie danych we własnym magazynie Key Vault, koncie magazynu lub innej usłudze utrwalania danych, która obsługuje już szyfrowanie po stronie serwera za pomocą klucza zarządzanego przez klienta.
Wszystkie przejściowe dane przechowywane tymczasowo na dysku, takie jak pliki stronicowania lub pliki wymiany, są szyfrowane przy użyciu klucza firmy Microsoft (wszystkie warstwy) lub klucza zarządzanego przez klienta (przy użyciu warstw Flash przedsiębiorstwa i przedsiębiorstwa). Aby uzyskać więcej informacji, zobacz Konfigurowanie szyfrowania dysków w usłudze Azure Cache for Redis.